From 1fe8f95e27ac9877a4176e01064a94a76413f57d Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 1 Jun 2023 16:03:50 +0200 Subject: [PATCH] [unity] URP shaders: Fixed more compile errors with old URP versions. --- .../Shaders/Include/Spine-Common-URP.hlsl | 20 +++++++++++++++++-- .../Spine-SkeletonLit-ForwardPass-URP.hlsl | 2 +- .../Include/Spine-Sprite-ForwardPass-URP.hlsl | 8 ++++---- .../package.json | 2 +- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-URP.hlsl index 81f9f9dd9..a56e218ea 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Common-URP.hlsl @@ -3,21 +3,37 @@ #ifdef USE_FORWARD_PLUS #define IS_URP_14_OR_NEWER 1 +#define IS_URP_12_OR_NEWER 1 #else #define IS_URP_14_OR_NEWER 0 + #ifdef UNIVERSAL_REALTIME_LIGHTS_INCLUDED + #define IS_URP_12_OR_NEWER 1 + #else + #define IS_URP_12_OR_NEWER 0 + #endif #endif #if defined(_WRITE_RENDERING_LAYERS) && IS_URP_14_OR_NEWER #define USE_WRITE_RENDERING_LAYERS #endif -#ifdef _LIGHT_LAYERS +#if defined(_LIGHT_LAYERS) && IS_URP_12_OR_NEWER +#define USE_LIGHT_LAYERS +#endif + +#if defined(_LIGHT_COOKIES) && IS_URP_12_OR_NEWER +#define USE_LIGHT_COOKIES +#endif + +#ifdef USE_LIGHT_LAYERS uint GetMeshRenderingLayerBackwardsCompatible() { #if IS_URP_14_OR_NEWER return GetMeshRenderingLayer(); - #else + #elif IS_URP_12_OR_NEWER return GetMeshRenderingLightLayer(); + #else + return 0; #endif } #else diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl index 517494ef3..560259251 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-SkeletonLit-ForwardPass-URP.hlsl @@ -46,7 +46,7 @@ struct VertexOutput { half3 ProcessLight(float3 positionWS, half3 normalWS, uint meshRenderingLayers, int lightIndex) { Light light = GetAdditionalLight(lightIndex, positionWS); -#ifdef _LIGHT_LAYERS +#ifdef USE_LIGHT_LAYERS if (!IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) return half3(0, 0, 0); #endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl index fc573a132..c835aa00e 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/Include/Spine-Sprite-ForwardPass-URP.hlsl @@ -109,7 +109,7 @@ half3 ProcessLightPBRSimplified(InputData inputData, BRDFData brdfData, half4 sh #else Light light = GetAdditionalLight(lightIndex, inputData.positionWS); #endif -#ifdef _LIGHT_LAYERS +#ifdef USE_LIGHT_LAYERS if (!IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) return half3(0, 0, 0); #endif @@ -136,7 +136,7 @@ half4 LightweightFragmentPBRSimplified(InputData inputData, half4 texAlbedoAlpha #else Light mainLight = GetMainLight(); #endif -#if defined(_LIGHT_COOKIES) +#if defined(USE_LIGHT_COOKIES) half3 cookieColor = SampleMainLightCookie(inputData.positionWS); mainLight.color *= cookieColor; #endif @@ -187,7 +187,7 @@ half3 ProcessLightLambert(InputData inputData, half4 shadowMask, uint meshRender Light light = GetAdditionalLight(lightIndex, inputData.positionWS); #endif -#ifdef _LIGHT_LAYERS +#ifdef USE_LIGHT_LAYERS if (!IsMatchingLightLayer(light.layerMask, meshRenderingLayers)) return half3(0, 0, 0); #endif @@ -215,7 +215,7 @@ half4 LightweightFragmentBlinnPhongSimplified(InputData inputData, half4 texDiff #else Light mainLight = GetMainLight(); #endif -#if defined(_LIGHT_COOKIES) +#if defined(USE_LIGHT_COOKIES) half3 cookieColor = SampleMainLightCookie(inputData.positionWS); mainLight.color *= cookieColor; #endif diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json index 500a7e917..3d23a707e 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/package.json @@ -2,7 +2,7 @@ "name": "com.esotericsoftware.spine.urp-shaders", "displayName": "Spine Universal RP Shaders", "description": "This plugin provides universal render pipeline (URP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 4.1.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)", - "version": "4.1.14", + "version": "4.1.15", "unity": "2019.3", "author": { "name": "Esoteric Software",