Creating the Terrain “Mesh”
Although it’s not necessarily the only way to develop a piece of terrain, thinking of it and creating it as “mesh” of triangular brushes may be the easiest way to work initially. The terrain sections for Quake III: Team Arena were built in this manner, though each designer went about it in slightly different ways.
Our primary tool was a plugin for Q3Radiant , created by David Hyde, called GenSurf. The tool was originally created for Quake 2 (and may have been around longer) and has been adapted for use with many of the game engines using Quake, Quake2 and Quake3 technology. The basic concept behind GenSurf is that it can create and export a group of brushes (or curve patches) to Q3Radiant that have the look of “natural” terrain about them. Within the plug-in, the mapmaker has control over the horizontal dimensions of the terrain entity, the steepness of the slopes it creates, and the number of columns and rows of triangles that it subdivides into.
The terrain can be generated from within the tool by using simple waveforms, more complex mathematical expressions, fractal calculations, or height maps. The last item, height maps, is in our opinion, the route to take for creating complex, visually interesting terrain layouts. A height map is a piece of art (we rendered them in grayscale) that GenSurf uses as a template for establishing the height of vertexes (the points where the corners of the terrain triangles meet). GenSurf interprets the color of the pixel (or more correctly the numerical color value of the pixel) that corresponds to the location of the vertex. Generally, the darker the gray value, the lower in height the vertex (256 unique height values corresponding to 256 pixel colors). GenSurf then uses the vertexes to define the extents of triangles and suddenly, one has a terrain surface. Of course, there are a few details of construction between start and finish …