DIRSIG renders scenes consisting of 3D facetized objects. Early versions stored the scene in a single Geometric Database File The current versions uses an "object database" file that assembles a set of geometric objects into a scene. The objects do not follow any specific rules regarding size or extent, only that they be a separate geometry file. At this point, the object database facility only supports Geometric Database File files as the source of object geometry but future versions will expand this capability to other common formats.
For each object in the object database, a list of instances is also provided. Each instance of the object includes the rotation and scale of the given object at a given location. Each instance requires a minimal amount of system resources so a high fidelity model can be used many times in a scene with very little incremental resource requirements over that of a single object.
An ODB file consists of a series of OBJECT entries. Each object entry describes one unique geometric object and where it appears in the scene. The source of the attributed object geometry is specified by the GDB_FILENAME variable. Each object also needs the UNITS variable set to indicate the physical units of the geometry file and it accepts the same values as the UNITS variable in the SCENE section. Each object must also have an INSTANCES section that defines the instances of this object within the scene. This subsection consists of a series of INFO entries that define the X, Y and Z location of the object, the X, Y and Z scale factors for the object and the X, Y and Z rotation angles (in degrees) for the object. The example below illustrates this basic format.
DIRSIG_ODB = 1.0
OBJECT {
GDB_FILENAME = aircraft.gdb
UNITS = INCHES
INSTANCES {
INFO = 3080.00, 9100.00, 15.24, 1.00, 1.00, 1.00, 0.00, 0.00, 115.0
INFO = 8415.00, 3610.00, 15.24, 1.00, 1.00, 1.00, 0.00, 0.00, -90.0
}
}
OBJECT {
GDB_FILENAME = helicopter.gdb
UNITS = INCHES
INSTANCES {
INFO = 15850.00, 2300.00, 15.24, 1.00, 1.00, 1.00, 0.00, 0.00, 0.0
}
}
Note that the object database makes several assumptions about the model geometry provided for each object. The translation of the object is applied to the origin of the object model. In most cases, it is desired that the user modify the object geometry so that the model is centered about the X and Y origin and the bottom of the model (smallest Z value) is at the Z origin. In this configuration, it is very easy to place the object within the scene. The rotation angles are also relative to the origin of the object space. If the object is not ``centered'' in the described fashion, the rotation of the object may yield unexpected results.