一个综合水系统,涵盖水面表现、水下效果以及与环境和角色的交互。
水面
- 波浪
- 大规模波动:通过基于噪声的位移应用于Virtual Heightfield Mesh实现。
- 细表面波纹:叠加法线贴图,并结合可调节的UV缩放与速度,增强细节真实感。
- 反射
- 屏幕空间反射 (SSR):通过HLSL实现自定义SSR,提供更精确的衰减和边缘控制。
- HDR反射:叠加HDR环境反射,用于补充屏幕空间外的反射区域,确保无缝的环境效果。
- 折射: 通过噪声扭曲屏幕空间UV坐标生成折射效果,并由深度控制折射强度。
- 深度渐变: 绝对深度渐变用于根据水深计算明暗变化,增加水下视觉层次感;场景深度渐变用于在水线附近创建平滑的过渡效果。
- 菲涅尔效应:添加菲涅耳项,模拟视角与折射反射的自然关系。
- 高光反射:手动计算高光反射,模拟真实的水面光斑效果,同时避免默认Lit材质的性能开销。
水下效果
-
暗角:使用椭圆形渐晕遮罩暗化屏幕边缘,增强沉浸感并引导视觉焦点。
- 扭曲与模糊:屏幕空间扭曲模拟水体运动引起的视觉偏移;高斯模糊柔化水下视觉,呈现自然效果。
-
深度雾:基于场景深度计算深度雾效果,逐渐遮挡远处物体,模拟光衰减。
- 水线过渡:使用动态的基于模板的遮罩分隔水上与水下视角,随摄像机移动生成平滑过渡区域。
- 水下视角的水面:自定义渲染水下视角的水面效果,动态调整法线与位移,与水面材质匹配。
水体交互
- 环境交互
- 焦散效果:通过基于贴花的焦散效果,结合噪声扭曲采样模拟光线折射;RGB偏移添加色散效果,模拟光的颜色分离。
- 泡沫:根据深度计算生成泡沫,增强浅水区与障碍物的细节表现。
- 湿润效果:基于贴花的湿润效果模拟附近及浸没物体的表面湿痕,可调节透明度与衰减范围,实现自然过渡。
- 焦散效果:通过基于贴花的焦散效果,结合噪声扭曲采样模拟光线折射;RGB偏移添加色散效果,模拟光的颜色分离。
- 角色交互
- 波浪模拟:通过Render Target捕捉角色运动,动态更新水面高度与法线,生成逼真的涟漪与水花效果。
- 摄像机水滴:当从水下浮出时,镜头上出现程序生成的水滴。水滴会逐渐蒸发,其形状与拖尾效果通过基于噪声的算法动态生成。