1

我正在使用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某种方式确定缓冲区中顶点的位置。

如果你能帮助我,非常感谢!

4

0 回答 0