Features

Ultimate Terrains 2 (aka uTerrains) unleashes the power of 3D terrains in Unity. It is able to generate and render infinite terrains with any kind of shape (cubical, smooth, mountains, hills, caves, overhangs, etc.), supports real-time editing and offers awesome distance of view.

In more specific and technical words, uTerrains is a very powerful, robust and optimized voxel terrain engine efficiently implementing adaptive Dual Contouring algorithm.

See more details below.

Fast

Ultimate Terrains is extremely optimized and fully multithreaded. Low memory usage (for a voxel terrain), no garbage collector overhead, not GPU intensive, no lag.

A lot of parameters can be adjusted to improve/reduce the quality of the terrain which will reduce/improve performance. This way, you can either focus on the best possible looking terrain or target platforms with lower capacities.

Infinite

Your player can move in any direction his/her all life without reaching the end of the terrain.

Finite

This might look useless to support finite terrains when you already support infinite terrains, but actually most people just need finite terrains.

Incredible distance of view

Even if the terrain is infinite, only a part of it is displayed around the player to keep a good frame rate. In Ultimate Terrains, the size of this displayed area can be up to 8192x8192x8192 while keeping an awesome resolution of 1x1x1 unit per voxel! This means your player can have a distance of view of 4096, and can dig/build cubes (or anything else) as small as 1x1x1 meter!
This is made possible thanks to a powerful LOD system with seamless transitions.

Never choose between voxels and high view distance again: now you can have both.

Comparatively, Minecraft offers a render distance of only 128 blocks by default (each block is 1x1x1 sized cube). In other words, Ultimate Terrains has a render distance 32 times higher than Minecraft.

Real-time editing

Terrains can be dug or built in real time and with any shape (cube, sphere, etc.).
If you want to make a sandbox game, or a destructible environment, or anything else that requires to modify the terrain dynamically, Ultimate Terrains is definitely for you.

NEW: Asynchronous real-time editing

Terrains can be dug or built in real time asynchronously, meaning the operation won’t make your game lag. This is a key feature.

Renders any kind of shapes

This is one of the strength of a voxel terrain engine implementing Dual Contouring algorithm: it can render any kind of shape. This means you can create smooth hills, mountains, valleys, but also caves, overhangs, or even walls and roofs (which is not possible with a classical terrain). You can also make a fully cubical world like in Minecraft, or have both: some areas could be smooth while some others would be cubical, or whatever. In other words, there is no limit concerning the geometry of the terrain. Want to create mountains? No problem. A planet? Why not! Islands floating in the air? Sure! Underground tunnels? Again, no problem.
Whatever you want.

Procedural generation

Terrains are computed dynamically thanks to procedural generation. Generator modules such as Perlin Noise, heightmaps, Voronoi, ridged multifractal, etc. can be combined to create the terrain of your dreams. You can even add you own modules so you will never be limited.

Biome system

A biome system is implemented at the core of the engine. A biome has its own generation properties & modules, so it is possible to make biomes that looks completely different. You can make a “mountains” biome and a “caves” biome for example, or whatever you want. You can use several biomes on a single terrain. A biome selector is used to determine which biome must be used at a given world position. If needed, you can implement your own biome selector.

Triplanar Mapping shaders

Ultimate Terrains comes with 4 triplanar mapping shaders for terrain texturing: diffuse, specular, bumped and bumped-specular. Of course, you can use your own shaders instead, and terrains support multiple materials.

Compatible with RTP3

Ultimate Terrains is fully compatible with Relief Terrain Pack v3 (RTP3) – vertex control shader. See here for more information.

Powerful editor directly inside Unity

Ultimate Terrains comes with a simple but powerful editor which works directly inside the Unity editor. There is no need to use any external tool, and you don’t have to press ‘play’: every commands are accessible from the inspector and the terrain can be edited within the scene view.

Grass generator

What’s a terrain engine without a good grass system? Even if we prefer to focus on the development of the core of uTerrains, we are aware that most of you will want to add grass. This is why we made a powerful and simple grass generator that will allow you to add grass with no effort.

Trees & details objects

Like grass, trees and other objects must be easy to place on the terrain. That’s why we created a Details Object system to let you generate forests and other things simply by adding some objects and properties within the terrain’s inspector GUI. For now, uTerrains doesn’t have its own LOD system for details objects that’s why it is strongly recommended to use LODGroups.

Saving & loading dynamically

Ultimate Terrains comes with a powerful saving and loading system. Terrains are saved to small JSON files and can be loaded either from files or from resources, allowing you to include files into the Unity package. Loading can be multithreaded when loading from files.

Baking

No more baking from v3.0. Loading (deserializing) baked data is actually slower than generating the terrain and takes too much memory so this became totally useless.

JSON serialization for network synchronization

A simple API allows you to serialize and deserialize terrain data easily using JSON format. This can be used, among other things, to send data over the network, receive it, and synchronize modifications from a terrain to others.

 

Do I need Ultimate Terrains? – The honest decision graph

Follow this decision graph to see if you should use Ultimate Terrains or stay with the simple standard Unity terrain system.
uterrains-decision-graph