使用正弦函数生成波动效果

1.正弦函数 y=Asin(ωx+φ)

其中A表示振幅,w表示频率,φ是初相,ωx+φ是相位。

要想产生波动效果,只需要改变平面的顶点位置即可。

 

2.编写Shader

创建一个 Image Effect Shader。

修改顶点函数中的代码。

1 float timer = _Time.y * _Speed;
2 float y = _Amplitude * sin(timer + v.vertex.x * _Frequency);
3 v.vertex.y += y;

其中_Speed用来控制波动的速率,_Amplitude控制波动的幅度,_Frequency控制波动的频率。这三个变量需要在属性中定义,并且在vert函数指前引用。代码如下。

1  Properties
2     {
3     
4         _MainTex ("Texture", 2D) = "white" {}
5         _Amplitude("Amplitude", float) = 1
6         _Frequency("Frequency", float) = 0.5
7         _Speed("Speed", float) = 0.5
8     
9     }

效果图:

posted @ 2018-12-29 09:57  _清风明月  阅读(1454)  评论(0编辑  收藏  举报