я использую 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
как-то определить местоположение вершин в буфере.
Большое спасибо, если вы можете помочь мне!
Задача ещё не решена.
Других решений пока нет …