Terrain Toolkit
Overview
The Terrain Toolkit project was created by Sándor Moldán as part of the Unity Summer of Code 2009.
The objective of the project was to develop a toolset for the Unity Editor which would streamline and improve the workflow involved in creating terrains for games. The result is the Terrain Toolkit component - an integrated solution for terrain generation in the Unity game engine.
The toolset is divided into three areas - terrain generation, erosion and texturing - accessible in the Create, Erode and Texture panels.
The toolkit contains:
- 6 different erosion filters (thermal, tidal, wind and 3 types of hydraulic erosion).
- 3 'generators' that use Voronoi, cloud fractal and Perlin noise algorithms to create base terrain.
- Some useful tools that allow the terrain object to be smoothed or normalised.
- A procedural terrain texturing tool.
All of these features are provided both as filters which can be applied in the Unity Editor and as fully documented API methods which enables Unity artists and developers to procedurally generate, filters and texture terrain objects at runtime through their own scripts.
Additionally - thermal, fast-hydraulic and tidal erosion filters can also be applied directly to the terrain object using brushes in the Unity Editor.
Contents
Installation instructions:
Open the Unity project you wish to use the Terrain Toolkit in and double click "TerrainToolkit_v1.0.unitypackage" to import it into your project. You may need to unzip it first.
Quick start guide:
Attach the TerrainToolkit component to any Unity Terrain object either by dragging and dropping the script onto the terrain object or by selecting it through the Component/Scripts menu.
The Create tab includes a number of tools for generating terrain heightmaps, plus some simple filters for smoothing and normalising terrain objects.
The Erode tab contains a number of tools which apply various form of erosion to terrain objects. Erosion can be applied either as a filter, or in some cases can be painted directly onto the terrain object with a brush.
The brush tools appear in the lower half of the panel. Turn the brush on to start using it. You can modify the size, opacity and softness of the brush in the panel.
The Texture tab contains a tool which procedurally textures the terrain object based on the height and slope of the terrain.
Acknowledgements
Thanks to Aras Pranckevičius, my mentor at Unity Technologies and the rest of the Unity staff for their support during this project.
Also, thanks to Daniel Greenheck for allowing me to use his Perlin noise class, and to Jim George for his implementation of the Diamond-Square algorithm.