I'm rewriting my DirectX/ATC terrain engine for OpenGL.
I believe I can do a much better job of texturing the terrain :)
Furthermore, I believe I can apply decals (and detail textures) to it fairly cheaply :)

The original version worked as follows:
The world was defined as a 16x16 grid of TerrainPatches, ie, 256 TerrainPatches.
Each TerrainPatch was further divided into a 32x32 grid of quads, and owned its own texure - thats 256 unique textures just for the terrain.
Then what I'd do is load in four textures (snow,rock,grass,gravel) and I would GENERATE those 256 textures PIXEL BY PIXEL, so that the geometry texture was blended by height.
Mountains would have snow caps, and ravines and riverbeds would be gravel.
It worked, but it took AGES to generate those textures at the start.
Still, there was no realtime blending so it would run on anything out there.

I'm pretty sure most people have a decent machine these days, and I think I can afford to implement multipass texture blending to the terrain now.

The new implementation will have little in common with the old, with the exception that the world will still be divided into a regular grid of terrainpatches, which suits quadtree encoding.
Posted on 2005-05-17 02:53:21 by Homer
In the new version, each TerrainPatch is totally encapsulated in a single DisplayList object.
Each DisplayList describes a four-pass rendering of 32 trianglestrips.
Each pass adds a carefully alphablended layer of texture detail to the terrain.
Note that the four textures employed are aliased to the "base color" of each TerrainPatch.
This means that we're using a lot more than four textures on the terrain, but max. four per TerrainPatch.
Encapsulating TerrainPatch rendering in DisplayList form simplifies our render code, reduces software calculations in realtime, and gives the gpu the best chance of accelerating the rendering.
By creating many small displaylists in this fashion to represent many terrainpatches, we retain the ability to cheaply cull terrainpatches as entities.
Posted on 2005-05-18 02:50:19 by Homer