123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- Shader "Rokid/UI_GaussianBlur_Cursor"
- {
- Properties
- {
- _MainTex("Base(RGB)",2D) = "white"{}
- _BlurSize("Blur Size",Float) = 0.0
- }
-
- SubShader
- {
- CGINCLUDE
-
- #include "UnityCG.cginc"
-
- sampler2D _MainTex;
- half4 _MainTex_TexelSize;
- float _BlurSize;
-
- struct v2f
- {
- float4 pos : SV_POSITION;
- half2 uv[5] : TEXCOORD0;
- };
-
- v2f vertBlurVertical(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;
- }
-
-
- v2f vertBlurHorizontal(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;
- }
-
-
- fixed4 fragBlur(v2f i) : SV_Target
- {
- float weight[3] = {0.4026,0.2442,0.0545};
-
- fixed4 sum = tex2D(_MainTex, i.uv[0]).rgba * weight[0];
-
- for (int it = 1 ;it <3 ;it++)
- {
- sum += tex2D(_MainTex,i.uv[it*2-1]).rgba *weight[it];
- sum += tex2D(_MainTex,i.uv[it*2]).rgba *weight[it];
- }
-
- return sum;
- }
-
- ENDCG
-
-
- Tags
- {
- "Queue" = "Transparent"
- "IgnoreProjector" = "True"
- "RenderType" = "Transparent"
- "PreviewType" = "Plane"
- "CanUseSpriteAtlas" = "True"
- }
- Cull Off
- Lighting Off
- ZWrite Off
- ZTest Always
- Blend SrcAlpha OneMinusSrcAlpha
-
- Pass {
- NAME "GAUSSIAN_BLUR_VERTICAL"
-
- CGPROGRAM
-
- #pragma vertex vertBlurVertical
- #pragma fragment fragBlur
-
- ENDCG
- }
-
- Pass {
- NAME "GAUSSIAN_BLUR_HORIZONTAL"
-
- CGPROGRAM
-
- #pragma vertex vertBlurHorizontal
- #pragma fragment fragBlur
-
- ENDCG
- }
- }
- FallBack "Diffuse"
- }
|