透明度材质乱序问题一直是半透明效果时遇到的比较多的问题,用多pass方案只能说一定程度上解决,当遇到多半透明物体穿插等情况时,仍然不能完美解决。
双pass方案Unity用的比较多,因为Unity支持多个pass绘制。在UE中我们可以以复制多个物体赋予不同材质球的方式模拟多pass绘制,一个材质绘制深度,一个材质绘制半透明即可。
最终效果如下:
1.操作流程
1.1 首先以UE4小白人为例,复制一份加上only_Depth后缀:
1.2 新建一个材质,命名为DepthMat用来绘制深度,勾选Allow Custom Depth Writes:
1.3 为深度小白人赋予材质
1.4 在深度小白人蓝图Detail中找到Render in Main Pass,去掉勾选
1.5 在深度小白人蓝图Detail中找到Render in Depth Pass,去掉勾选
1.6 在深度小白人中找到Render CustomDepth Pass,勾选
1.7 新建一个半透明材质球,命名为TestMat
1.8 为半透明小白人添加该材质球,可以看出,现在是有问题的
1.9 最重要一步,加上深度处理
(注:最早版本出处为 https://www.cnblogs.com/sevenyuan/p/7813527.html)
1.10 完成: