【发布时间】:2012-04-26 18:44:02
【问题描述】:
在特定范围内进行深度测试的最常见/最简单/最快的方法是什么?
pass if (currentDepth-offset < newDepth && newDepth < currentDepth)
- currentDepth := 深度缓冲区中的值
- offset := 常量(在编译时知道并且所有片段都相同)
- newDepth := 片段的深度
理想情况下,函数 glDepthFunc(...) 会更灵活。
【问题讨论】:
-
您问的是桌面 OpenGL 还是 OpenGL ES?它们不一样,你知道的。
-
我使用的是 OpenGL 4.2。话虽如此,我遵循 OpenGL ES 2.0 的做事方式。所以回答你的问题:如果它可以用 OpenGL ES 2.0 完成,那就太好了,但如果 OpenGL 4.2 有更简单/更快的方法,我很乐意调整我的编码风格。
-
“currentDepth-offset”是一个常数值吗?它是某个常数 + 深度(在窗口空间中),它是一个常数 + 相机/眼睛空间中的深度,还是某个任意值?
-
"currentDepth-offset" 不是常数。我有“常数+深度(在窗口空间中)”的情况。
标签: opengl depth-buffer depth-testing