にOpenGLくの、めんどくさいんだよなように、シンプルな背景quad?
-
19-08-2019 - |
質問
ということかしたい描くプquadのようになります:
glBegin(GL_QUADS);
glVertex2f(-1.0,-1.0);
glVertex2f(1.0,-1.0);
glVertex2f(1.0, 1.0);
glVertex2f(-1.0, 1.0);
glEnd();
があるので、このようなことがその背後には3Dオブジェや、充填までの全体の表示順の設定ができます。私のカメラの動きをマウスで、このクアッドも表示され固定カメラ動作します。の目的であるが、簡単な背景のもの。
私は一部クレイジ変換に基づく眼の位置に回転、より簡単な方法を用いglMatrixMode()?
解決
そのようにしたいことは何だと2D HUD簡単なゲームには、背景と永続します。いないものになっただけで比較的です。したいことは変更に投影行列を正投影を描画するおquadを切り替えも見ました。これまでのマトリクススタックでは完全に独立したカメラです。
では、最初は:
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
int w = glutGet(GLUT_WINDOW_WIDTH);
int h = glutGet(GLUT_WINDOW_HEIGHT);
gluOrtho2D(0, w, h, 0);
この押しの新しいマトリクス投影面に投影スタックを用いた過剰のためにこのプロジェクトでは翻訳するだけで通常のOpenGL).その人にとってウィンドウ幅と高さ、および利用gluOrtho2Dか正。
次:
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
// Draw your quad here in screen coordinates
ここだけ押し、新しいクリーンマトリクスのmodelview.は必要ないかもしれませんが、よろしくお願いします。
最後に:
glPopMatrix() // Pops the matrix that we used to draw the quad
glMatrixMode(GL_PROJECTION);
glPopMatrix(); // Pops our orthographic projection matrix, which restores the old one
glMatrixMode(GL_MODELVIEW); // Puts us back into GL_MODELVIEW since this is probably what you want
この助けになっていますよ。まだ、必要な利用目の位置にします。これは主として利用する場合は、新しい正見通しにぴっ窓、これは関係ありません。この場合には入れないでおquadのただし、この後に実行されその他の描きます。
編集:Off深度試験および清算には深度バッファがることが可能となっており、そBoojumと理解することが可能である。
他のヒント
各フレームで使用する手順は次のとおりです。
-
glClear(GL_DEPTH_BUFFER_BIT);
で深度バッファをクリアします
-
glDisable(GL_DEPTH_TEST);
で深さテストをオフにする
- 固定の正投影で
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
を使用して読み込みます
- クワッドを記述したとおりに描画します。
- 深度テストを再び有効にします。
- 通常の透視投影を読み込み、ビューの残りを描画します。
バックグラウンドに配置するだけで構いません。必要に応じてボックスに入れてください。すべてのオブジェクトの背後に配置するには、最初に描画する必要があります。