所以我试图在横向模式下渲染我的程序......但是我遇到了一些麻烦的问题。为了在我的地图上下移,我必须有一个负偏移量。如果我保持当前正值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