1
我爲我的iphone遊戲使用了opengl ES。要縮放和旋轉我的對象,我這樣做: glScalef(scaleX,scaleY,1); glRotatef(rotationZ,0.0f,0.0f,1.0f)如何縮放和旋轉opengl中的紋理?
我使用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);
我試着給出正交投影的左右兩側作爲-aspectR和aspectR,但我仍然看到偏斜。我想通過防止偏斜的唯一方法是將矩形圖像視爲正方形,然後將其縮放爲正方形。 – user2238284 2013-04-08 18:38:31
如果您畫一個正方形並且看不到一個正方形,或者如果您繪製一個矩形並且看不到一個矩形,那麼您通過不首先設置合適的投影矩陣而使您的生活變得更加困難。您不希望使用模型視圖矩陣來彌補配置不良的投影矩陣。 – johnbakers 2013-04-08 23:41:47
另外,請確保您正確設置了您的視口,因爲這也可能導致對象無法以正確的形狀出現 – johnbakers 2013-04-09 01:02:01