Page Header

Noise Stacking + Apply Terrain + River Carving + New Terrains

Sat down today and tried to wrap my head around making the terrain look more realistic. Before today the terrain looked really smooth, even when the Smoothing Passes were set to zero, almost made the terrain look plastic/fake.

So I read some whitepapers/research posts and came to the conclusion that I can resolve my problem by stacking multiple noise layers together to generate a more rough (but overall still somewhat smooth) terrain noise.

Now what makes this possible? Three things:
  • Frequency
  • Amplitude
  • Offsets
We assign a variable to each of these and allow each layer to have a different Frequency, Amplitude, and Offset. When these layers are generated we then normalize the layers by stacking them and then clamping they're max height.

And to wrap it all up, we scale the height of the generated HeightMap stack by the relative max height value in the widget, run our smoothing passes, and BOOM! realistic terrain.
You can really see the difference in using the stacking technique in the image below. It's essentially dialing up the roughness, but with a bit more randomness. We maintain the same overall shape of the terrain thanks to our seed value, but it just helps the overall feel of the terrain be more natural. Albeit random, but natural.
The second bit is mostly a workflow improvement. It's great that we get the ability to export the RAW and  Splatmap image files, especially for backup purposes. But for just quickly generating and importing the terrain data to your scene, it was a hassle.

So, I added an additional button to grab the current active scene's FirstOrDefault() Terrain component, and send through the byte array data of the Heightmap and Splatmap.

In my perfect world, you'd be able to see the terrain in a SceneRenderingWidget() inside the Terrain Generation Tool Widget, but that is another feature for another day. This gets us in a much better stance as far as adoption of the widget.

One of the features I wanted to add most was dynamic/input based river carving. This would, in it's over simplification would generate turbulence in the noise in the form of river-like lines across the noise image, affecting the Heightmap output.
New terrain shapes have been added, more will be added fairly quickly as fine-tuning noise shapes is not very difficult. Unfortunately this didn't take priority over other features, but now that the larger features are out of the way and implemented, more terrain shapes and sub-categories are on the way!

Comments