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)

是 Visual Basic 中的 OpenGL 吗?绝对丑陋...

于 2009-06-30T23:38:09.267 回答