我正在使用opengl ES进行我的iphone游戏。要缩放和旋转我的对象,我这样做: glScalef(scaleX,scaleY,1); glRotatef(rotationZ,0.0f,0.0f,1.0f)
我正在使用带有orthof(-1,1,-1,1,-1,1)的正射屏幕。我的问题是当我旋转物体时,图像会变形。我理解为什么会发生这种情况,因为我正在缩放到屏幕大小,所以旋转它会改变图像大小。 我该怎么做才能防止它歪斜。
glViewport(0,0, (GLint)screenWidth, (GLint)screenHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-1,1,-1,1,-1,1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
glTranslatef(positionX, positionY,0.0f);
glScalef(scaleX , scaleY ,1);
glRotatef(rotationZ, 0.0f, 0.0f, 1.0f);
答案 0 :(得分:0)
使用与屏幕宽高比匹配的正投影,而不是仅发送一堆投影。除非你有一个方形屏幕,你的左/右不应该与你的上/下相同,否则你会看到歪斜。