Draped Object Geometry RFC

Revision History 10/16/09 - Initial Draft

When an author wants to include ground detail in an OBJ, the current way to do this is to use ATTR_poly_os and a polygon on the ground. This technique has several drawbacks.


 * The draping is in-exact for sloped surfaces, and the vertical alignment can be wrong too.
 * The change of polygon offset introduces an expensive shader change per object. This makes the wide-scale use of ground texture (parkings lots, driveways) into a significant drag for urban environments.

This RFC proposes a solution: "ATTR_draped" geometry would cause horizontal geometry to be draped onto the mesh in the same manner that draped polygons work.

Draped geometry would be separated from the object and draped over the terrain with the following restrictions:


 * Draped geometry would be allowed only in scenery objects in a DSF or ENV file - not in cockpit objects or dynamic objects (cars, aircraft carriers, etc.).
 * ATTR_draped cannot be combined wiht any other attributes - draped geometry must be attribute free. ATTR_poly_os is not necessary for draped geometry - all draped geometry automatically receives polygon offset to achieve appropriate draping.
 * Draped geometry is LOD-independent - it should be part of the first LOD, but may not end up with the same LOD properties as the object itself.

There would be several benefits to ATTR_draped geometry:


 * Draped polygons could be more easily encoded in the library (E.g. numbers for airports) by putting them in OBJs as draped geometry. Currently draped polygons do not carry UV maps, which makes it difficult to share them with authors.
 * Draped geometry can be used more aggressively in widely used scenery objects without a performance hit.
 * Draped geometry will exhibit fewer geometry artifacts on sloped terrain. With current ATTR_poly_os wide-scale flat ground markings are not possible, or require artist tricks.