DE4209936A1 - Terrain image simulation for use in flight simulators - has geographical feature data store in memory which is accessed and processed to provide display views dependent upon position of observer - Google Patents
Terrain image simulation for use in flight simulators - has geographical feature data store in memory which is accessed and processed to provide display views dependent upon position of observerInfo
- Publication number
- DE4209936A1 DE4209936A1 DE19924209936 DE4209936A DE4209936A1 DE 4209936 A1 DE4209936 A1 DE 4209936A1 DE 19924209936 DE19924209936 DE 19924209936 DE 4209936 A DE4209936 A DE 4209936A DE 4209936 A1 DE4209936 A1 DE 4209936A1
- Authority
- DE
- Germany
- Prior art keywords
- terrain
- computer
- data
- image
- landscape
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/08—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
- G09B9/30—Simulation of view from aircraft
- G09B9/301—Simulation of view from aircraft by computer-processed or -generated image
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/04—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles
- G09B9/05—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles the view from a vehicle being simulated
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
Die Erfindung betrifft einen Gelände-Bildsimulator zur Darstellung einer Folge von Geländeansichten, wie sie einem mit variabler Bahn und Blickrichtung über ein Gelände bewegten Beobachter erscheinen würden, enthaltendThe invention relates to a terrain image simulator Representation of a sequence of terrain views, as one moving across a site with variable path and viewing direction Observers would appear to contain
- a) Speichermittel, in welchem ein Landschaftsmodell gespeichert ist,a) storage means in which a landscape model is saved,
- b) einen Rechner zum Aufrufen von Geländeinformationen aus den Speichermitteln in Abhängigkeit von Ort und Blickrichtung des angenommenen Beobachters und zur Berechnung von Bilddaten, undb) a computer for calling up terrain information the storage means depending on location and Direction of view of the assumed observer and towards Calculation of image data, and
- c) eine Bildwiedergabeeinrichtung zur Wiedergabe der berechneten Bilddaten.c) an image display device for displaying the calculated image data.
Solche Gelände-Bildsimulatoren können zur Ausbildung von Piloten oder von Fahrern von Land- und Wasserfahrzeugen dienen. Gelände-Bildsimulatoren können aber auch bei der Entwicklung und Erprobung von Flugkörpern mit bildverarbeitenden Zielsuchköpfen benutzt werden. Die Bahn, Geschwindigkeit und Blickrichtung des Beobachters kann sich dabei willkürlich ändern. Der Gelände-Bildsimulator erzeugt in Echtzeit aus einem gespeicherten Landschaftsmodell eine Folge von Geländeansichten, die der Beobachter bei einer solchen Bahn, Geschwindigkeit und Blickrichtung in seinem Gesichtsfeld sehen würde.Such terrain image simulators can be used to train Pilots or drivers of land and water vehicles serve. Terrain image simulators can also be used at Development and testing of missiles with image processing homing heads. The train, The observer's speed and direction of view may change change arbitrarily. The terrain image simulator generates in A sequence in real time from a saved landscape model of views of the terrain that the observer has during such Path, speed and line of sight in his field of vision would see.
Die Modellierung einer Landschaft und die Erzeugung der Geländeansichten in Echtzeit erfordert einen hohen Rechneraufwand. Gelände-Bildsimulatoren nach dem Stand der Technik verwenden daher stark vereinfachte Darstellungen der Landschaft. Verbreitet ist die rechnerische Modellierung der Landschaft durch stückweise ebene Flächen. Die Landschaft wird so durch Polygone angenähert. Die Polygone sind ähnlich wie Kulissen im Theater mit Phototexturen belegt. Solche Modelle wirken aus der Nähe wenig realistisch, insbesondere bei der Darstellung von Vegetation. Es ist auch schwierig, semitransparente Objekte wie Wolken oder heiße Abgasstrahlen im infraroten Spektralbereich in dem Modell darzustellen. Weiterhin ist es bei den bekannten Gelände-Bildsimulatoren meist nicht möglich, die Auflösung von Landschaftsdetails an den wechselnden Abstand des Beobachters anzupassen.The modeling of a landscape and the generation of the Real-time terrain views require a high level Computing effort. Terrain image simulators according to the state of the Technology therefore use highly simplified representations of the Landscape. Computational modeling of the Landscape through piecewise flat surfaces. The landscape will so approximated by polygons. The polygons are similar to Backdrops in the theater covered with photo textures. Such models seem unrealistic up close, especially with the Representation of vegetation. It’s also difficult semi-transparent objects such as clouds or hot exhaust jets to be represented in the infrared spectral range in the model. Furthermore, it is with the known terrain image simulators mostly not possible to resolve landscape details adjust the changing distance of the observer.
Es ist auch möglich, mit einem Rechner Standbilder mit einem solchen Grad von Realismus zu erzeugen, daß sie nur schwer von Photographien zu unterscheiden sind. Die dafür benötigte Rechenzeit kann jedoch selbst bei Verwendung größerer Rechner im Bereich von Stunden liegen.It is also possible to use a computer to capture still images with a to produce such a degree of realism that it is difficult to produce Differentiate between photographs. The one you need However, computing time can be increased even when using larger computers are in the range of hours.
Der Erfindung liegt die Aufgabe zugrunde, einen Gelände-Bild simulator der eingangs definierten Art so auszubilden, daß in Echtzeit eine realistischere Darstellung des Geländes als mit den Gelände-Bildsimulatoren nach dem Stand der Technik möglich ist.The invention has for its object a terrain image training simulator of the type defined in the introduction such that a more realistic representation of the terrain in real time than with the state-of-the-art terrain image simulators is possible.
Erfindungsgemäß wird diese Aufgabe dadurch gelöst, daßAccording to the invention, this object is achieved in that
- d) die Speichermittel einen Massenspeicher hoher Speicherkapazität aufweisen, in welchem das gesamte Landschaftsmodell gespeichert ist, und einen Arbeitsspeicher mit kurzer Zugriffszeit, wobei das Landschaftsmodell in Form einer hierarchischen Auflösungspyramide organisiert ist,d) the storage means a mass storage high Have storage capacity in which the entire Landscape model is saved, and a RAM with short access time, whereby the Landscape model in the form of a hierarchical Dissolution pyramid is organized
- e) der Rechner erste Rechnermittel aufweist, durch welche Geländeinformation des Landschaftsmodells, die einem durch die Bewegung und Blickrichtung des Beobachters bestimmten Geländeausschnitt entsprechen, durch hierarchische Aussonderung bestimmbar und in den Arbeitsspeicher übertragbar sind,e) the computer has first computer means by which Terrain information of the landscape model, which one through determined the movement and direction of the observer Terrain section correspond by hierarchical Separation can be determined and stored in the working memory are transferable,
- f) der Rechner weiterhin zweite Rechnermittel enthält zum Abgrenzen von Landschaftsdetails aus der Geländeinformation und zum Bestimmen der Ebenen der hierarchischen Auflösungspyramide für die jeweiligen Landschaftsdetails nach Maßgabe des Abstandes des angenommenen Beobachters von dem jeweiligen Landschaftsdetail,f) the computer further contains second computer means for Delimitation of landscape details from the Terrain information and to determine the levels of the hierarchical pyramid of dissolution for the respective Landscape details according to the distance of the assumed observer of the respective Landscape detail,
- g) der Rechner dritte Rechnermittel enthält zum Transformieren der Landschaftsdetails in eine Bildebene, wobei jedes dieser Landschaftsdetails einem Pixel der Bildebene zugeordnet ist, undg) the computer contains third computing means for Transforming the landscape details into an image layer, each of these landscape details being a pixel of Image plane is assigned, and
- h) der Rechner vierte Rechnermittel enthält, durch welche von mehreren einem Pixel zugeordneten Landschaftsdetails das der Bildebene jeweils Nächstliegende auswählbar ist, undh) the computer contains fourth computing means by which of several landscape details assigned to a pixel closest to the image plane can be selected, and
- i) die Bildwiedergabeeinrichtung zur Darstellung der so ausgewählten Pixel eingerichtet ist.i) the image display device for displaying the so selected pixel is set up.
Nach der Erfindung ist ein Massenspeicher vorgesehen, in welchem das gesamte Landschaftsmodell gespeichert ist. Ein solcher Massenspeicher, z. B. in Form von Disks-Farmen oder Platten-Laufwerken, kann die große Menge der Daten des Landschaftsmodells aufnehmen. Ein solcher Massenspeicher hat jedoch eine für die Gelände-Bildsimulation viel zu große Zugriffszeit. Es werden daher die jeweils für die Darstellung des aktuellen Geländebereichs benötigten Daten aus dem Massenspeicher in einen schnellen Arbeitsspeicher übertragen. Die Auswahl und Übertragung der Daten läßt sich einfach und schnell bewerkstelligen dadurch daß die Daten in Form einer hierarchischen Auflösungspyramide organisiert sind. Es kann dann die Übertragung durch hierarchische Aussonderung erfolgen. Die Organisation der Daten in einer hierarchischen Auflösungspyramide, z. B. als Voxel, gestattet es auch, für jeden Abstand des Beobachters von einem Landschaftsdetail bequem und schnell den jeweils erforderlichen Grad an Auflösung abzurufen. Es lohnt nicht, ein Objekt in eine Vielzahl von Voxeln aufgelöst im Rechner darzustellen, wenn bei großem Abstand des Beobachters von dem Objekt das Objekt sehr klein erscheint und zu seiner Darstellung in der Bildwiedergabeeinrichtung nur wenige Pixel zur Verfügung stehen. Durch die Beschränkung auf den jeweils notwendigen Grad der Auflösung läßt sich Rechenzeit sparen.According to the invention, a mass storage is provided in which the entire landscape model is saved. A such mass storage, e.g. B. in the form of disc farms or Disk drives, can store the large amount of data Record landscape model. Such a mass storage has however, a much too large one for the terrain image simulation Access time. It will therefore be used for the illustration of the current terrain area required data from the Mass storage in a fast working memory. The selection and transfer of the data can be done easily and quickly accomplished by the fact that the data in the form of a hierarchical pyramid of dissolution are organized. It can then the transfer by hierarchical separation respectively. The organization of the data in a hierarchical Dissolution pyramid, e.g. B. as a voxel, also allows for every distance of the observer from a landscape detail the required degree conveniently and quickly Get resolution. It is not worth placing an object in one Plenty of voxels to display resolved in the computer, though if the observer is far from the object, the object appears very small and for its representation in the Image display device only a few pixels available stand. By restricting it to what is necessary Degree of resolution can save computing time.
Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.Embodiments of the invention are the subject of Subclaims.
Ein Ausführungsbeispiel der Erfindung ist nachstehend unter Bezugnahme auf die zugehörigen Zeichnungen näher erläutert.An embodiment of the invention is below Reference to the accompanying drawings explained in more detail.
Fig. 1 ist eine zweidimensionale Darstellung und dient der Erläuterung der Darstellung eines Geländes durch "Voxel" (Volumenelemente). Fig. 1 is a two-dimensional representation and serves to explain the representation of a terrain by "voxel" (volume elements).
Fig. 2 ist eine perspektivische Darstellung und veranschaulicht die Kennzeichnung von Voxeln durch fortschreitende Unterteilung eines Würfels, wobei die Teilwürfel jeweils nach einem bestimmten Schema numeriert werden. FIG. 2 is a perspective illustration and illustrates the marking of voxels by progressively dividing a cube, the partial cubes each being numbered according to a specific scheme.
Fig. 3 ist wieder eine zweidimensionale Darstellung und zeigt im Zweidimensionalen, wie einzelne Voxel eindeutig durch eine aus der Unterteilung resultierende Zahl adressiert werden können. FIG. 3 is again a two-dimensional representation and shows in two dimensions how individual voxels can be uniquely addressed by a number resulting from the division.
Fig. 4 zeigt die Codierungskonvention bei der Adressierung von Voxeln in der zweidimensionalen Darstellung von Fig. 3. FIG. 4 shows the coding convention for addressing voxels in the two-dimensional representation of FIG. 3.
Fig. 5 zeigt für die zweidimensionale Darstellung von Fig. 3 und 4 einen "Quadtree", d. h. die bei der Unterteilung der Quadrate auftretenden Verzweigungen der Adressen der Voxel. Fig. 5 shows the two-dimensional representation of Fig. 3 and 4 is a "quad-tree", that is, the branches of the addresses of the voxel occurring during the division of the squares.
Fig. 6 ist ein Blockschaltbild und zeigt die Rechnerarchitektur des Gelände-Bildsimulators. Fig. 6 is a block diagram showing the computer architecture of the terrain image simulator.
Fig. 7 veranschaulicht für eine der Anschaulichkeit halber zweidimensionale Darstellung eines Geländes die Bestimmung der Voxel, die jeweils von einem Gesichtsfeldkegel des Beobachters erfaßt werden. Fig. 7 illustrates a sake of clarity, two-dimensional representation of a terrain determining the voxels which are respectively detected by a field of view cone of the observer.
Fig. 8 ist eine schematische Darstellung und veranschaulicht die Projektion der Voxel der Geländedarstellung auf eine Bildebene. FIG. 8 is a schematic illustration and illustrates the projection of the voxels of the terrain representation onto an image plane.
Fig. 9 ist eine schematische Darstellung und veranschaulicht die Bildung einer neuen Gesichtsfeldansicht aus einer vorher erzeugten Gesichtsfeldansicht unter Ausnutzung des "optischen Flusses". FIG. 9 is a schematic diagram illustrating the formation of a new visual field view from a previously created visual field view using the "optical flow".
Fig. 10 veranschaulicht, wie bei einer Bewegung des Beobachters über das modellierte Gelände neue Bildinhalte erscheinen können, die dem Speicher entnommen werden müssen.Can Fig. 10 illustrates how during a movement of the observer about the modeled terrain new image content appear that need to be taken from the memory.
Fig. 11 veranschaulicht das Einschreiben von Daten aus dem Massenspeicher in den Arbeitsspeicher. Fig. 11 illustrates the writing of data from the mass memory into RAM.
Fig. 12 veranschaulicht das Auslesen von Daten aus dem Arbeitsspeicher. Fig. 12 illustrates the reading of data from memory.
Fig. 13 ist ein Blockdiagramm und zeigt einen massiv parallelen Rechner mit Eingangs- und Ausgangsprozessor zur Erzeugung der Bilddaten. Fig. 13 is a block diagram showing a massively parallel computer with input and output processor for generating the image data.
Das Landschaftsmodell beruht auf der Approximation des Geländes durch Würfel, die in ein kartesisches Raster eingebettet sind. Solche Würfel bezeichnet man als Volumenelemente oder "Voxel". Die Adressierung solcher Voxel erfolgt gemäß einer hierarchischen Auflösungspyramide. Das ist bei einer Voxeldarstellung eine "Octree"-Struktur.The landscape model is based on the approximation of the Terrain by cubes arranged in a Cartesian grid are embedded. Such cubes are called Volume elements or "voxels". The addressing of such voxels takes place according to a hierarchical pyramid of dissolution. This is an "octree" structure for a voxel display.
Die Octree-Struktur kann anhand von Fig. 2 erläutert werden:The octree structure can be explained with reference to FIG. 2:
Ein Würfel 10 werde durch drei Schnittebenen 12, 14 und 16 in acht gleich große Teilwürfel unterteilt. Die acht Teilwürfel werden, wie in Fig. 2 dargestellt, mit den Ziffern "0" bis "7" bezeichnet. Wie an dem Teilwürfel "3" gezeigt ist, wird jeder dieser Teilwürfel durch drei Schnittebenen 18, 20 und 22 wieder in acht Teilwürfel unterteilt. Diese Teilwürfel werden wieder nach dem gleichen Schema mit "0" bis "7" bezeichnet. In dieser Weise kann fortgefahren werden, bis eine gewünschte Auflösung erreicht ist. Jedes so erhaltene Voxel kann durch eine Ziffernfolge adressiert werden, welche in jeder Stelle die in dieser Ebene der Unterteilung oder "Hierarchie" erhaltene Ziffer des betreffenden Teilwürfels enthält. A cube 10 is divided into eight equal cubes by three cutting planes 12 , 14 and 16 . As shown in FIG. 2, the eight partial cubes are designated by the numbers "0" to "7". As shown on the partial cube "3", each of these partial cubes is again divided into eight partial cubes by three sectional planes 18 , 20 and 22 . These partial cubes are again labeled "0" to "7" in the same way. In this way you can continue until a desired resolution is reached. Each voxel obtained in this way can be addressed by a sequence of digits, which contains the digit of the relevant partial cube obtained in this position of the subdivision or "hierarchy".
Das ist in Fig. 3 und 4 der Einfachheit halber für den zweidimensionalen Fall dargestellt. Fig. 4 zeigt die Codierungskonvention für die zweidimensionalen "Voxel". Ein Quadrat 24 wird durch Linien 26 und 28 in vier Teilquadrate unterteilt. Die Teilquadrate werden jeweils mit "0" bis "3" bezeichnet.This is shown in FIGS. 3 and 4 for the sake of simplicity for the two-dimensional case. Fig. 4 shows the coding convention for the two-dimensional "voxel". A square 24 is divided into four sub-squares by lines 26 and 28 . The partial squares are each designated "0" to "3".
In Fig. 3 ist die Adressierung eines bestimmten, zweidimensionalen "Voxels" veranschaulicht. Das quadratische Feld 32 ist durch horizontale und vertikale Linien in vier Teilquadrate unterteilt. Das schwarz markierte Voxel 30 liegt in der ersten Ebene der Hierarchie innerhalb des Teilquadrats "2". Dieses Teilquadrat "2" ist durch eine horizontale und eine vertikale Linie wieder in vier Teilquadrate unterteilt. Gemäß der Codierungskonvention von Fig. 4 liegt das Voxel 30 auf der zweiten Ebene der Hierarchie oder Auflösung in dem Teilquadrat "3", nämlich rechts oben. Das Teilquadrat "3" der zweiten Ebene wird wieder durch eine horizontale und eine vertikale Linie in vier Teilquadrate unterteilt. Das Voxel 30 liegt davon in dem mit "0" zu kennzeichnenden Teilquadrat der dritten Ebene, nämlich links unten. Das Teilquadrat "0" der dritten Ebene wird wieder durch eine horizontale und eine vertikale Linie in vier Teilquadrate einer vierten Ebene unterteilt. Das Voxel 30 bildet dabei das Teilquadrat "1" der vierten Ebene. Eine weitere Unterteilung findet nicht statt, weil z. B. die Bildauflösung der Bildwiedergabeeinrichtung nicht höher ist. Das Voxel 30 kann dann durch die Adresse (2301) gekennzeichnet werden.The addressing of a specific, two-dimensional "voxel" is illustrated in FIG . The square field 32 is divided into four partial squares by horizontal and vertical lines. The black marked voxel 30 lies in the first level of the hierarchy within the partial square "2". This partial square "2" is again divided into four partial squares by a horizontal and a vertical line. According to the coding convention of FIG. 4, the voxel 30 lies on the second level of the hierarchy or resolution in the partial square "3", namely at the top right. The partial square "3" of the second level is again divided into four partial squares by a horizontal and a vertical line. The voxel 30 lies in the partial square of the third level to be identified with "0", namely at the bottom left. The partial square "0" of the third level is again divided into four partial squares of a fourth level by a horizontal and a vertical line. The voxel 30 forms the partial square "1" of the fourth level. There is no further subdivision because e.g. B. the image resolution of the image display device is not higher. The voxel 30 can then be identified by the address (2301).
In Fig. 5 ist die Adressierung der Voxel in Form eines "Quadtree" dargestellt. Die "Wurzel" entspricht dem Quadrat 32 von Fig. 3. Davon gehen vier "Äste" aus. Die Äste bilden Knoten der ersten Ebene, die den Teilquadraten der ersten Ebene entsprechen und mit "0", "1", "2" und "3" bezeichnet sind. Von jedem Knoten der ersten Ebene gehen wieder vier Äste aus. Jeder dieser Äste bildet einen Knoten der zweiten Ebene. Diese Knoten sind wieder für alle Äste, die von einem Knoten der ersten Ebene ausgehen, mit "0", "1", "2" und "3" bezeichnet. Von jedem dieser Knoten der zweiten Ebene gehen vier Äste aus. Die Äste bilden Knoten der dritten Ebene. Die Knoten sind für alle Äste, die von einem Knoten der zweiten Ebene ausgehen, wieder jeweils mit "0", "1", "2" und "3" bezeichnet. Schließlich gehen von jedem Knoten der dritten Ebene vier Äste oder "Blätter" aus, die je einen Knoten der fünften Ebene bilden. Die Knoten sind für alle Äste oder Blätter, die von einem Knoten der vierten Ebene ausgehen, mit "0", "1", "2" und "3" bezeichnet. Eine solche Struktur wird als "Quadtree" bezeichnet. Zur Festlegung eines Voxels im Dreidimensionalen dient in ähnlicher Weise ein "Okttree", bei welchem von der Wurzel bzw. von jedem Knoten acht Äste ausgehen. Das Voxel 30 in Fig. 3 ist durch den in Fig. 5 mittels einer gestrichelten Parallellinie markierten Weg des "Quadtree" gekennzeichnet, der über die unterstrichenen Knoten "2", "3", "0" und "1" verläuft. Man erkennt, daß nicht alle Äste des Quadtree oder Okttree" zur Beschreibung einer Kurve bzw. Fläche erforderlich sind. Der Quadtree oder Okttree kann ausgedünnt sein.In FIG. 5, the addressing of said voxels in the form of "quad-tree" is shown. The "root" corresponds to the square 32 of FIG. 3. Four "branches" originate from this. The branches form nodes of the first level, which correspond to the partial squares of the first level and are labeled "0", "1", "2" and "3". From each node of the first level four branches start again. Each of these branches forms a second level node. These knots are again labeled with "0", "1", "2" and "3" for all branches that start from a node of the first level. Four branches emerge from each of these second level nodes. The branches form third level nodes. The nodes are again designated with "0", "1", "2" and "3" for all branches originating from a second level node. Finally, four knots or "leaves" originate from each node of the third level, each forming a node of the fifth level. The nodes are labeled "0", "1", "2" and "3" for all branches or leaves that originate from a fourth level node. Such a structure is called a "quadtree". In a similar manner, an "octree" is used to define a voxel in three dimensions, in which eight branches start from the root or from each node. The voxel 30 in FIG. 3 is characterized by the path of the "quadtree" marked by a dashed parallel line in FIG. 5, which runs via the underlined nodes "2", "3", "0" and "1". It can be seen that not all branches of the quadtree or octtree are required to describe a curve or area. The quadtree or octtree can be thinned out.
In Fig. 1 ist, wieder der Einfachheit halber zweidimensional, gezeigt, wie eine Kurve 34 durch eine Menge von "Voxeln" dargestellt werden kann. In entsprechender Weise kann eine Fläche ebenfalls durch Voxel dargestellt werden. Die Auflösung der Voxel erfolgt dabei bis zu einer Ebene des Quadtrees oder Okttrees, bei welcher die Größe der aufgelösten Voxel an die Auflösung der Bildwiedergabeeinrichtung angepaßt ist., Again for simplicity in FIG. 1 two-dimensional, shown as a curve can be represented by a set of "voxels." 34 In a corresponding way, a surface can also be represented by voxels. The resolution of the voxels takes place up to a level of the quadtree or octree, at which the size of the resolved voxels is adapted to the resolution of the image display device.
Eine solche hierarchische Darstellung des Landschaftsmodells durch Voxel bietet verschiedene Vorteile:Such a hierarchical representation of the landscape model Voxel offers various advantages:
In einem Voxel-Modell kann jede beliebige Form erfaßt werden. Wenn ein Landschaftsmodell in feinster Auflösung erfaßt ist, dann ist ein Übergang zu gröberen Voxeln problemlos. Dazu ist lediglich erforderlich, die Voxel einer niedrigeren Ebene der Auflösung zu adressieren. Es ist ein schnelles Eingrenzen ausgewählter Landschafts- oder Szeneninhalte und damit bei Verwendung der Okttree-Adressierung ein schneller Zugriff zu dem die Landschaftsdetail enthaltenden Speicher möglich. Das gilt beispielsweise für die Eingrenzung der im Gesichtsfeld des Beobachters liegenden, zu der Geländeansicht beitragenden Voxel. Das ist wichtig für die schnelle Auswahl und Bereitstellung der in Frage kommenden Landschaftsausschnitte aus einem Speicher.Any shape can be captured in a voxel model. If a landscape model is recorded in the finest resolution, then a transition to coarser voxels is no problem. Is to only required a lower level of voxels Address resolution. It's quick to narrow it down selected landscape or scene content and thus at Use octtree addressing to access faster the memory containing the landscape detail possible. The applies, for example, to the limitation of the field of vision of the observer, contributing to the terrain view Voxel. This is important for quick selection and Provision of the landscape sections in question from a store.
Wie aus Fig. 6 ersichtlich ist, enthalten die hier verwendeten Rechnermittel einen Massenspeicher 36. Der Massenspeicher 36 kann eine "Disk-Farm" sein. Der Massenspeicher 36 hat eine hohe Speicherkapazität, jedoch eine relativ große Zugriffszeit. Weiterhin ist ein Arbeitsspeicher 38 geringer Zugriffzeit vorgesehen. In dem Massenspeicher 36 ist das gesamte Geländemodell codiert in der vorstehend beschriebenen "Okttree"-Form abgelegt.As can be seen from FIG. 6, the computer means used here contain a mass memory 36 . Mass storage 36 may be a "disk farm". The mass storage 36 has a large storage capacity, but a relatively long access time. A working memory 38 with a short access time is also provided. The entire terrain model is encoded in the mass memory 36 in the "octree" form described above.
Die Rechnermittel enthalten weiterhin Prozessoren in einer "Pipeline"- oder "Fließband"-Architektur. Das sind Prozessoren 40, 42, 44, 46, 48 und 50. Die Prozessoren 40 bis 50 werden von einem "Host"-Rechner 52 gesteuert. Der Host-Rechner stellt die Schnittstelle zu den anderen Komponenten des gesamten Simulators dar. Der Host-Rechner verwaltet auch das Bewegungsmodell des Beobachters. Der Prozessor 50 wird von einem Mikrosequencer 54 gesteuert. Der Mikrosequencer 54 enthält Programme 56, 58, 60 und 62. Der Prozessor 50 liefert Bilddaten an einem Ausgang 64. Diese Bilddaten werden der (nicht dargestellten) Bildwiedergabeeinrichtung zugeführt.The computing means further include processors in a "pipeline" or "assembly line" architecture. These are processors 40 , 42 , 44 , 46 , 48 and 50 . Processors 40 through 50 are controlled by a "host" computer 52 . The host computer represents the interface to the other components of the entire simulator. The host computer also manages the observer's movement model. The processor 50 is controlled by a microsequencer 54 . Microsequencer 54 contains programs 56 , 58 , 60 and 62 . The processor 50 supplies image data at an output 64 . This image data is fed to the image display device (not shown).
Bei einer "Pipeline"- oder "Fließband"-Architektur wird ein Strom von einlaufenden Daten durch verschiedene Prozessoren bearbeitet, die gleichzeitig unterschiedliche Operationen mit verschiedenen Daten des Stromes von Daten durchführen. Die Daten werden wie an einem Fließband verarbeitet.With a "pipeline" or "assembly line" architecture, a Stream of incoming data through different processors edited using different operations at the same time perform various data of the stream of data. The Data is processed like on an assembly line.
In dem Prozessor 40 bestimmt ein Programmpaket den jeweils aktuellen Geländeabschnitt nach Maßgabe des Modells der Bewegung des Beobachters. Dieser Geländeabschnitt ist größer als die von der Bildwiedergabeeinrichtung dargestellte Geländeansicht. Dieser Geländeabschnitt wird über einen extrem breitbandigen Bus 66 in den Arbeitsspeicher übertragen. Das ist ein relativ langsamer Prozeß, der im Hintergrund abläuft.In the processor 40 , a program package determines the current terrain section in accordance with the model of the movement of the observer. This terrain section is larger than the terrain view represented by the image display device. This area section is transferred into the main memory via an extremely broadband bus 66 . This is a relatively slow process that takes place in the background.
Der Prozessor 40 bildet die oben erwähnten "ersten Rechnermittel".The processor 40 forms the "first computing means" mentioned above.
Zur schnellen Erzeugung der Geländeansichten dienen die Prozessoren 42 bis 50. Der Prozessor 42 dient der exakten und schnellen Eingrenzung der in einem Gesichtsfeldkegel liegenden Voxel. Prozessor 44 bestimmt die jeweils passende Auflösungsebene in der Hierarchie der Voxel.Processors 42 to 50 are used to quickly generate the terrain views. The processor 42 is used for the exact and rapid delimitation of the voxels lying in a field of view cone. Processor 44 determines the appropriate resolution level in the voxel hierarchy.
Das ist anhand einer aus Vereinfachungsgründen zweidimensionalen Darstellung in Fig. 7 näher erläutert. In Fig. 7 ist mit 68 ein Gesichtsfeldkegel bezeichnet. Der Gesichtsfeldkegel 68 geht von dem durch den Host-Rechner 52 vorgegebenen Ort 70 des angenommenen Beobachters aus. Der Host-Rechner 52 gibt auch die Beobachtungsrichtung 72, also die "Blickrichtung" des Beobachters vor. Der Gesichtsfeldkegel 68 ist in der ebenen Darstellung von Fig. 7 durch zwei Geraden 74 und 76 begrenzt. In einer dreidimensionalen Darstellung wäre das Gesichtsfeld durch vier Ebenen begrenzt.This is explained in more detail on the basis of a two-dimensional representation in FIG. 7 for reasons of simplification. In Fig. 7, 68 denotes a field of view. The field of view cone 68 starts from the location 70 of the assumed observer specified by the host computer 52 . The host computer 52 also specifies the direction of observation 72 , that is to say the "line of sight" of the observer. The field of view cone 68 is delimited in the planar representation of FIG. 7 by two straight lines 74 and 76 . In a three-dimensional representation, the visual field would be limited by four levels.
Das Gelände ist in der zweidimensionalen Darstellung durch die gestrichelt dargestellten "Voxel" repräsentiert. Der Prozessor 42 unterscheidet nun, ausgehend von Voxeln einer niedrigen Auflösungsebene, also z. B. der ersten Auflösungsebene in dem Quadtree von Fig. 5, drei Arten von Voxeln: Voxel der ersten Klasse liegen vollständig außerhalb des Gesichtsfeldes. Diese Voxel werden nicht weiter bearbeitet. Voxel der zweiten Klasse liegen ganz innerhalb des Gesichtsfeldes. Diese müssen vollständig weiterbearbeitet werden. Voxel der dritten Klasse werden von den Geraden 74 oder 76 geschnitten. Für die Voxel der dritten Klasse wird der gleiche Auswahlvorgang in einer höheren Ebene des Quadtrees wiederholt. Das wird rekursiv bis zu der Ebene der erforderlichen Auflösung fortgesetzt.The terrain is represented in the two-dimensional representation by the dashed "voxel". The processor 42 now distinguishes, starting from voxels of a low resolution level, that is, for. For example, the first level of resolution in the quadtree of Fig. 5, three types of voxels: First class voxels are completely out of the field of view. These voxels are not processed any further. Second-class voxels are entirely within the field of vision. These have to be processed completely. Third class voxels are intersected by lines 74 or 76 . For the third class voxels, the same selection process is repeated in a higher level of the quadtree. This continues recursively to the level of required resolution.
Es ist erkennbar, daß die Organisation des Geländemodells in Voxeln die schnelle Auswahl der innerhalb des Gesichtsfeldes liegenden Voxel erleichtert. Die Auswahl schreitet vom Gröberen zum Feineren fort. In einem ersten Schritt können gröbere Voxel der ersten oder der zweiten Klasse schon auf einer niedrigeren Ebene des Quadtrees dem Gesichtsfeld zugeordnet oder ausgeschlossen werden. Nur bei den "Grenzfällen" der von den Geraden 74 oder 76 angeschnittenen Voxel ist eine für die Zuordnung oder Nichtzuordnung zum Gesichtsfeld eine feinere Auflösung auf eine höhere Ebene des Quadtree erforderlich. Für diesen nächste Zuordnungsschritt gilt dann das gleiche.It can be seen that the organization of the terrain model in voxels facilitates the quick selection of the voxels lying within the visual field. The selection progresses from the coarser to the finer. In a first step, coarser voxels of the first or second class can be assigned to the visual field or excluded at a lower level of the quadtree. Only in the "borderline cases" of the voxels cut by the straight lines 74 or 76, a finer resolution to a higher level of the quadtree is required for the assignment or non-assignment to the visual field. The same applies to this next assignment step.
In Fig. 7 sind vollständig außerhalb des Gesichtsfeldes liegende "grobe" Voxel der "ersten Klasse" mit 75A bezeichnet. Ein nicht-leeres "grobes" Voxel der zweiten Klasse ist mit 75B bezeichnet. Diese groben Voxel können ohne weitere Auflösung unberücksichtigt gelassen bzw. dem Gesichtsfeld zugeordnet werden. Grobe Voxel der dritten Klasse, also solche, die von den Geraden 74 und 76 geschnitten werden, sind in Fig. 7 mit 75C bezeichnet. Diese müssen auf der nächsten Ebene der Auflösung in gleicher Weise untersucht werden.In FIG. 7, "coarse" voxels of the "first class" which are completely outside the field of view are designated by 75 A. A non-empty "coarse" voxel of the second class is labeled 75 B. These rough voxels can be disregarded without further resolution or assigned to the visual field. Coarse voxels of the third grade, that is, are intersected by the straight lines 74 and 76, those are shown in Fig. 7, indicated by 75 C. These must be examined in the same way at the next level of resolution.
In der nächsten Ebene der Auflösung liegen z. B. das Sub-Voxel 77A des einen Voxels 75C vollständig außerhalb des Gesichtsfeldes. Die "Sub-Voxel" 77B der geschnittenen Voxel 75C liegen vollständig innerhalb des Gesichtsfeldes. Die Sub-Voxel 77C werden von den Geraden 74 und 76 geschnitten und müssen, sofern die verlangte Auflösung noch nicht erreicht ist, rekursiv in gleicher Weise untersucht werden.In the next level of resolution are z. B. the sub-voxel 77 A of a voxel 75 C completely outside the visual field. The "Sub-Voxel" 77 B of the cut Voxel 75 C are completely within the field of vision. The sub-voxels 77 C are intersected by straight lines 74 and 76 and, if the required resolution has not yet been reached, must be examined recursively in the same way.
Der Prozessor 44 bestimmt den Grad der Auflösung, der für die Darstellung der Geländeansicht erforderlich ist, also die Auflösungsebene, bis zu welcher die Voxel aufgelöst werden müssen, unter Berücksichtigung der Pixelgröße der Bildwiedergabeeinrichtung und der Entfernung des angenommenen Beobachters von dem Landschaftsdetail.Processor 44 determines the level of resolution required to display the terrain view, i.e. the level of resolution to which the voxels must be resolved, taking into account the pixel size of the image display device and the distance of the assumed observer from the landscape detail.
Ein mathematisches Kriterium für die Zugehörigkeit eines
Voxels zu einer der drei vorerwähnten Klassen im
Dreidimensionalen kann aus der Hesseschen Normalform der vier
das Gesichtsfeld begrenzenden Ebenen abgeleitet werden. In der
Hesseschen Normalform wird eine Ebene dargestellt durch
Ax + By + Cz + D = 0
mit
A2 + B2 + C2 = 1.A mathematical criterion for the affiliation of a voxel to one of the three classes mentioned above in three dimensions can be derived from the Hessian normal form of the four planes delimiting the visual field. In the Hessian normal form, a plane is represented by
Ax + By + Cz + D = 0
With
A 2 + B 2 + C 2 = 1.
Setzt man in diese Hessesche Normalform auf der linken Seite die Koordinaten eines beliebigen Punktes ein, so ergibt sich auf der rechten Seite der Gleichung statt des Wertes null der Abstand (mit Vorzeichen) dieses Punktes von der durch die Hessesche Normalform dargestellten Ebene. Durch logische Verknüpfung der für ein Voxel für die vier Ebenen erhaltenen Abstände kann die Zuordnung des Voxels zu einer der vorerwähnten drei Klassen erfolgen.Put in this Hessian normal form on the left the coordinates of any point, we get to the right of the equation instead of the zero value of the Distance (with sign) of this point from that through the Hessean normal form shown level. By logical Linking the voxels obtained for the four levels The assignment of the voxel to one of the distances mentioned three classes.
Eine Näherung für diese Klassifiziereung besteht darin, daß die so bestimmten Abstände mit dem Radius der kleinsten das Voxel umschließenden Kugel verglichen wird. Eine solche Näherung kann zwar dazu führen, daß einzelne Voxel fälschlich als Voxel der dritten Klasse eingestuft werden und unnötigerweise noch einmal untersucht werden müssen. Ein solcher Vergleich ist aber am einfachsten durchzuführen.An approximation for this classification is that the distances thus determined with the radius of the smallest that Voxel enclosing sphere is compared. Such Approximation can lead to individual voxels being erroneous are classified as third class voxels and need to be examined again unnecessarily. A such comparison is easiest to make.
Zur Bestimmung der passenden Auflösungsebene der zu projizierenden Voxel durch den Prozessor 44 kann der Abstand jedes Voxels vom Ort 70 des Beobachters berechnet werden. Wenn aber sowieso die Beobachtungsrichtung 72 (Fig. 7) und als Achse eines beobachterfesten Koordinatensystems und die Koordinaten des Voxels in diesem Koordinatensystem berechnet werden, kann auch die Komponente des Voxelortes bezogen auf diese Achse als Abstand benutzt werden.To determine the appropriate resolution level of the voxels to be projected by the processor 44 , the distance of each voxel from the location 70 of the observer can be calculated. However, if the observation direction 72 ( FIG. 7) and as the axis of a coordinate system which is fixed to the observer and the coordinates of the voxel are calculated in this coordinate system anyway, the component of the voxel location with respect to this axis can also be used as a distance.
Die Prozessoren 42 und 44 bilden die oben erwähnten "zweiten Rechnermittel".Processors 42 and 44 form the "second computing means" mentioned above.
Mit den so bestimmten Voxeladressen wird der Arbeitsspeicher angesteuert. Die so ausgelesenen Voxel werden durch den Prozessor oder die Pipelinestufe 46 in das Koordinatensystem des Beobachters transformiert. Der Prozessor 48 bewirkt eine Transformation des Voxels in die Bildebene.The working memory is controlled with the voxel addresses determined in this way. The voxels read in this way are transformed into the coordinate system of the observer by the processor or the pipeline stage 46 . Processor 48 transforms the voxel into the image plane.
Diese Transformation und Projektion ist in Fig. 8 schematisch dargestellt. Der Beobachter ist hier durch eine Kamera 78 angedeutet. Ein Mittelpunkt P des betrachteten Voxels hat in einem erdfesten Koordinatensystem die Koordinaten x, y und z. Ein kamerafestes Koordinatensystem ist mit x′, y′ und z′ bezeichnet. Ein weiteres Koordinatensystem enthält die Koordinaten x′′ und y′′ in der Bildebene der Kamera. Die Transformation der Koordinaten aus dem erdfesten Koordinatensystem in das beobachterfeste Koordinatensystem erfolgt in bekannter Weise durch eine Richtungskosinusmatrix.This transformation and projection is shown schematically in FIG. 8. The observer is indicated here by a camera 78 . A center point P of the voxel under consideration has the coordinates x, y and z in an earth-fixed coordinate system. A camera-fixed coordinate system is designated x ', y' and z '. Another coordinate system contains the coordinates x '' and y '' in the image plane of the camera. The transformation of the coordinates from the earth-fixed coordinate system into the observer-fixed coordinate system is carried out in a known manner by means of a direction cosine matrix.
Die Projektion kann mittels der Beziehungen
x′′ = x′/z′
und
y′′ = y′/z′
erfolgen.The projection can be done through the relationships
x ′ ′ = x ′ / z ′
and
y ′ ′ = y ′ / z ′
respectively.
Die erhaltenen Koordinaten müssen in ganzzahlige Zeilen- und Spaltenwerte der einzelnen Pixel der Bildwiedergabeeinrichtung umgesetzt werden. Die projizierten Voxel mit den zugehörigen Farb- und Helligkeitsdaten sind dann jeweils einem Pixel der Bildwiedergabeeinrichtung zugeordnet.The coordinates obtained must be in integer lines and Column values of the individual pixels of the image display device be implemented. The projected voxels with the corresponding ones Color and brightness data are then one pixel each Image display device assigned.
Die Prozessoren 46 und 48 bilden die oben erwähnten "dritten Rechnermittel".Processors 46 and 48 form the "third computing means" mentioned above.
Die so erhaltenen Daten werden auf den massiv parallelen Rechner 50 gegeben. Der Rechner 50 enthält ein zweidimensionales Netz von Prozessoren 88. Die Prozessoren 88 sind von dem Mikrosequencer 54 im SIMD-Mode gesteuert. Der Mikrosequencer enthält alle erforderlichen Programme 56, 58, 60 und 62.The data thus obtained are transferred to the massively parallel computer 50 . The computer 50 contains a two-dimensional network of processors 88 . Processors 88 are controlled by microsequencer 54 in SIMD mode. The microsequencer contains all the necessary programs 56 , 58 , 60 and 62 .
Der Rechner 50 ist zweidimensional so organisiert, daß jeder einzelne der Prozessoren mit seinen vier nächsten Nachbarn Daten austauschen kann. Im Prinzip könnte jedem Pixel in der zu erzeugenden Geländeansicht ein Prozessor 88 des Rechners 50 in der gleichen geometrischen Anordnung wie im Bild zugeordnet werden. Um den Aufwand geringer zu halten, werden jedoch jedem realen Prozessor 88 des Rechners 50 mehrere benachbarte Pixel zugeordnet. Jeder reale Prozessor repräsentiert dann eine Mehrzahl von "virtuellen" Prozessoren.The computer 50 is organized in two dimensions so that each of the processors can exchange data with its four nearest neighbors. In principle, a processor 88 of the computer 50 could be assigned to each pixel in the terrain view to be generated in the same geometric arrangement as in the image. In order to keep the effort lower, however, several real pixels are assigned to each real processor 88 of the computer 50 . Each real processor then represents a plurality of "virtual" processors.
Der Rechner 50 arbeitet nun nacheinander verschiedene Schritte ab:The computer 50 now processes various steps in succession:
Zunächst wird der ankommende Voxelstrom sortiert. Den "Koordinaten" der virtuellen Prozessoren werden die Pixeladressen der einlaufenden Voxel zugeordnet. Ein Pixel mit der Adresse xo, yo wird im Datenspeicher des (virtuellen) Prozessors mit eben dieser Adresse abgelegt. Das geschieht durch das Programm 56 des Mikrosequencers 54.First the incoming voxel stream is sorted. The "coordinates" of the virtual processors are assigned the pixel addresses of the incoming voxels. A pixel with the address xo, yo is stored in the data memory of the (virtual) processor with this address. This is done by the program 56 of the microsequencer 54 .
Weiterhin erfolgt eine "Tiefenpufferung". Bei der beschriebenen Art der Bestimmung der potentiell zu der Geländeansicht beitragenden Voxel des Landschaftsmodells werden auch solche Voxel mit erfaßt, die vom Ort 70 des Beobachters aus nicht sichtbar sind sondern von anderen Voxeln des Landschaftsmodells verdeckt werden. So wird längs der Beobachtungsrichtung 72 in Fig. 7 das Voxel 80 durch die Voxel 82 und 84 verdeckt. Es muß daher durch den Prozessor 48 für jedes Pixel in der Bildebene unter den auf dieses Pixel transformierten Voxel dasjenige Voxel ausgewählt werden, das vom Ort 70 des Beobachters den geringsten Abstand besitzt. Das wird durch die Prozessoren 88 des Rechners 50 praktisch gleichzeitig für alle Pixel durchgeführt. Der Rechner 50 ist dabei von dem Programm 58 des Mikrosequencers gesteuert.There is also a "deep buffering". In the described way of determining the voxels of the landscape model that potentially contribute to the terrain view, those voxels are also included that are not visible from the location 70 of the observer but are hidden by other voxels of the landscape model. Thus, the voxel 80 is covered by the voxels 82 and 84 along the observation direction 72 in FIG. 7. The processor 48 must therefore select the voxel for each pixel in the image plane from among the voxels transformed to this pixel that is at the smallest distance from the location 70 of the observer. This is carried out by the processors 88 of the computer 50 practically simultaneously for all pixels. The computer 50 is controlled by the program 58 of the microsequencer.
Ein Programm 60 des Mikrosequencers 54 sorgt für die erforderlichen Anti-Aliasing-Filterungen.A program 60 of the microsequencer 54 provides the necessary anti-aliasing filtering.
Schließlich erfolgt durch den Rechner, gesteuert von dem Programm 62 des Mikrosequencers, eine Bildextrapolation unter Ausnutzung des "optischen Flusses". Dabei handelt es sich um folgendes:Finally, the computer, controlled by the program 62 of the microsequencer, performs an image extrapolation using the "optical flow". It is the following:
Wenn ein Beobachter mit einem bestimmten Gesichtsfeld sich über eine Landschaft bewegt, dann bleiben bei aufeinanderfolgenden Geländebildern die Bildinhalte im wesentlichen die gleichen. Sie verschieben sich jedoch zu anderen Pixeln hin. Ein Landschaftsdetail, das bei einem Geländebild in einem Pixel mit den Koordinaten (m, n) erscheint, erscheint in dem darauffolgenden Geländebild in einem Pixel mit den Koordinaten (m+i, n+j). Der Bildinhalt ist der gleiche, jedoch um einen Vektor mit den Komponenten i und j gegenüber dem ursprünglichen Pixel versetzt. Man kann jedem Pixel einen solchen Vektor zuordnen. Der Vektor gibt an, in welches Pixel sich der Bildinhalt des betrachteten Pixels in dem nächsten Geländebild bewegt haben wird. Die Gesamtheit aller dieser Vektoren bilden ein Vektorfeld. Dieses Vektorfeld ist abhängig von der Natur des Geländes und von der Bewegung und Blickrichtung des Beobachters. Man bezeichnet dieses Vektorfeld als "optischen Fluß".When an observer with a certain visual field moved across a landscape, then stay with successive terrain images the image content in essentially the same. However, they are shifting too other pixels. A landscape detail that one Terrain image in a pixel with the coordinates (m, n) appears, appears in the following terrain image in a pixel with the coordinates (m + i, n + j). The picture content is the same, but a vector with components i and j offset from the original pixel. You can go to anyone Assign such a vector to pixels. The vector indicates in which pixel is the image content of the pixel in question the next terrain picture. The totality all of these vectors form a vector field. This vector field depends on the nature of the terrain and the movement and viewing direction of the observer. This is called Vector field as an "optical flow".
Das ist in Fig. 9 für den einfachen Fall betrachtet, daß der Beobachter sich geradlinig über ein ebenes Gelände bewegt und senkrecht nach unten blickt. Mit 90 ist ein Geländeabschnitt bezeichnet, der zu einem bestimmten Zeitpunkt im Gesichtsfeld eines Beobachters liegt. Mit 92 ist der Geländeabschnitt bezeichnet, der kurz darauf vom Gesichtsfeld des Beobachters erfaßt wird. Die Bewegung des Beobachters ist also von unten nach oben in Fig. 9. Für den Beobachter erscheint das so, als wenn sich die Landschaftsdetails in seinem Gesichtsfeld entsprechend den Pfeilen 94 von oben nach unten bewegen. Die meisten Pixel des zweiten Geländebildes erhalten Landschaftsdetails, die in anderen Pixeln des vorhergehenden Geländebildes gespeichert waren. Es genügt dann, die Bilddaten entsprechend dem optischen Fluß zu verschieben. Ein entsprechend komplizierteres Vektorfeld ergibt sich für schräge Blickrichtungen und welliges Gelände. Es braucht nicht das gesamte Geländebild mit Auswahl der Voxel und der Auflösung, Transformation und Tiefenpufferung, vollständig neu berechnet zu werden. Allerdings fällt der Streifen 94 des Geländeabschnitts 90 aus dem neuen Geländebild heraus, da dieser Streifen 94 nicht mehr im Gesichtsfeld des Beobachters liegt. Dafür kommt ein neuer Streifen 96 hinzu. Die in dem Arbeitsspeicher 38 gespeicherte Bildinformation geht jedoch sowieso über den Bereich eines einzelnen Geländebildes hinaus. Durch die Ausnutzung schon erzeugter Landschaftsdetails durch Verschiebung dieser Landschaftsdetails nach Maßgabe des optischen Flusses kann der Rechenaufwand erheblich vermindert werden. Die Rechenzeit wird kürzer. This is considered in FIG. 9 for the simple case that the observer moves in a straight line over a flat area and looks down vertically. A terrain section is designated by 90 , which lies in the field of view of an observer at a specific point in time. The terrain section is designated by 92 , which is detected shortly thereafter by the field of vision of the observer. The movement of the observer is therefore from bottom to top in FIG. 9. For the observer, this appears as if the landscape details in his field of vision move from top to bottom according to arrows 94 . Most of the pixels in the second terrain image receive landscape details that were stored in other pixels in the previous terrain image. It is then sufficient to shift the image data in accordance with the optical flow. A correspondingly more complicated vector field results for oblique viewing directions and undulating terrain. It is not necessary to completely recalculate the entire terrain image with the selection of the voxel and the resolution, transformation and depth buffering. However, the strip 94 of the terrain section 90 falls out of the new terrain image, since this strip 94 is no longer in the field of view of the observer. For this, a new strip 96 is added. However, the image information stored in the working memory 38 goes beyond the area of a single terrain image anyway. By utilizing landscape details that have already been created by shifting these landscape details in accordance with the optical flow, the computational effort can be considerably reduced. The computing time is getting shorter.
Es kann natürlich nicht jedes neue Bild durch Verschiebung vorhandener Bildinhalte der Pixel aufgebaut werden. Es können neue Bildinhalte auftauchen. Das ist aus Fig. 10 ersichtlich. Dort bewegt sich ein Beobachter 98, dargestellt durch eine Kamera, längs einer Bahn 100 von einem Standort A zu einem Standort B. Das Gelände 102 enthält eine Bergspitze P. Ein Landschaftsdetail "X" ist im Standort A nicht sichtbar. Das Landschaftsdetail "X" ist hinter der Bergspitze verborgen. Das Landschaftsdetail "X" erscheint jedoch neu bei der Position B des Beobachters. Das Bild der Bergspitze P ist bei der Bewegung des Beobachters in der Bildebene von dem Punkt PA zum Punkt PB gewandert, wie durch den Pfeil 104 dargestellt ist. Das Bild des Punktes X im Punkt 106 der Bildebene kann aber nicht durch eine solche Verschiebung mittels des optischen Flusses gewonnen werden. Es ist daher in Abständen eine Neuberechnung der Geländeansicht erforderlich. Durch die Erzeugung von Geländeansichten aus vorhergehenden Geländeansichten und dem optischen Fluß steht aber hierfür mehr Zeit zur Verfügung.Of course, not every new image can be built up by shifting the existing image content of the pixels. New image content may appear. This can be seen from Fig. 10. There, an observer 98 , represented by a camera, moves along a path 100 from a location A to a location B. The terrain 102 contains a mountain peak P. A landscape detail "X" is not visible in location A. The landscape detail "X" is hidden behind the mountain peak. The landscape detail "X", however, appears new at position B of the observer. The image of the mountain peak P has moved from the point P A to the point P B during the movement of the observer in the image plane, as shown by the arrow 104 . However, the image of point X at point 106 of the image plane cannot be obtained by such a shift by means of the optical flow. It is therefore necessary to recalculate the terrain view at intervals. By creating terrain views from previous terrain views and the optical flow, however, more time is available for this.
Der Rechner 50 stellt die oben erwähnten "vierten Rechnermittel" dar.The computer 50 represents the "fourth computing means" mentioned above.
Fig. 11 und 12 zeigen den Aufbau der Eingabeseite und der Ausgabeseite des Arbeitsspeichers 38. FIGS. 11 and 12 show the structure of the input side and the output side of the working memory 38.
Der Arbeitsspeicher 38 besteht aus drei Teilen: Scheibprozessoren 108, dem eigentlichen Daten- und Zeigerspeicher 110 (Fig. 11) und Leseprozessoren 112 (Fig. 12). In dem Massenspeicher 36 sind die Daten komprimiert codiert. Die Schreibprozessoren 108 haben die Aufgabe, den komprimiert codierten Strom von Voxeln des Landschafts-Okttrees aus dem Massenspeicher 36 in eine für den schnellen Zugriff besser geeignete, explizit verzeigerte Struktur im Arbeitsspeicher 36 umzuwandeln. Im Massenspeicher ist die Strukturinformation jedes Knotens des Landschafts-Okttrees auf jeweils ein Byte komprimiert. Die Schreibprozessoren expandieren diese Strukturinformation in eine explizite Zeigerstruktur des Geländeausschnitts im Arbeitsspeicher 38. Es besteht dann schnellstmöglicher Zugriff auf alle Voxel einer beliebigen Okttree-Ebene über die Okttree-Adressen dieser Voxel. Das Anlegen dieser Zeigerstruktur erfolgt Hand in Hand mit einer Buchhaltung darüber, welche Geländeabschnitte zur Zeit im schnellen Arbeitsspeicher sind. Diese "Buchhaltung" wird von dem Prozessor 40 der Pipeline-Struktur durchgeführt.The working memory 38 consists of three parts: disk processors 108 , the actual data and pointer memory 110 ( FIG. 11) and read processors 112 ( FIG. 12). The data is encoded in compressed form in the mass memory 36 . The write processors 108 have the task of converting the compressed coded stream of voxels of the landscape octree from the mass storage device 36 into a structure in the working memory 36 that is better suited for fast access and is explicitly shown. The structure information of each node of the landscape octree is compressed to one byte in the mass memory. The write processors expand this structural information into an explicit pointer structure of the terrain section in the working memory 38 . All voxels of any octtree level can then be accessed as quickly as possible via the octtree addresses of these voxels. The creation of this pointer structure takes place hand in hand with an accounting of which terrain sections are currently in the fast working memory. This "accounting" is done by the processor 40 of the pipeline structure.
In Fig. 11 ist der Arbeitsspeicher 38 der Anschaulichkeit halber als Modell mit mehreren Speicherebenen und zugehörigen Pointer- und Datenprozessoren dargestellt. Die tatsächliche Ausführung kann demgegenüber vereinfacht werden.In Fig. 11, the memory 38 is shown for clarity as a model having a plurality of memory planes and associated pointer and data processors. In contrast, the actual execution can be simplified.
Durch die Schreibprozessoren 108 wird zu jedem Voxel-Datensatz von dem Massenspeicher 36, in dem die Strukturinformation in Form eines Struktur-Bytes vorliegt, ein entsprechender Satz von acht Zeigern mit je zweiunddreißig Bit (vier Byte) Wortlänge erzeugt und in einem Zeiger-Speicherbereich der betreffenden Auflösungsebene abgelegt. Diese Zeiger liefern dann die Adressen, in denen die Voxel-Datensätze der nächstfeineren Auflösungsstufe einzutragen sind.The write processors 108 generate a corresponding set of eight pointers, each with a thirty-two bit (four byte) word length, from the mass memory 36 , in which the structure information is in the form of a structure byte, for each voxel data record, and in a pointer memory area the relevant resolution level. These pointers then supply the addresses in which the voxel data records of the next higher resolution level are to be entered.
Die Erzeugung entsprechender Adreßinformation, der Zeigerdaten, ist Aufgabe der Schreibprozessoren 108. Die Schreibprozessoren bilden einen integralen Bestandteil des Arbeitsspeichers 38. In Fig. 11 sind die Schreibprozessoren 108 der einzelnen Ebenen 114, 116, 118 und 120 in zwei unterschiedliche Typen aufgeteilt: Zeigerprozessoren 122, 124, 126 und 128 erzeugen mitlaufend zu den Voxel-Datensätzen die Adressen, an denen die Datensätze abgelegt werden müssen. Die Zeigerprozessoren 122, 124, 126 und 128 werten dazu die Strukturbytes aus, die in den Datenstrom eingebettet sind, welcher von dem Massenspeicher 36 angeliefert wird. Datenprozessoren 130, 132, 134 und 136 speichern die einlaufenden Voxel-Datensätze so lange, bis die Zeigerprozessoren 122, 124, 126 bzw. 128 valide Adressen erzeugt, eingespeichert und als Adresseninformation an die Speicher der Datenbereiche angelegt haben. Erst dann erfolgt das Eintragen der Voxel-Datensätze.The generation of corresponding address information, the pointer data, is the task of the write processors 108 . The write processors form an integral part of the main memory 38 . In FIG. 11, the write processors 108 of the individual levels 114, 116, 118 and 120 are divided into two different types: pointer processors 122 , 124 , 126 and 128 generate the addresses at which the data records must be stored, along with the voxel data records. For this purpose, the pointer processors 122 , 124 , 126 and 128 evaluate the structure bytes which are embedded in the data stream which is supplied by the mass memory 36 . Data processors 130 , 132 , 134 and 136 store the incoming voxel data records until the pointer processors 122 , 124 , 126 and 128 have generated valid addresses, stored them and stored them as address information in the memories of the data areas. Only then is the voxel data set entered.
Der Arbeitsspeicher 36 enthält den Daten- und Zeigerspeicher 110 mit mehreren Ebenen 114, 116, 118 und 120. Jede der Ebenen 114, 116, 118 und 120 enthält einen Zeigerspeicher 138, 140, 142 bzw. 144 und einen Datenspeicher 146, 148, 150 bzw. 152. Die Zeigerspeicher sind größer als die Datenspeicher. In der beschriebenen Ausführung hat der Zeigerspeicher 138 eine Speicherkapazität von 2 MB. Der zugehörige Datenspeicher 146 hat eine Speicherkapazität von 512 kB. Der Zeigerspeicher 140 hat eine Speicherkapazität von 8 MB. Der zugehörige Datenspeicher 148 hat eine Speicherkapazität von 2 MB. Der Zeigerspeicher 142 hat eine Speicherkapazität von 32 MB. Der zugehörige Datenspeicher 150 hat eine Speicherkapazität von nur 8 MB. Der Zeigerspeicher 144 hat eine Speicherkapazität von 128 MB. Der zugehörige Datenspeicher 152 hat eine Speicherkapazität von 32 MB.The working memory 36 contains the data and pointer memory 110 with a plurality of levels 114, 116, 118 and 120 . Each of the levels 114, 116, 118 and 120 contains a pointer memory 138 , 140 , 142 and 144 and a data memory 146 , 148 , 150 and 152 , respectively. The pointer memories are larger than the data memories. In the described embodiment, the pointer memory 138 has a memory capacity of 2 MB. The associated data memory 146 has a memory capacity of 512 kB. The pointer memory 140 has a storage capacity of 8 MB. The associated data storage 148 has a storage capacity of 2 MB. The pointer memory 142 has a storage capacity of 32 MB. The associated data storage 150 has a storage capacity of only 8 MB. The pointer memory 144 has a memory capacity of 128 MB. The associated data storage 152 has a storage capacity of 32 MB.
Fig. 12 zeigt die prinzipielle Struktur der Leseprozessoren 112. Fig. 12 shows the basic structure of the processors 112 read.
Die Aufgabe der Leseprozessoren besteht darin, die "Topokttreeadresse" eines von den zweiten Rechnermitteln 56 und 58 als voll im Gesichtsfeldkegel 68 liegend erkannten Voxels, also eines Voxels der zweiten Art, unter Berücksichtigung der zugehörigen Auflösungsebene in einen Voxelstrom für die anschließenden Prozessoren 46 und 48 der Pipeline-Struktur umzusetzen.The task of the reading processors is to convert the "top octet address" of a voxel recognized by the second computer means 56 and 58 as fully lying in the field of view cone 68 , i.e. a voxel of the second type, into a voxel stream for the subsequent processors 46 and 48 , taking into account the associated resolution level of the pipeline structure.
In Fig. 12 sind drei Datenebenen des Daten- und Zeigerspeichers 110 mit 154, 156 und 158 bezeichnet. Die Datenebenen enthalten Voxel-Datensätze, die mit 160, 162 bzw. 164 bezeichnet sind. Die Datenebene 154 enthält weiterhin Zeiger 166. Die Datenebene 156 enthält Zeiger 168. Der Datenebene 154 ist weiterhin ein Adressenprozessor 170 und ein FIFO-Zwischenspeicher 172 zugeordnet. Entsprechend ist der Datenebene 156 ein Adressenprocessor 174 und ein FIFO-Zwischenspeicher 176 zugeordnet.In FIG. 12, three data levels of the data and pointer memory 110 are designated 154, 156 and 158 . The data planes contain voxel data sets, which are labeled 160, 162 and 164, respectively. Data level 154 also includes pointers 166 . Data level 156 includes pointers 168 . An address processor 170 and a FIFO buffer 172 are also assigned to the data level 154 . Correspondingly, an address processor 174 and a FIFO buffer 176 are assigned to data level 156 .
Das Auslesen der Voxel-Datensätze wird von den Prozessoren 56 und 58 gesteuert. Als wesentlichen Steuerparameter übergeben diese Prozessoren 56 und 58 dem Leseprozessor 112 die Knotenadresse eines Okttree-Astes (Topokttreeadresse) sowie die für die Darstellung erforderliche Auflösungsebene innerhalb dieses Astes. Das ist in Fig. 12 durch den Pfeil 178 dargestellt. Es sei angenommen, daß Voxel-Datensätze der Datenebene 168, der höchsten Auflösungsebene, ausgegeben werden sollen. Damit nimmt der Parameter "Auflösungsebene" den Wert "2" an und aktiviert die Datenausgabe lediglich der Datenebene 168. Diese Datenausgabe ist in Fig. 12 durch einen Pfeil 180 angedeutet.The readout of the voxel data sets is controlled by the processors 56 and 58 . As essential control parameters, these processors 56 and 58 pass the reading processor 112 the node address of an octree branch (top octree address) and the resolution level required for the display within this branch. This is shown in Fig. 12 by arrow 178 . Assume that voxel records of data level 168 , the highest resolution level, are to be output. The parameter "resolution level" thus assumes the value "2" and only activates the data output of data level 168 . This data output is indicated in FIG. 12 by an arrow 180 .
Die Topokttreeadresse ist auf den Adressenprozessor 170 aufgeschaltet. Die Topokttreeadresse adressiert Daten aus der Datenebene 160 und Zeiger aus der Zeigerebene 166. Das ist in Fig. 12 durch die Pfeile 182 und 184 dargestellt. Die aus der Datenebene 160 ausgegebenen Daten sind durch Pfeil 186 dargestellt. Diese Daten werden nicht weiter verwendet, da als Auflösungsebene die Datenebene "2" 158 gefordert ist. Die Zeigerebene 166 liefert Zeiger in Form von acht Adressen. Das ist in Fig. 12 durch Pfeil 188 dargestellt. Diese Adressen werden in dem FIFO-Zwischenspeicher 172 gespeichert. Es gelangen allerdings nur relevante Zeiger in den FIFO-Zwischenspeicher 172. Nullzeiger, die auf "leere" Voxel zeigen würden, werden von der Steuerlogik des FIFO-Zwischenspeichers 172 unterdrückt.The topo address is connected to the address processor 170 . The topo address addresses data from data level 160 and pointers from pointer level 166 . This is shown in Fig. 12 by arrows 182 and 184 . The data output from data level 160 is represented by arrow 186 . This data is no longer used because the data level "2" 158 is required as the resolution level. The pointer plane 166 provides pointers in the form of eight addresses. This is shown in Fig. 12 by arrow 188 . These addresses are stored in FIFO cache 172 . However, only relevant pointers get into the FIFO buffer 172 . Null pointers that would point to "empty" voxels are suppressed by the control logic of the FIFO cache 172 .
Die gespeicherten Adressen werden nacheinander von dem FIFO-Zwischenspeicher in den Adressenprozessor 174 übertragen. Das ist durch einen Pfeil 190 dargestellt. Über den Adressenprozessor 174 sind die Adressen, wie durch Pfeile 192 und 194 dargestellt ist, auf die Voxel-Datenebene 162 und die Zeiger-Datenebene 168 aufgeschaltet. Entsprechend den Adressen liefert die Voxel-Datenebene 162 Voxel-Datensätze, die in Fig. 12 durch Pfeil 196 dargestellt sind. Auch diese Voxel-Da tensätze der Ebene "1" werden hier nicht benutzt, da eine Auflösung bis zu der Ebene "2" verlangt wurde. Die Zeigerebene 168 liefert für jede der im FIFO-Zwischenspeicher 172 gespeicherten Adressen acht weitere Adressen. Das ist durch einen Pfeil 198 dargestellt. Diese Adressen werden in dem FIFO-Zwischenspeicher 176 gespeichert. Die in dem FIFO-Zwischenspeicher 176 gespeicherten Adressen liegen an der Voxel-Datenebene 164. Das ist durch einen Pfeil 200 dargestellt. Diese Ebene entspricht der geforderten Auflösung bis Ebene "2". Die Voxel-Datensätze werden daher, wie durch den Pfeil 180 dargestellt ist, ausgegeben.The stored addresses are sequentially transferred from the FIFO buffer to the address processor 174 . This is shown by an arrow 190 . Via the address processor 174 , the addresses, as shown by arrows 192 and 194 , are connected to the voxel data level 162 and the pointer data level 168 . Corresponding to the addresses, the voxel data level 162 supplies voxel data records, which are represented by arrow 196 in FIG. 12. These voxel data sets of level "1" are also not used here, since a resolution up to level "2" was required. Pointer level 168 provides eight additional addresses for each of the addresses stored in FIFO cache 172 . This is shown by an arrow 198 . These addresses are stored in FIFO cache 176 . The addresses stored in the FIFO buffer 176 are at the voxel data level 164 . This is shown by an arrow 200 . This level corresponds to the required resolution up to level "2". The voxel data sets are therefore output as shown by arrow 180 .
Der Vorteil dieser Struktur ist, daß in die FIFO-Zwischenspeicher 172 und 176 jeweils schon die Zeiger der nächsten von den Prozessoren 40 und 42 bestimmten Voxel-Würfel nachgeschoben werden können, während die vorhergehenden Voxel-Würfel noch bearbeitet werden. Das garantiert einen kontinuierlichen Voxelstrom.The advantage of this structure is that the pointers of the next voxel cubes determined by the processors 40 and 42 can already be inserted into the FIFO buffers 172 and 176 while the previous voxel cubes are still being processed. This guarantees a continuous voxel flow.
Fig. 13 zeigt die Struktur des massiv parallelen Rechners 50. Fig. 13 shows the structure of the massively parallel computer 50th
Mit 202 ist ein zweidimensionales Rechnernetz von 64×64 Prozessoren 88 bezeichnet. Die Prozessoren 88 besitzen keinen eigenen Programmspeicher. Vielmehr wird das gesamte Rechnernetz im SIMD-Mode (Single Instruction Multiple Data) von dem Mikrosequencer 54 gesteuert, der den für alle Prozessoren 88 gemeinsamen Programmspeicher mit den Programmen 56, 58, 60 und 62 enthält. Jeder Prozessor 88 enthält einen eigenen Datenspeicher. Die "Rechenfläche" ist in sich geschlossen. Die Datenpfade am "rechten" Flächenrand sind mit den Datenpfaden am linken Flächenrand verbunden. Ebenso sind die Datenpfade am "oberen" Flächenrand mit den Datenpfaden am "unteren" Flächenrand verbunden. Daten können somit ringförmig in vertikaler und horizontaler Richtung über die Rechenfläche verschoben werden. 202 denotes a two-dimensional computer network of 64 × 64 processors 88 . Processors 88 do not have their own program memory. Rather, the entire computer network in SIMD mode (single instruction multiple data) is controlled by the microsequencer 54 , which contains the program memory with the programs 56 , 58 , 60 and 62 that is common to all processors 88 . Each processor 88 contains its own data memory. The "computing area" is self-contained. The data paths on the "right" area edge are connected to the data paths on the left area edge. Likewise, the data paths on the "upper" area edge are connected to the data paths on the "lower" area edge. Data can thus be shifted in a ring in the vertical and horizontal direction over the computing area.
Eine zusätzliche Datenkommunikationsebene ermöglicht das Einspeisen von Voxel-Daten über den "Nordrand" oder oberen Rand der Rechenfläche. Auf dieser Ebene verläuft die Datenkommunikation nur in einer Richtung von Nord nach Süd. Aufgabe dieses Datenpfades ist vornehmlich die Kommunikation mit der Außenwelt.An additional data communication level makes this possible Input of voxel data via the "northern edge" or the upper Edge of the computing area. At this level the Data communication only in one direction from north to south. The primary task of this data path is communication with the outside world.
Es sind weiterhin ein Eingabeprozessor 204 und ein Ausgabeprozessor 206 vorgesehen.An input processor 204 and an output processor 206 are also provided.
Der Eingabeprozessor bewirkt eine Wandlung des bitparallelen, wortseriellen Voxelstromes, der von dem Prozessor 48 geliefert wird und durch Pfeil 208 dargestellt ist, in einen bitseriellen, wortparallelen Datenstrom. Ein solcher bitserieller, wortparalleler Datenstrom wird in dem Rechnernetz 202 verarbeitet.The input processor converts the bit-parallel, word-serial voxel stream supplied by processor 48 and represented by arrow 208 into a bit-serial, word-parallel data stream. Such a bit-serial, word-parallel data stream is processed in the computer network 202 .
Die Zuordnung der Pixel der Bildwiedergabeeinrichtung zu den einzelnen Prozessoren 88 des Rechnernetzes 202 erfolgt in der Weise, daß alle Voxel "horizontal" und "vertikal" so über das Prozessornetz 202 mit den Prozessoren 88 und zugehörigen Datenspeichern verschoben wird, daß sie mindestens einmal an dem ihrer Pixeladresse entsprechenden Prozessor 88 "vorbeikommen". Sobald dies geschieht, werden die Voxel dort abgelegt. Jedes Voxel hat eine vertikale Adresse, entsprechend dem y′′ in Fig. 8 und eine horizontale Adresse entsprechend dem x′′ von Fig. 8. Die Sortierung und Zuordnung der Voxel erfolgt nun so, daß zunächst die Voxel in der Rechenfläche von oben nach unten umlaufen und dabei die "vertikale" Adresse abgesucht wird. Nach einem solchen Durchgang ist jedes Voxel in seiner richtigen Zeile, wenn auch u. U. noch nicht in der richtigen Spalte gespeichert. Anschließend werden mit einem "horizontalen" Umlauf die horizontalen Adressen abgesucht und die Voxel entsprechend in der richtigen Spalte gespeichert. Nach diesen zwei Umläufen, also nach insgesamt 2N Schiebeschritten, wenn N2 die Anzahl der Prozessoren ist, sind die Voxel richtig sortiert den einzelnen Prozessoren 88 zugeordnet.The pixels of the image display device are assigned to the individual processors 88 of the computer network 202 in such a way that all voxels "horizontally" and "vertically" are shifted via the processor network 202 with the processors 88 and associated data memories in such a way that they are at least once on the processor 88 corresponding to its pixel address. As soon as this happens, the voxels are placed there. Each voxel has a vertical address, corresponding to the y '' in Fig. 8 and a horizontal address corresponding to the x '' of Fig. 8. The voxels are now sorted and assigned in such a way that first the voxels in the arithmetic area from top to bottom circulate below and the "vertical" address is searched. After such a run, each voxel is in its correct line, albeit u. May not yet be saved in the correct column. Then the horizontal addresses are searched with a "horizontal" cycle and the voxels are stored in the correct column accordingly. After these two rounds, that is to say after a total of 2N shift steps, if N 2 is the number of processors, the voxels are assigned to the individual processors 88 in the correct order.
Die horizontalen und vertikalen kollektiven Verschiebungen können auch anders zeitlich miteinander verschränkt werden, um dem kontinuierlichen Voxelstrom besser Rechnung zu tragen. Insbesondere kann das vertikale Einlesen der Daten von dem Eingangsprozessor 204 über den Nordrand der Datenkommunikationsebene mit der Abfrage der vertikalen Adressen kombiniert werden. Dadurch würde die vertikale zyklische Verbindung überflüssig.The horizontal and vertical collective shifts can also be interleaved in other ways in order to better take into account the continuous voxel flow. In particular, the vertical reading of the data from the input processor 204 via the north edge of the data communication level can be combined with the query of the vertical addresses. This would make the vertical cyclical connection superfluous.
Wenn alle zu einem Bild potentiell beitragenden Voxel ihre Plätze gefunden haben, die Voxeldaten also in den Datenspeichern der einzelnen Prozessoren 88 des Rechnernetzes 202 gespeichert sind, erfolgt der Prozeß der Tiefenpufferung, der durch Programm 58 des Mikrosequencers gesteuert ist. Dabei sortiert jeder Prozessor 88 die in seinem Datenspeicher gespeicherten Voxel nach ihrem Abstand vom Beobachter. Im einfachsten Fall wird der Farbwert des nächstliegenden Voxels als Farbwert des Pixels übernommen.When all of the voxels that potentially contribute to an image have found their places, that is to say the voxel data is stored in the data memories of the individual processors 88 of the computer network 202 , the process of depth buffering takes place, which is controlled by program 58 of the microsequencer. Each processor 88 sorts the voxels stored in its data memory according to their distance from the observer. In the simplest case, the color value of the closest voxel is adopted as the color value of the pixel.
Die nächsten beiden Algorithmen, die von den Prozessoren bzw. Programmen 60 und 62 des Mikrosequencers gesteuert sind, machen von der nachbarschaftlichen Vernetzung der Prozessoren 88 Gebrauch.The next two algorithms, which are controlled by the processors or programs 60 and 62 of the microsequencer, make use of the neighborly networking of the processors 88 .
Bei der Anti-Aliasing-Filterung mittels eines auf das Bild anzuwendenden Tiefpasses erhalten alle (virtuellen) Prozessoren 88 im Gleichtakt die Pixelwerte von ihren jeweils oberen, unteren, rechten und linken Nachbarn. Daraus wird ein z. B. gewichteter Mittelwert gebildet. Dabei ergeben sich nur bei den Randpixeln Fehler. Der Zeitaufwand für diesen Algorithmus wie für alle anderen Filter ist unabhängig von der Bildgröße.With anti-aliasing filtering by means of a low pass to be applied to the image, all (virtual) processors 88 receive the pixel values from their respective upper, lower, right and left neighbors in synchronism. This is a z. B. weighted average. Errors only occur with the edge pixels. The time required for this algorithm, like for all other filters, is independent of the image size.
Ähnlich spielt sich die Bildextrapolation ab. Für jedes Pixel wird zunächst aufgrund seiner individuellen Entfernung vom Beobachter ein Verschiebungsvektor berechnet. Da diese Vektoren im allgemeinen keine ganzzahligen Komponenten haben, werden daraus zunächst vier "Subpixel" berechnet mit dem gleichen Farbwert und den vier ganzzahligen Komponentenkombinationen, die durch Auf- oder Abrundung des echten Verschiebungsvektors entstehen. Diese Subpixel sind gemäß ihrem Anteil an dem erzeugenden Pixel mit Gewichten zu beaufschlagen. Nach der simultan durchzuführenden Verschiebung aller Subpixel erfolgt abschließend nur noch eine gewichtete Zusammenfassung aller bei einem virtuellen Prozessor einlaufenden - in der Regel vier - Subpixel.The picture extrapolation is similar. For every pixel is initially due to its individual distance from the Observer calculates a displacement vector. This one Vectors generally have no integer components, four "subpixels" are then calculated using the same color value and the four integers Component combinations by rounding up or down the real displacement vector arise. These are subpixels according to their proportion of the generating pixel with weights act upon. After the simultaneous shift all subpixels are then only weighted Summary of all in a virtual processor incoming - usually four - subpixels.
Die Pixeldaten werden dann von dem Ausgangsprozessor 206 bitseriell und wortparallel eingelesen, wie durch Pfeile 210 dargestellt ist. Der Ausgangsprozessor 206 setzt die Pixeldaten dann in bitparallele, wortserielle Pixeldaten um, die einer Bildwiedergabeeinrichtung 212 zugeführt werden. Das ist durch einen Pfeil 214 dargestellt.The pixel data are then read in by the output processor 206 bit-serial and word-parallel, as shown by arrows 210 . The output processor 206 then converts the pixel data into bit-parallel, word-serial pixel data, which are supplied to an image display device 212 . This is shown by an arrow 214 .
Claims (11)
- a) Speichermittel (36, 38), in welchem ein Landschaftsmodell gespeichert ist,
- b) einen Rechner zum Aufrufen von Geländeinformationen aus den Speichermitteln in Abhängigkeit von Ort und Blickrichtung des angenommenen Beobachters und zur Berechnung von Bilddaten, und
- c) eine Bildwiedergabeeinrichtung zur Wiedergabe der
berechneten Bilddaten,
dadurch gekennzeichnet, daß
d) die Speichermittel einen Massenspeicher (36) hoher Speicherkapazität aufweisen, in welchem das gesamte Landschaftsmodell gespeichert ist, und einen Arbeitsspeicher (38) mit kurzer Zugriffszeit, wobei das Landschaftsmodell in Form einer hierarchischen Auflösungspyramide organisiert ist, - e) der Rechner erste Rechnermittel (40, 42) aufweist, durch welche ein Geländeinformation des Landschaftsmodells, die einem durch die Bewegung und Blickrichtung des Beobachters bestimmten Geländeausschnitt entsprechen, durch hierarchische Aussonderung bestimmbar und in den Arbeitsspeicher (38) übertragbar sind,
- f) der Rechner weiterhin zweite Rechnermittel (44) enthält zum Abgrenzen von Landschaftsdetails aus dem Geländeabschnitt und zum Bestimmen der Ebenen der hierarchischen Auflösungspyramide für die jeweiligen Landschaftsdetails nach Maßgabe des Abstandes des angenommenen Beobachters von dem jeweiligen Landschaftsdetail,
- g) der Rechner dritte Rechnermittel (46) enthält zum Transformieren der Landschaftsdetails in eine Bildebene, wobei jedes dieser Landschaftsdetails einem Pixel der Bildebene zugeordnet ist, und
- h) der Rechner vierte Rechnermittel (50) enthält, durch welche von mehreren einem Pixel zugeordneten Landschaftsdetails das der Bildebene jeweils nächstliegende auswählbar ist, und
- i) die Bildwiedergabeeinrichtung zur Darstellung der so ausgewählten Pixel eingerichtet ist.
- a) storage means ( 36 , 38 ) in which a landscape model is stored,
- b) a computer for calling up terrain information from the storage means as a function of the location and viewing direction of the assumed observer and for calculating image data, and
- c) an image display device for displaying the calculated image data,
characterized in that
d) the storage means have a mass storage ( 36 ) with a high storage capacity, in which the entire landscape model is stored, and a working memory ( 38 ) with a short access time, the landscape model being organized in the form of a hierarchical pyramid of dissolution, - e) the computer has first computing means ( 40 , 42 ), by means of which hierarchical separation can be used to determine terrain information of the landscape model, which corresponds to a section of the terrain determined by the movement and viewing direction of the observer, and can be transferred to the main memory ( 38 ),
- f) the computer further contains second computer means ( 44 ) for delimiting landscape details from the terrain section and for determining the levels of the hierarchical pyramid for the respective landscape details in accordance with the distance of the assumed observer from the respective landscape detail,
- g) the computer contains third computer means ( 46 ) for transforming the landscape details into an image plane, each of these landscape details being assigned to a pixel of the image plane, and
- h) the computer contains fourth computer means ( 50 ), by means of which a plurality of landscape details assigned to a pixel can be used to select the one closest to the image plane, and
- i) the image display device is set up to display the pixels selected in this way.
- - jeweils mit ihren vier nächsten "horizontalen" und "vertikalen" Nachbarn in Datenaustausch stehen,
- - zyklisch vom "oberen" zum "unteren" und vom "rechten" zum "linken" Rand miteinander verknüpft sind,
- - je einen lokalen Datenspeicher aufweisen, und
- - von einem Programmspeicher (54) im SIMD-Takt ansteuerbar sind.
- - are in data exchange with their four nearest "horizontal" and "vertical" neighbors,
- - cyclically linked from "upper" to "lower" and from "right" to "left",
- - each have a local data store, and
- - Can be controlled by a program memory ( 54 ) in the SIMD cycle.
- a) der massiv parallele Rechner (50) einen Eingabeprozessor (204) enthält, durch welchen der bitparallel einlaufende Datenstrom in eine bitserielle Form überführbar ist, und
- b) der massiv parallele Rechner (50) weiterhin einen Ausgabeprozessor (206) enthält, durch welchen nach Verarbeitung der Eingangsdaten die Ergebnisse in eine bitparallele Form für die Pixel zurückverwandelbar sind.
- a) the massively parallel computer ( 50 ) contains an input processor ( 204 ) through which the bit-parallel incoming data stream can be converted into a bit-serial form, and
- b) the massively parallel computer ( 50 ) also contains an output processor ( 206 ), by means of which the results can be converted back into a bit-parallel form for the pixels after processing the input data.
- a) das gespeicherte Landschaftsmodell außer den Mittelpunkten der Voxel auch die Differenzvektoren von diesen Mittelpunkten zu den Fußpunkten der Lote auf die Landschaftsoberfläche enthält und
- b) die Rechnermittel (50) zur Berücksichtigung dieser Vektoren bei der Projektion in die Bildebene eingerichtet sind, wodurch Aliasing-Effekte in den Geländeansichten verringert werden.
- a) the stored landscape model contains not only the center points of the voxels but also the difference vectors from these center points to the base points of the plumb bobs on the landscape surface and
- b) the computer means ( 50 ) are set up to take these vectors into account when projecting into the image plane, thereby reducing aliasing effects in the terrain views.
- a) die Darstellung von stationärem Gelände und von in diesem beweglichen Objekten von den ersten bis dritten Rechnermitteln getrennt erzeugbar sind und
- b) diese getrennt erzeugten Darstellungen von den vierten Rechnermitteln im Rahmen der Berücksichtigung der Abstände vom Beobachter überlagerbar sind.
- a) the representation of stationary terrain and of objects movable in it can be generated separately from the first to third computing means and
- b) these separately generated representations can be superimposed by the fourth computer means within the scope of taking into account the distances.
- a) die Rechnermittel zur Berechnung von erweiterten Geländebildern eingerichtet sind, deren Abmessungen die Abmessungen der von der Bildwiedergabeeinrichtung wiedergegebenen Geländeansichten überschreiten,
- b) durch die Rechnermittel (50) aus den angenommenen Bewegungen des Beobachters für jedes Pixel der Vektor des optischen Flusses berechenbar ist und
- c) die Rechnermittel (50) zur Berechnung von extrapolierten Geländeansichten aus den erweiterten Geländebildern und den Vektoren des optischen Flusses eingerichtet sind.
- a) the computer means are set up for calculating extended terrain images, the dimensions of which exceed the dimensions of the terrain views reproduced by the image display device,
- b) the vector of the optical flow can be calculated for each pixel by the computer means ( 50 ) from the assumed movements of the observer and
- c) the computer means ( 50 ) are set up for calculating extrapolated terrain views from the expanded terrain images and the vectors of the optical flow.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19924209936 DE4209936C2 (en) | 1992-03-27 | 1992-03-27 | Terrain image simulator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19924209936 DE4209936C2 (en) | 1992-03-27 | 1992-03-27 | Terrain image simulator |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4209936A1 true DE4209936A1 (en) | 1993-09-30 |
DE4209936C2 DE4209936C2 (en) | 1994-11-03 |
Family
ID=6455127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19924209936 Expired - Fee Related DE4209936C2 (en) | 1992-03-27 | 1992-03-27 | Terrain image simulator |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4209936C2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19825747A1 (en) * | 1998-06-09 | 1999-12-16 | Siemens Ag | Data processing arrangement for visualising selected node |
US7187619B2 (en) | 2003-03-18 | 2007-03-06 | The Johns Hopkins University | Method and apparatus for high-frequency passive sonar performance prediction |
USRE41428E1 (en) | 1995-12-22 | 2010-07-13 | Art + Com Ag | Method and device for pictorial representation of space-related data |
CN113589318A (en) * | 2021-07-30 | 2021-11-02 | 上海无线电设备研究所 | Satellite-borne infrared staring camera entrance pupil radiation image simulation method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10244148A1 (en) * | 2002-09-23 | 2004-04-08 | Daimlerchrysler Ag | Method and device for video-based observation and measurement of the lateral surroundings of a vehicle |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3022454A1 (en) * | 1979-06-15 | 1981-02-05 | Redifon Flight Simulation Ltd | OPTICAL IMAGE SYSTEM WITH COMPUTER GENERATED IMAGE FOR A FLOOR-RESISTANT FLIGHT SIMULATOR |
DE3133902A1 (en) * | 1981-08-27 | 1983-03-17 | Honeywell Gmbh, 6050 Offenbach | METHOD AND DEVICE FOR VISUAL SIMULATION |
WO1991016700A1 (en) * | 1990-04-24 | 1991-10-31 | Rediffusion Simulation Limited | Image generator |
-
1992
- 1992-03-27 DE DE19924209936 patent/DE4209936C2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3022454A1 (en) * | 1979-06-15 | 1981-02-05 | Redifon Flight Simulation Ltd | OPTICAL IMAGE SYSTEM WITH COMPUTER GENERATED IMAGE FOR A FLOOR-RESISTANT FLIGHT SIMULATOR |
DE3133902A1 (en) * | 1981-08-27 | 1983-03-17 | Honeywell Gmbh, 6050 Offenbach | METHOD AND DEVICE FOR VISUAL SIMULATION |
WO1991016700A1 (en) * | 1990-04-24 | 1991-10-31 | Rediffusion Simulation Limited | Image generator |
Non-Patent Citations (1)
Title |
---|
DE-Z.: SZABO, J.: Bildverarbeitungssysteme und ihre Anwendungen, In: radio fernsehen elektronik, Berlin 37, 1988, 2, S.125-128 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE41428E1 (en) | 1995-12-22 | 2010-07-13 | Art + Com Ag | Method and device for pictorial representation of space-related data |
USRE44550E1 (en) | 1995-12-22 | 2013-10-22 | ART + COM Innovationpool GmbH | Method and device for pictorial representation of space-related data |
DE19825747A1 (en) * | 1998-06-09 | 1999-12-16 | Siemens Ag | Data processing arrangement for visualising selected node |
US7187619B2 (en) | 2003-03-18 | 2007-03-06 | The Johns Hopkins University | Method and apparatus for high-frequency passive sonar performance prediction |
CN113589318A (en) * | 2021-07-30 | 2021-11-02 | 上海无线电设备研究所 | Satellite-borne infrared staring camera entrance pupil radiation image simulation method |
CN113589318B (en) * | 2021-07-30 | 2023-09-19 | 上海无线电设备研究所 | Simulation method for entrance pupil radiation image of satellite-borne infrared staring camera |
Also Published As
Publication number | Publication date |
---|---|
DE4209936C2 (en) | 1994-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3782160T2 (en) | DIGITAL SIMULATION SYSTEM FOR GENERATING REALISTIC SCENES. | |
DE68928391T2 (en) | Image generator | |
DE3854543T2 (en) | Priority management of a depth data buffer for real-time computer systems for image generation. | |
DE102009041431B4 (en) | Driving simulation apparatus, wide-angle camera video simulation apparatus and image deforming / composing apparatus | |
DE69924700T2 (en) | Method for displaying graphic objects represented by surface elements | |
DE69127516T2 (en) | Process and apparatus for imaging | |
DE3650129T2 (en) | Edge smoothing method for computer imaging system. | |
DE3689271T2 (en) | Image display procedure. | |
DE69130545T2 (en) | System for creating a textured perspective view | |
DE69130123T2 (en) | Display device and method for operating such a device | |
DE3686233T2 (en) | VIDEO SIGNAL PROCESSING. | |
DE69224499T2 (en) | Three-dimensional graphic processing | |
DE3022454A1 (en) | OPTICAL IMAGE SYSTEM WITH COMPUTER GENERATED IMAGE FOR A FLOOR-RESISTANT FLIGHT SIMULATOR | |
DE3881416T2 (en) | Method for displaying a perspective image of an area and system for carrying out the method. | |
DE69812732T2 (en) | Method and device for the rapid reproduction of computer-generated images of complex structures | |
DE69431329T2 (en) | Process for generating image data | |
DE69126611T2 (en) | IMAGING DEVICE | |
DE69636599T2 (en) | METHOD AND SYSTEM FOR REPRODUCING GRAPHIC OBJECTS BY DIVISION IN PICTURES AND COMPOSITION OF PICTURES TO A PLAY PICTURE | |
DE3856127T2 (en) | Display method and device for three-dimensional computer graphics | |
DE69226512T2 (en) | Image processing method | |
DE69737780T2 (en) | Method and device for image processing | |
EP0780800A2 (en) | Method and apparatus for imaging space related data | |
DE10296401B4 (en) | Composite rendering of 3-D graphics objects | |
DE69924699T2 (en) | Method for creating graphic objects represented as surface elements | |
DE69120407T2 (en) | IMAGE GENERATOR |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |