This is the interface control document for the material bundle HDF document. The material bundle supports a subset of the materials that may be found in a scene data model. The supported materials are the ones that could reasonably be considered to be reusable and independent of the scene. Currently, material bundles only support surface materials, which are composed of optical properties and a temperature model. The supported types of optical properties are:

  • Diffuse reflectance and transmission

  • Delta reflectance and transmission

  • Ward reflectance and transmission

  • Spherical data reflectance and transmission

The supported types of temperature models are:

  • Data-driven temperature

  • THERM

  • Classic and iterative Balfour

Mapped properties are not supported at this time due them normally being specific to the scene. However, maps may be supported in the future to support reusable texturing.

This document is for version 2 of the data model.

/

Type

File

Contains the standard attributes described in DIRSIG HDF Standard Info Section.

/Properties

Type

Group

Required

Yes

Contains information about the bundled materials.

/Properties/ClassicBalfourTable

Type

Dataset

Data Type

ClassicBalfourRecord

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

DataDrivenTempRecord

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

RangeEndInclusive

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

IterativeBalfourRecord

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

MaterialRecord

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

Not supported

Surface

OpticalProperties, TemperatureModels

Volume

Not supported

PureMap

Not supported

MixedMap

Not supported

/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 map is stored and Index for the type-specific table.

/Properties/MixedOpticalPropertiesMaps/Index

This group serves as the type-specific table for mixed optical properties maps, see Map Index Group for details.

/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 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/MixedOpticalPropertiesMaps/:mapname/Lut

Type

Dataset

Data Type

NATIVE_INT

Dataspace Type

Simple

Dimensions

N

Required

Yes

Contains a look-up table from local band indices to optical properties indices in OpticalProperties. A value of -1 is used to indicate a null material.

/Properties/OpticalProperties

Type

Dataset

Data Type

OpticalPropertiesRecord

Dataspace Type

Simple

Dimensions

N

Required

Yes

This is the top-level index table for optical properties. Each contains a property type (combination of reflectance and transmission property), as well as type-specific indices for the reflectance and transmission properties.

The type-specific tables in this file are:

Type Type-specific Table

Diffuse Reflectance

SpectralCurvesTable

Diffuse Transmission

SpectralCurvesTable

Delta Reflectance

SpectralCurvesTable

Delta Transmission

SpectralCurvesTable

Ward Reflectance

WardData

Ward Transmission

WardData

Spherical Data Reflectance

SphericalData/Index

Spherical Data Transmission

SphericalData/Index

Pure Optical Properties Map

PureOpticalPropertiesMaps/Index

Mixed Optical Properties Map

MixedOpticalPropertiesMaps/Index

/Properties/PureOpticalPropertiesMaps

Type

Group

Required

No

Contains information about all pure optical properties maps found in the scene. See :mapname for details on how a map is stored and Index for the type-specific table.

/Properties/PureOpticalPropertiesMaps/Index

This group serves as the type-specific table for pure optical properties maps, see Map Index Group for details.

/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 local indices into Lut, which maps them into optical properties indices into OpticalProperties.

/Properties/PureOpticalPropertiesMaps/:mapname/Lut

Type

Dataset

Data Type

NATIVE_UINT

Dataspace Type

Simple

Dimensions

N

Required

Yes

Contains a look-up table from local indices to optical properties indices in OpticalProperties.

/Properties/SpectralSamplesTable

Type

Dataset

Data Type

NATIVE_FLOAT

Dataspace Type

Simple

Dimensions

N

Required

Yes

Contains the wavelength samples for the spectral curves in SpectralCurvesTable. Each element is a wavelength in microns.

/Properties/SpectralCurvesTable

Type

Dataset

Data Type

NATIVE_FLOAT

Dataspace Type

Simple

Dimensions

N x M

Required

Yes

Contains a library of spectral curves, one per row. The sample in column M correspond to the M-th wavelength in SpectralSamplesTable.

/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

SphericalDataIndexRecord

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

RangeEndInclusive

Dataspace Type

Simple

Dimensions

N

Required

No

This is a range table that specifies the bounds of the SQT binary data in Data. The rows are referred to by rows in Index.

/Properties/TemperatureModels

Type

Dataset

Data Type

TemperatureModelRecord

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

DataDriven

DataDrivenTempModels/Ranges

Therm

ThermModels

ClassicBalfour

ClassicBalfourTable

IterativeBalfour

IterativeBalfourTable

/Properties/ThermModels

Type

Dataset

Data Type

ThermRecord

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

WardRecord

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.

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

MapIndexRecord

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

"Projectors"

ProjectorRecord

Yes

N

Contains projection information for each projection associated with this map

"DrapeParameters"

DrapeProjectorRecord

No

M

Holds drape-projection specific parameters

Note that since UV projection has no additional parameters, there is no type-specific table for it.