我有一個我想旋轉的立方體。我也有一個光源GL_LIGHT0。我想旋轉立方體並將光源固定在其位置上。但光源與我的立方體一起旋轉。我使用OpenGL ES 1.1 下面是我的代碼片段,使我的問題更清晰。如何旋轉物體並保持固定? (OpenGL)
GLfloat glfarr[] = {...} //cube points
GLubyte glubFaces[] = {...}
Vertex3D normals[] = {...} //normals to surfaces
const GLfloat light0Position[] = {0.0, 0.0, 3.0, 0.0};
glLightfv(GL_LIGHT0, GL_POSITION, light0Position);
glEnable(GL_LIGHT0);
for(i = 0; i < 8000; ++i)
{
if (g_bDemoDone) break;
glLoadIdentity();
glTranslatef(0.0,0.0, -12);
glRotatef(rot, 0.0, 1.0,1.0);
rot += 0.8;
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, normals);
glVertexPointer(3, GL_FLOAT, 0, glfarr);
glDrawElements(GL_TRIANGLES, 3*12, GL_UNSIGNED_BYTE, glubFaces);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
eglSwapBuffers(eglDisplay, eglSurface);
}
謝謝。
謝謝。但是:我們不能使用GLUT,因爲我們使用的是OpenGL ES(嵌入式)。沒有另一種簡單的方法來旋轉立方體(不是視圖矩陣)嗎? – snakile 2010-08-18 18:51:29
1.直接旋轉頂點是一個不好的建議。 2. OpenGL沒有**視圖**矩陣。它有** modelview **矩陣。這是世界*的觀點。 – SigTerm 2010-08-18 18:52:40
@SigTerm好吧,那麼如何旋轉立方體而不直接旋轉頂點? – snakile 2010-08-18 18:56:03