#2 - Early Landscape Auto-Material

 #2 - Early Landscape Auto-Material



I had a good base grass filling out the scene, now I needed to give the landscape itself some attention, to turn it from a large green soup, into a more appealing base to work from.

Getting an auto-material set up in order to automatically apply a different material to sloped surfaces, and introducing some large scale colour variation went a long way in achieving this.




This step made an unbelievable difference to the quality of the scene almost immediately, and thanks to shader trickery (thanks PrismaticaDev!), it also took very little manual work.

I also spent a good amount of time tweaking the lighting conditions and post-processing settings, based on feedback I've received so far, specifically, feedback about pushing the post-processing settings further.

The material graph ended up looking like this:


This is after quite a bit of clean-up, of course, as the result immediately after getting it working was complete spaghetti.

Some of the main features are:
  • Automatic Cliff/Slope Masking
    • Masks slopes, will eventually use a heightmap to break up the transition.
  • Runtime Virtual Texture Output
    • Ouputs the landscape colour, which is sampled by the grass, and eventually other things.
    • Outputs the landscape height, which will eventually be used to blend the transitions of objects with the landscape, and possibly some other features.
  • A Tiling Noise Mask
    • Currently only applied to the "Grass" layer, but it mixes two colours based on a noise map that tiles across the landscape to add some colour variation.
  • Instanced Foliage Output
    • Basic UE feature, but this tells the engine where to spawn grass meshes.
The shader is still lacking a lot of features and layers I'll need for the final scene, including:
  • More layers
    • Dirt, Snow etc.
  • Wetness, for areas around the river.
  • Automatic snow on mountain-tops.
  • Actual textures, rather than just flat colours.
    • Gradient mapping, to be able to adjust the colour of layer textures.
    • Scaling of texture UVs based on distance from camera.
  • Global noise mask that is adjustable per-layer (currently only works on grass).
The automatic slope colouring made the biggest difference, and works really well at a distance.
Up-close however, not so much:


Goodbye green soup, hello brown soup.

To fix this, I'll be doing the following:
  • Crucially, authoring and implementing actual textures instead of just flat colours
  • Using a heightmap to break up the transition between the cliff and grass.

Comments