소스 검색

[unity] URP shaders: Fixed SRP batcher compatibility issues and compile errors at some project configurations.

Harald Csaszar 2 년 전
부모
커밋
a1f27d74b1

+ 1 - 1
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl

@@ -7,7 +7,7 @@
 #include "../Include/SpineCoreShaders/SpriteLighting.cginc"
 #if defined(_ALPHAPREMULTIPLY_ON)
 	#undef _STRAIGHT_ALPHA_INPUT
-#else
+#elif !defined(_STRAIGHT_ALPHA_INPUT)
 	#define _STRAIGHT_ALPHA_INPUT
 #endif
 #include "../Include/SpineCoreShaders/Spine-Skeleton-Tint-Common.cginc"

+ 4 - 7
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-Sprite-URP-2D.shader

@@ -90,7 +90,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 			#pragma shader_feature _TINT_BLACK_ON
 
 			#pragma fragmentoption ARB_precision_hint_fastest
-			#pragma multi_compile _ PIXELSNAP_ON
+			#pragma multi_compile_local _ PIXELSNAP_ON
 
 			//--------------------------------------
 			// GPU Instancing
@@ -98,7 +98,6 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 
 			//--------------------------------------
 			// Spine related keywords
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
 			#pragma vertex CombinedShapeLightVertex
 			#pragma fragment CombinedShapeLightFragment
 
@@ -109,6 +108,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 
 			#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl"
 
+			#define SPRITE_SHADER_2D
 			#include "../Include/Spine-Input-Sprite-URP.hlsl"
 			#include "Include/Spine-Sprite-StandardPass-URP-2D.hlsl"
 			ENDHLSL
@@ -133,7 +133,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 			#pragma shader_feature _NORMALMAP
 			#pragma shader_feature _ALPHA_CLIP
 
-			#pragma multi_compile _ PIXELSNAP_ON
+			#pragma multi_compile_local _ PIXELSNAP_ON
 
 			//--------------------------------------
 			// GPU Instancing
@@ -143,7 +143,7 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 			#define fixed4 half4
 			#define fixed3 half3
 			#define fixed half
-
+			#define SPRITE_SHADER_2D
 			#include "../Include/Spine-Input-Sprite-URP.hlsl"
 			#include "Include/Spine-Sprite-NormalsPass-URP-2D.hlsl"
 
@@ -161,9 +161,6 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
 
 			HLSLPROGRAM
 			#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-			#if defined(_ALPHAPREMULTIPLY_VERTEX_ONLY) || defined(_ALPHABLEND_ON)
-			#define _STRAIGHT_ALPHA_INPUT
-			#endif
 
 			#pragma prefer_hlslcc gles
 			#pragma vertex UnlitVertex

+ 2 - 1
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Outline-URP.hlsl

@@ -10,8 +10,9 @@
 
 CBUFFER_START(UnityPerMaterial)
 float4 _MainTex_ST;
+#ifndef NO_CUTOFF_PARAM
 half _Cutoff;
-
+#endif
 float _OutlineWidth;
 float4 _OutlineColor;
 float4 _MainTex_TexelSize;

+ 2 - 2
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-Sprite-URP.hlsl

@@ -7,15 +7,15 @@ CBUFFER_START(UnityPerMaterial)
 
 float4 _MainTex_ST;
 half4 _Color;
-#if defined(_TINT_BLACK_ON)
 half4 _Black;
-#endif
 half _Cutoff;
 half _ShadowAlphaCutoff;
 
+#ifndef SPRITE_SHADER_2D
 half _Metallic;
 half _Glossiness;
 half _GlossMapScale;
+#endif
 
 half _BumpScale;
 

+ 2 - 4
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Input-URP.hlsl

@@ -12,10 +12,8 @@ CBUFFER_START(UnityPerMaterial)
 
 float4 _MainTex_ST;
 half _Cutoff;
-#if defined(_TINT_BLACK_ON)
-    half4 _Color;
-    half4 _Black;
-#endif
+half4 _Color;
+half4 _Black;
 
 CBUFFER_END
 

+ 1 - 1
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl

@@ -9,7 +9,7 @@
 
 #if defined(_ALPHAPREMULTIPLY_ON)
 	#undef _STRAIGHT_ALPHA_INPUT
-#else
+#elif !defined(_STRAIGHT_ALPHA_INPUT)
 	#define _STRAIGHT_ALPHA_INPUT
 #endif
 #include "SpineCoreShaders/Spine-Skeleton-Tint-Common.cginc"

+ 1 - 0
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Outline/Spine-Skeleton-OutlineOnly-URP.shader

@@ -49,6 +49,7 @@ Shader "Universal Render Pipeline/Spine/Outline/Skeleton-OutlineOnly" {
 			#define fixed4 half4
 			#define fixed3 half3
 			#define fixed half
+			#define NO_CUTOFF_PARAM
 			#include "../Include/Spine-Input-Outline-URP.hlsl"
 			#include "../Include/Spine-Outline-Pass-URP.hlsl"
 			ENDHLSL

+ 1 - 6
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Spine-Sprite-URP.shader

@@ -111,7 +111,7 @@ Shader "Universal Render Pipeline/Spine/Sprite"
 			#pragma multi_compile _ _SHADOWS_SOFT
 			#pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
 			#pragma multi_compile_fragment _ _LIGHT_COOKIES
-			
+
 			// Farward+ renderer keywords
 			#pragma multi_compile_fragment _ _LIGHT_LAYERS
 			#pragma multi_compile _ _FORWARD_PLUS
@@ -129,7 +129,6 @@ Shader "Universal Render Pipeline/Spine/Sprite"
 
 			//--------------------------------------
 			// Spine related keywords
-			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
 			#pragma vertex ForwardPassVertexSprite
 			#pragma fragment ForwardPassFragmentSprite
 
@@ -225,10 +224,6 @@ Shader "Universal Render Pipeline/Spine/Sprite"
 
 			HLSLPROGRAM
 			#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
-			#if defined(_ALPHAPREMULTIPLY_VERTEX_ONLY) || defined(_ALPHABLEND_ON)
-			#define _STRAIGHT_ALPHA_INPUT
-			#endif
-
 			#pragma prefer_hlslcc gles
 			#pragma vertex vert
 			#pragma fragment frag