我正在嘗試使用Assimp庫將模型導入到使用VBO的基本OpenGL應用程序。我們如何得到glDrawElements()的索引?
如果我正確地理解它,glDrawElements是繪製事物的理想現代方法之一。
但是我們如何從通用的導入庫中獲取這些信息呢?
如果您有特定的Assimp庫知識,
-
什麼是通常的過程來產生這些?
我正在嘗試使用Assimp庫將模型導入到使用VBO的基本OpenGL應用程序。我們如何得到glDrawElements()的索引?
如果我正確地理解它,glDrawElements是繪製事物的理想現代方法之一。
但是我們如何從通用的導入庫中獲取這些信息呢?
如果您有特定的Assimp庫知識,
-
什麼是通常的過程來產生這些?
將aiMesh::mFaces
中的所有索引收集到單個緩衝區中。確保將aiProcess_Triangulate
傳遞給Assimp作爲後處理標誌(在aiProcess_JoinVertices
之間以及對您有用的任何東西),並跳過點和線或單獨處理它們。
在aiMesh
的各種數據流 - 比如aiMesh::mVertices
和aiMesh::mNormals
需要將其設置爲GL輸入數據流(glVertexPointer
,...)。
從documentation看起來像aiFace::mIndices
從aiMesh::mFaces
索引到aiMesh::mVertices
。
aiVector3D
看起來像它的佈局,這樣你應該能夠能夠只是調用glVertexPointer()
與mVertices
,並直接在您的通話glDrawElements()
使用mIndices
。