c ++ получает массивы вершин из буфера (загрузчик модели glTF) - PullRequest
0 голосов
/ 28 апреля 2018

Я использую 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, чтобы определить местоположение вершин в буфере.

Большое спасибо, если вы можете мне помочь!

...