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.
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