Original Post
My level editor allows you to construct terrains of any size from any heightmap. For rendering, I also allow selection of 2 textures and a lightmap to modulate the two together, so you can have say grass and rock smoothly interchanged over the terrain. My usual terrain test size is 64 x 64 square polygons (2 tris) over which is stretched a 512 x 512 256 colour heightmap. The terrain is rendered using a standard octree and polygon drawing maxes at around 2000 per frame (out of 4096). I'm batching each Octree node into one draw-pass. Each vertex has 3 texture coordinates, one for the lightmap, one for the grass and one for the rock. This allows me to adjust the resolution of the grass, rock or lightmap giving some nice effects. I'm using 5 texture passes to achieve this and I'm getting some fairly good frame rates (with a fairly decent 256meg video card). My question is whether this is in fact the correct way to do it? I've seen and heard of people using shaders to get the same effect with greater frame rates, and also the ability to use 3 textures modulated together using the RGB of a map which I'd much prefer if I can do it within the same frame time I currently have. Does anyone know if it is worth my time pursuing this different approach, or am I not going to gain much in the way of fps? At present, on my 1800mhz athlon with a 6800 geforce pro (I think, can't remember the card name!), I get 130fps using any size terrain at a fairly good 'ground resolution'. This is obviously going to go down drastically with the addition of everything else (animations, movement, transformations of other objects, etc). Would appreciate an expert opinion on whether you can use shaders for what I've described, and if so, is it a lot faster? Will post pictures later today.... Thanks