Unity实现海浪盒效果 背景 设置好顶点色参数 海浪盒水体部分效果 为了快速实现效果,下面用Shadergraph实现效果。 ShaderGraph水体全节点 ShaderGraph全节点模块序号 ShaderGraph属性 ShaderGraph Graph Setting 1. GerstnerWave 顶点动画部分,输出的是顶点偏移和NormalOS Waves算法 GerstnerWave.hlsl 代码如下: GerstnerWave节点截图如下: GerstnerWave输入输出参数截图如下: 2.顶点的G通道 3.双层NormalMap做法线扰动,实现水波反射效果: 4.CubeMap采样 5.实现Fresnel和水颜色的区分 Fresnel和水颜色的区分的MaskOS.SubShaderGraph MaskOS具体的节点截图 6.顶点色的G通道是区分水体的上层和侧面 7.实现Fresnel 8.SideMaskTex是做边缘亮度的效果 SideMaskTex属性栏显示截图 SideMaskTex贴图效果 9.实现水体折射效果 ShaderGraph焦散Caustics效果全节点 ShaderGraph焦散Caustics效果全节点模块序号 1.ReconstructObjectFromDepth 解析上图的内容 做了一些改动: 代码如下: ReconstructObjectFromDepth截图如下: ReconstructObjectFromDepth节点位置关系 ReconstructObjectFromDepth.shadersubgraph 2.CausticsTex焦散贴图采样 焦散贴图纹理如下: 3.利用Tilling和min (a,b)做焦散效果扰动 4.焦散Y值深度的范围计算 最终焦散Caustics效果图如下: 背景 我找的参考的是这个 设置好顶点色参数 在3DMax里建模,设置带顶点颜色通道。 将模型需要波浪的部分红色通道为1 海浪盒水体部分效果 为了快速实现效果,下面用Shadergraph实现效果。 Sha