Author Topic: Texture Set Merging Issues  (Read 185 times)

I have multiple materials and when i export the textures i get a unique texture for every material and there is no simple option to merge all textures into a single one.
I realize this question has been asked and discussed numerous times but I can't help but feel dissapointed by the supposed "industry standard". I saw a post by the substance team explaing the techical difficulties of this (,which I don't understand to be honest) and why people choose this workflow of multiple materials for a single texture set, (to be able to easily make parts of the mesh invisible) which fits my situation.
My first question is what workflow I can choose in the future when I run into the same problem, where I want to work on parts of an object that are hard to see/paint on. The only other solution I found was to turn on alpha blending in the shader and set the alpha of textures to 0, which I find to be a terrible solution.
Secondly, how can I fix my current project? I found some texture merger scripts online but they dont seem to work without transparent backgrounds which I havent figured out how to generate.
I would love to avoid having to crop out and manually merge everything in PS.
I'm very new to Substance so apologies if I'm making obvious bummers, but this whole struggle made me really annoyed.

This is really a non-issue now because in the latest version of Painter we have geometry masking that can hide and show pieces of the mesh. This means we don't have to isolate by material ID anymore to do this. That was a major limitation prior and is no longer an issue.
I teach people how to use Substance Painter. :)

This isn't a great fix, but...

Once you get the transparent background you need: Photoshop >> Scripts >> Load Files into Stack. Browse to your (unending) list of material sets. Here, I filtered by map name, and selected the files (like all the normal maps). Photoshop stacks all the PNGs and then Merge all the layers. Then save. Not too bad.

Getting the Transparency was harder (and probably there's a better way): In Substance >> Texture Set Settings (window) >> (under) Channels, add an opacity channel. Then in each material add a fill layer and only tick the opacity channel (no other channel is represented in this layer).  Do this for each material.

In the Texture Exporter, I copied the template I wanted. Where there was an "A" square, I pulled "opacity" from the Input Column over the "A", and selected A channel.

You can't add "A" to these Output Channels (Substance Devs, maybe give us an "A" check box instead, a little boolean for us slow people). So rebuild the channels you need: that's usually the "RGB + A" button at the top of the Output Channels. Pull in the appropriate Input ("normal", "height" ,etc.) and select RGB for anything with color, Grey for rough, or height or metalic, and "A channel" for opacity.

It's a bit of work. And if someone has a better workflow, please share.