shader 制作波浪效果 原理 是在顶点着色器里对顶点做周期变换
公式:
y=A*sin(w+s)
w代表周期,一般这样写:
w=_Time.y*Speed //这里的_Time是Shader的内置变量
s代表与x轴的距离,一般这样写:
s=vertex.x*Frenquncy
A代表波浪的峰值
其中的A、Speed、_Frenquncy都是自定义字段,在Shader的properties里定义好就可以。
完整的顶点着色器:
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MaxY("MaxY",Range(1,10))=1
_Frenquncy("Frenquncy",float)=0.5
_Speed("Speed",float)=1
}
struct appdata
{
float4 vertex : POSITION; //顶点
float2 uv : TEXCOORD0; //法线
};
struct v2f
{
float2 uv : TEXCOORD0; //