From 6161636068563719b73d888430fd43317e1ce784 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 9 Jul 2024 18:49:18 +0200 Subject: [PATCH] [unity] Fixed URP shader issue with bloom and HDR. Closes #2574. --- .../2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl | 3 ++- .../Shaders/2D/Spine-SkeletonLit-URP-2D.shader | 6 +++--- .../com.esotericsoftware.spine.urp-shaders/package.json | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl index 5d43116ab..878f380b4 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Include/Spine-Sprite-StandardPass-URP-2D.hlsl @@ -109,7 +109,8 @@ half4 CombinedShapeLightFragment(VertexOutputSpriteURP2D input) : SV_Target #endif half4 mask = SAMPLE_TEXTURE2D(_MaskTex, sampler_MaskTex, input.texcoord.xy); - main.rgb = main.a == 0 ? main.rgb : main.rgb / main.a; // un-premultiply for additive lights in CombinedShapeLightShared, reapply afterwards + // un-premultiply for additive lights in CombinedShapeLightShared, reapply afterwards + main.rgb = main.a < 0.001 ? main.rgb : main.rgb / main.a; // < epsilon prevents imprecision issues on some HW. #if UNITY_VERSION < 202120 half4 pixel = half4(CombinedShapeLightShared(half4(main.rgb, 1), mask, input.lightingUV).rgb * main.a, main.a); #else diff --git a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader index 2d59239bf..a3c0885b1 100644 --- a/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader +++ b/spine-unity/Modules/com.esotericsoftware.spine.urp-shaders/Shaders/2D/Spine-SkeletonLit-URP-2D.shader @@ -139,7 +139,7 @@ Shader "Universal Render Pipeline/2D/Spine/Skeleton Lit" { return main; #endif // un-premultiply for additive lights in CombinedShapeLightShared, reapply afterwards - main.rgb = main.a == 0 ? main.rgb : main.rgb / main.a; + main.rgb = main.a < 0.001 ? main.rgb : main.rgb / main.a; #else #if !defined(_LIGHT_AFFECTS_ADDITIVE) if (i.color.a == 0) { @@ -149,10 +149,10 @@ Shader "Universal Render Pipeline/2D/Spine/Skeleton Lit" { #if !defined(_STRAIGHT_ALPHA_INPUT) // un-premultiply for additive lights in CombinedShapeLightShared, reapply afterwards - tex.rgb = tex.a == 0 ? tex.rgb : tex.rgb / tex.a; + tex.rgb = tex.a < 0.001 ? tex.rgb : tex.rgb / tex.a; // < epsilon prevents imprecision issues on some HW. #endif half4 main = tex * i.color; - #endif + #endif half4 mask = SAMPLE_TEXTURE2D(_MaskTex, sampler_MaskTex, i.uv); #if UNITY_VERSION < 202120 return half4(CombinedShapeLightShared(half4(main.rgb, 1), mask, i.lightingUV).rgb * main.a, main.a); 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 561439859..60dadd51b 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.2.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)", - "version": "4.2.34", + "version": "4.2.35", "unity": "2019.3", "author": { "name": "Esoteric Software",