Reference Manual‎ > ‎Art Guidelines‎ > ‎

Terrain Texturing

Introduction

This section provides general information on how to create terrain textures for use in Train Simulator.

It is assumed that the 3D modelling package used is Autodesk® 3ds Max® and the package used for authoring textures is Adobe® Photoshop.

The modelling package Autodesk® 3ds Max® was used to create Train Simulator, so this product appears in the examples provided. You can, of course, use other packages such as Blender™ or amabilis 3D Crafter. The package used here for authoring textures is Adobe® Photoshop. Again, you may use one of the many other packages available.

Regardless of the packages you use, the documents below should be used as a general guide to the processes to follow to build assets for Train Simulator.

Important Note: For your chosen package, you may need additional plug-ins to export the assets into Train Simulator. Please check the availability of a suitable plug-in before you begin creating assets.

Texturing XML

Texture XMLs are located in Environment\Terrain folders.

The fields in this XML are as follows:
  • Colour: This is the colour that the terrain texture blends after it’s smallest MIP, move the RGB sliders to get the desired colour.
  • Alpha: Not used, but should be kept to 1- White.
  • Low ground texture index: This number corresponds to the number in the mix tex list. (For example green grass)
  • Midground texture index: This number corresponds to the number in the mix tex list. (For example Heather)
  • High ground texture index: This number corresponds to the number in the mix tex list. (For example Snow, on mountain peaks)
  • Rock texture index: This number corresponds to the number in the mix tex list. It is the texture that is displayed once the gradient is greater than the Rock gradient value.
  • Low to mid-height point: The value in metres that the low ground texture is displayed.
  • Low to mid threshold: The value in metres in which the low and mid ground textures get mixed.
  • Mid to high height point: The value in metres that the low ground texture is displayed.
  • Mid to high threshold: The value in metres in which the low and mid ground textures get mixed.
  • Rock gradient: The height value in metres which dictates the gradient. The horizontal number is 8m (the grid in Rail Simulator is 8/8): For example, 10m high every 8m.
  • Rock Threshold:
  • Shadow texture scale factor: Not used in current version

Mix Tex

  • Base texture name: Folder location and name of texture without the wang suffix. (_A/_B/_C/_D/_E/_F/_G/_H)
  • Base spring texture name: Folder location and name of texture without the wang suffix but including the spring suffix _sp)
  • Base summer texture name: Folder location and name of texture without the wang suffix but including the summer suffix _su)
  • Base Autumn texture name: Folder location and name of texture without the wang suffix but including the autumn suffix _au)
  • Base Winter texture name: Folder location and name of texture without the wang suffix but including the winter suffix _wi)
  • Display name: in-game name.
  • Localised display name
  • Wang: If using wang textures then set this to true, if standard tileset to false and it will not look for the wang suffix.
  • Flora index: This number represents mapping coordinates in the grass pack .dds
  • Flora density: This number is set between 0 and 1, 1 being the densest and 0 being sparse.
  • Category: Pull down menu texture description.

WANG tiles

Wang tiles are sets of tiles that fit together to non-periodically tile across the terrain, creating expanses of non-repeating texture. (See example grass tiles below)

How it Works

Each edge of a Wang tile is assigned a colour.


The tiles are laid on a plane so that the colours of adjacent edges match.


A minimum of 8 tiles can be used to generate non-repeating textures. The more tiles you have obviously the less chance of repetition and tiling.

Horizontal and vertical edges each have 2 colour possibilities.

There exists 4 (2^2) possible North-West edge combinations.

Creating WANG tiles

Four tiles were cut from the source image; these will be used to create the 8 WANG tiles.

Each tile is allocated a colour and the pieces cut will be used to create the tiles.


For example to create tile (e) the following pieces are cut from the initial 4 tiles:


File Format

Each terrain texture needs an alpha channel. The game uses this information for blending. The darker the shade of grey the quicker the texture fades into another.

The terrain textures need to be 256/256 pixels square and saved out as a 32-bit .ace (V2) or .dds file. Before saving make sure the ‘Make mips’ checkbox is ticked.

Wang textures need to be named XXXX_A to XXXX_H.

Winter versions (For more information on season suffix see the Asset Authoring Guidelines) of terrain textures need to be named XXXX_wi_A to XXXX_wi_H.

For example:
  • DarkGrass000_A.dds
  • DarkGrass000_B.dds
  • DarkGrass000_C.dds
  • DarkGrass000_D.dds
  • DarkGrass000_E.dds
  • DarkGrass000_F.dds
  • DarkGrass000_G.dds
  • DarkGrass000_H.dds
  • DarkGrass000_wi_A.dds
  • DarkGrass000_wi_B.dds
  • DarkGrass000_wi_C.dds
  • DarkGrass000_wi_D.dds
  • DarkGrass000_wi_E.dds
  • DarkGrass000_wi_F.dds
  • DarkGrass000_wi_G.dds
  • DarkGrass000_wi_H.dds

Standard Tiles


The standard tile is used in situations where a repeating pattern is desirable.

Example of standard tile terrain name;
  • Ploughed000_Su.ace
  • Ploughed000_Au.ace
  • Ploughed000_Wi.ace
  • Ploughed000_Sp.ace
Or if the texture does not have a season variant: Ploughed000.ace (default texture that will be used in all seasons)

Procedural Flora

Procedural flora can be linked to the terrain textures.

The flora index number corresponds to a tile on the grasspack.dds for example a fora index number of 2 would be the circled item in the image below:


The scrub texture page is called grasspack.dds. The texture page (1024x1024) consists of a bank of 16 smaller 256x256 textures arranged in a grid. See above.

To create the .dds file, the plugin from the official nVIDIA website was used with the values seen below: