我正在渲染一个包含一些位图文本的 OpenGL 场景。据我所知,我画东西的顺序将决定哪些项目在最上面。
但是,我的位图文本即使是最后绘制的,也不在最上面!
例如,我正在画画:
1) 背景
2) 按钮
3) 文本
都在相同的 z 深度。按钮位于背景之上,但文本是不可见的。如果我更改文本的 z 深度,我可以看到它,但我会遇到其他问题。
我正在使用 Nehe 教程中的位图文本方法。
如何在不改变 z 深度的情况下使文本可见?
最佳答案
您可以通过
简单地禁用 z-test glDisable (GL_DEPTH_TEST); // or something related..
如果您这样做,您的文本基元的 Z 将被忽略。基元的绘制顺序与调用 gl 函数的顺序相同。
另一种方法是通过 glPolygonOffset 设置一些恒定的 z 偏移(不推荐)或将深度比较模式设置为类似 GL_LESS_EQUAL 的模式(EQUAL 是重要的模式)。这可确保以相同深度绘制的图元呈现在彼此之上。
希望对您有所帮助。
关于c++ - OpenGL 中的绘制顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385629/