本文實例為大家分享了Unity shader實現高斯模糊效果的具體代碼,供大家參考,具體內容如下
我們提供的服務有:成都網站建設、成都網站設計、微信公眾號開發、網站優化、網站認證、茄子河ssl等。為上1000+企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的茄子河網站制作公司
正常圖:
高斯模糊效果圖:
shader代碼:
Shader "Custom/GaoSiMoHu" { Properties { _MainTex ("Texture", 2D) = "white" {} _BlurSize("Blur size",Float)=1.0 } SubShader { ZTest Always cull off ZWrite off CGINCLUDE//這個可以使其他pass塊都可以使用,而不用在兩個pass里都寫,減少了寫的次數 sampler2D _MainTex; half4 _MainTex_TexelSize; float _BlurSize; struct v2f{ float4 pos:SV_POSITION; half2 uv[5]:TEXCOORD0; }; fixed4 fragBlur(v2f i):SV_Target{ float weight[3]={ 0.4026, 0.2442, 0.0545 }; fixed3 sum = tex2D(_MainTex,i.uv[0]).rgb * weight[0]; for(int it = 1; it < 3; it++){ sum += tex2D(_MainTex,i.uv[it]).rgb * weight[it]; sum += tex2D(_MainTex,i.uv[2 * it]).rgb * weight[it]; } return fixed4(sum,1.0); } ENDCG Pass{ NAME "GAUSSIAN_BLUR_VERTICAL"http://這個pass的唯一名字,可以在其他地方調用,usepass + 名字 CGPROGRAM #pragma vertex vertlurVertical #pragma fragment fragBlur #include "UnityCG.cginc" v2f vertlurVertical(appdata_img v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); half2 uv = v.texcoord; o.uv[0]=uv; o.uv[1]=uv + float2(0.0,_MainTex_TexelSize.y * 1.0) * _BlurSize; o.uv[2]=uv - float2(0.0,_MainTex_TexelSize.y * 1.0) * _BlurSize; o.uv[3]=uv + float2(0.0,_MainTex_TexelSize.y * 2.0) * _BlurSize; o.uv[4]=uv - float2(0.0,_MainTex_TexelSize.y * 2.0) * _BlurSize; return o; } ENDCG } Pass{ NAME "GAUSSIAN_BLUR_HORIZONTAL" CGPROGRAM #pragma vertex vertlurHorizontal #pragma fragment fragBlur #include "UnityCG.cginc" v2f vertlurHorizontal(appdata_img v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); half2 uv = v.texcoord; o.uv[0]=uv; o.uv[1]=uv + float2(0.0,_MainTex_TexelSize.x * 1.0) * _BlurSize; o.uv[2]=uv - float2(0.0,_MainTex_TexelSize.x * 1.0) * _BlurSize; o.uv[3]=uv + float2(0.0,_MainTex_TexelSize.x * 2.0) * _BlurSize; o.uv[4]=uv - float2(0.0,_MainTex_TexelSize.x * 2.0) * _BlurSize; return o; } ENDCG } } }
調節_BlurSize即可看到效果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
文章名稱:Unityshader實現高斯模糊效果
文章位置:http://vcdvsql.cn/article46/pcophg.html
成都網站建設公司_創新互聯,為您提供網站營銷、靜態網站、網站內鏈、響應式網站、網站建設、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯