c ++从缓冲区获取顶点数组(glTF模型加载器)

时间:2018-04-28 08:47:15

标签: c++ buffer vertex-buffer gltf

我使用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确定缓冲区中顶点的位置。

非常感谢你能帮助我!

0 个答案:

没有答案