1
我使用ASSIMP的sample code中提供的帶紋理的3d模型加載樣本。但是,對於某些模型,它似乎無法正確訪問模型的頂點和法線。下面是該模型的屏幕截圖正確裝入:使用ASSIMP和OpenGL進行3D模型加載時頂點和正常訪問不正確
雖然模型應該像下面截圖:
在所述第一圖像,所述建築物的屋頂放置在前視圖的中心頂部。地板不見了。我認爲這個問題是由於對頂點位置和法線的錯誤訪問(CMIIW)造成的。以下是用於訪問頂點位置和法線的片段:
glBegin(face_mode);
for(i = 0; i < face->mNumIndices; i++){
int vertexIndex = face->mIndices[i]; // get group index for current index
if(mesh->mColors[0] != NULL)
Color4f(&mesh->mColors[0][vertexIndex]);
if(mesh->mNormals != NULL)
if(mesh->HasTextureCoords(0)){
glTexCoord2f(mesh->mTextureCoords[0][vertexIndex].x, mesh->mTextureCoords[0][vertexIndex].y);
}
glNormal3fv(&mesh->mNormals[vertexIndex].x);
glVertex3fv(&mesh->mVertices[vertexIndex].x);
}
glEnd();
如何正確訪問模型的頂點位置和法線?