OpenGL(c ++、OS:windows)で平面(GL_QUADSを使用)を描画して、画面の中央に揃える必要があります。
つまり、ウィンドウのサイズを変更しても、原点は平面の中心になります。
ビューポートの座標とサイズを使用する必要があることはわかっていますが、それらの使用方法を構成できません。
また、私はを使用してgluPerspective
います。
原点はウィンドウサイズとは関係ありません。ウィンドウのサイズを変更するときは、ウィンドウのアスペクト比(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();
これにより、ユニットサイズのクワッドが画面の中央に配置されます。
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レンダリング状態が使用されることに注意してください。ほとんどの場合、これをオフにすることをお勧めします。