1.水面(一)
公式:场景深度 节点深度 — 屏幕空间位置的W向量 = 半透明物体与不透明物体的相交边缘
原理:场景深度 节点深度包含透明像素,屏幕空间w向量不包含透明像素。
注意:需要在UniversalRP-xxxQuality inspector面板将Depth texture选项打开,才能读取深度值。
(1)片元着色器部分:
(2)顶点着色器部分
效果:
2.水面(二)
实现效果:水面光滑程度、水下物体以及阴影扭曲效果
(1)光滑程度
简单的通过一个float参数控制光滑程度
(2)扭曲效果
将屏幕上颜色和水面颜色混合,使场景中已经被渲染的不透明物体屏幕坐标产生一定的扭曲,跟当前颜色合成后模拟折射效果。
注意:需要用到scence color节点需要在UniversalRP-xxxQuality inspector面板将不透明texture的对勾打开
scence color和原基础颜色lerp,混合后已经具有透明度数值,所以原透明度不需要再单独输出。
3.积雪
向量A和向量B点乘,Dot(A,B)= |A|·|B|·CosQ,计算下雪方向A和承载雪的平面B的点乘,根据差值判断是否可以积雪。
normal vector这个节点是当前这个顶点的法线方向转换到世界空间里面的向量
4.数字线框