248 lines
7.0 KiB
Plaintext
248 lines
7.0 KiB
Plaintext
//UV滚动的Pass提供者
|
|
Shader "Gonbest/Legacy/ScrollUVHelper"
|
|
{
|
|
Properties
|
|
{
|
|
_Color ("Main Color", Color) = (1, 1, 1, 1)
|
|
_ColorMultiplier("Color Multipler",range(0,2)) = 1
|
|
_MainTex("Base (RGB)", 2D) = "white" {}
|
|
_AlphaTex("_AlphaTex", 2D) = "white" {}
|
|
_AlphaTex2("_AlphaTex2", 2D) = "white" {}
|
|
_UseClip("UseClip",float) = 0
|
|
_ClipRect("ClipRect",Vector)= (-50000,-50000,50000,50000)
|
|
_InsideColor("内部颜色",Color) = (1, 1, 0, 1)
|
|
_ClipMaxLength("被切的最大长度",float) = 4
|
|
_ClipAmount("切的进度信息",Range(-1 , 1)) = 0
|
|
_EdgeWidth("切割部位的高度",Range(0 , 1)) = 0.2
|
|
_EdgeColor("切割部位的颜色",Color) = (1, 1, 0, 1)
|
|
}
|
|
|
|
CGINCLUDE
|
|
#include "../Include/Base/CommonCG.cginc"
|
|
#include "../Include/Utility/WidgetUtilsCG.cginc"
|
|
#include "../Include/Utility/FlowUtilsCG.cginc"
|
|
|
|
uniform sampler2D _MainTex;
|
|
uniform half4 _MainTex_ST;
|
|
|
|
struct appdata_t
|
|
{
|
|
float4 vertex : POSITION;
|
|
fixed4 color : COLOR;
|
|
half2 texcoord : TEXCOORD0;
|
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
};
|
|
|
|
struct v2f
|
|
{
|
|
float4 vertex : POSITION;
|
|
fixed4 color : COLOR;
|
|
half4 uv : TEXCOORD0;
|
|
float3 wpos : TEXCOORD1;
|
|
GONBEST_MODEL_CLIP_COORDS(2)
|
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
|
|
};
|
|
|
|
v2f vert(appdata_t v)
|
|
{
|
|
UNITY_SETUP_INSTANCE_ID(v);
|
|
v2f o = (v2f)0;
|
|
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
o.color = v.color;
|
|
o.uv.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
|
|
o.wpos = mul(unity_ObjectToWorld,v.vertex).xyz;
|
|
GONBEST_TRANSFER_MODEL_CLIP_Y(v,o);
|
|
GONBEST_TRANSFER_SCROLL_UV(v,o)
|
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
|
return o;
|
|
}
|
|
|
|
fixed4 frag(v2f i,float facing:VFACE) : COLOR
|
|
{
|
|
UNITY_SETUP_INSTANCE_ID(i);
|
|
fixed4 tex = GONBEST_TEX_SAMPLE(_MainTex, i.uv.xy) ;
|
|
GONBEST_APPLY_SCROLL_UV(i,tex);
|
|
GONBEST_APPLY_COLOR_MULTIPLIER(tex)
|
|
float a = GONBEST_APPLY_IN_CLID_RECT(i.wpos);
|
|
tex *= i.color;
|
|
tex.a *= a;
|
|
fixed4 finalColor = (fixed4)0;
|
|
GONBEST_MODEL_CLIP_APPLY(i,facing,tex,1,finalColor);
|
|
return finalColor;
|
|
}
|
|
ENDCG
|
|
|
|
SubShader
|
|
{
|
|
Pass
|
|
{ //一张滚动Shader的通用的顶点片段程序
|
|
Name "ONE&ADD"
|
|
Blend SrcAlpha One,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_ONE_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //两张滚动Shader的通用的顶点片段程序
|
|
Name "TWO&ADD"
|
|
Blend SrcAlpha One,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_TWO_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //一张滚动Shader的通用的顶点片段程序
|
|
Name "ONE&BLEND"
|
|
Blend SrcAlpha OneMinusSrcAlpha,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_ONE_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //两张滚动Shader的通用的顶点片段程序
|
|
Name "TWO&BLEND"
|
|
Blend SrcAlpha OneMinusSrcAlpha,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_TWO_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
|
|
Pass
|
|
{ //一张滚动Shader的通用的顶点片段程序
|
|
Name "ONE&ADD&ALPHATEX"
|
|
Blend SrcAlpha One,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_ONE_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //两张滚动Shader的通用的顶点片段程序
|
|
Name "TWO&ADD&ALPHATEX"
|
|
Blend SrcAlpha One,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_TWO_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_TWO_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //一张滚动Shader的通用的顶点片段程序
|
|
Name "ONE&BLEND&ALPHATEX"
|
|
Blend SrcAlpha OneMinusSrcAlpha,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_ONE_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //两张滚动Shader的通用的顶点片段程序
|
|
Name "TWO&BLEND&ALPHATEX"
|
|
Blend SrcAlpha OneMinusSrcAlpha,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
Lighting Off
|
|
ZWrite Off
|
|
Fog { Mode Off }
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_TWO_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_TWO_ALPHA_TEX_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
Pass
|
|
{ //一张滚动Shader的通用的顶点片段程序
|
|
Name "ONE&BLEND&MODELCLIP"
|
|
Blend SrcAlpha OneMinusSrcAlpha,Zero OneMinusSrcAlpha
|
|
Cull Off
|
|
ZWrite Off
|
|
AlphaToMask on
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#pragma multi_compile _GONBEST_ONE_SCROLL_UV_ON
|
|
#pragma multi_compile _GONBEST_COLOR_MULTIPLIER_ON
|
|
#pragma multi_compile _GONBEST_2D_CLIP_RECT_ON
|
|
#pragma multi_compile _GONBEST_MODEL_CLIP_ON
|
|
#pragma multi_compile_instancing
|
|
ENDCG
|
|
}
|
|
}
|
|
} |