这已经被问过很多次了,我已经在互联网上阅读了大量关于它的帖子和论坛,但我就是无法让一个物体围绕它自己的轴旋转。我有几个这样绘制的对象:
gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glLoadIdentity();
.....
gl.glPushMatrix();
gl.glRotatef(angle, 0.0f, 1.0f, 0.0f);
gl.glTranslatef(0.0f, 0.0f, 0.0f);
texture.bind(gl);
gl.glTexCoordPointer(2, GL2.GL_FLOAT, 0, textureRLt);
gl.glNormalPointer(GL2.GL_FLOAT, 0, normalRLt);
gl.glVertexPointer(3, GL2.GL_FLOAT, 0, vertexRLt);
gl.glDrawElements(GL2.GL_TRIANGLES, countI, GL2.GL_UNSIGNED_SHORT, indexRLt);
gl.glPopMatrix();
这是正确绘制的,应用了所有纹理和法线。
我知道 OpenGL 反向执行命令,所以这就是 glRotatef 是第一个的原因。我也知道所有的旋转都围绕原点,所以我需要将对象转换到该原点(不是我认为我必须这样做,因为“笔”已经在原点,因为我在绘制每个对象之前保存了矩阵和之后弹出它)。是glDrawElements的东西吗?似乎有些不对劲。
任何帮助将不胜感激。:)
编辑:我可以看到对象如何围绕主 x 轴旋转,但我希望它们围绕其本地 x 轴旋转。