Texturing Landscapes
Question submitted by Anoymous (30 June 2000)




Return to The Archives
 
  What's a good way to texture my landscape engine? How do other landscape engines in the gaming industry do? I've considered tiling textures across the landscape, or using one giant texture (split up into pieces if needed) for the whole thing. What do you recommend?  
 

 
  While at Terminal Reality, we used both methods you describe in our flight simulator, "Fly!".

Fly! uses tiled textures for its generic scenery (i.e. any part of the world that we don't have satellite imagery for.) To decide what textures go where, we have a huge map of the world (this thing really is huge... 16384x16384 pixels!) that is primarily a database more than it is an image. Each pixel is an 8-bit value, and each value corresponds to a different terrain type (grass, desert, water, snow, ice, city, tundra, etc.) For each terrain type, there are hand crafted tile sets.

Fly! uses the split-up-a-huge-texture-into-lots-of-little-pieces technique for its "scenery areas": areas that have satellite imagery. This is actually less efficient than using tiled textures. The reason is because with a screen full of tiled textures, some textures repeat. But in this case, each polygon has a unique texture, which can really stress your texture cache.

There are other techniques. For example, you could use a mesh for the ground, rather than a grid system. This mesh could be textured like any typical model is textured. Though this is not always practical, it's not unheard of.

Don't forget about LOD, which can change the way things work. I recently answered a question on this topic; you may want to look in the archives for this.



Response provided by Paul Nettle
 
 

This article was originally an entry in flipCode's Ask Midnight, a Question and Answer column with Paul Nettle that's no longer active.


 

Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.