[H2U] Trees, sand, water and spookiness 🎃

Last day of week 4 of my graduation work ‘Houdini to Unreal’.

This week I worked on making procedural trees and their placement on the landscape. I also got rid of the cel shading post processing effect because it was messing with the water and didn’t really give me the look I wanted. However, I’m still going for a stylized look.

I wanted to get a little bit of a mood in the scene and decided to go with this months theme: Spookiness. So I added some fog effects and darkened the scene a bit. This also gives me some freedom to work with lights I’m planning to add in the future.






For now the trees only vary on height but I have a lot more parameters ready to implement into unreal. They are also spread based on a density value and the trunk shape is defined by a float ramp.


Variable I have working in Houdini and I’m planning to add to Unreal:

  • Leaves variation
  • Leaves start height
  • Leaves segments
  • Bending according to location

Tree placement:

Trees are placed based on where the grass is (red zones). Right now they’re randomly placed and that works for what I need. Adding some logic to the placement, such as natural growth and considering trees colliding, is something I’m keeping on the long term to-do list but isn’t really a necessity for now.




I added a variable to define a water level. This stops the grass and transitions into sand by using vertex colors (red to green, where red is grass and green is sand). It also makes sure trees don’t grow in the water.



A kind of useless addition to this project but a needed one: underwater effects.

Every time I went underwater nothing happened and it really broke the immersion. To fix that I added a little post processing water effect when going underwater that nicely fades in and out when the camera goes underwater.



That’s all for this week. Next week I’m going to look into adding little dirt roads based on splines with fences and lamps next to the path.

As usual if you have any questions I’d be happy to answer them.


Sooi out.



[H2U] Procedural Terrain generation & texture baking

Hello and welcome to my first blogpost!

I decided to start a blog for the projects that I’m working on that are less suitable for my artstation (https://www.artstation.com/sooi). I’ll also use this blog for the more technical stuff because it’s a lot easier too explain what’s happening on here.

So, currently I’m working on my graduation work which is ‘Houdini to Unreal’. Focusing on procedural terrain and the gameplay aspects of it.

This is what I currently have:


It works like a contour map with height lines defining the elevation of the terrain. (based on a video from Ari Danesh: ‘Topology Curves to Create Terrain’ but adapted to work with unreal input.)

This slideshow requires JavaScript.

It’s based on 2 geo nodes (Slide 01). One for the 2D terrain and one for the 3D terrain.

Starting with the Terrain_2D node. It takes spline inputs from Unreal and stores the elevation of each point in a variable with a PointWrangle (Slide 02).  Then it projects those splines down on a plane (Slide 03).

The Terrain_3D node takes this 2D plane and triangulates it (Slide 04). After, it applies the elevation stored before back to the points (Slide 05).  Subdividing and comparing each normal with the up normal gives us a rough group to divide the terrain into grass and rock zones. (Slide 06). To make the terrain look a bit more realistic I use several Mountain nodes with different types of noise (also based on the GrassGroup defined before). This gives us the terrain geometry. Now for optimization I also included a PolyReduce node so you can define a desired polycount for your terrain (Slide 07).

The last thing I added was vertex colours to have the ability to add blending for materials in unreal (Slide 08). Right now I’m using the red channel for grass. I might add options for the blue and green channels.


I experimented with a toon post processing effect in unreal to make the terrain look a bit more appealing. In the above image you can also see the material blending with a amount variable to customize it to your liking.

Besides terrain generation, I’ve also been experimenting with procedural textures and texture baking inside Houdini.


On the image above you can see a procedural rock I made as a test. This asset outputs two pieces of geometry, a high poly model (right) with all the desired and customized detail and a low poly version (left) of that with a target poly count. The asset also outputs certain chosen maps such as a normal and AO map which it renders procedurally inside Houdini using the UV space of the low poly mesh that is also unwrapped automatically. In the middle of the image you can see the low poly mesh with the normal map baked from the high poly mesh applied on it.

I’ve also tried using this for the terrain I’m working on. I’m not really happy with how it works on terrains as artifacts are a lot more obvious and it can be quite clear in the silhouette that there is a normal map in use. I think this could be fixed with covering up the ground with grass and/or rocks, but that’s something I’m going to try later.

I’m still researching the applications for this but I think it is really interesting especially for games and performance.

That’s pretty much it for now.

If you have questions feel free to contact me at sooi@cherchye.com or wherever you please.

Stay tuned for updates!