【发布时间】:2011-07-03 16:23:09
【问题描述】:
我已经检查了有关此主题的其他问题,但他们的解决方案对我不起作用。我有点不知所措。我的 GLEventListener 实现中有以下函数。
public void init(GLAutoDrawable gl) {
GL2 gl2 = gl.getGL().getGL2();
gl2.glMatrixMode(GL2.GL_PROJECTION);
gl2.glLoadIdentity();
GLU glu = GLU.createGLU(gl2);
glu.gluPerspective(45.0f, 1, 0.1f,100.0f);
gl2.glMatrixMode(GL2.GL_MODELVIEW);
gl2.glLoadIdentity();
gl2.glViewport(0, 0, width, height);
gl2.glEnable(GL.GL_DEPTH_TEST);
}
private void render(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
GLU glu = GLU.createGLU(gl);
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glLoadIdentity();
glu.gluLookAt(5, 0, 20,
0, 30, 0,
0, 1, 0);
gl2.glPushMatrix();
gl2.glClear( GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT );
gl2.glLoadIdentity();
gl2.glTranslatef(x, y, z);
gl2.glBegin( GL2.GL_QUADS );
gl2.glColor3f( 1, 0, 0 );
//24 glVertex3f calls & some colour changes go here.
gl2.glVertex3f(...)
gl2.glEnd();
gl2.glPopMatrix();
gl.glFlush();
}
无论我将什么值放入 gluLookAt() 矩阵,视图都不会改变。我最终还是看到了立方体的同一张脸。
有什么想法吗?
谢谢
【问题讨论】:
-
您是否使用着色器来绘制立方体?
-
我是新手,不知道这意味着什么。立方体只有 24 个 glVertex3f() 调用和 glBegin(quads) 和 glEnd() 之间的一些颜色变化。我将编辑我的帖子以显示更多我的绘图代码。
-
查看下面的答案 - 我认为您的绘图代码中有错误。