This is the interface control document for the scene definition HDF document. This document is for version 9 of the data model.
/
Type |
File |
Contains the standard attributes described in DIRSIG HDF Standard Info Section.
/Info
Type |
Group |
Required |
No |
Contains additional metadata about the scene beyond those found in the file attributes.
/Info/BoundingBox
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
2 x 3 |
Required |
No |
Contains the bounding box of the scene in scene ENU meters. The minimum point for the box is in the first row and the maximum point is in the second row.
/Info/Generator
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
A string indicating the generator of this file.
/Info/GeneratorData
Type |
Group |
Required |
No |
A freeform group that the generator can use to store pedigree information about this scene. The contents are left up to the generator.
/Info/Md5Hash
Type |
Dataset |
Data Type |
C_S1 (ASCII) |
Dataspace Type |
Simple |
Dimensions |
32 |
Required |
No |
Contains the hash of this scene. The hash is computed from the input scene assets and should change on any change to the inputs.
/Info/Wgs84LatLonAltOrigin
Type |
Dataset |
Data Type |
NATIVE_DOUBLE |
Dataspace Type |
Simple |
Dimensions |
3 |
Required |
No |
Latitude/Longitude/Altitude of the scene origin. Uses WGS84 and ellipsoidal altitude in meters.
/Objects
Type |
Group |
Required |
Yes |
Contains information about all objects in the scene.
/Objects/ControlTables
Type |
Group |
Required |
No |
Contains all control tables for the scene. Each control table is stored in a named subgroup of this group.
/Objects/ControlTables/:table
Type |
Group |
Contains the information for a single control table. The name of the group
must be "Table{N}"
, where {N}
is a number. A control table is used to
define time series in which instances can be enabled/disabled. A control table
corresponds to a tag in Tags, called "__controlGroup{N}"
,
where {N}
is the number from the group name. The control table will only
affect instances that are associated to this tag.
/Objects/ControlTables/:table/States
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a number of time series, one for each of the rows in TagIndex. The length of each series is defined by the size of Times and each series shares the common set of time samples defined there. The data points are float’s between 0 and 1, where 0 means the instance is disabled and 1 means it is enabled.
/Objects/ControlTables/:table/TagIndex
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a list of tag names. These tag names will also appear in Tags/Names and will be mapped to instances via Tags. The order of the tag names here corresponds to the order of the time series in States. Those time series will in turn only affect instances associated to these tags.
/Objects/ControlTables/:table/Times
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a series of times. This table defines the time component of the time series defined in States. All time series use the common set of time samples defined here.
/Objects/Decals
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the decal instance type. Each decal instance has a row in this table, given by the index in MasterTable.
/Objects/FacetObjects
Type |
Group |
Required |
Yes |
Contains the input data for all facetized objects in the scene. Note that this is not the type-specific table for facetized objects, but each facetized object will appear as a group inside of this group.
/Objects/FacetObjects/:object
Type |
Group |
Contains input data for a single facet object. Note that :object
must start
with the numeric ID of the type-specific index given to the object in
MasterTable.
/Objects/FacetObjects/:object/BoundingBox
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
2 x 3 |
Required |
Yes |
Contains the minimum (1st row) and maximum (2nd row) points of the objects bounding box in meters.
/Objects/FacetObjects/:object/FacetMaterials
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains the local material indices for each facet in the object. Rows in this table correspond to rows in Facets. These indices may be remapped by the instance-level property remapping.
/Objects/FacetObjects/:object/Facets
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N x 3 |
Required |
Yes |
Contains all of the facets for the object. Each facet has a row in this table. Each column is the index of a vertex in Vertices.
/Objects/FacetObjects/:object/FacetTemperatureOverrides
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Contains temperature overrides for each facet in the object. Rows in this
table correspond to rows in
Facets. If a value of
-1
is given, then there is no override and the temperature model given by the
material is used.
/Objects/FacetObjects/:object/TextureCoordinates
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x 2 |
Required |
No |
Contains texture coordinate data. Each row is a u
and v
texture coordinate.
/Objects/FacetObjects/:object/TextureFacets
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N x 3 |
Required |
If |
Contains all of the texture facets for the object. Each facet has a row in this table and corresponds to a row in Facets. Each column is the index of a vertex in TextureCoordinates. Every row must contain 3 valid indices of texture vertices.
/Objects/FacetObjects/:object/VertexNormalFacets
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N x 3 |
Required |
If VertexNormals is present |
Contains all of the texture facets for the object. Each facet has a row in this
table and corresponds to a row in
Facets.
Each column is the index of a vertex normal in
VertexNormals. If a
value of 0xffffffff
is found for any of the three vertices, then vertex normal
interpolation shall not be performed on this facet and the facet normal will be
used instead.
/Objects/FacetObjects/:object/VertexNormals
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x 3 |
Required |
No |
Contains the vertex normals for the object. Each normal has one row in this table and is stored in XYZ component order.
/Objects/FacetObjects/:object/Vertices
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x 3 |
Required |
Yes |
Contains all of the vertices of the facetized object as XYZ points in meters in the object’s local coordinate system.
/Objects/FlexMotion
Type |
Group |
Required |
No |
Contains information about all FlexMotion instances in the scene.
/Objects/FlexMotion/Engines
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the instance type-specific table for FlexMotion. Rows are referenced by the type-specific indexes given in MasterTable. This table redirects to LocationEngines/Index and OrientationEngines/Index.
/Objects/FlexMotion/LocationEngines
Type |
Group |
Required |
Yes |
Contains information about the location engines for all FlexMotion instances in the scene.
/Objects/FlexMotion/LocationEngines/CirclingPath
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the Circling location engine. Each row contains the parameters for one instance and row indices are given by LocationEngines/Index. This table is only required if circling path instances are present in the scene.
/Objects/FlexMotion/LocationEngines/Index
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Each row specifies a location engine. Row indices are given by the location engine indices in EngineTable. An engine is specified by a type and an index into the type-specific table. The type-specific tables are:
Type | Type-specific Table |
---|---|
Circling |
|
Sgp4 |
|
StraightPath |
|
Waypoints |
/Objects/FlexMotion/LocationEngines/Sgp4Tles
Type |
Dataset |
Data Type |
C_S1 (ASCII) |
Dataspace Type |
Simple |
Dimensions |
N x 138 |
Required |
No |
This serves as the type-specific table for the SGP4 location engine. Each row row contains the two-line element (TLE) for one instance and row indices are given by LocationEngines/Index. The TLE is stored without a newline character or a trailing null character. This table is only required if there are SGP4 instances in the scene.
/Objects/FlexMotion/LocationEngines/StraightPath
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the Straight Path location engine. Each row contains the parameters for one instance and row indices are given by the type-specific indices in LocationEngines/Index. This table is only required if there are any straight path location engines.
/Objects/FlexMotion/LocationEngines/WaypointsPath
Type |
Group |
Required |
No |
Contains information about all instances using the Waypoints location engine. See the Flexible Motion Manual for more information. This group is only required if there are waypoint instances in the scene.
Data
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each row contains the parameters for a waypoint. Multiple waypoint time series may be present in this table but within a time series, waypoints must be listed in ascending time order. Time series boundaries are given by the rows in Ranges.
Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the type-specific table for the Waypoints location engine. Each row contains the parameters for one instance and row indices are given by LocationEngines/Index. The rows specify a range in rows in Data that make up the time series of waypoints for that row’s engine.
/Objects/FlexMotion/MaterialRemapping
See Material Remapping.
/Objects/FlexMotion/MaterialRemappingRanges
See Material Remapping.
/Objects/FlexMotion/OrientationEngines
Type |
Group |
Required |
Yes |
Contains information about the orientation engines for all FlexMotion instances in the scene.
/Objects/FlexMotion/OrientationEngines/Index
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each row contains orientation engine information for a single FlexMotion instance. Row indices are given by the rows in EngineTable. An engine is specified by a type and an index into the type-specific table. The type-specific tables are:
Type | Type-specific Table |
---|---|
Quaternions |
|
LookAt |
|
Spin |
|
Velocity |
/Objects/FlexMotion/OrientationEngines/LookAt
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the LookAt orientation engine. Each row contains the parameters for one instance and row indices are given by OrientationEngines/Index. The LookAt orientation uses a location engine to provide the point at which to look at. See LocationEngines/Index for more details. This dataset is only required if there are LookAt orientation engines in the scene.
/Objects/FlexMotion/OrientationEngines/Quaternions
Type |
Group |
Required |
No |
Contains information about all instances using the Quaternions orientation engine. See the Flexible Motion Manual for more information. This group is only required if there are quaternion instances in the scene.
Data
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains data points for the quaternion orientation model. Each row is a data point in a quaternion time series. Multiple time series may be present in this table, but within a time series, quaternions must be given in ascending time order. Time series boundaries are defined in Ranges.
LoopFlags
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains whether each quaternion orientation engine should loop. Rows in this table correspond to rows in Ranges. A non-zero value indicates that the orientations should loop.
Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the type-specific table for the Quaternions orientation engine. Each row contains the parameters for one instance and row indices are given by OrientationEngines/Index. The rows define ranges in Data that compose the quaternion time series for this engine.
/Objects/FlexMotion/OrientationEngines/Spin
Type |
Group |
Required |
No |
Contains information about all instances using the Spin orientation engine. See the Flexible Motion Manual for more information. This group is only required if there are spin engines in the scene.
Axes
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains the axis of spin for each spinning instance. Rows in this table correspond to rows in Ranges.
Data
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains data points for the spin orientation model. Each row is a data point in a time series. Multiple time series may be present in this table, but within a time series, data points must be given in ascending time order. Time series boundaries are defined in Ranges.
Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the type-specific table for the Spin orientation engine. Each row contains the parameters for one instance and row indices are given by OrientationEngines/Index. Each row defines a range of rows in Data that form the time series for this engine.
/Objects/FlexMotion/OrientationEngines/Velocity
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the Velocity orientation engine. Each row contains the parameters for one instance and row indices are given by OrientationEngines/Index. This dataset is only required if there are Velocity engines in the scene.
The velocity orientation assumes the sensor orientation is determined by the
velocity vector given by the location engine. Currently, the only supported
constraint option is 2
, which corresponds to a scene ENU vector that defines
the "up" direction for the sensor.
/Objects/KeyframeMotion
Type |
Group |
Required |
No |
Contains instancing information for all KeyframeMotion instances in the scene. This group is only required if there are keyframe motion instances in the scene.
/Objects/KeyframeMotion/DataTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a number of KeyframeMotion records. Multiple time series can be held in this table, but within a time series, records must be in ascending time order. Time series boundaries are defined by the rows in DataTableRanges.
/Objects/KeyframeMotion/DataTableRanges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves the the type-specific table for KeyframeMotion instances. Contains a row for each instance that defines a range of rows in DataTable that define the time series of the instance’s position, rotation and scale.
/Objects/KeyframeMotion/MaterialRemapping
See Material Remapping.
/Objects/KeyframeMotion/MaterialRemappingRanges
See Material Remapping.
/Objects/MasterTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains top-level information about all objects in the scene. The type-specific tables for the various row types are:
Type | Type-specific Table |
---|---|
Unknown |
N/A |
StaticInstance |
|
DynamicInstance |
|
DecalInstance |
|
FlexMotionInstance |
|
FacetizedObject |
|
Sphere |
|
Box |
|
Disk |
|
Cylinder |
|
Source |
|
ConeFrustum |
|
RegularGrid |
/Objects/NoMotion
Type |
Group |
Required |
No |
Contains information about all static instances in the scene. This group is only required if there are any static instances in the scene.
/Objects/NoMotion/MaterialRemapping
See Material Remapping.
/Objects/NoMotion/MaterialRemappingRanges
See Material Remapping.
/Objects/NoMotion/Transforms
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each row contains the geometric transform for each static instance. Row indices are given by the type-specific indices in MasterTable.
/Objects/NormalMaps
Type |
Group |
Required |
No |
Contains datasets for all normal (bump) maps in the scene. See the Property Maps Manual for more details on how these maps work.
/Objects/NormalMaps/:map
Type |
Dataset |
Data Type |
NATIVE_UCHAR |
Dataspace Type |
Simple |
Dimension |
N x M x 3 |
This is an HDF image that holds the normal map. See
HDF5 Image Specification
for more details. In the case of normal maps, the CLASS
attribute must be
"IMAGE"
, IMAGE_SUBCLASS
must be "IMAGE_TRUECOLOR"
, IMAGE_VERSION
must be
"1.2"
and INTERLACE_MODE
must be "INTERLACE_PIXEL"
. In addition to the
attributes in Map Projection, the following attributes are
defined:
Name | Data Type | Dimensions | Description |
---|---|---|---|
"Material Index" |
NATIVE_INT |
1 |
ID of the material being used with this map. Currently unused. |
/Objects/Primitives
Type |
Group |
Required |
No |
Contains information about all primitive geometry objects in the scene. This group is only required if there are primitives in the scene.
/Objects/Primitives/Boxes
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Serves as the type-specific table for boxes. Holds the parameters for each box in the scene. Units are in scene ENU meters. Row indices are given by the type-specific indices in MasterTable.
/Objects/Primitives/ConeFrusta
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Serves as the type-specific table for cone frusta. Holds the parameters for each cone frustum in the scene. Units are in scene ENU meters. Row indices are given by the type-specific indices in MasterTable. Top cap radius must be less than the bottom cap radius.
/Objects/Primitives/Cylinders
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Serves as the type-specific table for cylinders. Holds the parameters for each cylinder in the scene. Units are in scene ENU meters. Row indices are given by the type-specific indices in MasterTable.
/Objects/Primitives/Disks
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Serves as the type-specific table for disks. Holds the parameters for each disk in the scene. Units are in scene ENU meters. Row indices are given by the type-specific indices in MasterTable.
/Objects/Primitives/Spheres
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Serves as the type-specific table for spheres. Holds the parameters for each sphere in the scene. Units are in scene ENU meters. Row indices are given by the type-specific indices in MasterTable.
/Objects/RegularGrids
Type |
Group |
Required |
No |
Contains the input data for any regular grids in the scene. This group is only required if there are regular grids in the scene.
/Objects/RegularGrids/:gridname
Type |
Group |
Contains the input data for a single regular grid in the scene. Note that there is currently no lookup table for grid names, so in order for the indices in MasterTable to be correct, regular grids must be ordered alphabetically.
The following attributes are defined:
Name | Data Type | Dimensions | Description |
---|---|---|---|
|
StrType<C_S1, VarLen> |
1 |
The filename of the regular grid |
|
NATIVE_FLOAT |
3 |
The origin of the grid in scene ENU meters |
|
NATIVE_FLOAT |
3 |
The scale of the grid in X, Y and Z in meters |
/Objects/RegularGrids/:gridname/DataTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Contains the regular grid’s voxel data.
/Objects/Tags
Type |
Group |
Required |
No |
Contains information about all tagged objects in the scene. This group is only required if there are tagged instances in the scene.
/Objects/Tags/Indexes
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Contains a number of object indices into MasterTable. All objects that are associated to a single tag must be adjacent in this list. As such, a single object ID may appear multiple times if it has multiple tags. Objects are related to tags via the Ranges table.
/Objects/Tags/Names
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Each tag has a row in this table which is the name of the tag. Rows correspond to the rows of Ranges.
/Objects/Tags/Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Each tag has a row in this table. Each row defines a range in Indexes, which are the object indices to which this tag applies.
/Objects/TimeWindows
Type |
Group |
Required |
No |
Contains information about time-windowed objects. That is, objects that are only enabled in the scene during certain periods. This group is only required if there are time-windowed objects in the scene.
/Objects/TimeWindows/Definitions
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Each row is the definition of a time window. See the GLIST manual section on time windows for the potential formats of these strings.
/Objects/TimeWindows/Indexes
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Rows in this table correspond to rows in Definitions. The values in this list are object indices and relates the time window definitions in Definitions to objects in MasterTable.
/Properties
Type |
Group |
Required |
Yes |
Contains material properties for the scene
/Properties/BalfourMaps
Type |
Group |
Required |
No |
Contains all of the maps of Balfour thermal model parameters maps. See :dataset for a description of how Balfour maps are stored. This group is only required if there are Balfour maps in the scene.
/Properties/BalfourMaps/Index
This is the type-specific table for Balfour maps. See Map Indexing.
/Properties/BalfourMaps/:dataset
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x M x K |
Holds the map data for the Balfour parameter map. The values in this map are
the coefficients in the Balfour model, however their interpretation can vary
based on the Type
attribute. See the Temperature Solvers manual for a detailed
description of the Balfour model.
In addition to the attributes in Map Projection, the following attributes are defined:
Name | Data Type | Dimensions | Description |
---|---|---|---|
"Type" |
NATIVE_UCHAR |
1 |
The variant of Balfour model being mapped |
The Type
column can take on the following values:
Value | Description |
---|---|
0 |
Classic ( |
1 |
Iterative ( |
/Properties/ClassicBalfourTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the classic Balfour model. Each row contains the coefficients for the classic Balfour model.
/Properties/DataDrivenTempModels
Type |
Group |
Required |
No |
Contains information about all data-driven temperature models in the bundle.
/Properties/DataDrivenTempModels/Data
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This table holds time-temperature samples that form time series for the data-driven temperature model. The bounds of the time series are given by the rows of Ranges.
/Properties/DataDrivenTempModels/Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the type-specific table for the data-driven temperature model. Each row in this table is an index range into Data that define a time series of temperature samples.
/Properties/IterativeBalfourTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the iterative Balfour model. Each row contains the coefficients for the iterative Balfour model.
/Properties/MaterialNames
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains the names for all of the materials. Entries in this table correspond to entries in Materials.
/Properties/Materials
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the top-level material index table. The names of the materials can be found in the corresponding rows in MaterialNames. The last material in this table is the primary material in the bundle.
The type specific tables are:
Type | Type-specific Table |
---|---|
Null |
N/A |
Surface |
|
Volume |
|
PureMap |
|
MixedMap |
/Properties/MixedMaterialMaps
Type |
Group |
Required |
No |
Contains information about all mixed material maps found in the scene. See :mapname for details on how a mixed material map is stored. This group is only required if there are mixed material maps in the scene.
/Properties/MixedMaterialMaps/Index
This is the type-specific table for mixed material maps. See Map Indexing.
/Properties/MixedMaterialMaps/:mapname
Type |
Group |
Contains information about a single mixed material map. This group has the attributes from Map Projection.
/Properties/MixedMaterialMaps/:mapname/LocalWeights
Type |
Dataset |
Data Type |
NATIVE_USHORT |
Dataspace Type |
Simple |
Dimensions |
N x M x K |
Required |
Yes |
Contains the map data for a mixed temperature map. At each pixel location,
there is a weight for each of the materials listed in
Lut. The weight is computed as the
value divided by 65535, so across all channels for a single pixel, the sum
should be 65535. Note that the K
in this table’s dimensions must be equal to
the dimensionality, N
, of Lut.
/Properties/MixedMaterialMaps/:mapname/Lut
Type |
Dataset |
Data Type |
NATIVE_INT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Provides a look-up table of channel index in LocalWeights to a material index in Materials. Note that the dimensionality of this table must match the number of channels in the weights map.
/Properties/MixedOpticalPropertiesMaps
Type |
Group |
Required |
No |
Contains information about all mixed optical properties maps found in the scene. See :mapname for details on how a mixed optical properties map is stored. This group is only required if there are mixed optical properties maps in the scene.
/Properties/MixedOpticalPropertiesMaps/Index
This is the type-specific table for mixed optical properties maps. See Map Indexing.
/Properties/MixedOpticalPropertiesMaps/:mapname
Type |
Group |
Contains information about a single mixed optical properties map. This group has the attributes from Map Projection.
/Properties/MixedOpticalPropertiesMaps/:mapname/LocalWeights
Type |
Dataset |
Data Type |
NATIVE_USHORT |
Dataspace Type |
Simple |
Dimensions |
N x M x K |
Required |
Yes |
Contains the map data for a mixed optical properties map. At each pixel
location, there is a weight for each of the optical properties listed in
Lut. The weight is computed
as the value divided by 65535, so across all channels for a single pixel, the
sum should be 65535. Note that the K
in this table’s dimensions must be equal
to the dimensionality, N
, of
Lut.
/Properties/MixedOpticalPropertiesMaps/:mapname/Lut
Type |
Dataset |
Data Type |
NATIVE_INT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Provides a look-up table of channel index in LocalWeights to an optical properties index in OpticalProperties. Note that the dimensionality of this table must match the number of channels in the weights map.
/Properties/OpticalProperties
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each set of optical properties in the scene has one row in this table. The type-specific tables for this file are:
Type | Type-specific Table |
---|---|
None |
N/A |
DiffuseReflectance |
|
DiffuseTransmission |
|
DeltaReflectance |
|
DeltaTransmission |
|
WardReflectance |
|
WardTransmission |
|
SphericalDataReflectance |
|
SphericalDataTransmission |
|
AbsorptionCoefficient |
|
ScatteringCoefficient |
(Currently undefined) |
PureOpticalPropertiesMap |
|
ReflectanceMap |
|
MixedOpticalPropertiesMap |
/Properties/PureMaterialMaps
Type |
Group |
Required |
No |
Contains information about all pure material maps found in the scene. See :mapname for details on how a pure material map is stored.
/Properties/PureMaterialMaps/Index
This is the type-specific table for pure material maps. See Map Indexing.
/Properties/PureMaterialMaps/:mapname
Type |
Group |
Contains information about a single pure material map. This group has the attributes from Map Projection.
/Properties/PureMaterialMaps/:mapname/LocalIndexMap
Type |
Dataset |
Data Type |
NATIVE_UCHAR |
Dataspace Type |
Simple |
Dimensions |
N x M |
Required |
Yes |
/Properties/PureMaterialMaps/:mapname/Lut
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a look-up table from values in LocalIndexMap to material indices in Materials.
/Properties/PureOpticalPropertiesMaps
Type |
Group |
Required |
No |
Contains information about all optical properties maps found in the scene. See :mapname for details on how a pure optical properties map is stored.
/Properties/PureOpticalPropertiesMaps/Index
This is the type-specific table for pure optical properties maps. See Map Indexing.
/Properties/PureOpticalPropertiesMaps/:mapname
Type |
Group |
Contains information about a single pure optical properties map. This group has the attributes from Map Projection.
/Properties/PureOpticalPropertiesMaps/:mapname/LocalIndexMap
Type |
Dataset |
Data Type |
NATIVE_UCHAR |
Dataspace Type |
Simple |
Dimensions |
N x M |
Required |
Yes |
Holds the map data for the pure optical properties map. The values in this map are mapped to optical properties indices in OpticalProperties by Lut.
/Properties/PureOpticalPropertiesMaps/:mapname/Lut
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a look-up table from values in LocalIndexMap to optical properties indices in OpticalProperties.
/Properties/ReflectanceMaps
Type |
Group |
Required |
No |
Contains all of the reflectance map data sets. It is not the type-specific table for reflectance maps. See :dataset for a description of how reflectance maps are stored. This group is only required if there are reflectance maps in the scene.
/Properties/ReflectanceMaps/Index
This is the type-specific table for reflectance maps. See Map Indexing.
/Properties/ReflectanceMaps/:dataset
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x M x K |
Contains the reflectance map data. At each pixel, an entire reflectance spectrum is stored. In addition to the attributes in Map Projection, the following attributes are defined:
Name | Data Type | Dimensions | Required | Description |
---|---|---|---|---|
|
NATIVE_FLOAT |
N |
No |
The wavelengths (in microns) for the center of each band. If not present, assumes scene-level wavelengths from SpectralSamplesTable. |
/Properties/Sources
Type |
Group |
Required |
No |
Contains information about all sources in the scene. This group is only required if there are sources in the scene.
/Properties/Sources/BlinkDataTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the type-specific table for blinking modulation. Each blinking source has a row in this table, given by the modulation index in Index.
/Properties/Sources/CosineModelDataTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each row contains a weight and a shape factor for a cosine intensity profile. For more details on how these parameters affect the source distribution, see the User-Defined Sources Manual. Using CosineModelIndexTable, a source can sum multiple cosine distributions in this table to form a more complex source intensity distribution.
/Properties/Sources/CosineModelIndexTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the type-specific table for directional cosine sources. Each directional cosine source has a row in this table, given by the shape model index in Index. Each row stores defines a range of entries in CosineModelDataTable that define the cosine terms to sum for the source’s intensity distribution.
/Properties/Sources/ModulationDataTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each row describes a cosine function that can be used to describe a source’s modulation. Using ModulationIndexTable, a source can use multiple cosine modulations and sum them to obtain a more complex pattern.
/Properties/Sources/ModulationIndexTable
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the type-specific table for modulating sources. Each modulating source has a row in this table, given by the modulation index in Index. Each row stores defines a range of rows in ModulationDataTable, which are the cosine terms to sum for the source’s modulation profile.
/Properties/Sources/Index
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the master data table for all sources in the scene. Each source has one row. The type-specific tables for source shape models are:
Type | Type-specific tables |
---|---|
Unknown |
N/A |
Omnidirectional |
N/A |
Directional Cosine |
The modulation type-specific tables are:
Type | Type-specific table |
---|---|
None |
N/A |
Blinking |
|
Modulating |
/Properties/SpectralCurvesTable
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N X M |
Contains a library of spectral curves, one per row. The sample in column M
correspond to the wavelength in column M
in
SpectralSamplesTable.
/Properties/SpectralSamplesTable
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
1 x M |
Contains the spectral curve samples table. Each row is a wavelength in microns. These are the wavelengths for which spectra in this file are sampled. This is not the spectral resolution of the simulation, however.
/Properties/SphericalData
Type |
Group |
Required |
No |
Contains all of the data for spherical data (SQT) optical properties.
/Properties/SphericalData/Data
Type |
Dataset |
Data Type |
NATIVE_CHAR |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
Contains the spherical (SQT) data for all materials in the bundle. The bounds of the data for each material are found in Ranges.
/Properties/SphericalData/Index
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for spherical data optical properties. Each row has an index of a DHR curve and the index of a range row in Ranges, which has the bounds of the SQT data.
/Properties/SphericalData/Ranges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
/Properties/TemperatureModels
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This is the top-level index for temperature models in the bundle. Each row has a temperature model type and a type-specific index. The type-specific tables in this file are:
Type | Type-specific Table |
---|---|
None |
N/A |
DataDriven |
|
ThermMap |
|
TemperatureMap |
|
BalfourMap |
|
Therm |
|
ClassicBalfour |
|
IterativeBalfour |
/Properties/TemperatureMaps
Type |
Group |
Required |
No |
Contains all of the temperature map data sets. See :dataset for a description of how temperature maps are stored. This group is only required if there are temperature maps in the scene.
/Properties/TemperatureMaps/Index
This is the type-specific table for temperature maps. See Map Indexing.
/Properties/TemperatureMaps/:dataset
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x M |
Holds the data for the temperature map. Units are Kelvin. This dataset has the attributes for Map Projection.
/Properties/ThermMaps
Type |
Group |
Required |
No |
Contains all of the maps of THERM thermal model parameters. See :dataset for a description of how THERM maps are stored. This group is only required if there are THERM maps in the scene.
/Properties/ThermMaps/:dataset
Type |
Dataset |
Data Type |
NATIVE_FLOAT |
Dataspace Type |
Simple |
Dimensions |
N x M x 8 |
Holds the map data for the THERM parameter map. The values in this map are the parameters in the THERM model. The meanings of the bands are as follows:
Column | Value |
---|---|
0 |
Specific Heat |
1 |
Mass Density |
2 |
Thermal Conductivity |
3 |
Thickness |
4 |
Solar Absorption |
5 |
Thermal Emissivity |
6 |
Self Generated Power |
7 |
Exposed Area |
See the Thermal Handbook for details on these parameters. The dataset has the attributes defined in Map Projection.
/Properties/ThermMaps/Index
This is the type-specific table for THERM maps. See Map Indexing.
/Properties/ThermModels
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for THERM. Each row contains the thermal input parameters for a THERM model.
/Properties/WardData
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
No |
This serves as the type-specific table for the Ward optical properties. Each row contains the curve indices in SpectralCurvesTable. Currently, only the first specular width term is used and the specular lobe is assumed to be isotropic.
Material Remapping
Instance-level material remapping is handled the same way between all instance types in the scene (with the exception of decals, which do not perform remapping). The following datasets are defined inside of the instance type’s group.
/Objects/:instancetype/MaterialRemapping
Type |
Dataset |
Data Type |
NATIVE_UINT |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a list of material indices. Each entry is an index into /Properties/Materials. Materials are ordered in such a way that all materials that exist in one object are grouped continuously in this list, so that each object has a start index into this list (in /Objects/:instancetype/MaterialRemappingRanges) that can be used to map the local object-level material index to a material index in /Properties/Materials.
/Objects/:instancetype/MaterialRemappingRanges
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Contains a row for each instance that defines a range of material IDs in MaterialRemapping. Object-level material indices can be offset by the start index to obtain the index in MaterialRemapping. The entry in MaterialRemapping then gives the scene-level material index, which can be used in /Properties/Materials to get information about the material. See the figure for an illustration of the remapping.
Map Index Group
All map types share the same indexing mechanism that functions as the type-specific table for that map type.
/Properties/:maptype/Index
Type |
Group |
Group containing the map indexing tables.
/Properties/:maptype/Index/Index
Type |
Dataset |
Data Type |
|
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
This serves as the type-specific table for the map type. Each row contains an
index into Paths, which holds the name of the
map group/dataset in /Properties/:maptype
and a projector index in the map’s
projector table.
/Properties/:maptype/Index/Paths
Type |
Dataset |
Data Type |
StrType<C_S1, VarLen> |
Dataspace Type |
Simple |
Dimensions |
N |
Required |
Yes |
Each rows is a dataset or group name inside of /Properties/:maptype
that
contains a single map. These rows are referred to by rows in
Index.
Map Projection
There are a number of maps that can be stored in the HDF file and they all share the problem of how to project them onto geometry. This is solved through the use of attributes on the map data set or group. The following attributes are defined on each type of map:
Name | Data Type | Required | Dimensions | Description |
---|---|---|---|---|
|
Yes |
N |
Contains projection information for each projection associated with this map |
|
|
No |
M |
Holds drape-projection specific parameters |
Note that since UV projection has no additional parameters, there is no type-specific table for it.