I've got my own custom build gpu skinning shader working and now I'm thinking about how I want to support character customization. This seems like a real puzzler.
Skins seem problematic. It's a lot of data to maintain and I don't see how its compatible with mod authors. If someone adds a new type of head, I could create a dynamic attachment, but don't I have to now bind additional textures or re-stitch the atlas? That doesn't seem to scale well.
I could generate a small atlas per character at runtime, cached and keyed by the selected options, but that's wasting a lot of texture memory for duplicated body parts.
I had the idea that I could send uvs in a uniform buffer, instead of making them vertex attributes. Or I could calculate a UV offset for a given appearance. So if you chose orc head 0, it would use the attachment uvs. If you chose orc head 1 it would offset the uvs by the positional difference of head 1 in the atlas. This would be pretty efficient, but still doesn't work with mod authors images.
I'm sure I'm overlooking the obvious simple answer. Searching the forums hasn't been very illuminating.
I think I need to break the problems apart. What's the best way to handle third party images for replacements for attachments?