How to use Displacement maps in Substance Painter (Update 3)

Oh yes!

With the latest release of Substance Painter (2019.1) we have true, tessellation based displacement in the viewport and in Iray as well.

Finally we can see exactly what the height (or displacement) values are doing. šŸ™‚
You will find the controls inside the Shader Settings.
2019-04-24_230150

Cheers, D

My original post:

Hi there,

Unfortunately you can’t bake height/displacement map directly in Substance Painter.
If you have a really high resolution model for example in ZBrush, you can create a true dispalcement (32 bit/channel) map for its low/mid resolution version.
You can use that map in Substance Painter as Height map.

If the displacement texture is a 32 bit/channel .exr file you can do this:

  • Import the low res object to SP
  • Import the displacement texture to SP
  • Create a fill layer (Turn off the unnecessary channels in that if you want)
  • Set the UV Scale to 1
  • Load the map to the Height slot
  • Add a Levels modifier to the fill layer
  • Set the Affected channel to Height
  • Click the Auto button (You may have to adjust the Levels – just like in Photoshop)
  • Update 2! In case you’ve got stair step like results you have to change the Height channel depth (TextureSet Settings -> Height L16F to L32F).

Of course the simple way is, you don’t use dispalcement maps but Normal maps.
It’s not the same, but so much faster.
SP can bake the normal maps super fast for the low/mid res object using the high res object.

Update!

Since Substance Painter supports the Parallax Occlusion feature we have an additional way to visualizeĀ displacements. You don’t have to do too much to use the PO.

  • Add a Displacement ChannelĀ atĀ the TextureSet panel
  • Update 2! You have to turn on the “displ” channel for that specific layer which you want to use as displacement, and you have to connect the same texture you used for height (with the same adjustments). Also with Substance Materials you have to check the Channels mapping section, because Substance usually assign the Diffuse or other maps for the Displacement component (You need the Height component of course).
  • Go to the Viewer Settings panel -> Shader section, enable the Parallax Occlusion Mapping feature
  • TheĀ PO is not a true displacement (just a smarter shading trick) use it wisely (low strength values)
  • Works best on flat surfaces

Cheers, D

11 comments

  1. Hi! I followed your instruction and when I clicked Auto Button at the end. my obj turned black. Do you know why? Thanks! šŸ™‚

      • Ć«ĀŒĀ€Ć¬ĀšĀ©Ć«ĀŸĀ‰ ƬĀ²ĀØĆ«Ā¶Ā€Ć­ĀŒĀŒĆ¬ĀĀ¼ 2ĆŖĀ°Āœ(67MB)Ć«ĀŒĀ€Ć¬ĀšĀ©Ć«ĀŸĀ‰ ƬĀ²ĀØĆ«Ā¶Ā€ Ć­ĀŒĀŒĆ¬ĀĀ¼Ć¬ĀĀ€ 30ƬĀĀ¼ĆŖĀ°Ā„ Ć«Ā³Ā“ĆŖĀ“Ā€ / 100Ć­ĀšĀŒĆŖĀ¹ĀŒĆ¬Ā§Ā€ Ć«Ā‹Ā¤Ć¬ĀšĀ“Ć«Ā”ĀœĆ«Ā“Āœ ĆŖĀ°Ā€Ć«ĀŠĀ„ 4_2monk_alpha-DM1001.exr 33MB 4_2monk_alpha-DM1002.exr 35MB Ć«Ā‹Ā¤Ć¬ĀšĀ“Ć«Ā”ĀœĆ«Ā“Āœ ĆŖĀøĀ°ĆŖĀ°Ā„: 2017/01/26 ~ 2017/02/25Hi! Thank you for the reply! yes i set level to height.. but it didn’t work These are my files! šŸ™‚ Really thanks for trying for me. šŸ™‚

      • oh..! well.. after hours of trying different ways. I decided to follow your last advice. just using NormalMap works great.. Thanks though! šŸ™‚

    • By the way, You can’t get a black surface if you adjust only the height values.
      Maybe you connected the map to the base color?
      I’ll create a video tutorial for this soon.
      Cheers, D

  2. hi sir. i am more interested in knowing if we can use this displacement map plugged in height channel to add generators like edge detect? cz once i tried, it failed to consider the edges and height and i couldnt get the edge wear.

    • You can modulate generators via its Micro Details feature using height data (Micro Height input).
      You can use Anchors as well to link the Height data form other layers.

Leave a reply to Kim Jae Hyun Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.