Distributing UV's of a joined object to different textures

(Xortag) #1

So far, i have not found a way to prepare a mesh for substance that is in need of multiple textures caused by texel density. Think of a character that has the head, body and leg parts joined to be a single mesh, while each body part has it’s own uv. Exporting this to substance would create 3 texture sets, but you want to have the body into one 2k map and the head and legs also into one 2k map.

For objects where my texel density require only one texture, everything is fine and i use the bake by mesh name or by material id inside substance.

For now, i have a mesh out of 8 pieces, each with a own uv, joined into one object. A simple unwrap along with packing will distribute all object islands into one texture. To keep a proper texel density of 2048 px/m, i require 3 2k maps where the 8 object uv’s are distributed over.

I prepared a little example to show the stage im struggling with. It consist of 4 objects, quickly unwrapped and then joined. Now i need the big cube as a single texture while the other 3 floaters can share a single one. (The Colors are just materials as preparation for the ID mask.)

Preview of the Blend file: demo

Blend file: demo.blend (100.1 KB)

I can’t get my head around this and watched hours of tutorials just to see how it does not work. So any help is welcome.

(cgCody) #2

You control texture sets by material. So in your example you would create a material called MyCubeMat and apply it to the cube. Then create a material called MyFloaters and apply it to all other objects. Substance will then create two texture sets; MyCubeMat and MyFloaters.

And if you haven’t already, the Texture Atlas plugin (activated from preferences > add-ons) is a big help in laying out several objects into one texture space.

(Xortag) #3

Thanks for your reply cgCody. I have the texture atlas addon activated but never gave it a try, so far i’ve used the texel density checker addon only to get the proper texture sizes and in most cases, my props fit into one texture.

In the example, the cube has 2 materials (orange and blue) to get the proper ColorID’s. How would i avoid ending with 2 textures for the cube? Can this only be avoided by using vertex colors for ID masking and material assignments for texture sets?

(cgCody) #4

There may be other ways to go about it, but that’s my workflow.

In a similar discussion, someone pointed out a tool that makes the ID masking portion easier. I haven’t had the chance to play with it yet, but maybe it’ll be of help. Setting up model with many objects for Substance Painter

(Richard Culver) #5

It is pretty simple. We do it in phases. One step is UV unwrap, next is layout or packing. At the packing strage we decide how many texture sets. Then we decide what material ids are needed and assign then bake. Once the baking is complete a new file is set up with materials for substance based on texture sets or separate objects. Then export form that file and use the material ID maps we baked to assign materials within texture sets.

(Xortag) #6

You are right Richard, and i managed the island distribution to multiple texture sets now. I was confused by my highpoly that uses materials for ID masking instead of texture layouts. The baking is done in substance and in most cases i use the “by mesh name” option for the high<->low baking as well as “by Material” for the ID masking. As the ID map get’s it propertys from the highpoly, your lowpoly can have a different setup.