【发布时间】:2017-09-01 17:48:02
【问题描述】:
我有一个包含不透明和透明对象的场景。我将它们分成 2 组,不透明和透明,然后将不透明的从前到后排序,将透明的从后到前排序。我打开深度缓冲区写入和深度测试并从前到后绘制不透明项目。然后我关闭深度写入保持深度测试开启并从后到前绘制透明项目。
这一切都很好,但据我了解,我可以在没有任何特定顺序的情况下绘制透明项目。我浏览过类似http://www.openglsuperbible.com/2013/08/20/is-order-independent-transparency-really-necessary/ 的文章,看到可以通过更改混合功能来实现与顺序无关的透明度......但我无法真正理解这一点。
我尝试使用那里建议的那些混合方程式,但是对于重叠的透明项目,我得到了错误的组合颜色,除非我使用通常的(GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA)。 这真的像看起来那么简单吗?我只是缺少一些简单的东西吗?
【问题讨论】:
-
这是用于桌面 OpenGL 还是 OpenGL ES?
-
另外,您是否阅读过该文件中关于“订单何时重要”的部分?
标签: opengl opengl-es-2.0 transparency