【发布时间】:2018-05-26 10:09:27
【问题描述】:
我创建了自己的 Model 类来抽象在 Assimp 中导入模型的过程,并使添加模型变得容易。目前,我还没有让这个工作,也没有显示模型。我相信这是由于指数。
我在调试过程中注意到与模型中的网格相关的索引向量始终具有与顶点向量相同数量的元素(尽管应该更多)。 例如:
vertices.size() == indices.size() //<--- true
此外,出于某种原因,所有索引向量都只包含连续整数。例如:
std::vector<GLuint> indices; //<--- After processing contains: {0, 1, 2, 3, ...}
这是我用来从 Assimp 中提取索引的代码:
//Process Indices
for (GLuint i = 0; i < mesh->mNumFaces; i++) {
aiFace face = mesh->mFaces[i];
for (GLuint j = 0; j < face.mNumIndices; j++) {
GLuint index = face.mIndices[j];
indices.push_back(index);
}
}
另外,这是我的导入标志(虽然我真的不知道这些会如何影响索引):
const aiScene *scene = import.ReadFile(path, aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_GenNormals);
【问题讨论】:
-
obj 包含什么?是否存在用于多个三角形的顶点?
-
是的,有。 obj 文件包含危机模型资产 (nanosuit.obj)。三角形应该是相连的。
标签: c++ opengl indices assimp wavefront