glTF / GLB 共享的 SceneModel 构建逻辑。 负责将已加载的 GltfRoot JSON 模型和二进制缓冲区数组转换为 Data.SceneModel。
ModelBuilder
01 Syntax
Microsoft.VisualBasic.Imaging.Landscape.Gltf.ModelBuilder
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| BuildSceneModel | 1 | 从已解析的 glTF 根对象和缓冲区数组构建 SceneModel |
| GetActiveMeshIndices | 1 | 获取活跃的网格索引(默认场景引用的网格,若无场景则返回所有网格) |
| CollectMeshIndicesFromNodes | 1 | 递归收集节点树中的所有网格索引 |
| GetMeshSurfaces | 1 | 从指定网格中提取所有 Surface(三角面) |
| ExtractPrimitiveSurfaces | 1 | 从一个 Primitive 中提取所有三角面 |
| CreateSurface | 1 | 创建单个三角面 Surface |
| ReadColorFromPrimitive | 1 | 从 Primitive 的颜色信息中提取 paint 字符串 |
| ReadColorFromMaterial | 1 | 从材质中提取颜色信息 |
| ExtractFloatDataArray | 1 | 从 Accessor 提取浮点顶点数据数组(每个元素是一个 Float 数组,长度由 accessor type 决定) |
| ExtractFloatData | 1 | 从 Accessor 中提取扁平化的 Float 数组 |
| ExtractIndices | 1 | 从索引 Accessor 中提取索引数组 |
03 Members
BuildSceneModel(GltfRoot,
List(Of Byte()))从已解析的 glTF 根对象和缓冲区数组构建 SceneModel
Parameters
| Name | Type | Description |
|---|---|---|
root | GltfRoot | 解析后的 glTF JSON 根对象 |
binaryBuffers | List(Of Byte()) | 按 Buffer 索引排列的原始字节数组列表 |
Returns
统一的 SceneModel 对象
GetActiveMeshIndices(GltfRoot)
获取活跃的网格索引(默认场景引用的网格,若无场景则返回所有网格)
CollectMeshIndicesFromNodes(GltfRoot,
IEnumerable(Of Int32))递归收集节点树中的所有网格索引
从指定网格中提取所有 Surface(三角面)
从一个 Primitive 中提取所有三角面
CreateSurface(
Single(), Single(), Single(), String)创建单个三角面 Surface
从 Primitive 的颜色信息中提取 paint 字符串
ReadColorFromMaterial(GltfMaterial)
从材质中提取颜色信息
从 Accessor 提取浮点顶点数据数组(每个元素是一个 Float 数组,长度由 accessor type 决定)
从 Accessor 中提取扁平化的 Float 数组
从索引 Accessor 中提取索引数组