gpt4 book ai didi

c++ - OpenGL 中的绘制顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:11 25 4
gpt4 key购买 nike

我正在渲染一个包含一些位图文本的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com