UE4 透明材质深度修复
整理自:1.https://blog.csdn.net/qq_21153225/article/details/80257072
2. https://blog.csdn.net/qq_16756235/article/details/76616408
2020.3.6更新UE4官方出了篇文章,里面有案例和资源,挺不错的,详细深入讲解UE4透明原理和实现:https://www.unrealengine.com/zh-CN/tech-blog/understanding-and-application-of-transparent-materials-in-ue4
UE4开发时,会出现透明材质的物体显示不全的情况(如下图所示),原因是模型背景部分使用延迟渲染,而透明模型物体使用正向渲染,再进行叠加。所以直接使用Translucent模式会出现此错误。如下图所示。
解决方法一:
2019.8.7更新:发现了一个更好的方法,在UE4内容示例工程中的Material_Nodes场景示例
材质球模式、参数、效果如下:(缺点是没有阴影)
解决方法二:使用阿尔发抖动(推荐此方法)
material中,修改translucent为masked,添加Dither Temporal AA 节点,与OpacityMask连接
阴影、效果都较好,推荐此方法。
原视频连接:https://www.youtube.com/watch?v=ieHpTG_P8Q0
解决方法三:深度值剔除
剔除方法1(需要阴影且光照暗时使用):
准备两个相同的模型:
对第一个模型的Mesh进行设置
添加材质,如图所示
将两个模型重叠,效果如下:
剔除方法2(缺点无阴影):
创建材质如图所示:
在材质面板先打开Allow Custom Depth Writes,后设置Opacity Mask Clip Value为0.001.
在场景中设置Mesh属性,只勾选Render Custom Depth Pass
调整材质数值,效果如下
解决方法四:修改材质透明属性(性能开销大,非必要不使用)
效果如下