在渲染半透明材质时会出现半透明物体重叠的现象,用深度剔除的方式可以解决。
很多教程有详细讲解,可以参考附录。
主要是在此基础上增添一个render in main pass 和Custom depth pass 勾选时候出现的显示错误。


原理
利用CustomDepth 进行半透明物体深度写入,将Custom Depth 和Pixel Depth 相比较,如果Custom Depth 小于Pixel Depth,相减以后为负数剔除,便可解决重叠问题。
优化方法:可以参考Deep Peeling 的方式,在每一层透明物体上做混合。或者根据相减之后得到的厚度信息做颜色的变化。
在UE4中实现Depth Peeling - 知乎 (zhihu.com)
操作
首先复制一个模型,将复制出来的模型进行以下设置:
1.关闭Render in Main Pass
2.关闭Depth Pass
3.开启Custom Depth


4.在要剔除的半透明物体的材质里输入以下节点:


5.重叠模型
可以将Custom Depth 偏移一个单位距离,这样防止PixelDepth 和Custom Depth 相等时候剔除表面。
bug解决:
当出现黑色时:
是因为原本的第二个物体(渲染深度的不透明物体)勾选了render in Depth Pass
解决方法:取消勾选render in Depth Pass,只需要将custom Depth pass勾选


附录
参考文章:
UE中的各种depth的解释及应用 | 不思議な箱 (fushigi-hako.site)
UE4里的自定义深度功能 - Bill Yuan - 博客园
技术博客 | UE4透明材质的理解和应用
版权声明:本文为weixin_46954788原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。