From e784103de99b468f738ffa9349c9fd84444cb024 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 6 Sep 2022 17:25:54 +0200 Subject: [PATCH] [unity] Fixed Sprite pixel-lit shader incorrectly applying secondary lights. Closes #2147. --- .../Shaders/Sprite/CGIncludes/SpritePixelLighting.cginc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpritePixelLighting.cginc b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpritePixelLighting.cginc index 8878df766..945e86f08 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpritePixelLighting.cginc +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpritePixelLighting.cginc @@ -222,6 +222,13 @@ fixed4 fragAdd(VertexOutput input) : SV_Target ALPHA_CLIP(texureColor, input.color) + // previous fragBase pass was zwrite pass, so overlapping regions require + // full alpha applied since they are applied only once. +#if defined(_ALPHAPREMULTIPLY_ON) + texureColor.rgb /= texureColor.a == 0 ? 1 : texureColor.a; +#endif + texureColor.a = 1.0; + //Get normal direction fixed3 normalWorld = calculateNormalWorld(input);