0

グラデーションを適用できるように、背景として四角形を描画しています。私がこれをどのように行っているかの詳細は、同様の質問にあります: https ://stackoverflow.com/questions/1064840

2Dラスターテキスト(画面テキスト)は、グラデーションの背景なしで期待どおりに描画されます。ただし、グラデーションの背景を描画すると、テキストが消えます(背景のクワッドの後ろを想定しています)。

何か案は ?

呼び出してフォントを作成しています

wglUseFontBitmaps HDC, 32, 96, FontID

テキストはを使用して描画されます

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

私の3Dテキストはすべての場合に使用して正常に描画されていることに注意してください

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)

そしてそれは同等の描画ルーチンです。

編集:解決済み

ポップするべきではなかったマトリックスをポップしていました。

4

1 に答える 1

4

でテキストを描画するときは、Zバッファを無効にする必要があります

glDisable(GL_DEPTH_TEST)

でテキストを使い終わったら、それを有効にします

glEnable(GL_DEPTH_TEST)

そのOpenGLはVisualBasic内にありますか?絶対に恐ろしい...

于 2009-06-30T23:38:09.267 に答える