@NA-45 We discovered that the previous fix was incorrect (breaking behaviour at other tint black shaders at some parameter combinations). We're sorry for the inconvenience! We have just published a correct fix for the issue.
If you want to include the proper fix in your project, you can revert the change from
float3 texDarkColor = (texColor.a - texColor.rgb);
to
float3 texDarkColor = max(0.0, a - texColor.rgb);
Instead if you're using the shader Shaders/Spine-Skeleton-TintBlack.shader
, replace the line
o.darkColor = GammaToTargetSpace(float3(v.uv1.r, v.uv1.g, v.uv2.r)) + _Black.rgb;
with
o.darkColor = GammaToTargetSpace(float3(v.uv1.r, v.uv1.g, v.uv2.r))
+ (_Black.rgb * v.vertexColor.a);
so that _Black.rgb
is multiplied by vertex color alpha before being added.
If you're using Shaders/Spine-Skeleton-Tint.shader
, replace
return fragTintedColor(texColor, _Black.rgb, i.vertexColor, _Color.a, _Black.a);
with
return fragTintedColor(texColor, _Black.rgb * i.vertexColor.a, i.vertexColor, _Color.a, _Black.a);
The same applies at every occurance of _Black.rgb
in any shader, so also to URP shaders. Please see the diff of the commit (skip the Materials sections) for details:
EsotericSoftware/spine-runtimesf4c0f64