2012-04-21 11 views
1

3DアプリケーションにHUDを実装しようとしていますが、私が達成したのは、ある位置にテクスチャがある矩形があることです。問題は、カメラを回転させたり、カメラを動かすたびに、テクスチャのスケールや動きは非常に奇妙に見えるということです。なぜそれが起こるかもしれない何かのアイデア?2D HUDのテクスチャが不一致

これは私がHUDを追加するために何をすべきかです:

glDisable(GL_DEPTH_TEST); 
glClear(GL_DEPTH_BUFFER_BIT); 
glMatrixMode(GL_PROJECTION); 
glPushMatrix(); 
glLoadIdentity(); 
gluOrtho2D(0, 1, 0, 1); 
glMatrixMode(GL_MODELVIEW); 
glPushMatrix(); 
glLoadIdentity(); 



     glEnable (GL_TEXTURE_2D); 
     glBindTexture (GL_TEXTURE_2D,4); 
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
     glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); 
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 


     glBegin(GL_QUADS); 
      glColor3f(1.0f, 1.0f, 0.0f); 

      glTexCoord2f(0,0); 
      glVertex2f(0.0f, 0.0f); 
      glTexCoord2f(1,0); 
      glVertex2f(0.4f, 0.0f); 
      glTexCoord2f(1,1); 
      glVertex2f(0.4f, 0.4f); 
      glTexCoord2f(0,1); 
      glVertex2f(0.0f,0.4f); 
     glEnd(); 

    glPopMatrix(); 


glMatrixMode(GL_PROJECTION); 
glPopMatrix(); 
glEnable(GL_DEPTH_TEST); 
glEnable(GL_LIGHTING); 
+0

HUDを2Dまたは3Dで描画しようとしていますか?あなたが記述した問題のスクリーンショットを投稿できますか? – Bojangles

+0

これは2d –

+0

でなければなりません。Orthographic projectionで描画し、ピクセル値を使用していますか? – Bojangles

答えて

0

あなたは、コードが別のコール、glMatrixMode(GL_MODELVIEW)を欠いています。 glPopMatrix()を2回目に呼び出した後に表示されます。

これはおそらくあなたのコードでは低いですが、何が起こっているかの説明から、行列の問題のように聞こえます。