Unity Shader實現徑向模糊效果
在遊戲裡面有很多模糊效果,像賽車類遊戲。當你加速時,會發現2邊的場景變模糊。如下圖:
今天也來做一下徑向模糊效果,首先創建一個Material,給它添加一個紋理後將Material拖到新建的Plane上。如圖所示,可以看出模糊效果是從中心點由內往外擴散。接下來腦子裡有瞭步驟
步驟一:定義徑向模糊的中心點,通常取圖像的正中心點。
步驟二:計算采樣像素與中心點的距離,根據距離確定偏移程度,即離中心點越遠,偏移量越大。
步驟三:將采樣點的顏色值做平均求和。
Shader "liulongling/motion" { Properties { _MainTex("紋理",2D)="while"{} _Level("強度",Range(0,100))=10 } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "unitycg.cginc" sampler2D _MainTex; float _Level; struct v2f{ fixed4 vertex:POSITION; fixed2 uv:TEXCOORD; }; v2f vert(appdata_base v){ v2f o; o.vertex=mul(UNITY_MATRIX_MVP,v.vertex); o.uv=v.texcoord; return o; } fixed4 frag(v2f i):COLOR{ fixed4 c; fixed2 center=fixed2(.5,.5); fixed2 uv=i.uv-center; fixed3 c1=fixed3(0,0,0); for(fixed j=0;j<_Level;j++){ c1+=tex2D(_MainTex,uv*(1-0.01*j)+center).rgb; } c.rgb=c1/_Level; c.a=1; return c; } ENDCG } } }
效果如下:
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- unity置灰處理的實現
- Unity Shader實現模糊效果
- Unity Shader實現動態過場切換圖片效果
- Unity Shader實現3D翻頁效果
- UnityShader使用Plane實現翻書效果