Introducing CTS

The Complete Terrain Shader for Unity 3D

Introducing CTS

Give your terrain the AAA treatment it deserves with CTS, the Complete Terrain Shader for Unity 3D!

A collaboration between environmental and shader specialists Bartlomiej Galas and terrain specialist Adam Goodrich, CTS melds our collective expertise to create a terrain shading system that is Fast, Powerful, and most importantly Easy to Use!

If your terrain is looking a little tired and you want to give it a modern face lift then you have come to the right place!

CTS is a modern AAA PBR terrain shader that gives your terrain a massive facelift. CTS uses the latest shading techniques to remove tiling, increase the color and variation in your environments, and with features like height blending, tessellation, procedural snow, geological banding, detail and global normals, cutouts and color map support can really make your terrains pop!

CTS comes with a professional texture library that can be applied with a click to instantly change the look and feel of your scenes, and works much like the Unity Post Processing profile system and can be tweaked at run time to get your environment just right.

Key Features:

  • 16 PBR texture sets in 1 pass – fast;
  • Standard work flow – compatible & easy;
  • UV Mixing – removes tiling;
  • Detail Mixing – adds interest & reduces tiling;
  • Geological Layering – adds interest;
  • Detail Mixing – adds interest & reduces tiling;
  • Dynamic Snow Cover – with a slider;
  • Dynamic Snow Glitter – with a slider;
  • Dynamic Water Cover – with a slider;
  • Height Blending – relative texture blends;
  • Lite, Basic, Advanced & Tesselation variants;
  • Ambient Occlusion – realistic shadows;
  • Color Maps – enhanced terrain coloring;
  • Grass Maps – tint colormaps from terrain grasses;
  • Cutout Support – on terrain and colormaps;
  • Mesh Support* – light weight alternative to terrain;
  • Profile Based – similar to Unity Post FX;
  • Texture Library – 48 quality sets, 20 helpers;
  • Substance Support** – save time on exports;
  • Seasons & Weather – Rain, Snow & Seasonal variation, easily integrated;
  • Sample swamp and landcape scenes included, excluding 3D models;
  • VR Compatible;

* Mesh support requires terrain based work flow to configure shader correctly.

** Substance support has temporarily been removed from Unity 2018.x version, and will be added again when Allegorithmic release their substance plugin.

Per Texture Control of:

  • Albedo, Normal, Height, Ambient Occlusion;
  • Near and far tiling – reduces tiling;
  • Tinting – matching & seasonal variation;
  • Brightness – texture matching;
  • Smoothness – reflection & wetness;
  • Height blending – relative texture heights;
  • Height depth – relative texture depth;
  • Triplanar – no more terrible cliffs;
  • Detail strength – use it as needed;
  • Geo strength – use it as needed;
  • Snow amount – control snow cover;
  • Snow / Water – angle, height, hardness;
  • Snow / Water tint – vary color by usage;
  • ColorMap strength – near and far;
  • ColorMap masking;

Hardware support:

  • Shader model 3.5+ (basic + advanced);
  • Shader model 4.6+ (tesselation);
  • Direct X 11 / 12;
  • Open GL ES 3.0;
  • WebGL 2.0;
  • Metal;

Shaders are limited by texture array support, and consequently do not support DX9, OpenGLES 2.0 or Web GL1.0.

CTS was created in collaboration by NatureManufacture & Procedural Worlds

Check our reviews and buy CTS:

You can see what our customers are saying and buy CTS on the Unity Asset Store.


Here are some sample CTS applications so that you can get a sense of how they will perform on your computer.

3rd October 2017

CTS Performance, Swamp & Landscape Demos.


Unity Asset Store  Unity Forums  NatureManufacture  Procedural Worlds

Welcome to CTS – The Complete Terrain Shader for Unity 3D. This page shows the basic work flows, and also how to access the help system built into CTS. To see this in action please click on the tutorials link.

CTS Overview

The CTS terrain shading system is a Profile based shading system for Unity.

A Profile is a scriptable object that stores the settings and textures used by CTS to shade your terrain. It is used to generate a customised set of texture arrays containing specially packed textures that are use by CTS to render your terrain.

Once a Profile has been created it can be applied at any time, and the terrain will take on the characteristics and textures that have been defined in that Profile. This is usually an instantaneous update.

Another benefit of this approach is that you can modify Profile in-game and have them persist out of the game back in edit mode, so you can customise everything from the perspective of your user.

CTS Directories

CTS – Main CTS directory

  • Demo – CTS Demo directory
  • Prefabs – CTS Prefabs directory (has a handy little FPS counter)
  • Profiles – CTS Profiles directory – where new Profiles will be placed – you can move them later
  • Scripts – CTS Scripts directory
  • Shaders – CTS Shaders directory
  • Terrains – CTS Terrains directory – Where materials and global normal maps are created for each terrain in your scene – you can move them later
  • Textures – CTS Texture library directory – a great collection of fantastic textures you can use

NOTE – You can move CTS around in your project, but this directory structure must be preserved. You must also leave the CTS_ReadMe file in the main CTS directory as this is what is used by CTS to locate CTS in your project.

CTS Work Flow

Setting Up Your Terrain – First Time

  1. The first step to set CTS up on any new terrain is to select Component -> CTS -> Add CTS To Terrain.
    This will iterate though all of the terrains in your scene and add the CompleteTerrainShader script to them. This script is resonsible for taking whatever Profile has been assigned to it, and applying those settings to the terrain.
  2. The next step is to select Window -> CTS -> Create And Apply Profile
    This will create a new Profile in your CTS / Profiles directory, ingest the content of the terrain into the new Profile, and apply it to all of your CTS terrains. This is generally quite fast, but the actual speed will depend on the speed of your development environment.
  3. The next step is to configure up your Profile. Please check out the tutorials for more information on this.

Applying An Existing Profile To Your Terrain

  1. Make sure that CTS has been added to the terrain (step 1 above).
  2. Click on the Profile – by default they are stored in the CTS / Profiles directory.
  3. Scroll down to the bottom of the Profile and click the Apply Profile button. This will apply this Profile to all the CTS terrains in your scene. NOTE: This will also replace the textures in the terrain with the textures in the Profile.

Adding Or Removing Textures From Your Terrain (and Profile)

  1. Make sure that CTS has been added to your terrain and that this Profile has been applied to your terrain.
  2. Click on the terrain object and add the new textures in the usual way.
  3. Click Bake Textures – This will load the textures from the terrain into your Profile and also regenerate your texture arrays.

Updating Textures In Your Profile (and Terrain)

  1. Make sure that CTS has been added to your terrain and that this Profile has been applied to your terrain.
  2. Click on the Profile and update the texture in the Profile by dragging the texture into the appropriate slot.
  3. If the texture is an albedo or normal texture, it will immediately be applied into the terrain. If the texture is used by the texture arrays that drive your terrain then the Profile will turn RED.
  4. If the Profile turns RED then click Bake Textures – This will load the textures from the terrain into your Profile, the new textures on top, and then regenerate your texture arrays. You will only see texture changes in your terrain after this has been done.

Adding Weather to Your Terrain

  1. Make sure that CTS has been added to your terrain and that a Profile has been applied to your terrain.

  2. Click Window -> CTS -> Add Weather Manager. This will add a CTS Weather Manager object to your scene. It will also iterate through every terrain and add a CTS Weather Controller to it. The Weather Manager is the central point that sends weather updates to the weather controllers on each terrain.

  3. Change the weather either by script on the Weather Manager, or via the custom interface in CTS. You can control the rain, snow and seasons (tints the terrain based on the seasonal colors you select).

Optimization For Runtime

In your CTS Profile you can find the following settings that help you optimizing the rendering performance during runtime:

  1. Strip Textures – This option will remove all textures from the terrain at runtime, and run the terrain directly from CTS as a first pass shader. It will reduce gpu memory usage on all terrains, and drawcalls on terrains with more than 4 textures.
  2. Disconnect Profile – This will disconnect the Profile from the terrain at runtime, and this will reduce memory usage, however it will also stop changes to the Profile at runtime from being reflected into the terrain in real time.

CTS Texture Management

The primary texture management operations are:

Bake Textures -> Pick the textures up out of the terrain, apply them to your Profile, and create the arrays that the shader needs.

Update Texture In Profile -> Applies the texture to the Profile and the terrain, changes Profile colour to red if re-baking is required.

Apply Profile -> Take the textures in the Profile and applies them to the terrain (WARNING: This will replace what was there before).

Bake Normals -> Will create a global normal map for each terrain and assign it to the CTS shader. This is only needed when you change terrain heights.

CTS Help System

CTS is largely a self documenting system. To show documentation within CTS hit the question mark at the top of each CTS component. This will show or hide CTS help. You can also click on the button to come to the web site here for more information. The video tutorials in particular are a great source of information.

Lorem Ipsum


Mea cu sonet definiebas, ne officiis partiendo evertitur pro. Adhuc inani tantas eum cu, ius purto ornatus complectitur no, nemore ancillae euripidis mel te. Eum exerci scaevola id. Mel consul putant epicuri cu. Ex pri abhorreant repudiandae.

Mea cu sonet definiebas, ne officiis partiendo evertitur pro. Adhuc inani tantas eum cu, ius purto ornatus complectitur no, nemore ancillae euripidis mel te. Eum exerci scaevola id. Mel consul putant epicuri cu. Ex pri abhorreant repudiandae.

« 1 of 4 »