我在我的 2D Android 游戏中以这种方式设置了我的 GL10 对象:
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0, width, height, 0, -1f, 1f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}
当我以这种方式缩放我的 GL10 对象时(例如):
gl.glScalef(50, 50, 0);
然后调用翻译转换,例如:
gl.glTranslatef(1, 1, 0f);
导致 50 像素而不是 1 像素的平移变换。旋转变换也是如此。
如何在不知道以前的转换的情况下进行翻译后转换?可能吗?