渲染半透明对象时(使用 glBlend),建议按 z 顺序从后到前对对象进行排序。
From opengl 文档:
在应用程序中使用深度缓冲时,您需要注意渲染图元的顺序。需要首先渲染完全不透明的图元,然后按从后到前的顺序渲染部分不透明的图元。如果不按此顺序渲染图元,则通过部分不透明图元可见的图元可能会完全失去深度测试。
因此,每当我在渲染不透明三角形后渲染半透明对象时,如果我相对于“视图方向”从后到前渲染半透明三角形,这是正确的吗?这里从后到前到底是什么意思?我试图理解,如果我有一个经过 mvp 变换的场景对象,我是否需要专门查看世界坐标中的顺序以及相对于相机中心的顺序?
另外,这是否会根据混合类型而变化?
每当渲染半透明三角形时,都必须从后到前绘制它们。这里的从后到前意味着,您必须首先绘制距离屏幕较远的三角形(具有较高的深度值)。
之所以需要这样做,是因为大多数混合方程根据顺序会产生不同的结果。在 OpenGL 中实现的方程通常在从后到前渲染时给出“正确”的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)