Home Technical Talk

Is it correct to unwrap multiple objects into one texture or should it be done the other way around?

kaitoren
polycounter lvl 3
Offline / Send Message
kaitoren polycounter lvl 3
Hi everyone. I'm working on a model to export it to Unity. The model is a character and it consists of several meshes (body, hat, eyebrows, sunglasses, etc.). I would like each mesh to be kept separate to be able to animate the character correctly, but I have a doubt about the way to unwrap it. At first I thought about working on each mesh separately, but unwrapping all meshes at once and using only one texture for all of them would be much more convenient (and thus not having a kilometer-long texture folder).

Is it an ok practice to do this or is it better to make each mesh with its own texture as I thought initially? Thank you in advance.




Replies

  • oglu
    Offline / Send Message
    oglu polycount lvl 666
    Depends on your pipeline and limitations. Our cinematic chars does have textures for each object sometimes with UDIMs. 

    The game chars do have one or two texture sets. Sometimes three for extra gear.

    On some games the chars does have multiple outfits. So every part does have its own texture. 

    Its up to you. Make it look cool and dont worry to much about textures. 
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    One texture page is almost always more performant. 
    The only times that isn't the case is where many objects use the same sort of surfaces and can share a small number of textures between them or if the resultant  texture is so big you cant fit it in memory
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Its generally a good idea to split materials and texture sets based on shading. For example, you don't want the cloth to have sss while you want the skin parts to have. So the most logical way to split in this case, is to have a texture set for the skin parts, and another for everything else. 
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    That is a good point although I'm not sure you'd see any advantage from a separate texture as long as the same packed maps are shared between two materials. 
     I'm not familiar enough with unity to be certain in that. 
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    In this case, you wouldnt share textures either. You would have an unwrap containing the skin parts, and another one for everything else.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter

    With that approach you're loading more separate textures which can be a bottleneck in some circumstances. 

    Neither is wrong, you pick the best approach based on everything else that's going on. 
  • EarthQuake
    Another good example of where it makes sense to split textures up is alpha blending. If you have some small component of the asset that needs alpha, you should split that off into another texture set/material if you can. Generally (8-bit alpha, DDS compression), storing alpha doubles the size of the texture, so if only 10% of the asset needs it, it can be wasteful. You don't want to have a shader with alpha on the full asset either if you can help it, because overdraw etc.

    Like Obscura mentions, examples like skin shader make sense too, especially if your skin shader requires an additional subdermis or thickness map or something like that. If 70% of it went unused that's pretty wasteful as well.

    Draw calls (how many materials are applied to one mesh) may be an important consideration as well but this can vary somewhat and most modern games/engines are probably only draw call limited in cases where you're seeing the same asset 100s of times on screen. For a main character or something like that whether it has 1, 2 or 3 draw calls is unlikely to be significant. The complexity of the individual shaders will be much more important.
Sign In or Register to comment.