I found that those darken artifacts appear when:
- All textures used nearby are ATF texture (including none-spine object)
- some part of spine object uses 'Additive' blending
- that additive blending object also has 'color' animation (mainly fade-out effect using alpha)
I also found that using 'SCREEN' blending instead of 'ADD' can prevent darken artifact.
I edited code here :
https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as#L110
I'm not sure if this is related with ATF texture's none premultiplied alpha feature.
The code below is from starling.display.BlendModes.as, which was some fix for similar ATF artifact bug (from starling version 1.3)
private static var sBlendFactors:Array = [
// no premultiplied alpha
{
"none" : [ Context3DBlendFactor.ONE, Context3DBlendFactor.ZERO ],
"normal" : [ Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ],
"add" : [ Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.DESTINATION_ALPHA ],
"multiply" : [ Context3DBlendFactor.DESTINATION_COLOR, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ],
"screen" : [ Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE ],
"erase" : [ Context3DBlendFactor.ZERO, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ]
},
// premultiplied alpha
{
"none" : [ Context3DBlendFactor.ONE, Context3DBlendFactor.ZERO ],
"normal" : [ Context3DBlendFactor.ONE, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ],
"add" : [ Context3DBlendFactor.ONE, Context3DBlendFactor.ONE ],
"multiply" : [ Context3DBlendFactor.DESTINATION_COLOR, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ],
"screen" : [ Context3DBlendFactor.ONE, Context3DBlendFactor.ONE_MINUS_SOURCE_COLOR ],
"erase" : [ Context3DBlendFactor.ZERO, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA ]
}
];