使用正弦函数生成波动效果
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 }
效果图: