所以我試圖在橫向模式下渲染我的程序......但是我遇到了一些麻煩的問題。爲了在我的地圖上下移,我必須有一個負偏移量。如果我保持當前正值yOffset爲100,那麼地圖會向下滾動而不是向上滾動。爲什麼是這樣?我不樂意把負面的y座標看到地圖。有什麼辦法可以扭轉這種情況,所以當yOffset爲正值時,地圖會以相反的方向滾動?爲什麼我的y座標反向
float yOffset = 100;
float xOffset = 0;
glOrthof(0 - yOffset,
320 - yOffset,
480 + xOffset,
0 + xOffset,
-10000.0f,10000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(320.0f, 0.0f, 0.0f);
glRotatef(90.0, 0.0, 0.0, 1.0);
static const GLfloat squareVertices[] = {
0.0f, 0.0f,
1024.0f, 0.0f,
0.0f, 1024.0f,
1024.0f, 1024.0f
};
static const GLfloat texCoords[] = {
0.0, 1.0,
1.0, 1.0,
0.0, 0.0,
1.0, 0.0
};
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
glVertexPointer(2, GL_FLOAT, 0, squareVertices);
glBindTexture(GL_TEXTURE_2D, mapTexture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
請不要切換你的y方向。只需使用調整後的座標系。 – 2009-12-22 18:32:21
我也不會推薦它 - 但它確實回答了他的問題。 – luke 2009-12-22 18:37:21
如果你這樣做,並且你面對背面剔除,一定要扭轉你的多邊形點的順序。他們不是逆時針方向,而是順時針方向。 – 2009-12-23 04:45:15