半透明水材质


利用半透明着色模型制作水材质
透明度
设置透明度有两种方式,一种是直接通过透明度节点设置,另一种是通过场景颜色设置,因为要做折射,所以我们用第二种。
如果要设置UV,一定要用Screen Position节点。

与颜色相乘

在此之前,要用Depth Fade深度值,也就是水的深浅部分,结果用于Lerp,使浅水区和深水区有不一样的颜色

反射
因为这个没有反射功能,所以就拿了一张CubeMap来模拟反射。当然,如果真的要实施反射也是可以的,加个反射平面,不过性能开销又会增加,权衡利弊再选择使用哪一种方式吧

加上菲涅尔效果,用于控制反射的强弱

折射
折射就比较简单粗暴了,就是通过扰动采样的场景颜色来达到这种效果

鬼影的原因
在做折射扰动时会出现重影的情况,原因是这个Lerp节点。当我不使用Lerp时,并不会出现重影。我怀疑可能是引擎自身计算先后顺序的原因,目前我还没找到解决办法,只能通过调节浅水区的扰动幅度来减少鬼影的视觉效果。

半透明和单层水 两种着色模型的性能开销对比


