頂点シェーダーを使って遊んでみました。
Water Flow Free
インポートしてみる
インポートしてついてくるDemo.unityを開くとこんな画面が出てきます。
これのシェーダーに頂点シェーダーを付け足して波打たせます。
頂点シェーダーを付け足す
Water Simple.shaderの #pragma surface surf Lamber
の下に以下のコードを加えます。
#pragma vertex vert
void vert(inout appdata_full v)
{
float freq = 1.4;
float speed = 1.5;
float size = 0.7;
float wave = size* sin(v.vertex.x * freq - _Time.z * speed);
v.vertex.y -= wave;
}
結果
【おまけ】 リング状に波打たせる
先ほどの頂点シェーダーを以下のように変更します。
座標(0.5,0.5,0.5)を中心として円形に広がるように波打つようになります
#pragma vertex vert
void vert(inout appdata_full v)
{
float freq = 1.8;
float speed = 1.5;
float size = 1.8;
float3 center = float3(0.5, 0.5, 0.5);
float wave = size* sin( length(v.vertex - center) * freq - _Time.z * speed);
v.vertex.y -= wave;
}