Terrain Environment Breakdown in Houdini & Substance Workflow
I recently started learning Substance Painter and Substance Designer and really wanted to add this set of skills to my Houdini workflow to produce higher quality renders. My first idea immediately jumped to Houdini heightfields! In the past, I always struggled with the texturing and material setup for my terrains generated with Houdini heightfields. Substance seemed like the perfect solution.
This is a breakdown of my first completed project with Houdini and Substance workflow. I have other smaller exercises that I did to experiment with Substance that I will probably share in different blog posts.
Houdini Heightfields
I started off in with some basic cylinder shapes in Houdini that are scattered together on a focus point. This will be my base shape for the entire mountain. Although this may seem super simple, I actually a couple of hours adjusting this in order to get the shape I wanted. It’s important to know that this will be the bread and butter of the entire terrain, so the base shape must carry a lot of interesting shapes within itself. Everything that is added on top will derive from this point
Next I projected the basic shape onto a heightfield with a heightfield project node.
Then I threw on some noise and terracing to breakup the very crude basic shape I started off. This is done to make it look less like what it was before.
Next came my favorite part in heightfields, erosion! Erosion will totally transform the heightfield into something that actually looks like a mountain and give it a more natural weathered look.
Here’s a screenshot of the erosion layers.
Next, I isolated the noise so the ground will look undisturbed. This will isolate all the noise, terracing, and erosion to only the mountain, leaving the ground flat.
Now I added some distortion to break up the cut lines from the previous isolation step. It turned out to be a very subtle effect.
Substance Painter
This is the base mesh with a simple one color layer applied in Substance Painter.
Next I added the Bone Stylized Material as the next layer in Substance for the base color of the dirt ground.
Next I added a Dirt Material that is masked out with one of the heightfield layers generated in Houdini. The Cliffs layer that gets generated by the heightfield will nicely placed only on the mountain and combined with the Dirt Material in Substance Painter it made a nice worn out look for the rock.
Next I created a new layer with a fill using a Grunge Dirt texture in Painter that is masked out with the Debris layer generated by Houdini’s heightfields. This breaks up the harsh dirt from the previous step. The previous step had hard lines and I wanted a more weathered look.
Next to get certain scratches on the rock, I tried several Substance Painter brushes, but in the end I choose the Kyle preset alpha 71 and dropped it into the fill masking. The actual fill layer is just a simple default material with black base color, roughness at 0.3, and height at -0.1475. The normal layer is left at default and the metal layer is turned off.
Next I wanted to highlight some of the crevasses to appear more deeper, so I added a black fill layer driven by the Ambient Occlusion.
Substance Designer
The ground had these islands that were generated by Houdini’s heightfield in the original base mesh, so I used these islands on the ground and filled it with a water material. The water material was generated in Substance Designer. It was a very basic water material with a bit of frosted ice on the surface.
Again I was able to isolate the islands on the ground very easily because I had masked it in Houdini Heightfields.
This masking image that was generated in Houdini was then used in Substance Painter to apply the water material only the islands on the ground, making it look like puddles.
Next, I added a dark gray fill layer masked out with a masking image I generated with Houdini heightfields that isolates just the mountain rock and combined this masking layer with a moss Smart Masking Material in Substance Painter which gave the caved in holes a bit more dirty look feel.
The flat areas on the ground looked a little plain, so I wanted to break it up with some dark spotted holes to make it look imperfect like it was been through some weathering. So I created a black fill layer with roughness of 0.3 and height of -0.5. This layer is then masked out with a masking image generated in Houdini heightfield isolating the flat ground (non-puddle areas).
Then I used the same moss Smart Masking in Substance Painter in combination with the masking images generated in Houdini to produce dark spots only on the flat ground. And because the height was adjusted to -0.5 on the fill layer the dark spots actually displace downwards like holes to give it a more 3 dimensional look.