91 lines
3.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Shader "UI/UIBlur"
{
Properties
{
[PerRendererData] _MainTex ("Texture", 2D) = "white" {}
// 模板测试属性 和 ColorMask 一般不控制,所以在属性面板上隐藏
[HideInInspector]_StencilComp ("Stencil Comparison", Float) = 8
[HideInInspector]_Stencil ("Stencil ID", Float) = 0
[HideInInspector]_StencilOp ("Stencil Operation", Float) = 0
[HideInInspector]_StencilWriteMask ("Stencil Write Mask", Float) = 255
[HideInInspector]_StencilReadMask ("Stencil Read Mask", Float) = 255
}
SubShader
{
Tags
{
"Queue"="Transparent"
"IgnoreProjector"="True"
"RenderType"="Transparent"
"PreviewType"="Plane"
"CanUseSpriteAtlas"="True"
}
Stencil
{
Ref [_Stencil]
Comp [_StencilComp]
Pass [_StencilOp]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
}
Cull Off
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend SrcAlpha OneMinusSrcAlpha
//ColorMask [_ColorMask]
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile _ UNITY_UI_ALPHACLIP
#pragma multi_compile _ UNITY_SHADER_EDITOR
#include "UnityUI.cginc"
#include "UnityCG.cginc"
fixed4 _TextureSampleAdd; // Unity管理图片格式用Alpha8
float4 _ClipRect;// Unity管理2D剪裁使用
sampler2D _MainTex;
sampler2D _BurTexture;
struct a2v{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f{
float4 vertex : SV_POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
v2f vert(a2v IN){
v2f OUT;
UNITY_SETUP_INSTANCE_ID(IN);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);// 实例化处理
OUT.vertex = UnityObjectToClipPos(IN.vertex);// 模型空间到裁剪空间
OUT.color = IN.color;
OUT.texcoord = IN.texcoord;
return OUT;
}
fixed4 frag(v2f IN):SV_Target{
// 直接读取纹理颜色 并且乘上 ImageColor
//half4 color = tex2D(_MainTex,IN.texcoord) ;//* IN.color;
float2 uv=IN.vertex.xy/_ScreenParams.xy;
//#ifndef UNITY_SHADER_EDITOR
//uv=float2(uv.x,1-uv.y);
//#endif
IN.texcoord=float2(IN.texcoord.x,1-IN.texcoord.y);
half4 brackground = tex2D(_BurTexture,IN.texcoord);//* IN.color;
//float alpha= color.a*IN.color.a;
//color.rgb=color.rgb*alpha+brackground.rgb*(1-alpha);
//alpha=smoothstep(0,0.2,color.a);
return float4(brackground.rgb,1);
}
ENDCG
}
}
}