|2. VIRTUAL SCENE REPRESENTATION
In the image generator memory, the virtual scene is represented as a directed acyclic graph, consisting of nodes and directed links. This structure is built by reading a number of files that contain different models (segments) of the database.
The nodes in the scene graph are instances of different node classes and have a hierarchical relationship based on the ways in which the scene is laid out. The node classes themselves, on the other hand, have an entirely different kind of hierarchical relationship, based on the ways in which each node class is derived from another node class. The basic class of the scene hierarchy is the node, and different node classes constitute a logical structure known as class hierarchy. For the subsequent presentation, two node classes are important: geometry node class, and group node class.
The geometry node class contains a list of geometry structures, which represent the model of a given three-dimensional object, with rendering attributes (such as material, lightening properties). The group node class maintains a list of zero or more child nodes that are accessed using group operators. Children of a group node can be either geometry nodes, or group nodes. A special node class, scene node class is the root of the scene graph, and is derived from group node class. A synthetic environment can be represented as a set of segments, each segment corresponding to a geographical region, in a spatial partition approach. In Figure 1 is represented a large virtual scene with a two-dimensional spatial partition of the geographical area, into a number of p = q x q regions.
In the image generator, this virtual scene is represented as a scene graph, with all segments as children of the scene graph root (Figure 2).
|In a real-time image generator, the observer viewpoint
is updated at discrete time moments, according with the simulated movement
of the vehicle (aircraft, helicopter, terrain vehicle, a. s. o.), and the
image is generated from this position, using double buffer technique and
synchronization of image frames with vertical retrace of the graphic display.
The image generation is characterized by a viewing frustum that
delimits the space in which objects are visible.
For every object in the virtual scene is defined a bounding box, as a volume which includes all vertices of the object. For image generation, the intersection between the viewing frustum and the bounding box of each object is computed, and if these volumes are disjoint, the object is rejected, since it is certainty invisible. This condition, of certain rejection of objects, when the viewing frustum and the bounding box of the object are disjoint, is used for the management of virtual segments of the scene. A more simplified condition which can be applied for certain rejection condition is based on the distance of the bounding box from the observer viewpoint (D), which is the Euclidean distance of the closest vertex of the box to the observer viewpoint: If the distance D is greater than the far distance (F) of the viewing frustum, the object is certain invisible.
3. IMAGE GENERATOR ARCHITECTURE AND PROGRAM PARTITIONING
The virtual memory model for segmented synthetic environment can be established depending on the system architecture of the image generator. The high computing power required for real-time visualization of large virtual scenes can be obtained by means of parallel processing. For this work, we used as image generator an Onyx station from Silicon Graphics. This is a multiprocessor with shared memory (single address space memory), and the generation of a synthetic environment is a parallel program, consisting of a number of processes (or threads) which are concurrently executed on multiple processors of the host. Two or more processes communicate via shared memory, and can transfer data at memory speed, one putting data into a shared memory location, and the other taking the data out.
For image generation, the scene graph is processed by
visiting its nodes in depth-first order and in each node are executed operations
which depends on the node class. The process of visiting, or touching the
nodes is called traversing of hierarchy. The image generation
program is a depth-first traversing of a directed acyclic graph, which
is a large dimension data structure, stored in shared memory of the system.