OpenGL光栅文本在背景后消失

时间:2009-06-30 23:22:33

标签: opengl text background

我正在绘制四边形作为背景,因此我可以应用渐变。有关我如何执行此操作的详细信息,请参阅类似的问题: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)

它是等效的绘图程序。

  

修改:已解决

     

我正在弹出一个我不应该弹出的矩阵。

1 个答案:

答案 0 :(得分:4)

使用

绘制文本时应禁用Z缓冲区
glDisable(GL_DEPTH_TEST)

并在使用

完成文本后启用它
glEnable(GL_DEPTH_TEST)

Visual Basic中是否有OpenGL?绝对有点......