UE半透明材质问题汇总
ZTurmine
2024年08月05日 11:19

UE中的半透明材质的处理是游戏影视制作中常见的问题,具体排序的需求又根据以下情况分为不同类型:

1. Translucency材质/Mask材质

2. 需要景深效果/不需要景深效果

3. 特效材质/Mesh材质

4. 是否存在半透明之间夹杂不透明物体的情况

.....

诸如此类的排列组合不胜枚举

 

这里主要以UE4.27和UE5.4为基础,我们针对常见的几种情况分别列出问题,以及给出相应的解决方案,供各位参考

 

1. Translucency材质

(1)Translucency材质+不需要参与景深计算+用于Mesh材质

在不设置任何参数的情况下,UE中呈现的默认效果即满足这种需求,这是最简单的一种情况,如下图所示,全部模糊,仅有带有半透明材质的物体是清晰的

 

(2)Translucency材质+不需要参与景深计算+用于特效材质

当前情况下,如果是同样的Translucency材质,但用于特效(Cascade/Niagara),有时会出现这样的问题,如下图

粒子不再清晰,而是模糊掉了,此时需要重新修复下粒子边界

Cascade:

Niagara:

修复后,效果即可恢复正常

(3)如果是Translucency材质,但需要半透明材质参与景深计算,实现这样的需求,可以在项目设置中,取消勾选Separate Translucency(或是命令行输入r.SeparateTranslucency 0),这样整个场景的半透明材质即可实现参与景深计算(模糊)

 

(4)4.27引擎下,如果是Translucency材质,需要场景中某些特定半透明材质参与景深计算,实现这样的需求,可以在材质编辑器中,取消勾选Render After DOF,这样应用该材质的物体即可参与景深计算(模糊)

 

此处5.4的设置及效果略有不同,在UE5.4引擎下,材质编辑器中Translucency Pass设置为Render After DOF和Before After DOF都实现类似的效果(模糊),但如果想让应用此材质的物体清晰,则需要设置为Render After MotionBlur,而这样设置会自动开启Disable Depth Test,出现半透明物体和不透明物体排序出错(半透明之间夹杂不透明物体的情况),慎用

此处附上4.27和5.4引擎下,Translucency材质忽略景深情况下的效果对比图

4.27

 

5.4

 

 

 

2.Mask材质

本质上Mask是一种透明度非0即1的材质,由于DitherTemporalAA(以下简称DTAA)节点可以通过类似噪点抖动的方式实现半透明的效果,经常用此方法制作纱,丝袜等衣物材质,某种意义上可以代替Translucency材质的作用

 

效果如图所示

那么问题来了,正是由于DTAA和密纹理以及ABC的底层计算方式,TAA的降噪采样模式等的共同作用,我们遇到了喜闻乐见的残影(像掉帧一样很不适),这里是另一个需要解决的问题,之后单独出文章进行阐述,这里主要想说以Mask作为半透明排序的解决办法并不是完全之策

 

这里我们只考虑在不修改源码的情况下,对不透明物体的清晰&模糊以及排序问题进行处理,如果修改源码则可以单独渲染半透明Pass,然后做进一步处理,方法会更灵活,更多变。简单来说,针对不用情况,灵活变通,分别对待,在我看来这本就是TA替美术解决问题的基本思路

 

感谢大家支持,如果对您有帮助,赞赏,探讨都欢迎!这也是我继续更新下去的动力。Cheers~