1. 程式人生 > >Shader學習筆記(17) 頂點偏移水面動畫

Shader學習筆記(17) 頂點偏移水面動畫

Shader"wx/water"{
    Properties{
    	_MainTex("Main Tex",2D)="white"{}
    	_Color("Color Tint",Color)=(1,1,1,1)
    	_Magnitude("Distortion Magnitude",Float)=1
    	_Frequency("Distortion Frequency",Float)=1
    	_InvWaveLength("Distortion Inverse Wave Length",Float)=10
    	_Speed("Speed",Float)=0.5
    }
    SubShader {
    	Tags{"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "DisableBatching"="True"}
    	Pass{
    		Tags{"LightMode"="ForwardBase"}
    		ZWrite Off
    		Blend SrcAlpha OneMinusSrcAlpha
    		Cull Off
    		CGPROGRAM
    		#pragma vertex vert
    		#pragma fragment frag
    		#include "UnityCG.cginc"
sampler2D _MainTex; float4 _MainTex_ST; fixed4 _Color; float _Magnitude; float _Frequency; float _InvWaveLength; float _Speed; struct a2v { float4 vertex:POSITION; float4 texcoord:TEXCOORD0; }; struct v2f { float4 pos:SV_POSITION; float2 uv:TEXCOORD0; }; v2f vert(a2v v){ v2f o; float4 offset; offset.xyz=float3(0,0,0); offset.x=sin(_Frequency*_Time.y+v.vertex.x*_InvWaveLength+v.vertex.y*_InvWaveLength+v.vertex.z*_InvWaveLength)*_Magnitude; o.pos=UnityObjectToClipPos(v.vertex+offset); o.uv=TRANSFORM_TEX
(v.texcoord,_MainTex); o.uv+=float2(0,_Time.y*_Speed); return o; } fixed4 frag(v2f i):SV_Target{ fixed4 c=tex2D(_MainTex,i.uv); c.rgb*=_Color.rgb; return c; } ENDCG } } }

假期歸來.....感覺有點要忘精光的趨勢....趕緊學起來吧..順便提一嘴要用TRANSFORM_TEX時 必須要有#include "UnityCG.cginc"