Additive LOD RFC

Revision History 2/19/12 - Update 4/15/10 - Initial Draft

STATUS: this RFC is implemented in X-Plane 10.0

Normally OBJ level of detail works with "replacement" LOD - that is, the model effectively contains several meshes, and exactly one is used at any given time. If the high detail mesh is simply the low detail mesh plus some details, the author may be able to recycle the low mesh by repeating the appropriate TRIS command, or the 3-d modeling software may simply (and wastefully) export the mesh twice.

Additive LOD introduces a new set of LOD rules for an object. Unlike replacement LOD (where LODs must be "adjacent" in distance and go from near to far), in additive LOD the LODs must all have a near distance of zero and go from near to far.

Authors do not have to use an attribute to specify additive LOD; the legal sequence of LODs simply indicate it.

Example:

Replacement LOD:

ATTR_LOD 0 3000 TRIS 0 12000 ATTR_LOD 3000 9000 TRIS 12000 300

Additive LOD:

ATTR_LOD 0 3000 TRIS 0 9000 ATTR_LOD 0000 9000 TRIS 9000 3300

Motivation: the primary motivation for additive LOD is performance: replacement LOD requires the CPU to make a decision (per object) as to which mesh should be drawn. By splitting meshes by their LOD (and allowing overlaps) an object with multiple LODs can be sent to the GPU in pieces, but each piece can be batched with other copies of the object. Thus the big win for additive LOD is for an object that is used many times in the scenery system and does not have any other attributes.