380 © 2015 Open Geospatial Consortium
6.13 Model Textures
To achieve a certain degree of realism, models require the use of textures. Furthermore, textures add details to a model without increasing its polygon count. This is excellent to reduce the
complexity of the geometry but at the same time, it creates a load management issue for client devices that are interested in these textures. In the case of GTModels and MModels, textures are
separate files that must be loaded after the model geometry files are read and loaded by client devices; in the case of GSModels and T2DModels, the textures can be loaded concurrently with
the model geometry files. A client device discovers the existence of textures while loading the model.
One of the goals of the CDB Specification is to allow client devices to implement efficient load management mechanisms. For this reason, the Specification decouples as much as possible the
texture aspect of a model from its geometry aspect. This is done by storing all textures related to Models in separate directories.
Recall that the texture filenames itself are constructed from the dataset number, the texture type selectors 1 and 2, and the texture LOD and these are then concatenated to a modeler-specific
texture name. Section 6.13, Model Textures, provides a description and usage of all of the CDB texture types for Models. The values of component selectors 1 and 2 convey a semantic meaning
to the texture time-of-year, paint scheme, night map, light map, normal map, etc and determine whether the texture is to be used as base texture or as a subordinate texture and whether the
texture is switchable described in the next section.
6.13.1 Handling of Multi-textures
In OpenFlight, several types of textures can be applied in various combinations. Textures fall in two broad categories: Base and Subordinate.
6.13.1.1 Base Texture Layer Base textures
65
are set of mutually exclusive model textures that provide texture colorintensity modulation for the model. While a model can have many base textures, only one base texture
can be referenced and applied to model geometry at a time. The CDB Specification supports the following type of Base Textures:
1 Year-Round Texture: A year-round texture used with GTModels, MModels,
GSModels, T2DModels . In the case of MModels, base-textures are often replaced with an appropriate Paint Scheme texture Uniform, Camouflage or
Airline.
2 Quarterly Textures: A set of 4 textures, each representative of a quarter within
the calendar year used with GTModels, GSModels, T2DModels . The textures must be provided as a complete set, i.e., it is assumed that all 4 textures of the
same kind i.e., all four textures have their component selector 1 set to 003 and
65
The CDB Specification uses the term “base texture” the same way as OpenFlight and Creator do.
381 © 2015 Open Geospatial Consortium
are all present in the model’s texture directory. The presence of a quarterly texture reference in model geometry tells the client-device that a quarterly texture set is
available. This allows the client-device to select any one of the available 4 textures at rendering time. Only one of the textures need be referenced by the
OpenFlight scenegraph geometry, preferably the third quarter texture. It is also assumed that all 4 textures share the same UV mapping.
3 Monthly Textures: A set of 12 textures, each representative of a month within
the calendar year used with GTModels, GSModels, T2DModels . The textures must be provided as a complete set, i.e., it is assumed that all the 12 textures are
of the same kind i.e., all twelve textures have their component selector CS1 = 002 and are all present in the model’s texture directory. The presence of a
monthly texture reference in model geometry tells the client-device that a montly texture set is available. This allows the client-device to select any one of the
available 12 textures at rendering time. Only one of the textures need be referenced by the OpenFlight scenegraph geometry, preferably the June texture. It
is also assumed that all 12 textures share the same UVmapping.
4 Uniform Paint Scheme Textures: Used on MModels with relatively uniform
paint schemes should make use of this texture kind. Colors are listed in Appendix O. It is also assumed that all textures share the same UVmapping.
5 Camouflage Paint Scheme Textures: Used on MModels with camouflage paint
schemes should make use of this texture kind. Camouflages are listed in Appendix O. It is also assumed that all textures share the same UVmapping.
6 Airline Paint Scheme Textures: Used on MModels that represent commercial
aviation airliners should make use of this texture kind to implement the airlines paint scheme and logos. This base texture addresses the need for multiple skins
painted on identical aircraft type. For instance, the B767-300ER is operated by more than 60 airlines throughout the world. Appendix O provides a complete list
of Airliners. It is also assumed that all textures share the same UVmapping.
7 Shadow Map Textures: Used on MModels as pre-computed orthographic
projections of the MModel. These textures are base textures used to accelerate the rendering of MModel shadows. Shadow map usage conventions are described
in section 6.13.5.1, Model Shadow Textures.
8 Motion Blur: Used on MModels as pre-computed motion blurred textures of
rotating parts e.g., rotor disks. These textures are base textures used to aid client-devices in eliminating temporal aliasing artifacts. Motion blur textures
conventions are described in section 6.9.2.3, Temporal Anti-aliasing.
6.13.1.2 Subordinate Texture Layer Base textures can be supplemented with one or more
66
subordinate textures. Subordinate textures form a set of model textures that can be used to provide additional colorintensity
modulation or illumination modulation detail to the Base texture.
66
OpenFlight natively permits up to seven subordinate textures for a total of eight textures including the base texture.
382 © 2015 Open Geospatial Consortium
The CDB Specification supports the following types of subordinate textures:
1 Night Map: This subordinate texture is used to represent changes to models in
their night configuration, typically as a result of lighting effects emanating from inside the model through windows. Night map textures conventions are
described in greater detail in section 6.13.5.3, Model Night Maps.
2 Detail Texture MicroMacro: This subordinate texture is used to add details
to a base texture that lacks the necessary resolution to provide the correct depth perception. Detail textures conventions are described in greater detail in section
6.13.5.6, Model Detail Texture Maps.
3 Contaminants: These textures are used to simulate thin layers of matter that
accumulate on surface top. Contaminant textures conventions are described in greater detail in section 6.13.5.7, Model Contaminant and Skid Mark Textures.
4 Normal Map: Normal mapping is a technique used for faking the lighting of
bumps and dents; when used in conjunction with a render’s light sources, it can add surface detail without using more polygons. This subordinate texture is a 3-
component texture that encodes the normals at each texel. Tangent-space normal maps conventions are described in greater detail in section 6.13.5.5,
Model Tangent-space Normal Maps.
5 Reflection Map: Conventions are described in detail in section 6.13.5.8, Model
Cubic Reflection Maps.
6 Light Map: This subordinate texture is used to represent the effect of external
light sources onto a model. Light map textures conventions are described in greater detail in section 6.13.5.4, Model Light Maps.
7 Gloss Map: A texture that describes whether a surface is matte or gloss;
described in section 6.13.5.9, Model Gloss Maps.
8 Material Texture: To specify the composite materials at the level of a single
texel; described in section 6.13.5.10, Model Material Textures. Client-devices are required to use the modeler supplied layer number to determine the order in
which the subordinate textures are to be rendered. The base layer is always rendered first, followed by subordinate layer 1, 2, 3, etc. Gaps within the layer sequence are permitted.
Note that layer numbers are not assigned nor reserved to specific subordinate textures.
6.13.1.3 Texture Mapping Conventions The following table provides the texture mapping for use with each kind of textures.