Overview

The DIRSIG Bundle Inventory is a collection of bundled objects and materials for quick and convenient use in DIRSIG scenes. The files are intended to be stored in a central location (e.g. C:\My Documents\DIRSIG or ~/Documents/DIRSIG) which will be referenced by DIRSIG via the $DIRSIG_BUNDLE_PATH environment variable. Once this is set up, these bundled objects and materials can be used in DIRSIG scenes without copying any of the files into the scene folder.

Inventory Setup

The DIRSIG Bundle Inventory can be set up by completing the following steps:

  • Download dirsig_bundle_inventory.zip from myDIRSIG

  • Unzip the file to a central folder, such as ~/Documents/DIRSIG

  • Add that folder to the DIRSIG_BUNDLE_PATH environment variable:

    • In Linux/Mac, add the following line to one of the startup scripts on your system (.profile, .bashrc, etc.): export DIRSIG_BUNDLE_PATH=/path/to/bundles where /path/to/bundles is the location of the unzipped inventory

    • In Windows, run the DOS command setx DIRSIG_BUNDLE_PATH "C:\DIRSIG\bundles" /M where C:\DIRSIG\bundles is the location of the unzipped inventory. Note the /M sets the variable at the system level and can be omitted to set the variable at the user level.

Included Materials

The materials included in the bundle inventory have descriptive names. The .mat.hdf files contain metadata that includes information such as where spectral measurements were recorded, spectrometer model, geographic location, etc. when applicable.

Using a bundled material from the inventory

A bundled material can be used in a material database (.mat file) by simply defining a material with the .mat.hdf filename. Below is an example MATERIAL_ENTRY.

MATERIAL_ENTRY {
    ID           = busloop_terrain_grass
    NAME         = Grass - RITBusloop Terrain
    BUNDLE_FILENAME = busloop_terrain_grass.mat.hdf
}
Note No path was provided for busloop_terrain_grass.mat.hdf because it is defined in the $DIRSIG_BUNDLE_PATH variable.

The material can be assigned to an object using the Material ID busloop_terrain_grass. A simple example is shown below.

<basegeometry>
  <obj>
    <filename>terrain.obj</filename>
    <assign id="busloop_terrain_grass">default</assign>
  </obj>
</basegeometry>

Included Objects

The bundle inventory comes with a variety of objects that were hand-picked, bundled, and gathered from various scenes. Many of the objects in the first version of the inventory were from the warehouse and RITBusLoop scenes. While these object bundles can be copied into a scene’s geometry folder and instanced, they were designed to be used without the need to move them out of the inventory folder.

Using a bundled object from the inventory

The $DIRSIG_BUNDLE_PATH variable acts as one of the search paths used by the scene compiler. If it is set up correctly, you can instance an object using the standard glist instancing method. An example is shown below.

<object enabled="true">
  <basegeometry>
    <glist>
      <filename>picnic_table/picnic_table.glist</filename>
    </glist>
  </basegeometry>
  <staticinstance>
    <translation><point><x>0</x><y>0</y><z>0</z></point></translation>
  </staticinstance>
</object>

Using the MERL SQT Materials

DIRSIG comes with all 100 car paints from the Mitsubishi Electric Research Laboratories (MERL) database. These were converted to DIRSIG’s Spherical Quad Tree (SQT) format and included in the lib folder in DIRSIG’s installation path. The $DIRSIG_BUNDLE_PATH variable simplifies the process of including these MERL car paints in any scene.

To use the MERL database materials, first add $DIRSIG_HOME/lib/data/materials/sqt/MERL (where $DIRSIG_HOME is the DIRSIG install path) to $DIRSIG_BUNDLE_PATH using the same method as above. For example, on a Mac one may include the line export DIRSIG_BUNDLE_PATH=$DIRSIG_BUNDLE_PATH:/Applications/DIRSIG.app/Contents/lib/data/materials/sqt/MERL to their ~/.profile configuration file. Once the path to the MERL data is set up you can define a MERL SQT material in your .mat file as follows.

MATERIAL_ENTRY {
  ID = blue_metallic
  NAME = blue-metallic-paint2
  SURFACE_PROPERTIES {
    REFLECTANCE_PROP_NAME = SphericalDataBRDF
    REFLECTANCE_PROP {
       DATA_FILENAME = blue-metallic-paint2.sqt
    }
  }
  RAD_SOLVER_NAME = Simple
  RAD_SOLVER {
        QUALITY = LOW
  }
}
Note The same process can be followed to use the provided SQT metal materials in .../lib/data/materials/sqt/metals.