Unity Shader水面波动与形变实现
水面波动的实现里,泳池水的折射和波动是比较容易出效果的类型。Unity Shader下模拟水面形变,用的是噪声扰动加法线贴图控制,效果还挺真实的,适合用在游戏场景里做水池、水箱这种小型水体。
纹理的控制点在于一张细节比较高的法线图,再叠加一层动态 UV 偏移,水面就有了“波光粼粼”的感觉。你还可以用Time
函数来控制水波动画,像_Time.y
配合sin
和cos
函数,做起来也不麻烦。
如果你想深入研究,推荐几个挺有意思的扩展内容:比如Unity Shader 中的泳池水面折射,里面有折射实现的关键逻辑,适合想学透光学效果的朋友。
还有一个我比较喜欢的Unity 真实水资源插件 Shader 1.3,那种带泡沫的动效也能顺带上,能帮你快速搭出高还原度的池水。
如果只是想简单试试水波动画效果,可以看看shader 水面效果代码及贴图,代码少、逻辑清晰,贴图也现成的,改改参数就能直接用。
注意一点:贴图尺寸别太大,控制在512x512
差不多,太高清反而让水面像玻璃,不太自然。你用移动端渲染时更要注意性能瓶颈,UV 扰动频率不要设太高。
如果你是做风格化项目的,也可以试试风格化水面着色器 v2.0.4,支持自定义颜色、波形和透明度,挺适合卡通风或低多边形风格。
,这套水面实现比较通用,上手快,适配度高。你要是做个泳池场景或者小型交互演示,直接套用都没问题。
129.81MB
文件大小:
评论区