Terrain

From Archon Wiki
Jump to navigation Jump to search

The terrain for tiles works using the same system as the original STUB engine. There is however a new system to simplify map construction and produce more realistic rendering.

Large Textures

The new system utilises larger textures which are tiled across the map. To enable a tile definition as one of these, you need to add

BASE_0_0 <type>

to the tile definition. The type is an index [0,7] which use matching textures which should be inside the tile folder (with the TILES.TXT definition file). Each type can use 4 different textures, named (e.g. for type 0):

BASE0
NORMAL0
SPEC0
CONTROL0

and are available in the shader in stages 0-3 in the above order. Base tiles edge against other base tiles using the type order to define how (higher types edge out onto lower types). The edging uses a mask in the alpha channel of the BASE texture.

While you can have different sets of 8 base tiles in each tile set, and they can be mixed in a map, there is a limitation that multiple edges from tiles of the same type, but from different sets, cannot meet on the same tile and both edge correctly.

The shaders for the base and edges are BASETILE.TXT and BASETILEEDGE.TXT.

Atlas Textures

These work in the same way as the STUB engine, with the TILES.TXT file defining which tile on an atlas is used. The basic texture is named TEX<N>.TGA (or DDS obviously), with the most common being TEX0.TGA.

You can also have _N, _S, _C textures which are loaded alongside, e.g. TEX0_N (normal map), TEX0_S (specular), TEX0_C (control). The usage of these textures is defined in the shader, though note that if _N is missing it is replaced with a default pure green (vertical Y) normal map. The shader for altas tiles is TILEPATCH.TXT.