我是Android新手,我正在使用NDK与OpenGL ES 1进行游戏。不幸的是,我遇到了Coordinate系统的问题。在官方示例中,以下代码用于获取Opengl曲面的宽度和高度。
eglQuerySurface(display, surface, EGL_WIDTH, &w);
eglQuerySurface(display, surface, EGL_HEIGHT, &h);
现在我想用
设置视口glViewport( 0, 0, w ,h );
我渲染一个四边形,然后四边形不是一个四边形,它是一个变形的矩形并居中。
如何正确设置视口和坐标系?
答案 0 :(得分:2)
您正确设置了视口;您需要调整投影矩阵(或等效,如果您使用的是ES 2.0而不是1.x)。 E.g。
glMatrixMode(GL_PROJECTION);
glFrustumf(-(float)w/h, (float)w/h, -1, 1, 1, 500);
OpenGL不会对像素或视口的宽高比做出任何假设 - 您必须自己组织。