vuforia 背景毛玻璃

素材準備

詳細步驟

  • 在工程中創建一個新的shader,直接上shader代碼
Shader "Custom/ARBackgroundBlur"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
        _Size ("Size", Range(0, 20)) = 2
	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
            float _Size;
			
			v2f vert (appdata v)
			{
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
                float depth= _Size*0.001;
                half4 sum = half4(0,0,0,0);
                #define GRABPIXEL(weight,kernelx) tex2D( _MainTex, float2(i.uv.x + kernelx*depth*2, i.uv.y+ kernelx*depth*2)) * weight

                sum += GRABPIXEL(0.025, -5.0);
                sum += GRABPIXEL(0.05, -4.0);
                sum += GRABPIXEL(0.09, -3.0);
                sum += GRABPIXEL(0.12, -2.0);
                sum += GRABPIXEL(0.15, -1.0);
                sum += GRABPIXEL(0.16,  0.0);
                sum += GRABPIXEL(0.15, +1.0);
                sum += GRABPIXEL(0.12, +2.0);
                sum += GRABPIXEL(0.09, +3.0);
                sum += GRABPIXEL(0.05, +4.0);
                sum += GRABPIXEL(0.025, +5.0);

                return sum;
			}
			ENDCG
		}
	}
}
  • 替換VuforiaConfiguration中的VideoBackgroundshader,如圖
    在這裏插入圖片描述
  • 啓動Vuforia場景,AR相機下的BackgroundPlaneshader如下,調節size即可改變模糊程度
    在這裏插入圖片描述
    *效果如圖
    模糊效果
  • 對比圖
    在這裏插入圖片描述

如果幫到你了,幫忙點個贊,祝大家學習愉快!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章