Protrude From Height - custom Substance Designer node

General / 13 September 2018

Hi everyone.

I just wanted to share with you all a custom Substance Designer node that I created that's proved to be really handy in lots of situations. I used it in my cracked paint material, and it'll be used again in plenty of my future materials.

I've called this node "Protrude From Height". Not the most snappy name I know, but I think it's pretty descriptive. The purpose of it is basically to allow the user to easily put one height on top of another height. For example, if you wanted to put small rocks on top of an area of varied terrain, or maybe put barnacles and limpets onto rocks. I've made some diagrams to better explain what the node and it's settings actually do.


This shows the two heights I used in my examples and the resulting output (settings = Height Balance: 0.333, Blur Amount: 8, Mask Edge Blur: 1.5).

Height Balance

This shows the effect of changing the 'height balance' setting. The combined heights are normalised to the stay within the 0-1 range and the maximum amount of height depth possible is allocated to each height input. The secondary height is then pushed up by the primary height so that it sits on top.

Blur Amount

This shows the effect of changing the 'blur amount' setting. This blurs the height that the secondary input is pushed up by, reducing how closely the secondary height follows the contours of the primary height. If set to 0, all the roughness of the primary height is passed through to the secondary.

Mask Edge Blur

If 'blur amount' is set to a very high value two things will happen:

  1. The secondary height will sink in high areas, and raise up in low areas.
  2. Any raised up shapes will have steep edges which causes stretching/stepping artifacts...

To fix this I've included a 'mask edge blur' setting which softens off the edges of the mask used to add the 'pushed up' secondary height to the primary. This mask represent the silhouette of the shapes in the secondary height and assumes that all but a height of 0 (black) should be pushed up. This mask can be overridden by setting 'use custom mask' to true. The node also outputs a mask of the parts of the secondary height that protrude above the primary, which can be used to apply different colour, roughness etc. to the protrusions.

For anyone who's interested in the node but doesn't want to buy a whole material to get it, I've made it available separately on my Gumroad at - https://gumroad.com/l/protrudenode. If you've already bought a material that includes the node (currently just the cracked paint) an update will be available shortly that includes the latest version of the node. I hope some of you find this as useful as I have. Enjoy!


Matt.