Day 2: Beginning terrain

Today, I wanted to begin modeling the environment, starting with the sand dunes that epitomize Journey.

To do that, I wanted to learn Unity’s terrain system as a foundation since I’ve had more experience using assets that are extensions that underneath use Unity’s terrain system like Gaia and Map Magic (which is to say not much).

Unity’s terrain system is like Photoshop —you draw/paint your desired “picture” which is in this case, terrain.

You paint height with:

  • Raise/Lower Terrain — exactly what the name says
  • Paint Height — similar to Raise/Lower Terrain but you can set the desired height and you can flatten
  • Smooth Height — exactly what the name says

What all of this is doing behind the scenes is creating a height map, which is a grayscale texture where really white means really tall and really dark means flat, which is then used to generate the terrain in scene/in game.

You can paint textures with Paint Texture which allows you to add terrain textures (which consist of albedos and normals).

You can place trees which are 3D meshes. In the Terrain inspector you should enable tree colliders and add mesh colliders to the trees and turn them into prefabs if they don’t have one already.

You can place grasses which are 2D textures and details like rocks, flowers, etc. which are 3D meshes.

Trees and grasses can take advantage of billboarding which is a way to transform a 3D texture into a 2D graphic that is constantly rotated to face the player.

You can also add wind zones to add realistic wind effects. Grasses have wind effects from the terrain’s settings, but trees do not.

I just started exploring water but that seems very simple to add — it’s just another prefab added to the scene and positioned, rotated, and scaled as needed.

Further exploration:

  • RGB vs Diffuse