基于 UE5 Single Layer Water shading model 的风格化海洋系统

1. 核心渲染:基于 Single Layer Water 的物理+风格化混合着色
采用 UE5 专用的 SingleLayerWaterMaterialOutput 节点作为主输出,在保留物理水体散射/吸收特性的基础上,叠加风格化视觉控制,兼顾真实感与美术表现力。
关键实现:
- 通过 ScatteringCoefficients 和 AbsorptionCoefficients 接入 StaticSwitch 参数,支持在"物理准确"与"风格化调色"两种模式间一键切换;
- 暴露 Water Absorption(默认 0.4)、PhaseG 等标量参数至 "01 Appearance" 分组,支持实时调节水体浑浊度与次表面散射强度;
使用 ColorScaleBehindWater 控制水下颜色衰减,配合 Saturate 节点防止 HDR 溢出,确保风格化色调在不同光照下保持稳定。

2. 双层波浪系统:近岸细节 + 远洋 Gerstner
通过 OceanWaves Static Switch 实现波浪类型的动态切换,结合 RVT(Runtime Virtual Texture)地形高度数据,自动在近岸与远洋之间过渡不同尺度的波浪形态。
关键实现:
- 近岸模式:使用常规法线贴图+顶点偏移模拟小尺度涟漪,避免远处高频噪声闪烁;
- 远洋模式:切换至 Gerstner Wave 材质函数,模拟深海大波长起伏,当使用 RVT 地形高度时,可让水面在远离海岸时过渡到更大的波浪类型;
- 通过 Contact Wave Distortion(默认 0.2)参数控制岸边接触波的扭曲强度,增强水陆交界处的自然感。

3. 海沫系统:速度驱动 + 颜色可控
独立的海沫生成模块,支持动画速度与颜色的参数化调节,避免泡沫看起来像静态贴图。
关键实现:
- Foam Speed(默认 2.0)标量参数归属 "08 Sea Foam" 分组,通过 Panner 节点驱动泡沫纹理 UV 动画,模拟泡沫随水流移动的动态效果;
- Sea Foam Color 向量参数(默认纯白)允许美术自定义泡沫色调,适配不同海域风格(如热带浅蓝、极地灰白);
- 泡沫 Mask 经 Saturate 钳制后与 BaseColor 混合,防止过曝破坏整体色调统一性。
