【发布时间】:2010-08-27 17:10:56
【问题描述】:
我正在尝试使用 Assimp 库将模型导入使用 VBO 的基本 OpenGL 应用程序。
如果我理解正确的话,glDrawElements 是一种理想的现代绘画方式。
但是我们如何从通用导入库中获取这些信息呢?
如果您有特定的 Assimp 库知识,我们将不胜感激。
--
生成这些的一般过程是什么?
【问题讨论】:
我正在尝试使用 Assimp 库将模型导入使用 VBO 的基本 OpenGL 应用程序。
如果我理解正确的话,glDrawElements 是一种理想的现代绘画方式。
但是我们如何从通用导入库中获取这些信息呢?
如果您有特定的 Assimp 库知识,我们将不胜感激。
--
生成这些的一般过程是什么?
【问题讨论】:
在单个缓冲区中收集来自 aiMesh::mFaces 的所有索引。确保将 aiProcess_Triangulate 作为后处理标志传递给 Assimp(在 aiProcess_JoinVertices 和任何对您有用的地方),并跳过点和线或单独处理它们。
aiMesh中的各种数据流——如aiMesh::mVertices和aiMesh::mNormals需要设置为GL输入数据流(glVertexPointer,...)。
【讨论】:
从documentation 看起来像aiFace::mIndices 从aiMesh::mFaces 索引到aiMesh::mVertices。
aiVector3D 看起来像这样布置,您应该能够只用mVertices 调用glVertexPointer() 并在您的mIndices 调用中直接使用mIndices。
【讨论】: