I'm rendering by dynamically loading assets and attaching them to skeleton:
const atlas = new spine.TextureAtlas(atlasText, textureLoader)
const atlasLoader = new spine.AtlasAttachmentLoader(atlas)
const placeholderAttachmentName = PLACEHOLDER_ATTACHMENTS_MAP[slotName].attachmentName
const attachmentSkinEntry = skeleton.data.defaultSkin.getAttachments().find((skinEntry) => skinEntry.name === placeholderAttachmentName)
const placeholderAttachment = attachmentSkinEntry.attachment
const attachment = atlasLoader.newRegionAttachment(skeleton.data.defaultSkin, attachmentName, attachmentName)
const textureRegion = atlas.findRegion(attachmentName)
attachment.setRegion(textureRegion)
attachment.width = textureRegion.width
attachment.height = textureRegion.height
attachment.rotation = placeholderAttachment.rotation
attachment.x = placeholderAttachment.x
attachment.y = placeholderAttachment.y
attachment.updateOffset()
In this image when I use gl.clearColor(1, 1, 1, 1)
you can see that the staff in the left hand is correct and there's a faint blue glow (though it's hard to see). However, when it's rendered over other areas in the right hand you can see it still has this issue.
It sounds like it might be the additive blending you mentioned
"When a slot uses additive blending, its attachment is rendered additively when the image or video has a background color. If the background is transparent, the attachment is rendered additively when over other images, but it is not rendered additively where it is over the transparent background. If the attachment image uses opaque black, the black will be seen where it is over the transparent background. To avoid this, use transparent instead of opaque black."
What's the solution here? Thank you so much!