FiE-Game/Assets/Highlighting System/Resources/HighlightingBlur.shader

100 lines
2.1 KiB
Text
Raw Normal View History

2023-07-27 13:48:00 +02:00
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Hidden/Highlighted/Blur"
{
Properties
{
[HideInInspector] _MainTex ("", 2D) = "" {}
[HideInInspector] _Intensity ("", Range (0.25,0.5)) = 0.3
}
SubShader
{
Pass
{
ZTest Always
Cull Off
ZWrite Off
Lighting Off
Fog { Mode Off }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
uniform half4 _MainTex_TexelSize;
uniform half _HighlightingBlurOffset;
uniform half _Intensity;
struct v2f
{
float4 pos : POSITION;
float2 uv[4] : TEXCOORD0; // 8 to add straight directions
};
v2f vert (appdata_img v)
{
// Shader code optimized for the Unity shader compiler
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
float2 offs = _HighlightingBlurOffset * _MainTex_TexelSize.xy;
// Diagonal directions
o.uv[0].x = v.texcoord.x - offs.x;
o.uv[0].y = v.texcoord.y - offs.y;
o.uv[1].x = v.texcoord.x + offs.x;
o.uv[1].y = v.texcoord.y - offs.y;
o.uv[2].x = v.texcoord.x + offs.x;
o.uv[2].y = v.texcoord.y + offs.y;
o.uv[3].x = v.texcoord.x - offs.x;
o.uv[3].y = v.texcoord.y + offs.y;
/*
// Straight directions
o.uv[4].x = v.texcoord.x - offs.x;
o.uv[4].y = v.texcoord.y;
o.uv[5].x = v.texcoord.x + offs.x;
o.uv[5].y = v.texcoord.y;
o.uv[6].x = v.texcoord.x;
o.uv[6].y = v.texcoord.y - offs.y;
o.uv[7].x = v.texcoord.x;
o.uv[7].y = v.texcoord.y + offs.y;
*/
return o;
}
half4 frag(v2f i) : COLOR
{
int start = 0;
int end = 4;
half4 color1 = tex2D(_MainTex, i.uv[start]);
fixed4 color2;
for (int n = start + 1; n < end; n++)
{
color2 = tex2D(_MainTex, i.uv[n]);
color1.rgb = max(color1.rgb, color2.rgb);
color1.a += color2.a;
}
color1.a *= _Intensity;
return color1;
}
ENDCG
}
}
Fallback off
}