1

私は Android の開発が初めてで、現在、NDK を使用して OpenGL ES 1 で遊んでいます。残念ながら、座標系に問題がありました。公式の例では、次のコードを使用して Opengl サーフェスの幅と高さを取得しています。

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

今、ビューポートをセットアップしたいとき

glViewport( 0, 0, w ,h );

四角形をレンダリングすると、四角形は四角形ではなく、変形した長方形で中央に配置されます。

ビューポートと座標系を正しく設定するにはどうすればよいですか?

4

1 に答える 1

2

ビューポートが正しく設定されています。射影行列を調整する必要があります(または、1.xではなくES 2.0を使用している場合は同等です)。例えば

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

OpenGL は、ピクセルまたはビューポートの縦横比について何の想定もしていません。自分で整理する必要があります。

于 2011-04-05T18:19:58.467 に答える