我正在渲染一个可能有多个相交透明对象的场景。这使得排序和拉回前面的标准方法存在问题(如果三角形相交,即使对三角形进行排序也不起作用)。所以我使用 GLSL 片段着色器实现了深度剥离来进行第二次深度测试。效果很好。
现在我希望能够使用着色器应用某些效果。场景中的一个对象是注射器,我想应用玻璃效果。如果我从前向后绘制,这将很容易 - 只需在绘制注射器时启动着色器,因为它后面的所有内容都已经在帧缓冲区中。但是,当使用深度剥离时,这种方法将不起作用。
所以我的问题是:
- 使用深度剥离时如何将着色器效果应用于场景中的单个对象?
- 如何将效果着色器与深度剥离着色器结合使用(假设它们需要同时运行)?
我应该注意,我在使用着色器方面还很陌生,因此感谢代码示例!