1
我目前正在研究讀取3D obj文件的軟件的打印循環。 我已經將我的obj文件保存在變量tie
中。這個變量包含一個OpenGL列表。我的目標是通過使用鍵盤來移動讀取對象。鍵盤閱讀正確實施(我可以通過日誌看到)。意外的gluLookAt在OpenGL上繪製點的行爲
問題
當我編譯下面的代碼迴路中,gluLookAt
exucute正確,我能夠通過改變參數的值,在我的對象移動。
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
light();
gluPerspective (60.0, 250/(float)250, 0.1, 500.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(eyeX,eyeY,eyeZ,eyeX+directionX,eyeY+directionY,eyeZ+directionZ,upX,upY,upZ);
glPushMatrix();
glRotated(45,0,0,1);
glTranslated(0,0,50);
glBindTexture(GL_TEXTURE_2D,texture1);
//glCallList(xwing); //ICI
glEnd();
glPopMatrix();
glColor3d(1,1,1);
glDisable(GL_LIGHTING);
glBindTexture(GL_TEXTURE_2D,texture2);
GLUquadric* params = gluNewQuadric();
gluQuadricDrawStyle(params,GLU_FILL);
gluQuadricTexture(params,GL_TRUE);
gluSphere(params,100,20,20);
gluDeleteQuadric(params);
glEnable(GL_LIGHTING);
glBindTexture(GL_TEXTURE_2D,texture1);
glCallList(tie); //ICI
glPointSize(5.0);
glBegin(GL_POINTS);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(-1.0f,0.0f,0.0f);
glEnd();
SwapBuffers(hDC);
//} //else
Sleep(1);
但是,當我評論這4條線路:
glBegin(GL_POINTS);
glColor3f(1.0f,0.0f,0.0f);
glVertex3f(-1.0f,0.0f,0.0f);
glEnd();
我的對象不動吧。彷彿gluLookAt
沒有成功執行。 你有什麼想法爲什麼會發生這種情況。我在代碼中忘記了什麼嗎?
非常感謝。事實上,在我的列表創建函數中,我首先使用了「glEndList」,然後是「glEnd」。因此'glEnd'在我的循環中沒有被調用。謝謝 –
@GuillaumeMILAN不客氣。 – Rabbid76