🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Unwrapping similar models to same texture

Started by
3 comments, last by riuthamus 8 years, 3 months ago

I'm a programmer, not a 3D modeller but in the not so distant future I might have to recruit a freelance 3D artist to create some characters for me, and I want to know more about this subject so I can specify how I want the deliverables to work.

Consider the case:
I've got a chest piece in 2 versions, male and female.
I want them to share the same texture (or set of textures)

The meshes are different - it might just be the case that one mesh is a deformation of the other, but there might also be vertices/tris that aren't shared between the meshes (boobs :) )

Is there any technique to have 2 unwraps of similar meshes be compatible so they can share a texture? I know of course it's theoretically possible but is it easy to do using existing tools?

Developer journal: Multiplayer RPG dev diary

Advertisement

Well, depends on how much work you want to do...

You can always unwrap in your 3D Package of choice, and then manually adjust the unwrapping later. Meaning, pulling the vertices into the right place until everything fits nicely.

A lot of work? Yes. But as long as the two objects have a similar topology, and the seams at similar places (as opposed to the same topology with completly different seams, which will never fit nicely without any texture stretching), you will be always able to make it fit.

Now, in your example texture stretching should be pretty fine. If pieces are more distorted, that might turn into a problem (Like trying to fit pants from a dwarf to a tall, skinny guy).

Then there is the problem with baked normals... these normalmaps are usually baked in correspondance with the normals of the polygons they are on, as well as the normals of the vertices surrounding the polygon. Depending on the tool used to bake them, applying the normal map to a different model might show artefacts at some points, because while the unwrapped topology is spot on, the shading generated by the vertex normals might differ, thus the normal map no longer fits perfectly.

Not huge artefacts you can expect here, but might still be problem. As said, depends on the tool you use for baking and what kind of normal maps we are talking about.

In 3d coat at least, there is a way to "remap" a texture baked/painted for one mesh to another one with a different UV map. I cannot find the video that explains the technique right now, and never got around to try it myself, but just as an example that there might be tools out there that automate tedious things like this for you, you just need to keep looking for them.

Thanks - that was a very detailed answer - you also answered a couple of relevant questions I didnt ask:)

Developer journal: Multiplayer RPG dev diary

I've tried this to some degree. Basically it is often easier to unwrap each model separately (unwrapping a model in decend quality is done in 10 mins, you don't need hi-professional unwrapping for your game project most of the time, leave this to AAA budget games).

Reusing parts of the texture is often harder. What works best for me was to work with two uv -sets, bake the source texture to the target texture and use the target texture as paint base. E.g. you have a standard in-game uv-set (just unwrap the model) and a special uv-set which fits an existing texture (you don't need to cover everything, e.g. no need to fit a female face on a male model). Then bake the source texture with the special uv set to the target texture with the standard uv set. This works most of the time, still you need to rework the target texture.

Im not sure this will work out like you want. In some ways you will get some odd stretching. If you dont mind that just bake the texture out from the one model with the wireframe as a layer. Import to the new model as a base texture and map your UV's with that as your base. This will help you a lot. You could try what Reto said, but myself I have not used 3d coat to do that. I tried several times and failed....horribly! :P either way, good luck.

This topic is closed to new replies.

Advertisement