소스 검색

[unity] Moved common Spine/Blend shader functionality to shared include files. Closes #1721.

Harald Csaszar 3 년 전
부모
커밋
7e440c28ae

+ 2 - 67
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader

@@ -43,45 +43,8 @@ Shader "Spine/Blend Modes/Skeleton PMA Additive" {
 
 
 		Pass {
 		Pass {
 			Name "Normal"
 			Name "Normal"
-
 			CGPROGRAM
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma vertex vert
-			#pragma fragment frag
-			#include "UnityCG.cginc"
-			#include "../CGIncludes/Spine-Common.cginc"
-			uniform sampler2D _MainTex;
-			uniform float4 _Color;
-
-			struct VertexInput {
-				float4 vertex : POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			struct VertexOutput {
-				float4 pos : SV_POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			VertexOutput vert (VertexInput v) {
-				VertexOutput o;
-				o.pos = UnityObjectToClipPos(v.vertex);
-				o.uv = v.uv;
-				o.vertexColor = PMAGammaToTargetSpace(v.vertexColor) * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
-				return o;
-			}
-
-			float4 frag (VertexOutput i) : SV_Target {
-				float4 texColor = tex2D(_MainTex, i.uv);
-
-				#if defined(_STRAIGHT_ALPHA_INPUT)
-				texColor.rgb *= texColor.a;
-				#endif
-
-				return (texColor * i.vertexColor);
-			}
+			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 
 
@@ -94,35 +57,7 @@ Shader "Spine/Blend Modes/Skeleton PMA Additive" {
 			ZTest LEqual
 			ZTest LEqual
 
 
 			CGPROGRAM
 			CGPROGRAM
-			#pragma vertex vert
-			#pragma fragment frag
-			#pragma multi_compile_shadowcaster
-			#pragma fragmentoption ARB_precision_hint_fastest
-			#include "UnityCG.cginc"
-			struct v2f {
-				V2F_SHADOW_CASTER;
-				float4 uvAndAlpha : TEXCOORD1;
-			};
-
-			uniform float4 _MainTex_ST;
-
-			v2f vert (appdata_base v, float4 vertexColor : COLOR) {
-				v2f o;
-				TRANSFER_SHADOW_CASTER(o)
-				o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
-				o.uvAndAlpha.z = 0;
-				o.uvAndAlpha.a = vertexColor.a;
-				return o;
-			}
-
-			uniform sampler2D _MainTex;
-			uniform fixed _Cutoff;
-
-			float4 frag (v2f i) : SV_Target {
-				fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy);
-				clip(texcol.a * i.uvAndAlpha.a - _Cutoff);
-				SHADOW_CASTER_FRAGMENT(i)
-			}
+			#include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 	}
 	}

+ 3 - 68
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader

@@ -43,86 +43,21 @@ Shader "Spine/Blend Modes/Skeleton PMA Multiply" {
 
 
 		Pass {
 		Pass {
 			Name "Normal"
 			Name "Normal"
-
 			CGPROGRAM
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma vertex vert
-			#pragma fragment frag
-			#include "UnityCG.cginc"
-			#include "../CGIncludes/Spine-Common.cginc"
-			uniform sampler2D _MainTex;
-			uniform float4 _Color;
-
-			struct VertexInput {
-				float4 vertex : POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			struct VertexOutput {
-				float4 pos : SV_POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			VertexOutput vert (VertexInput v) {
-				VertexOutput o;
-				o.pos = UnityObjectToClipPos(v.vertex);
-				o.uv = v.uv;
-				o.vertexColor = PMAGammaToTargetSpace(v.vertexColor) * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
-				return o;
-			}
-
-			float4 frag (VertexOutput i) : SV_Target {
-				float4 texColor = tex2D(_MainTex, i.uv);
-
-				#if defined(_STRAIGHT_ALPHA_INPUT)
-				texColor.rgb *= texColor.a;
-				#endif
-
-				return (texColor * i.vertexColor);
-			}
+			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 
 
 		Pass {
 		Pass {
 			Name "Caster"
 			Name "Caster"
-			Tags { "LightMode"="ShadowCaster" }
+			Tags { "LightMode" = "ShadowCaster" }
 			Offset 1, 1
 			Offset 1, 1
 
 
 			ZWrite On
 			ZWrite On
 			ZTest LEqual
 			ZTest LEqual
 
 
 			CGPROGRAM
 			CGPROGRAM
-			#pragma vertex vert
-			#pragma fragment frag
-			#pragma multi_compile_shadowcaster
-			#pragma fragmentoption ARB_precision_hint_fastest
-			#include "UnityCG.cginc"
-			struct v2f {
-				V2F_SHADOW_CASTER;
-				float4 uvAndAlpha : TEXCOORD1;
-			};
-
-			uniform float4 _MainTex_ST;
-
-			v2f vert (appdata_base v, float4 vertexColor : COLOR) {
-				v2f o;
-				TRANSFER_SHADOW_CASTER(o)
-				o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
-				o.uvAndAlpha.z = 0;
-				o.uvAndAlpha.a = vertexColor.a;
-				return o;
-			}
-
-			uniform sampler2D _MainTex;
-			uniform fixed _Cutoff;
-
-			float4 frag (v2f i) : SV_Target {
-				fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy);
-				clip(texcol.a * i.uvAndAlpha.a - _Cutoff);
-				SHADOW_CASTER_FRAGMENT(i)
-			}
+			#include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 	}
 	}

+ 3 - 68
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader

@@ -43,86 +43,21 @@ Shader "Spine/Blend Modes/Skeleton PMA Screen" {
 
 
 		Pass {
 		Pass {
 			Name "Normal"
 			Name "Normal"
-
 			CGPROGRAM
 			CGPROGRAM
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
-			#pragma vertex vert
-			#pragma fragment frag
-			#include "UnityCG.cginc"
-			#include "../CGIncludes/Spine-Common.cginc"
-			uniform sampler2D _MainTex;
-			uniform float4 _Color;
-
-			struct VertexInput {
-				float4 vertex : POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			struct VertexOutput {
-				float4 pos : SV_POSITION;
-				float2 uv : TEXCOORD0;
-				float4 vertexColor : COLOR;
-			};
-
-			VertexOutput vert (VertexInput v) {
-				VertexOutput o;
-				o.pos = UnityObjectToClipPos(v.vertex);
-				o.uv = v.uv;
-				o.vertexColor = PMAGammaToTargetSpace(v.vertexColor) * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
-				return o;
-			}
-
-			float4 frag (VertexOutput i) : SV_Target {
-				float4 texColor = tex2D(_MainTex, i.uv);
-
-				#if defined(_STRAIGHT_ALPHA_INPUT)
-				texColor.rgb *= texColor.a;
-				#endif
-
-				return (texColor * i.vertexColor);
-			}
+			#include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 
 
 		Pass {
 		Pass {
 			Name "Caster"
 			Name "Caster"
-			Tags { "LightMode"="ShadowCaster" }
+			Tags { "LightMode" = "ShadowCaster" }
 			Offset 1, 1
 			Offset 1, 1
 
 
 			ZWrite On
 			ZWrite On
 			ZTest LEqual
 			ZTest LEqual
 
 
 			CGPROGRAM
 			CGPROGRAM
-			#pragma vertex vert
-			#pragma fragment frag
-			#pragma multi_compile_shadowcaster
-			#pragma fragmentoption ARB_precision_hint_fastest
-			#include "UnityCG.cginc"
-			struct v2f {
-				V2F_SHADOW_CASTER;
-				float4 uvAndAlpha : TEXCOORD1;
-			};
-
-			uniform float4 _MainTex_ST;
-
-			v2f vert (appdata_base v, float4 vertexColor : COLOR) {
-				v2f o;
-				TRANSFER_SHADOW_CASTER(o)
-				o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
-				o.uvAndAlpha.z = 0;
-				o.uvAndAlpha.a = vertexColor.a;
-				return o;
-			}
-
-			uniform sampler2D _MainTex;
-			uniform fixed _Cutoff;
-
-			float4 frag (v2f i) : SV_Target {
-				fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy);
-				clip(texcol.a * i.uvAndAlpha.a - _Cutoff);
-				SHADOW_CASTER_FRAGMENT(i)
-			}
+			#include "../CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc"
 			ENDCG
 			ENDCG
 		}
 		}
 	}
 	}

+ 42 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc

@@ -0,0 +1,42 @@
+#ifndef BLENDMODES_NORMAL_PASS_INCLUDED
+#define BLENDMODES_NORMAL_PASS_INCLUDED
+
+#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+#pragma vertex vert
+#pragma fragment frag
+#include "UnityCG.cginc"
+#include "../CGIncludes/Spine-Common.cginc"
+uniform sampler2D _MainTex;
+uniform float4 _Color;
+
+struct VertexInput {
+	float4 vertex : POSITION;
+	float2 uv : TEXCOORD0;
+	float4 vertexColor : COLOR;
+};
+
+struct VertexOutput {
+	float4 pos : SV_POSITION;
+	float2 uv : TEXCOORD0;
+	float4 vertexColor : COLOR;
+};
+
+VertexOutput vert(VertexInput v) {
+	VertexOutput o;
+	o.pos = UnityObjectToClipPos(v.vertex);
+	o.uv = v.uv;
+	o.vertexColor = PMAGammaToTargetSpace(v.vertexColor) * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
+	return o;
+}
+
+float4 frag(VertexOutput i) : SV_Target{
+	float4 texColor = tex2D(_MainTex, i.uv);
+
+	#if defined(_STRAIGHT_ALPHA_INPUT)
+	texColor.rgb *= texColor.a;
+	#endif
+
+	return (texColor * i.vertexColor);
+}
+
+#endif

+ 10 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-NormalPass.cginc.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 6e28a50646b0e9542a1c93c2d9d993d0
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 34 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc

@@ -0,0 +1,34 @@
+#ifndef BLENDMODES_SHADOWCASTER_PASS_INCLUDED
+#define BLENDMODES_SHADOWCASTER_PASS_INCLUDED
+
+#pragma vertex vert
+#pragma fragment frag
+#pragma multi_compile_shadowcaster
+#pragma fragmentoption ARB_precision_hint_fastest
+#include "UnityCG.cginc"
+struct v2f {
+	V2F_SHADOW_CASTER;
+	float4 uvAndAlpha : TEXCOORD1;
+};
+
+uniform float4 _MainTex_ST;
+
+v2f vert(appdata_base v, float4 vertexColor : COLOR) {
+	v2f o;
+	TRANSFER_SHADOW_CASTER(o)
+		o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
+	o.uvAndAlpha.z = 0;
+	o.uvAndAlpha.a = vertexColor.a;
+	return o;
+}
+
+uniform sampler2D _MainTex;
+uniform fixed _Cutoff;
+
+float4 frag(v2f i) : SV_Target{
+	fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy);
+	clip(texcol.a* i.uvAndAlpha.a - _Cutoff);
+	SHADOW_CASTER_FRAGMENT(i)
+}
+
+#endif

+ 10 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-BlendModes-ShadowCasterPass.cginc.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 76beace455f83a8488bf044605212b2c
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: