依旧是通过shadertoy翻译过来的,很好看
Shader "waterBy"
{
Properties{
//Properties
}
SubShader
{
Tags { "RenderType" = "Transparent" "Queue" = "Transparent" }
Pass
{
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct VertexInput {
fixed4 vertex : POSITION;
fixed2 uv : TEXCOORD0;
fixed4 tangent : TANGENT;
fixed3 normal : NORMAL;
//VertexInput
};
struct VertexOutput {
fixed4 pos : SV_POSITION;
fixed2 uv : TEXCOORD0;
//VertexOutput
};
//Variables
VertexOutput vert(VertexInput v)
{
VertexOutput o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
//VertexFactory
return o;
}
fixed4 frag(VertexOutput i) : SV_Target
{
fixed2 uv = (4.0 * i.uv - 3) / min(1, 1);
[unroll(100)]
for (fixed i = 1.0; i < 10.0; i++)
{
uv.x += 0.6 / i * cos(i * 2.5 * uv.y + _Time.y);
uv.y += 0.6 / i * cos(i * 1.5 * uv.x + _Time.y);
}
return fixed4(fixed3(0.1,0.1,0.2) / abs(sin(_Time.y - uv.y - uv.x)), 1.0);
}
ENDCG
}
}
}