2009-06-30 5 views
0

Ich zeichne ein Quad als Hintergrund, so dass ich einen Farbverlauf anwenden kann. Details dazu, wie ich das mache, sind in einer ähnlichen Frage zu finden: https://stackoverflow.com/questions/1064840OpenGL Rastertext verschwindet hinter Hintergrund

Der 2D-Raster-Text (Bildschirmtext) wird wie erwartet ohne den Hintergrund mit Farbverlauf gezeichnet. Wenn der Farbverlaufshintergrund jedoch gezeichnet wird, verschwindet der Text (ich nehme an, dass er hinter dem Hintergrundviereck liegt).

¿Irgendwelche Ideen?

ich die Schrift bin die Schaffung von

wglUseFontBitmaps HDC, 32, 96, FontID 

Aufruf und der Text gezeichnet wird

glRasterPos3d X, Y, Z 
glListBase FontID - 32 

glPushAttribute GL_LIST_BIT 

Dim B() As Byte 
B = StrConv(TextString, vbFromUnicode) 
glCallLists Len(TextString), GL_UNSIGNED_BYTE, B(0) 

glPopAttribute GL_LIST_BIT 

Beachten Sie, dass meine 3D-Text erfolgreich in allen Fällen gezogen wird

wglUseFontOutlines HDC, 0, 255, FontID, 0, 0, WGL_FONT_LINES, GMF(0) 
    or 
wglUseFontOutlines HDC, 0, 255, FontID, 0, 0, WGL_FONT_POLYGONS, GMF(0) 
mit

und es entspricht Zeichnungsroutinen.

Edit: Gelöst

ich eine Matrix knallen sollte ich knallen wurden nicht.

Antwort

4

Sie sollten den Z-Puffer deaktivieren, wenn Sie den Text mit

glDisable(GL_DEPTH_TEST) 

Zeichnung und ermöglichen es, nachdem Sie mit dem Text mit

glEnable(GL_DEPTH_TEST) 

fertig sind ist, dass OpenGL in Visual Basic? Absolut hässlich ...

+0

Durch das Deaktivieren des Z-Buffers wurde das Problem nicht behoben. Und ja, OpenGL mit VB6 ist absolut hässlich. – JRS

+0

Ohne Z-Puffer wird nichts hinter irgendetwas stehen. also ist es der Text, den du zuletzt zeichnest, du solltest es auf jeden Fall sehen. Könnten Sie genauer beschreiben, wie es nicht funktioniert? – shoosh

+0

In meinem ursprünglichen Versuch habe ich glDisable und glEnable umgekehrt. Nachdem ich Ihrem Vorschlag nun korrekt gefolgt bin, erscheint der Text über dem Hintergrund. Dies ist jedoch keine optimale Lösung, da der Text immer angezeigt wird, auch wenn er sich hinter einem (nicht im Hintergrund befindlichen) Objekt in meiner Szene befindet. – JRS