What is the proper workflow to use Houdini 16.0/.5 and Substance Painter?

   13637   5   5
User Avatar
Member
9 posts
Joined: Sept. 2017
Offline
Hey folks, I need someone to shed some light on this subject for me. I also did a similar post in allegorithmic forum.

I'm studying what is the proper workflow to use when integrating Substance Painter and Houdini.

The first thing I found out is that allegorithmic has a plugin for Houdini, so I tried it a couple of weeks ago and I it just failed to show up inside SHOP network. I made a post in allegorithmic forum and got a response Oct 30, saying they had updated the plugin and it did work after that update BUT the big downside of it is that the plugin only reads SBAR files, that are only exported from Substance Designer and not Painter.

The solution was export from Substance Painter the texture maps with the PBR MetalRough configuration and inside Houdini I did the following:

Inside principal shader texture tab, plug: Base color; Roughness; Metallic.
Inside principal shader Bump & Normal tab, plug: Normal.
Inside principal shader Displacement tab, texture slot, plug: Heightmap.
*Adjusted the effect scale to 0.1*
Set Roughness to 1
Set Metallic to 1

That gave me most of what I was looking for, but the Metallic aspect of things did not quite match with my Substance Painter Iray look. Back to the forums I dug into this post
https://www.sidefx.com/forum/topic/48839/ [www.sidefx.com]
Where RobsDesign talks about some of the issues between Substance Painter and Houdini, but this post is from a Year ago and I don't know it the issue he reported still valid.

So I would love to know from someone more experienced:

WHAT IS THE PROPER WORKFLOW between Houdini and Substance Painter?
Am I doing the right way?

Last but not less important, I did some rendering with the settings I said earlier, got an EXR from it, did some color correction with After Effects, Shadown/highlight and Curves adjustments, and got an output that I'm happy with.
You can check the output and some process shots here http://bit.ly/2zSnrFM [bit.ly]
Rafael Drelich
Designer
FX apprentice
User Avatar
Member
236 posts
Joined: March 2015
Offline
Hi, this will be long post, I've gained more experience using this combo so I might as well share it.

I've attached screenshots of my settings to export from Substance for Mantra.

Notice that I use a separate export for Displacement. This is because the height is combined with the normal for the normal map export, so you can paint height and export as Normal. (This is what the Converted Maps in Substance does)
If you export the height and normal together (ie. PBR MetalRough config), you're effectively displacing the same detail as the normal map. You may want to do this for certain situations but I prefer to use them individually.

ie.
(a) Paint height for normal export (small details, bumps etc)
(b) Paint height for displacement export (larger details)
Disable/Hide (b) and export using Houdini config
Disable/Hide all except (b) and export using Houdini_Displace config

Regarding general workflow
This is how I do it, not the only way to do it.

1. After modelling, group geometry into material sets using the Material sop.

2. Name your shaders - If you create names for shaders, they'll be used as names for TextureSets in Substance, which can be exported based on those names and eventually loaded back into in Houdini using these following expressions in the shader.
$HIP/tex/XXX/$OS.Color.png
$HIP/tex/XXX/$OS.Roughness.png
$HIP/tex/XXX/$OS.Metallic.png
$HIP/tex/XXX/$OS.Normal.png
etc.
This means the only thing you need to change is the XXX folder name. (I base this on the model/part name) This is very useful when you have multiple materials and saves a lot of typing in filenames manually.

3. You'll probably do (1) & (2) together as you need to link (1) to (2) using the correct Shader name.

4. Export FBX. (File > Export)

5. Import FBX into Substance Painter - The named shaders should be displayed in the TextureSet List.

6. Export textures into $HIP/tex/XXX/ (just use file browser to locate hip folder and create XXX folder inside) Using the config I've attached, the file names will work with the expressions.

7. Back in Houdini - Use those expressions for the filenames.

8. Render. You can switch over to Substance, edit and re-export. The textures will update in Houdini either when you next render or by using Render > Update Textures.


Regarding metal looking different.
Make sure metallic is exported from Substance as Gray not RGB and use the exact same lighting. I looked into this when I spotted differences and found they actually match very well. If you are referring to the viewport then yes, Houdini does look different to Substance. Just use Substance as a guide to how it will render in Mantra (ignore viewport)

Regarding Principled settings
Yes, those are correct. The way it works is as follows (ie. metallic map)
Metallic is black = Non metallic, White = Metallic. The Principled parameter value is multiplied with the texture map. So, a default value of 0 (black) is multiplied resulting in black (no change). If you set this value to 1 (white), white is multiplied, resulting in the texture map's values.

Regarding Displacement values
These will differ depending on how you build them in Substance so you may be dialling it down because the two aren't matching. You can use the Displacement Offset in Houdini to fix this but it's usually better to create matching values.
ie. You may have exported black = no displacement, white = displacement but are using grey = none, black = in, white = out. As you can't really paint displacement in Substance, you need to paint it using height and see what it looks like in Mantra. (or viewport to some extent) It may also be due to my first point regarding displacement, you're displacing the same detail as your normal.

Rob

Attachments:
SP_Config.jpg (530.8 KB)

User Avatar
Member
7025 posts
Joined: July 2005
Offline
Nice one thanks!

You can view Displacement in Substance Designer I think? There is a shader that will do it (again, might be forgetting).

I do wish Substance Painter would support more high-end VFX things like UDIM and Displacement. I'd be fine if it was only iRay preview, which iRay can definitely do but isn't supported by Painter.

Cheers,

Peter B
User Avatar
Member
7025 posts
Joined: July 2005
Offline
Oh, by the way, FBX export from Houdini isn't available in Apprentice, you need to use OBJ. Unfortunately, the Houdini OBJ saver doesn't save the Material .mtl though it's possible to hack that in separately. sidemjay has posted a script to do this somewhere on the forum

Cheers,

Peter B
User Avatar
Member
236 posts
Joined: March 2015
Offline
Ah, I wasn't aware of that limitation on Apprentice. I remember that post as I contributed to it so I 've managed to find it in my post history…
https://www.sidefx.com/forum/topic/42169/?page=1#post-189542 [www.sidefx.com]

Regarding UDIM. - https://support.allegorithmic.com/documentation/display/SPDOC/UDIM [support.allegorithmic.com]
As far as I know, Painter does support UDIM, I just don't use it. I do split models into multiple UVs and I can see it being useful if you want to view all of those UV's together but I tend to just isolate a UV to view it in 0-1. I expect there are other benefits and I may look into it at some point.

Regarding Displacement. - Yeh, it would be nice. I think they are intending on adding it at some point but it doesn't seems like it's a simple task. (Version 3 maybe?)
I remember hearing something about getting it to work with iray but it's not really a solution. (especially as one of Painter's main strengths is to paint in real-time). I haven't used iray much (at all) so correct me if I'm wrong but I think it would need to use the Displacement channel, which only displays the values (not results) in real-time. (black/white flat texture) So, to use iray, you'd need to paint displacement completely flat, then view it in iray. I prefer to paint a separate height map so I can get some sort of real-time visual representation of displacement height and export to Houdini to test. (user preference I guess)

Rob
User Avatar
Member
143 posts
Joined: Oct. 2015
Offline
Hello ,
Nice to read about this combo
I use both program together too
And i already answer to your post, rafael, on the substance forum.

If you put a displacement map in substance painter you can now use the parallax occlusion mapping effect
in Common Parameter to see it live.

One workflow i use the most now is :

-create a digital asset in houdini
-export ID map from houdini
(so i don't use vertex fbx color but primitive color , it's cleaner , you don't get mixing color interpolate)
-for my last stuff i also export the rounded normal in 16.5
-create a Smart Material in Painter
-bake the others map in painter
and , that's it , you get a procedural asset with texture
too bad i don't know how to batch it , to have all this process done automaticly
i think you have to own designer , to do it (use the batch command)
I've done two video to demonstrate this workflow…
tell me what you think !

Cheers ,

Ben





renders :

House renders [www.artstation.com]

“Tank” renders [www.artstation.com]
Edited by Benjamin Lemoine - Nov. 17, 2017 10:25:01
  • Quick Links