Water Effect – Swimming Pool

水面效果是一种常见的特效,在游戏场景中有大量的应用。我们常用的编辑器(Unity、UE)都自带水特效shader。通常来说自带的效果已经做够好了,应该可以直接拿来用。但是我们做移动应用时,受到了gpu和耗电量的限制,自带特效往往不能达到性能平衡点,因此各种五花八门的简化特效出现了。
这里我提供一个水特效,shader计算量非常小,适合做泳池等在固定容器内的水效果。

游泳池特效

这个特效是用Fragment Animation实现的,一般水特效多少都会有sin cos这样的操作以实现波的效果,而这特效利用噪声图来实现,有效的降低了计算量。具体说明见代码注释。

实现方法:

1.在场景中创建一个Quad。

2.创建一个空的shader再把附件中的代码考进去。

3.把附件中的水贴图和噪音图考到项目中,并指定给上面创建的shader。

4.把shader拖到上面创建的Quad中。

5.运行。

附件:

 

水贴图
噪音图

Leave a Reply

Your email address will not be published. Required fields are marked *