gpt4 book ai didi

c - 曾几何时,> 比 < ... 快,什么?

转载 作者:太空狗 更新时间:2023-10-29 16:13:39 25 4
gpt4 key购买 nike

我正在阅读 an awesome OpenGL tutorial .真的很棒,相信我。我目前的主题是 Z-buffer。除了解释它的全部内容外,作者还提到我们可以执行自定义深度测试,例如 GL_LESS、GL_ALWAYS 等。他还解释了深度值的实际含义(哪个是顶部,哪个不是)也可以是定制。到目前为止我明白了。然后作者说了一些令人难以置信的话:

The range zNear can be greater than the range zFar; if it is, then thewindow-space values will be reversed, in terms of what constitutesclosest or farthest from the viewer.

Earlier, it was said that the window-space Z value of 0 is closest and1 is farthest. However, if our clip-space Z values were negated, thedepth of 1 would be closest to the view and the depth of 0 would befarthest. Yet, if we flip the direction of the depth test (GL_LESS toGL_GREATER, etc), we get the exact same result. So it's really just aconvention. Indeed, flipping the sign of Z and the depth test was oncea vital performance optimization for many games.

如果我理解正确,性能方面,翻转 Z 的符号和深度测试只不过是改变 <> 的比较比较。所以,如果我理解正确并且作者没有撒谎或编造事情,那么更改 <>曾经是许多游戏的重要优化

作者是在编造事情吗,我是不是误会了什么,还是确实有一次<> 慢(非常重要,正如作者所说) ?

感谢您澄清这个非常奇怪的问题!

免责声明:我完全知道算法复杂性是优化的主要来源。此外,我怀疑现在它肯定不会有任何区别,我并不是要求它优化任何东西。我只是非常、痛苦,也许是非常好奇。

最佳答案

If I understand correctly, performance-wise, flipping the sign of Z and the depth test is nothing but changing a < comparison to a > comparison. So, if I understand correctly and the author isn't lying or making things up, then changing < to > used to be a vital optimization for many games.

我没有解释得特别好,因为它并不重要。我只是觉得添加一些有趣的琐事。我不打算专门讨论算法。

然而,上下文是关键。我从来没有说过 < 比较比 > 比较快。请记住:我们谈论的是图形硬件深度测试,而不是您的 CPU。不是operator< .

我指的是一个特定的旧优化,其中您将使用一个框架 GL_LESS范围为 [0, 0.5]。下一帧,您使用 GL_GREATER 渲染范围为 [1.0, 0.5]。你来回走动,字面意思是“翻转 Z 的符号和深度测试”每一帧。

这会损失一位深度精度,但您不必清除深度缓冲区,这在以前是一个相当慢的操作。由于现在深度清理不仅免费,而且实际上比这种技术更快,因此人们不再这样做了。

关于c - 曾几何时,> 比 < ... 快,什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338858/

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