我使用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
),或者我可以打印它的任何东西。< / p>
另外我需要提一下缓冲区不仅包括顶点坐标,还有BufferView& bview
(BufferViews)中给出的偏移量,所以我需要以某种方式使用bview.byteOffset
确定缓冲区中顶点的位置。
非常感谢你能帮助我!