Home Technical Talk

Combining UV/ maps into ONE texture map

greentooth
Offline / Send Message
C86G greentooth
Hello guys.

I need your wisdom again.

I got a mesh (a character for example) that consists of multiple sub meshes and each one is unwrapped as a unique piece and has its unique textures. Now I want to combine it into one mesh, one UV map with combined textures. Let´s say a character has UVs for the body and UVs for the eyes and nails, each with maps. I want the maps to be combined into ONE map. How could I cachieve this? What tools and workflows would you recommend?

Thank you : )

Replies

  • Eric Chadwick
    Easy enough to do in most packages.

    Pack the maps using your favorite texture editing app, Photoshop for example. Put two 1024s together into one 2048x1024.

    Then adjust the UVs to match. Scale each 50% on the U axis, and reposition each on U to match the texture.

    Create a material, load the packed maps, assign to both meshes.
  • EarthQuake
    You could also create a unique UV map for all parts (pack it however you like) and bake all the materials down to the new uvs.
  • fatihG_
    Offline / Send Message
    fatihG_ polycounter lvl 14
    You can bake the original meshes to a combined mesh with rearanged UV's in maya pretty easily. 
    Simply load in your colour textures and what not in a material to the original mesh. And do a transfer maps.

    Should be able to do this in any app that lets your transfer maps/bake textures from a source to a different target.

    Diffuse is easy, as it is just colour information.
    I just tried transferring normal maps in maya, but it seems to treat normal maps as bump maps when baking, so it doesnt generate desired results.
    You can plug in the normals into the diffuse as well and just do another diffuse transfer.
    However normals are a bit trickier as it store directional information. So what that means is the UV's you have created for the combine mesh, needs all of the UV orientated the exact same way as the source meshes. So you can not rotate your uv islands.
    So if you have the original HighPoly as well, i'd suggest doing a new bake with the new combined mesh.
    Specular/gloss/roughnes/etc. you can do the same thing, just plug into the diffuse slot and do a transfer.
  • C86G
    Offline / Send Message
    C86G greentooth
    I was hoping there´s a one-click-solution like Instalod offers for example.
  • Eric Chadwick
    A couple choices to make though. What resolutions are the input textures? How do you want the layout to end up? Which material inputs are there? Alpha channels to account for? Normal maps to rotate/renormalize? Which maps are linear, which have gamma?
  • C86G
    Offline / Send Message
    C86G greentooth
    We need:

    - albedo
    - roughness
    - metallic
    - normals
    - alphas (would be nice to have them in the alpha slot of the albedo/ diffuse map since we use RMAs, but packing the separate maps wouldn´t be the main issue here)

    We have the standard PBR maps for each obejct and want to repack the UVs AND textures so that we can use one texture per map (one albedo, one roughness etc) for the combined meshes which had single maps with unique UVs. Normals do not have to be rotated, we mainly want the maps to be packed, not necessarily with the least possible amount of UV waste.

    The maps and materials should be usd in Unreal and such albedo would be SRGB, RMA would be RGB.

    Hope that helps and you got some ideas for us : )
  • Eric Chadwick
    What software do you have access to? I'd recommend to do it in Photoshop and Max since I know those best.

    What resolutions are each of the separate body/eyes/fingernails tecture sets? Determines how you can pack them.
  • C86G
    Offline / Send Message
    C86G greentooth
    head uses 1k
    body uses 1k
    finger nails use 512

    And these should be combined into one map. We got Max, Modo, Blender, Photoshop, Xnormal, Quixel Suite and Substance Painter.


    (btw, thank you for your help :) )

  • Eric Chadwick
    Hmm. Not a good combo. Some hard choices to make. 3 options I see:

    1. Put the head & body side by side. 2048x1024, manually in PS. In Max use UVW Xform to precisely align the head and body UVs to the new layout. UVW Unwrap to scale down those fingernail UVs into one of the gutters, that's the most manual part. But no resampling except for those fingernails.

    or

    2. Copy the models. UVW Unwrap on all three copies. Pack. Use RTT to bake from the original UVs into the copies' UVs. Pixels will be resampled, losing some detail. Normal maps have to be rebaked. But you can get consistent texel sizes across whole character.

    or

    3.Arrange all three in a 2048x2048. Same process as # 1 except keeps fingernails at 512 resolution. No resampling. But lots of wasted texture space.  Twice the memory cost of # 1.


  • Larry
    Offline / Send Message
    Larry interpolator
    Can this happen in 3ds max too? Say i have a robot with many single baked items, can i somehow pack them all together and then rearrange the textures to fit on them?
  • Eric Chadwick
    Yes you can. Render To Texture is the main tool for this.
  • Larry
    Offline / Send Message
    Larry interpolator
    Yes you can. Render To Texture is the main tool for this.
    That seems interesting. Thanks! Just to clarify, does it automatically rearrange e.g. the normal maps of all those objects into the packed texture or do i have to do this manually in photoshop? I have been searching for quite some time now and i cannot find the words as to what to search/how to do this.

    Edit: is this it?
    https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2017/ENU/3DSMax/files/GUID-A5B67F77-5E15-4171-BCDE-1C60154AD7C2-htm.html
  • Eric Chadwick
    Yes and no.

    It does not properly rotate the normal maps if the new UV layout has been rotated differently than the originals. You'll also get resampling, meaning that new pixels are created, which changes the existing normals. They'll need to be renormalized.

    Also last time I checked it doesn't convert from Normal Bump in the material back into tangent space normal maps properly. All kinds of artifacting when I tried last, several years ago.

    Better to rebake the normal map from the original highpoly using the new UV layout.


  • Larry
    Offline / Send Message
    Larry interpolator
    Yes and no.

    It does not properly rotate the normal maps if the new UV layout has been rotated differently than the originals. You'll also get resampling, meaning that new pixels are created, which changes the existing normals. They'll need to be renormalized.

    Also last time I checked it doesn't convert from Normal Bump in the material back into tangent space normal maps properly. All kinds of artifacting when I tried last, several years ago.

    Better to rebake the normal map from the original highpoly using the new UV layout.


    So what if i just plug the textures in the diffuse? ;O Does it still do the thing with the rotation? If this worked that would be a lifesaver because i literally spend a couple of days just to think and arrange my objects in specific textures

    Edit: sorry for the many questions, unfortunatelly i won't have my hands on 3d software for sometime to try it out myself. Thanks for taking the time to reply
  • Eric Chadwick
Sign In or Register to comment.