Level of Detail
Level of Detail (LOD) is a general term that refers to the selection of detail levels (typically, graphics detail) in a realtime application (typically a graphical application such as a 3D computer game).
Tradeoff between quality and cost
In any application there are many tradeoffs between the quality and cost of processed data. For example, the quality of the audio in an MP3 player, controlled by the file's bitrate, directly affects the cost of the audio stream in terms of computation and storage. As the quality improves, the cost degrades, and vice versa.In realtime applications particularly, these tradeoffs are more acutely felt as costs must be kept in check if the interactivity of the application is to be preserved. Such quality of service situations require mechanisms for managing the complexity, quality, and cost of processed data.
A common example with a realtime graphics flavour is a computer game. Here it is desirable to always render the best image possible, in a variety of situations, potentially on a range of different hardware, without ever taking on so much processing that frame-rates are degraded. This may require selecting different detail levels for the same object depending on the speed of the processor, the capabilities of the graphics hardware, and how many other complex objects are simultaneously in view.
Control mechanisms
At its simplest, level of detail control amounts to the selection of a constant, predefined quality for each resource by the developer at design time. This amounts to static level of detail control and limits the flexibility of the application to react to varying environments (faster processors, less complex data scenes), exploiting opportunities and avoiding pitfalls.
A more flexible approach is to provide a set of independent representations for each scene object, at a range of quality levels, and to switch between them dynamically using a simple local metric (such as the per-object distance from the camera). Simple schemes such as these are what most people know as Level of Detail.
More sophistication is possible. Simple switching schemes based on local metrics such as object to camera distance are dynamic but still suffer from some inflexibility: the level of detail chosen for each object fails to react to changes in the complexity of the whole visible scene. It makes sense to spend more resources on the processing of an object when there are fewer other objects to deal with. Conversely, when there are many complex objects to process it makes sense to reduce the time and space spent on each. The use of dynamic culling mechanisms to reduce scene complexity in games means that net scene complexity after culling is more variable from frame to frame, increasing the need to react smartly to it.
This implies that level of detail must be global, if it is to be truly effective. Its aim becomes to actively regulate, rather than merely reduce, the complexity of processing. Such schemes can react to the measured costs of previous frames (reactive), or can attempt to predict the cost of the current frame (predictive). In either case, it is important that the process of optimizing detail levels does not itself become an unbounded and unpredictable cost!
Our approach
The work described by this site focuses on the predictive approach to level of detail control. We consider the use of optimization algorithms that attempt to actively manage predicted scene complexity using estimated metrics measuring perceptual benefit and rendering cost.
Although complex level of detail optimization strategies such as those discussed on this site have existed for some time, in practice simplistic approaches are still most often used to manage rendering quality levels. This is likely in part a result of lack of familiarity with more sophisticated approaches. However the problem of level of detail control is hard and there is still considerable room for improvement.