Unity Shader實(shí)現(xiàn)徑向模糊效果
在游戲里面有很多模糊效果,像賽車類游戲。當(dāng)你加速時(shí),會(huì)發(fā)現(xiàn)2邊的場(chǎng)景變模糊。如下圖:
今天也來(lái)做一下徑向模糊效果,首先創(chuàng)建一個(gè)Material,給它添加一個(gè)紋理后將Material拖到新建的Plane上。如圖所示,可以看出模糊效果是從中心點(diǎn)由內(nèi)往外擴(kuò)散。接下來(lái)腦子里有了步驟
步驟一:定義徑向模糊的中心點(diǎn),通常取圖像的正中心點(diǎn)。
步驟二:計(jì)算采樣像素與中心點(diǎn)的距離,根據(jù)距離確定偏移程度,即離中心點(diǎn)越遠(yuǎn),偏移量越大。
步驟三:將采樣點(diǎn)的顏色值做平均求和。
Shader "liulongling/motion" { Properties { _MainTex("紋理",2D)="while"{} _Level("強(qiáng)度",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 } } }
效果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c#入門之循環(huán)語(yǔ)句使用詳解(for循環(huán)、do/while)
這篇文章主要介紹了c#入門之循環(huán)語(yǔ)句使用詳解,有for循環(huán)和do/while的示例,需要的朋友可以參考下2014-04-04淺談C#在網(wǎng)絡(luò)波動(dòng)時(shí)防重復(fù)提交的方法
這篇文章主要介紹了淺談C#在網(wǎng)絡(luò)波動(dòng)時(shí)防重復(fù)提交的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04C#字符串左不足位數(shù)時(shí)補(bǔ)充0的幾種方式
想讓一個(gè)整數(shù)或字符串轉(zhuǎn)換為字符串后,如果其長(zhǎng)度不足5位,則在左邊補(bǔ)充0直到達(dá)到5位,本文給大家介紹了C#字符串左不足位數(shù)時(shí)補(bǔ)充0的幾種方式,感興趣的朋友可以參考下2024-04-04C#實(shí)現(xiàn)將音頻PCM數(shù)據(jù)封裝成wav文件
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)將音頻PCM數(shù)據(jù)封裝成wav文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-10-10.Net多進(jìn)程通信共享內(nèi)存映射文件Memory?Mapped
這篇文章主要介紹了.Net多進(jìn)程通信共享內(nèi)存映射文件Memory?Mapped的使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04