2012-03-15 20 views
1

画面の左下にデバッグ情報(FPS、カメラの位置、回転など)を印刷しようとしています。 glTranslate()glRasterPos2f()を使用してうまく動作するように設定しましたが、ウィンドウのサイズを変更しようとすると、テキストがコーナーに完全に残りません。また、ウィンドウの伸縮量によっては画面の中央に表示されたり、途切れることがあります。 glPrint()を使用して、左から10px、右から10pxのテキストを印刷する方法はありますか?OpenGL:glPrint()の位置を画面に合わせて設定する

GLvoid glPrint(const char *fmt, ...){     // Custom GL "Print" Routine 
    char  text[256];        // Holds Our String 
    va_list  ap;          // Pointer To List Of Arguments 
    va_start(ap, fmt);         // Parses The String For Variables 
     vsprintf(text, fmt, ap);      // And Converts Symbols To Actual Numbers 
    va_end(ap);           // Results Are Stored In Text 

    glPushAttrib(GL_LIST_BIT);       // Pushes The Display List Bits 
    glListBase(base - 32);        // Sets The Base Character to 32 
    glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text 
    glPopAttrib();          // Pops The Display List Bits 
} 

void GLOUT(float xLocation, float yLocation, float colorRed, float colorGreen, float colorBlue){ 
    glDisable(GL_TEXTURE_2D); 
    glLoadIdentity(); 
    glTranslatef(0,0,-.002); 
    glColor3f(colorRed,colorGreen,colorBlue); 
    glRasterPos2f(xLocation/10000, yLocation/10000); 
    glPopMatrix(); 
} 

enter image description here

答えて

2

レンダリングのHUDまたは他のオーバーレイのものとトリック、彼らのためにビューポートと投影のより便利な組み合わせに切り替えることである。ここでは

は、私が使用していたコードです。

OpenGLで特定の1つの投影に固執する必要はありません。ウィンドウのサイズ変更ハンドラでビューポートと投影を設定するのですか?示唆:そのコードを描画関数に移動し、(うまくいけば)そのようなエピファニーがあります。

関連する問題