我正在使用 OpenGL ES 绘制图像,目前我的视图设置如下:
gl.glClearColor(0.6f, 0.6f, 1f, 1f);
gl.glClearDepthf(1.0f);
gl.glViewport(0, 0, varScreenWidth, varScreenHeight);
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glLoadIdentity();
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glOrthof(0f, width, 0f, height, -10f, 10f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
我想在 Z 轴上滚动我的整个视图,但我不能使用 glRotate()。因为我的对象从右向左移动,当我这样做时,我必须在它们的 Y 位置上添加偏移量。我需要一种像相机胶卷一样在 Z 轴上旋转整个视图的方法,这样物体就会自动在 Y 位置上移动。我尝试通过将 (ScreenWidth - ObjPositionX) 和 sin(Zroll) 相乘来添加 y 偏移量,但这有一些视觉问题,对象不能完美地保持在它们的位置。感谢您的任何帮助...
- 编辑
好的,有人希望我更清楚。所以函数 glRotate 将我的对象滚动到它们的原点。但是我需要一种在 Z 轴上滚动整个视图的方法,因为它的起点是视图中心而不是单个对象。因此,如果对象位于中心的左侧,它将被看得更高。如果物体在右侧,它会显得更低。