Unity ShaderGraph教程——进阶shader

1.水面(一)

公式:场景深度 节点深度 — 屏幕空间位置的W向量 = 半透明物体与不透明物体的相交边缘

原理:场景深度 节点深度包含透明像素,屏幕空间w向量不包含透明像素。

注意:需要在UniversalRP-xxxQuality inspector面板将Depth texture选项打开,才能读取深度值。

Unity ShaderGraph教程——进阶shader_第1张图片

(1)片元着色器部分:

Unity ShaderGraph教程——进阶shader_第2张图片Unity ShaderGraph教程——进阶shader_第3张图片

(2)顶点着色器部分

Unity ShaderGraph教程——进阶shader_第4张图片

 效果:

2.水面(二) 

实现效果:水面光滑程度、水下物体以及阴影扭曲效果

(1)光滑程度

Unity ShaderGraph教程——进阶shader_第5张图片

简单的通过一个float参数控制光滑程度

 (2)扭曲效果

        将屏幕上颜色和水面颜色混合,使场景中已经被渲染的不透明物体屏幕坐标产生一定的扭曲,跟当前颜色合成后模拟折射效果。

注意:需要用到scence color节点需要在UniversalRP-xxxQuality inspector面板将不透明texture的对勾打开

Unity ShaderGraph教程——进阶shader_第6张图片

scence color和原基础颜色lerp,混合后已经具有透明度数值,所以原透明度不需要再单独输出。

Unity ShaderGraph教程——进阶shader_第7张图片 

你可能感兴趣的:(unity,游戏引擎)