A quick overview of all the available map types in DIRSIG is given in Table 6-1. For more details, please see the individual subsection for each map type.
Table 6-1. Summary of Map Types
| Name | Effect |
|---|---|
| Bump | Varies the facet-ray intersection normal |
| Material | Changes the material id |
| Mixture | Allows for multiple (weighted) materials |
| Radiance | Pre-computed radiance results, bypasses radiometry and thermal models |
| Reflectance | Pre-selected emissivity curve, bypasses radiometry model |
| Temperature | Pre-computed temperature result, bypasses thermal model |
| Texture | Statistically-driven variance in reflectance curve selected |
In DIRSIG v3, mixture maps were known as ``fraction maps''. Also height maps are currently not covered in this section of the manual, since they are not part of the main mapping system (they exist separately in the geometry subsystem).
Bump maps allow the scene builder to add geometric detail without adding additional facets to the scene. The PGM image associated with the bump map modifies the normal of the facet that was intersected. The end effect is the same as adding physical features using additional facets (Figure 6-6). However, bump maps do not add to the geometric complexity of the scene, and they will take up less memory than the facet-built equivalent.
One possible use for bump maps is to add realism to terrain. Rather than simply using a plain plate for a grassy field, a bump map could be used to make gentle hills.
Bump maps do have one limitation: the grazing problem shown in Figure 6-7. Since the bumps do not exist as facet geometry, they are not intersection-tested by the ray. The figure illustrates how this results in a miss for grazing rays. This problem can also materialize when shadows are being created, since nearby bumps will not be casting shadows. However, it does handle self-shading correctly. A line is created from the intersection point to the light source. If the angle between (the bump map) normal and this line is greater than 90 degrees, then the light is blocked by the bump and does not contribute energy. Overall, this grazing problem can be minimized by using small bumps in the maps and by not imaging bump-mapped objects at a near-parallel angle.
In this sample DIRSIG config file entry, the SCALE is multiplied against to mapped-to DC in the PGM image and is then added to normal.
BUMP_MAP {
IMAGE_FILENAME = bump.pgm
MATERIAL_ID = 1
INSERT_POINT = 0.0, 0.0, 0.0
GSD = 1.00
SCALE = 1.00
}
A material, or ``class'', map associates a digital count in an image to a DIRSIG material ID, using a look-up table. (Figure 6-2). Megascene takes advantage of these maps to indicate the presence of road, grass, and asphalt on the terrain. Classification algorithms were run on a visible (three band) aerial image, and the results were stored in the PGM image-file which drives the material map. Note that it is possible to chain material maps. That is, to have a material map point to another material which also has a material map associated with it. Unfortunately, this also leads to the possibility of infinite loops, where map A point to map B, and map B point back to map A. If such a loop exists, DIRSIG will simply hang during the rendering process. At this time, DIRSIG does not contain any automatic loop detection.
MATERIAL_MAP {
IMAGE_FILENAME = material.pgm
MATERIAL_ID = 1
INSERT_POINT = 0.0, 0.0, 0.0
GSD = 1.00
LUT {
0 = 2
255 = 13
}
}
Mixture maps allow facets to be composed of multiple materials. They can model, for instance, a facet representing a grassy field with 85% grass and 15% weeds. The proportions of the mixed materials (there can be more than two) may vary spatially as well.
Mixture maps are created using ENVI images. Each band represents the proportions of one material spatially. For any given (x,y) in the ENVI image, the sum of all band DCs should be 1. DIRSIG handles mixture maps by running the radiometry and thermal solvers separately for each material. It then weighs each material's result by the proper proportion, and recombines the results into a final solution.
Note that for backward compatibility reasons, the ``FRACTION'' keyword can be used interchangeably with ``MIXTURE''.
In the example below, the ``IMAGE_FILENAME'' indicates the ENVI image file being used to drive the mixture mapping. The ``INSERT_POINT'' and ``GSD'' control the tiled mapping algorithm, as usual for all map types. The ``MATERIAL_ID'' indicates the geometry material id to which this map has been applied. The ``MIXED_MAT_IDS'' indicates the materials ids being mixed. Note that the id 2 in ``MIXED_MAT_IDS'' in the list corresponds to the first ENVI image band, while id 3 corresponds to the second band, and so on. In the example, when the raytracer hits geometry with id 1, it will treat the surface as a mixture of material ids 2, 3, and 4. The weighting for this mixture would come from the ``mixture.img'' ENVI file.
Note that mixture maps in DIRISG3 only mix reflectance/emissivity; they do not compute different surface leaving radiances and then mix those. Of most importance, this approach will break down significantly in the thermal regions. DIRSIG4 computes full surface leaving radiance solutions (reflectance, thermal, etc.) and then mixes them. This is the correct approach.
FRACTION_MAP {
IMAGE_FILENAME = material.img
MATERIAL_ID = 1
MIXED_MAT_IDS = 2, 3, 4
INSERT_POINT = 0.0, 0.0, 0.0
GSD = 1.00
}
Reflectance maps preassign emissivity curves to physical locations. The curve is stored in an ENVI image file where, at a given (x,y), each band represents a single point on the emissivity curve.
REFLECTANCE_MAP {
IMAGE_FILENAME = hydice_refl.img
MATERIAL_ID = 1
INSERT_POINT = 0.0, 0.0, 0.0
GSD = 0.508
}
Temperature maps can be used to map calibrated temperature data to one or more facets (based on material ID). The IMAGE_FILENAME is expected to point to an ENVI format image (ASCII header and binary data file pair). The pixel values in the temperature image are assumed to be in degrees Celsius.
TEMPERATURE_MAP {
IMAGE_FILENAME = temperature.img
MATERIAL_ID = 1
INSERT_POINT = 0.0, 0.0, 0.0
GSD = 0.5
}
The DIRSIG model attempts to reproduce texture in image targets using an approach that reflects the actual origin of spatial variation. The appearance of texture in observed imagery results from spatial variations in reflectance (arising from inhomogeneities in the material), orientation, surface structure, shading or a combination of such factors. To simulate texture in targets, DIRSIG utilizes a large database of reflectance curves for a given material (presumed to represent the variations from inhomogeneities) and a bi-directional reflectance model to introduce variances due to orientation and surface structure.
Figure 6-8. Flow diagram of the DIRSIG texture methodology. A texture drives the selection of data from a large database of spectral measurements. Optical parameters derived from the spectral data are passed to the thermal model.

A texture image is assigned to the material class which represents the spatial variation of reflectance for a specified wavelength region. During the rendering process, the mapping mechanism identifies a pixel that is then used to drive the selection of a spectral reflectance curve from the large database of spectral measurements using a statistical mechanism that relates the variation in the texture image to variations in the database (see Figure 6-8). The selected spectral reflectance curve is then utilized in all the spectral computations involving that surface for the pixel currently being rendered. This approach introduces both the spatial and spectral correlation required for rigorous algorithm development applications. A detailed mathematical description of the DIRSIG texture methodology can be found in Section 6.2.2.
TEXTURE_MAP {
IMAGE_FILENAME = texture.pgm
MATERIAL_ID = 1
MINIMUM_WAVELENGTH = 0.4
MAXIMUM_WAVELENGTH = 0.7
GSD = 1.00
}
All of the maps are defined inside the MAPS section of the DIRSIG config file (.cfg). Each map is placed within its own subsection; the subsection name comes from the map type (e.g. BUMP_MAP). Table 6-2 lists all of the variables that may appear in these map-type subsections.
Table 6-2. Master List of MAPS Configuration Tags
| Name | Bp | Mt | Mi | Rd | Rf | Te | Tx | Description | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GSD | Y | Y | Y | Y | Y | Y | Y | Ground sampling distance. Relates size of image pixel to worldspace. | |||||
| IMAGE_FILENAME | Y | Y | Y | Y | Y | Y | Y | Name of ENVI or PGM image for map. | |||||
| IMAGE_Y_FLIP | Y | Y | Y | Y | Y | Y | Y | With tiled maps, flips the image over the x-axis before insertion. (Dv4 only) | |||||
| INSERT_POINT | Y | Y | Y | Y | Y | Y | Y | Worldspace coord at which to place upper-left corner of map image. | |||||
| LUT | N | Y | N | N | N | N | N | A lookup table section which interprets the meaning of image DCs. | |||||
| MATERIAL_ID | Y | Y | Y | Y | Y | Y | Y | Material ID with which map will be associated. | |||||
| MAXIMUM_WAVELENGTH | N | N | N | Y | Y | N | Y | Maximum wavelength which map data covers. (will extrapolate) | |||||
| MINIMUM_WAVELENGTH | N | N | N | Y | Y | N | Y | Minimum wavelength which map data covers. (will extrapolate) | |||||
| SCALE | Y | N | N | N | N | N | N | DC multiplier to find the bump's size in worldspace. | |||||