【发布时间】:2012-01-15 19:26:08
【问题描述】:
对于一个带有 3d 模型的项目,我得到了一个 Autocad 文件。我在 3ds max 中导入文件并将其导出为 .obj 文件。到现在为止还挺好。 但是当我将这个文件加载到我的 Jogl 应用程序中时,我遇到了一个关于颜色材料的奇怪问题。更准确地说,请看下面的图片。第一个是我的应用程序的屏幕截图,第二个是加载到 3D 操作软件中的完全相同文件的屏幕截图。
它的样子:
它应该是什么样子:
为了清楚起见,在我的代码中,我使用了三角形,每个三角形都有顶点、法线、纹理坐标。所以问题是,缺少什么?
gl.glNewList(1, gl.GL_COMPILE);
for (int i = 0; i < len; i=i+3) {
gl.glBegin(GL.GL_TRIANGLES);
gl.glTexCoord2f(body.body_textCoords[i][0], body.body_textCoords[i][1]);
gl.glNormal3f(body.body_normal[i][0], body.body_normal[i][1], body.body_normal[i][2]);
gl.glVertex3f(body.body_vertex[i][0], body.body_vertex[i][1], body.body_vertex[i][2]);
gl.glTexCoord2f(body.body_textCoords[i+1][0], body.body_textCoords[i+1][1]);
gl.glNormal3f(body.body_normal[i+1][0], body.body_normal[i+1][1], body.body_normal[i+1][2]);
gl.glVertex3f(body.body_vertex[i+1][0], body.body_vertex[i+1][1], body.body_vertex[i+1][2]);
gl.glTexCoord2f(body.body_textCoords[i+2][0], body.body_textCoords[i+2][1]);
gl.glNormal3f(body.body_normal[i+2][0], body.body_normal[i+2][1], body.body_normal[i+2][2]);
gl.glVertex3f(body.body_vertex[i+2][0], body.body_vertex[i+2][1], body.body_vertex[i+2][2]);
gl.glEnd();
}
gl.glEndList();
【问题讨论】: