Android上的OpenGL ES坐标系统?

时间:2011-04-05 18:13:08

标签: android opengl-es eclipse-cdt android-ndk native-code

我是Android新手,我正在使用NDK与OpenGL ES 1进行游戏。不幸的是,我遇到了Coordinate系统的问题。在官方示例中,以下代码用于获取Opengl曲面的宽度和高度。

eglQuerySurface(display, surface, EGL_WIDTH, &w);
eglQuerySurface(display, surface, EGL_HEIGHT, &h);

现在我想用

设置视口
glViewport( 0, 0, w ,h );

我渲染一个四边形,然后四边形不是一个四边形,它是一个变形的矩形并居中。

如何正确设置视口和坐标系?

1 个答案:

答案 0 :(得分:2)

您正确设置了视口;您需要调整投影矩阵(或等效,如果您使用的是ES 2.0而不是1.x)。 E.g。

glMatrixMode(GL_PROJECTION);
glFrustumf(-(float)w/h, (float)w/h, -1, 1, 1, 500);

OpenGL不会对像素或视口的宽高比做出任何假设 - 您必须自己组织。