0

OpenGL(c ++、OS:windows)で平面(GL_QUADSを使用)を描画して、画面の中央に揃える必要があります。

つまり、ウィンドウのサイズを変更しても、原点は平面の中心になります。

ビューポートの座標とサイズを使用する必要があることはわかっていますが、それらの使用方法を構成できません。

また、私はを使用してgluPerspectiveいます。

4

2 に答える 2

2

原点はウィンドウサイズとは関係ありません。ウィンドウのサイズを変更するときは、ウィンドウのアスペクト比(window.width / window.height)を再計算し、新しいアスペクトを使用してgluPerspectiveをもう一度呼び出して投影行列をリセットします。

この後、モデルビューマトリックスにglLoadIdentity()を挿入する限り、を使用して画面の中央に四角形を描画できるはずです。

glBegin(GL_QUADS);
glVertex3f(-.5f,.5f,-1);
glVertex3f(-.5f,-.5f,-1);
glVertex3f(.5f,-.5f,-1);
glVertex3f(.5f,.5f,-1);
glEnd();

これにより、ユニットサイズのクワッドが画面の中央に配置されます。

于 2013-02-20T15:18:01.533 に答える
1
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

glBegin(GL_QUADS);
glVertex3f(-.5f,.5f,-1);
glVertex3f(-.5f,-.5f,-1);
glVertex3f(.5f,-.5f,-1);
glVertex3f(.5f,.5f,-1);
glEnd();

glPopMatrix();

これでも、深度テスト、シェーディングなど、すべての3Dレンダリング状態が使用されることに注意してください。ほとんどの場合、これをオフにすることをお勧めします。

于 2013-02-21T06:24:36.417 に答える