In any indoors renderer, we can take advantage of clipping and culling to detect the portion of the game world that effectively lies inside the viewing frustum. Then, an occlusion-detection policy must be implemented to minimize overdraw, and thus ensure optimal performance. Occlusion tests can be performed because the visibility range (sometimes called Z-distance) is bounded. Outdoors renderers are a bit different. Like indoors algorithms, they can take advantage of clipping and culling. This way a significant part of the game world's geometry can simply be eliminated because it does not lie within the viewing frustum.
But what about occlusions? Well, truth be told, there are frequent occlusions in nature: a hill covering parts of the scene, trees acting as natural occluders, and so on. But even with that level of occlusion, the triangle counts for any outdoors scene are generally beyond the hardware's capabilities. Imagine that you are on top of a mountain looking downhill onto a huge plain. How many triangles do you need to render that scene? There are some nearby objects (stones, for example) that can be modeled using just a few triangles, but what about the distant horizon located at least 10 miles away? Will you still model each stone and crack of the ground, even if it's unnoticeable from where you are standing?
Clearly, outdoors algorithms are all about level-of-detail (LOD) strategies—being able to reallocate triangles so more relevant items (in terms of screen size) get a better resolution than distant or smaller items. This relationship is summarized in Table 14.1, which I use to explain the difference between indoors and outdoors rendering.
For the remaining sections of this chapter, I will define outdoors algorithms as those algorithms that work with large viewing distances and focus on LOD strategies instead of occlusion testing algorithms.
This is not to say that occlusions will be secondary or even irrelevant. Most outdoors algorithms have a significant degree of occlusion. But because outdoors data sets are generally larger than their indoors counterparts, sometimes computing occlusions will be too complex, and thus will be discarded altogether. Some outdoors approaches incorporate occlusions into the equation; others focus on the LOD policies only. The last algorithm in this chapter is an example of an outdoors renderer that handles occlusions elegantly.