Selaa lähdekoodia

[unity] URP shaders: Fixed more shader compile errors at some project configurations.

Harald Csaszar 2 vuotta sitten
vanhempi
commit
1979b03df2

+ 13 - 0
spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-URP.hlsl

@@ -43,6 +43,19 @@ uint GetMeshRenderingLayerBackwardsCompatible()
 }
 #endif
 
+// copy of an older version of InputData before additional members were added in more recent URP versions. 
+struct InputDataBackwardsCompatible {
+    float3  positionWS;
+    half3   normalWS;
+    half3   viewDirectionWS;
+    float4  shadowCoord;
+    //half    fogCoord;
+    half3   vertexLighting;
+    half3   bakedGI;
+    float2  normalizedScreenSpaceUV;
+    half4   shadowMask;
+};
+
 #if USE_FORWARD_PLUS
 // note: LIGHT_LOOP_BEGIN accesses inputData.normalizedScreenSpaceUV and inputData.positionWS.
 #define LIGHT_LOOP_BEGIN_SPINE LIGHT_LOOP_BEGIN

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

@@ -87,7 +87,7 @@ half3 LightweightLightFragmentSimplified(float3 positionWS, float2 positionCS, h
 	half3 additionalLightColor = half3(0, 0, 0);
 	shadowedColor = half3(0, 0, 0);
 
-	InputData inputData; // LIGHT_LOOP_BEGIN macro requires InputData struct in USE_FORWARD_PLUS branch
+	InputDataBackwardsCompatible inputData; // LIGHT_LOOP_BEGIN macro requires InputData struct in USE_FORWARD_PLUS branch
 	inputData.positionWS = positionWS;
 	inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(positionCS);
 

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

@@ -56,7 +56,7 @@ struct VertexOutputLWRP
 //                  Vertex and Fragment functions                            //
 ///////////////////////////////////////////////////////////////////////////////
 #if defined(_ADDITIONAL_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
-half4 CalculateShadowMaskBackwardsCompatible(InputData inputData)
+half4 CalculateShadowMaskBackwardsCompatible(InputDataBackwardsCompatible inputData)
 {
 	// To ensure backward compatibility we have to avoid using shadowMask input, as it is not present in older shaders
 #if defined(SHADOWS_SHADOWMASK) && defined(LIGHTMAP_ON)
@@ -102,7 +102,7 @@ half3 LightingLambertRamped(half3 lightColor, float attenuation, half3 lightDir,
 
 #if defined(SPECULAR)
 
-half3 ProcessLightPBRSimplified(InputData inputData, BRDFData brdfData, half4 shadowMask, uint meshRenderingLayers, int lightIndex)
+half3 ProcessLightPBRSimplified(InputDataBackwardsCompatible inputData, BRDFData brdfData, half4 shadowMask, uint meshRenderingLayers, int lightIndex)
 {
 #if defined(_ADDITIONAL_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
 	Light light = GetAdditionalLight(lightIndex, inputData.positionWS, shadowMask);
@@ -116,7 +116,7 @@ half3 ProcessLightPBRSimplified(InputData inputData, BRDFData brdfData, half4 sh
 	return LightingPhysicallyBased(brdfData, light, inputData.normalWS, inputData.viewDirectionWS);
 }
 
-half4 LightweightFragmentPBRSimplified(InputData inputData, half4 texAlbedoAlpha, half metallic, half3 specular,
+half4 LightweightFragmentPBRSimplified(InputDataBackwardsCompatible inputData, half4 texAlbedoAlpha, half metallic, half3 specular,
 	half smoothness, half3 emission, half4 vertexColor)
 {
 #if !defined(_TINT_BLACK_ON)
@@ -179,7 +179,7 @@ half4 LightweightFragmentPBRSimplified(InputData inputData, half4 texAlbedoAlpha
 
 #else // !SPECULAR
 
-half3 ProcessLightLambert(InputData inputData, half4 shadowMask, uint meshRenderingLayers, int lightIndex)
+half3 ProcessLightLambert(InputDataBackwardsCompatible inputData, half4 shadowMask, uint meshRenderingLayers, int lightIndex)
 {
 #if defined(_ADDITIONAL_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
 	Light light = GetAdditionalLight(lightIndex, inputData.positionWS, shadowMask);
@@ -201,7 +201,7 @@ half3 ProcessLightLambert(InputData inputData, half4 shadowMask, uint meshRender
 #endif
 }
 
-half4 LightweightFragmentBlinnPhongSimplified(InputData inputData, half4 texDiffuseAlpha, half3 emission, half4 vertexColor)
+half4 LightweightFragmentBlinnPhongSimplified(InputDataBackwardsCompatible inputData, half4 texDiffuseAlpha, half3 emission, half4 vertexColor)
 {
 #if !defined(_TINT_BLACK_ON)
 	half4 diffuse = texDiffuseAlpha * vertexColor;
@@ -334,7 +334,7 @@ half4 ForwardPassFragmentSprite(VertexOutputLWRP input
 #endif
 
 	// fill out InputData struct
-	InputData inputData;
+	InputDataBackwardsCompatible inputData;
 #if !defined(_RECEIVE_SHADOWS_OFF)
 	#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
 		inputData.shadowCoord = input.shadowCoord;