我成功加载了100000面的网格。它是斯坦福龙模型。它渲染得很完美,但旋转时我可以看到三角形。
例如。我看着龙面朝上,按下键盘上的右箭头将角度增加5度,并不总是,但大多数时候,我可以看到模型的三角形(如图所示)处于状态之间。如果我使用specialFunc使旋转不停止,它看起来像星际迷航的转运效果,实际上看起来很酷,但是当你试图制作一个游戏引擎......它不好
这就是绘制功能:
void draw(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0 , 5, -40 , 0 , 5 , 0 , 0, 1 ,0);
loadTexture l;
GLuint image;
l.loadFile("wall.jpg",image);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-40, -40, 25);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-40, 40, 25);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(40, 40, 25);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(40, -40, 25);
glEnd();
glDeleteTextures(1, &image);
l.loadFile("floor.jpg",image);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-40, 0, -45);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-40, 0, 45);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(40, 0, 45);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(40, -0, -45);
glEnd();
glDeleteTextures(1, &image);
glMaterialf (GL_FRONT, GL_SHININESS, 90.0);
glRotatef(angle , 0, 1,0);
glPushMatrix();
glCallList(b);
glPopMatrix();
/*
glTranslatef(-5, 0, 0);
glRotatef(45, 0, 1,0);
glPushMatrix();
glCallList(b);
glPopMatrix();
*/
// swap buffers to display, since we're double buffered.
glFlush();
glutSwapBuffers();
}
和我做旋转的功能
void animate(int key, int w, int h){
switch (key){
case GLUT_KEY_RIGHT:
angle = angle + 5;
break;
default:
break;
}
glutPostRedisplay();
}
我现在正在google搜索近一周,我相信我没有做错任何事,但由于希腊语是我的主要语言,我可能会使用一些错误的关键字。