You’ll likely have to use render targets until we have multi texturing support for sprites or native clipping support for spine scenes.
For render targets, you’ll want to pre-setup a bunch of slots, then you draw to the slots based on setting the slot’s material on what you want to draw. You will want a render target slot per unique card you want to draw. There is room for optimization here on your part to use special slots that use a slot and just normal card draws. There may be things I don’t know about that could optimize it further too.
go.property("my_material", resource.material("/material.material"))
function init(self)
go.set("#sprite", "material", self.my_material)
end
Then you draw each slot to a quad which corresponds to it. Now if you have a 3d camera you can freely rotate the card with clipping. You can even exchange data from the state of the card in the world to the initial render target render to do things like parallax offsets while rotating.
That’s skipping some details but it is the general idea. What you want to do should be possible currently though a tad annoying to initially setup.
There are full screen render target examples but afaik nothing specific to this situation using multiple for rendering things like this. It’s something I’ve wanted to make an example of for a while, an easy way to do it with 3d models and GUI is needed too.