

预览GIF(简单的录了个屏,之后想起来会好好出一个Sequence)
前言:参考了iesoxj肖哥哥和KhenaB大神的视频,👍感谢感谢感谢!在此整理了一下,和大家分享的同时也作为自己的笔记;
大致思路:利用PostProcess的后期材质制作水底效果,再利用设置好自定义深度通道的物体作为遮罩,达到区分水下水上的效果;
素材准备:
1、在Maya中(本人用的maya,在哪里做无所谓)做一个Box用作区分水上水下的体积遮罩,注意细分需要高一些方便之后添加顶点位移;

遮罩Box
2、提取Box的地面作为水面的Mesh和遮罩;

水面Mesh
3、一些贴图:焦散、水面法线、噪波;很多地方都可以找到(百度、谷歌等等)

举例:焦散
制作:(水面材质我就不赘述了,直接开始水下材质说明)
1、焦散部分:
通过绝对世界位置,把贴图的交错移动映射到水下物体上制作出水下的焦散效果;
焦散的红色边边细节,可以通过PS里复制贴图层,关闭上一层的红通道,再移动图层来达到(当然这一步操作可以再UE里完成);
使用噪波图干扰焦散贴图的位移可以进一步增加焦散效果的细节;
使用场景法线检索水下物体,用蓝通道作为判断,用Power控制焦散作用在这些位置的强度;

焦散
2、遮罩部分:
添加之前做好的Box和平面Mesh后,设置自定义模板深度为1、平面的自定义深度为0,这样在区分水上水下后,在水底向上看时,依然可以看到水面以上的物体,不会穿帮;
利用SceneTexture里的自定义模块,可以得到Box减去屏幕的遮罩效果,此时就可以区分水上和水下了(水下为后期材质,水上为原本的屏幕颜色);
利用对水上水下遮罩的计算调整,来得到水线遮罩并加以模糊,得到水线效果;
注意此时可以在控制台输入r.CustmDepth 3 鼠标放在自定义模板上会有提示;
水面的细分和box细分和UV最好一致,这样水面波动的置换效果容易统一;

遮罩部分
3、水下雾气(有限可视范围)和水线扭曲效果部分:
使用屏幕位置获取到屏幕遮罩,但一般为左上角白色,过渡到右下角为黑色,所以减去0.5,这样形成中间白色且向四周过渡为黑色的球形遮罩;
使用场景深度来控制雾气的强度和衰减;
使用遮罩控制屏幕位置,加以噪波来达到水线处的画面扭曲效果;

水下雾气效果
此文章仅作为分享交流以及笔记使用;哪里不对欢迎小伙伴们指出、私聊交流😊