Class Name: Rendering Priority Level

Superclass - SEDRIS Abstract Base

Definition

A method used to describe the relative priority used to resolve occlusion between 2 or more overlapping (or potentially overlapping) objects.

Priority is indicated by the group ID (rendering_group) and priority index (rendering_priority). The rendering_priority is relative to the rendering_group, and is intended to assign priority order (or layer) to coplanar Polygons or coplanar Features. A higher index indicates a higher rendering priority (rendered last). Objects that do not contain a Rendering Priority Level are assumed to have a rendering priority value of 0.

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

Example

  1. A particular SEDRIS transmittal may model a lake as a single Polygon located inside of a much larger Polygon that represents the surrounding terrain. The larger terrain polygon and the smaller lake polygon that it contains may be coplanar, so the modeler assigns a Rendering Priority Level of 1 to the terrain Polygon and a Rendering Priority Level of 2 to the lake Polygon, so that the lake polygon will be rendered on top of the terrain Polygon.
  2. The side of a Model can be represented by a brown Polygon, and a window in the side of a Model can be represented by a grey Polygon where the grey Polygon is coplanar with the brown Polygon. The grey Polygon would be given a higher Rendering Priority Level than the brown Polygon so that the window would be drawn correctly on the side of the Model (where the Model could be either a building or a vehicle).
  3. A Plan View Display (PVD) can display Point, Areal, and Linear Features. Since Features are usually considered to be 'flat', many features are, by definition, coplanar. A Rendering Priority Level can be used to indicate the relative drawing order (or layer) within a set of overlapping Features. For example, it is common for a single Areal Feature to cover the entire Environment_Root area as a 'default, background' Feature. This Areal Feature could be given a rendering priority of -32768 so that it would always be drawn first, so that it would always be in the background.
  4. The following instance diagram shows how Rendering Priority Level can be used to override the layering of a fixed list of objects. The objects would render in this order: Polygon_C, Polygon_B, Polygon_A, Polygon_E, Polygon_F, Polygon_D.
                   Union Of Geometry
                 (fixed listed Unions)
                           <>
                            |
          --------------------------------------------------
          |                                                |
          Union Of Geometry                  Union Of Geometry
          (fixed listed polygons)            (fixed listed polygons)
             <>                                           <>
              |                                            |
              -------------------------------------        -----------------
                  |             |         |                |       |       |
               Polygon_A    Polygon_B  Polygon_C    Polygon_D Polygon_E Polygon_F
                 <>               <>                      <>
                  |                |                       |
                  |                -------                 ---------
                  |                      |                         |
                  v                      v                         v
               Rendering                Rendering               Rendering
               Priority Level           Priority Level          Priority Level
               (group 1, priority 2) (group 1, priority 1)  (group 2, priority 1)
    

FAQs

Is this the only way to order data for rendering purposes?
No. There are other ways to achieve scope-limited, fixed-ordered rendering; see ordered Union of Geometry.

When should someone use a Rendering Priority Level?
A Rendering Priority Level should be used to globally resolve rendering priority after scope limited occlusion is resolved. After all Geometry is rendered that has a Rendering Priority <= 0, then rendering successive levels of Geometry should resolve occlusion. Rendering Priority Level can be viewed as a sorting bin assignment in some occlusion schemes.

Are there any 'special' sentinel values for a rendering priority?
Yes. A rendering priority of 32767 means always render 'on top' (last), and a priority of -32768 means always render 'on bottom' (first)

Constraints

None.

Component of (one-way)

Field Elements

SE_PINT16 rendering_group; (notes)
SE_INT16 rendering_priority; (notes)

Notes

Fields Notes

rendering_group

 Establishes a group to which objects' priorities are relative

rendering_priority

 Indicates priority between coplanar objects.
 A higher value indicates a higher priority
 (i.e., a polygon with a value of 2 is "on top"
 of a polygon with a value of 1)

Prev: Relative Time Point. Next: Rendering Properties. Up:Index.