1

我是 Android 开发新手,目前我正在使用 NDK 玩 OpenGL ES 1。不幸的是,我遇到了坐标系的问题。在官方的例子中,下面的代码是用来获取Opengl Surface的宽高的。

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

现在,当我想设置视口时

glViewport( 0, 0, w ,h );

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

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

4

1 回答 1

2

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

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

OpenGL 不对像素或视口的纵横比做出任何假设——你必须自己组织。

于 2011-04-05T18:19:58.467 回答