Как мы получаем индексы для glDrawElements ()? - PullRequest
4 голосов
/ 27 августа 2010

Я пытаюсь использовать библиотеку Assimp для импорта моделей в элементарное приложение OpenGL с использованием VBO.

Если я правильно понимаю, glDrawElements - один из идеальных современных способов рисования.

Но как мы можем получить эту информацию из универсальной библиотеки импорта?

Если у вас есть определенные знания библиотеки Assimp, это ценится.

-

Каков обычно процесс их создания?

Ответы [ 2 ]

4 голосов
/ 27 августа 2010

Соберите все индексы с aiMesh::mFaces в одном буфере.Обязательно передайте aiProcess_Triangulate в Assimp в качестве флага постобработки (среди aiProcess_JoinVertices и всего, что вам кажется полезным) и пропустите точки и линии или обработайте их отдельно.

Различные потоки данных в aiMesh- такие как aiMesh::mVertices и aiMesh::mNormals должны быть установлены как потоки входных данных GL (glVertexPointer, ...).

1 голос
/ 27 августа 2010

Из документации это выглядит как aiFace::mIndices из индекса aiMesh::mFaces в aiMesh::mVertices.

aiVector3D выглядит так, что вы можете просто позвонить glVertexPointer() с помощью mVertices и использовать mIndices непосредственно в своем вызове glDrawElements().

...