我正在使用https://github.com/syoyo/tinygltf加载 glTF 模型。glTF 模型有一个包含位置数据(顶点坐标)的缓冲区。我想将这些坐标打印到屏幕上。
for (int i = 0; i < model.meshes.size(); ++i)
{
Mesh &gltfmesh = model.meshes[i];
Primitive &prim = gltfmesh.primitives[i];
Accessor& acess = model.accessors[prim.attributes["POSITION"]];
BufferView& bview = model.bufferViews[acess.bufferView];
Buffer& bfer = model.buffers[bview.buffer];
// cout << bfer.data ... I need to cout the vertex arrays somehow
}
正如您所看到的,Buffer& bfer
现在我想将坐标提取到 Vec3F 结构中(一个 Vec3F 结构有 3 个变量:)float x, y, z
,或者我可以打印的任何东西。
另外我需要提一下,缓冲区不仅包括顶点坐标,在BufferView& bview
(BufferViews)中给出的它们还有一个偏移量,所以我需要以bview.byteOffset
某种方式确定缓冲区中顶点的位置。
如果你能帮助我,非常感谢!