Verfahren zur synchronen Wiedergabe einer virtuellen Realität in einer verteilten Simulationsvorrichtung
Die Erfindung betrifft ein Verfahren zur synchronen Wiedergabe eines aus Polygonen gebildeten Geländes einer virtuellen Realität auf mehreren Anzeige- Vorrichtungen einer Simulationsvorrichtung, welche mehrere über ein Netzwerk miteinander verbundene Simulationsrechner aufweist, wobei in jedem Simulationsrechner Raumkoordinaten der Polygone des Geländes gespeichert sind und wobei ein erster Simulationsrechner eine Veränderung des Geländes erzeugt.
Anwendung finden kann die Erfindung in einer vernetzten Simulationsvorrichtung, welche mehrere über ein Netzwerk miteinander verbundene Simulationsrechner aufweist. Derartige Simulationsvorrichtungen nutzen zur Verteilung der Daten zwischen den einzelnen Simulationsrechnern typischerweise den Distributed Interactive Simulation (DIS) Standard IEEE1278. Solche Simulationsvorrichtungen werden zur Ausbildung der Besatzung von Landfahrzeugen, wie beispielsweise von Baumaschinen oder von militärischen Fahrzeugen, verwendet.
Die vernetzte Simulationsvorrichtung weist mehrere Anzeigevorrichtungen auf, auf welchen eine gemeinsame virtuelle Realität dargestellt werden kann. Üblicherweise ist jedem Simulationsrechner eine Anzeigevorrichtung zugewiesen. Einem Simulationsrechner können jedoch auch mehrere Anzeigevorrichtungen zugewiesen sein, um verschiedene Ansichten der virtuellen Realität darzustellen, beispielsweise eine Sicht aus einem Fahrzeug nach vorne und eine Sicht nach hinten. Ferner kann es erforderlich sein, unterschiedliche Ansichten der gemeinsamen virtuellen Realität darzustellen, wenn die Simulationsvorrichtung von mehreren Simulationsteilnehmern genutzt wird, wie es bei der parallelen Ausbildung mehrerer Besatzungsmitglieder der Fall ist. Des Weiteren ist es möglich, mehrere Anzeigevorrichtungen vorzusehen, in welchen dieselbe Ansicht dargestellt wird, z. B. um einem Ausbilder die Möglichkeit zu geben, die virtuelle Realität aus der Sicht eines Simulationsteilnehmers zu verfolgen.
Die von den Simulationsteilnehmern auf den Anzeigevorrichtungen wahrnehm - bare virtuelle Realität weist ein Gelände auf, welches durch eine Vielzahl an Polygonen gebildet wird. Damit jeder Simulationsrechner die zur Anzeige der Polygone auf der Anzeigevorrichtung erforderlichen Berechnungen durchführen kann, werden Raumkoordinaten der Polygone in jedem Simulationsrechner vorgehalten. Die Raumkoordinaten können hierzu über das Netzwerk von ei-
nem anderen Simulationsrechner oder einem Server übertragen werden und auf dem jeweiligen Simulationsrechner gespeichert werden. Um die Darstellung des Geländes realistischer erscheinen zu lassen, können auf die Polygone zudem Texturen abgebildet werden, die die Oberfläche des Geländes darstel- len.
Im Rahmen der Simulationen können Veränderungen des Geländes erzeugt werden. Beispielsweise können simulierte Landfahrzeuge Fahrspuren in dem Gelände hinterlassen. Eine Baumaschine oder ein militärisches Pionierfahrzeug kann das Gelände durch Aushubarbeiten verändern. Im militärischen Anwendungsbereich kann das Gelände ferner durch Explosionen oder Einschläge von Geschossen verändert werden. Die Geländeveränderung kann zum einen die Topologie des Geländes, also die Anordnung der Polygone in der virtuellen Realität, betreffen. Zusätzlich kann auch die auf die Polygone abgebildete Tex- tur verändert werden, um Veränderungen in der Beschaffenheit des Geländes darzustellen.
Im Rahmen einer vernetzten Simulation ist es nun erforderlich, die Geländeveränderungen, die ein erster Simulationsrechner berechnet hat, an die ande- ren Simulationsrechner zu übermitteln, damit diese die Veränderungen des Geländes auf den ihnen zugeordneten Anzeigevorrichtungen darstellen können. Bei bekannten Simulationsvorrichtungen werden hierzu auf dem ersten Simulationsrechner Polygone des veränderten Bereichs in Sub-Polygone unterteilt und deren Raumkoordinaten berechnet. Die Raumkoordinaten werden dann über das Netzwerk an die anderen Simulationsrechner übertragen. Die anderen Simulationsrechner berechnen aufgrund der Raumkoordinaten eine Ansicht der virtuellen Realität und zeigen diese auf der entsprechenden Anzeigevorrichtung an. Um eine Anzeige der Veränderungsprozesse in Echtzeit erreichen zu können, müssen mindestens 60 Bilder pro Sekunde in jeder der An-
Zeigevorrichtungen dargestellt werden. Das vorstehend beschriebene Verfahren weist dabei den Nachteil auf, dass die Menge der zu übertragenden Raum- koordinaten- und Polygondaten so groß ist, dass nicht gewährleistet ist, dass die Übertragung der Daten über das Netzwerk in der für eine Echtzeitdarstel- lung erforderlichen Übertragungszeit erfolgen kann.
Vor diesem Hintergrund stellt sich die Erfindung die A u f g a b e , die Übertragungszeit zur Übertragung der Daten über das Netzwerk zu verringern. Bei einem Verfahren der eingangs genannten Art, wird die Aufgabe durch folgende Verfahrensschritte g e l ö s t :
- Der erste Simulationsrechner erzeugt Positionsdaten, die angeben, welcher Bereich des Geländes verändert wurde,
- der erste Simulationsrechner erzeugt Höhendaten des veränderten
Bereichs des Geländes,
- der erste Simulationsrechner übermittelt die Positionsdaten und die Höhendaten über das Netzwerk zu einem zweiten Simulationsrechner,
- eine Steuereinheit des zweiten Simulationsrechners wählt anhand der Positionsdaten jene Polygone des Geländes aus, die in dem veränderten Bereich liegen,
- eine Tessellatoreinheit des zweiten Simulationsrechners unterteilt die ausgewählten Polygone jeweils in mehrere Sub-Polygone, - eine Berechnungseinheit des zweiten Simulationsrechners berechnet
Raumkoordinaten der Sub-Polygone gemäß der Höhendaten,
- die Sub-Polygone werden auf einer mit dem zweiten Simulationsrechner verbundenen Anzeigevorrichtung angezeigt.
Bei dem erfindungsgemäßen Verfahren ist es ist nicht erforderlich, Raumkoordinaten der Polygone oder der Sub-Polygone an den zweiten Simulationsrechner zu übertragen. Anstelle von Raumkoordinaten werden Positionsdaten über- tragen, die den Bereich des Geländes festlegen, der bei der Anzeige in einer der Anzeigevorrichtungen verändert werden soll. Zudem werden für den durch die Positionsdaten gekennzeichneten Bereich des Geländes Höhendaten übertragen, die angeben, inwiefern das Gelände an einem Punkt des Bereichs gegenüber den in dem zweiten Simulationsrechner gespeicherten Raumkoordina- ten verändert werden soll. Durch die Positionsdaten und die Höhendaten fällt eine wesentlich geringere Menge an Daten an, als es bei der Übertragung von Raumkoordinatendaten der Fall wäre. Somit kann die Übertragungszeit über das Netzwerk erheblich verringert werden und die Darstellung der Geländeveränderungen in Echtzeit ermöglicht werden.
Die in dem zweiten Simulationsrechner gespeicherten Raumkoordinaten müssen nicht durch übertragene Raumkoordinaten ersetzt oder ergänzt werden. Erfindungsgemäß werden die in dem zweiten Simulationsrechner gespeicherten Raumkoordinaten bei der Berechnung der in der Anzeigevorrichtung anzu- zeigenden Pixel anhand der Positionsdaten und der Höhendaten verändert. Die Berechnung der Pixel erfolgt unter anderem in der Steuereinheit, der Tessela- toreinheit und der Berechnungseinheit des zweiten Simulationsrechners.
Gemäß einer vorteilhaften Ausgestaltung des Verfahrens werden die Positions- daten und die Höhendaten parallel zu mehreren Simulationsrechnern übertragen, wodurch die Belastung des Netzwerks verringert werden kann. Die Daten können per Multicast- oder Broadcast-Übertragung in dem Netzwerk verbreitet werden. Hierbei werden die Daten nur einmal an eine Vielzahl von Empfängern versendet, wodurch sich eine geringe Belastung des Netzwerks ergeben kann.
Bevorzugt werden die Daten als Universal Datagram Protocol (UDP)-Pakete über das Netzwerk versendet.
Jedem Simulationsrechner der Simulationsvorrichtung kann eine Anzeigevor- richtung zugeordnet sein, auf der das Gelände der virtuellen Realität einem Simulationsteilnehmer angezeigt wird. Grundsätzlich kann auf den Anzeigevorrichtungen der Simulationsrechner, insbesondere des ersten und zweiten Simulationsrechners, dieselbe Ansicht des Geländes angezeigt werden. Bevorzugt werden auf den Anzeigevorrichtungen jedoch unterschiedliche Ansichten des Geländes angezeigt, so dass mehrere Simulationsteilnehmer unterschiedliche Standorte in der virtuellen Realität einnehmen können. Hierbei können dieselben Positionsdaten und dieselben Höhendaten an verschiedene Simulationsrechner übermittelt werden, welche auf Grundlage dieser Daten verschiedene Ansichten berechnen und auf den ihnen zugeordneten Anzeigevorrichtungen anzeigen.
Im Hinblick auf die Übertragung der Positionsdaten hat es sich als vorteilhaft erwiesen, wenn die Positionsdaten in einer Textur hinterlegt sind. Dies bringt den Vorteil mit sich, dass die über das Netzwerk zu übertragende Daten ver- ringert werden. Die Textur kann nach Art einer Geländekarte ausgebildet sein, die Elemente aufweist, welche jeweils einem vorgegebenen Teilbereich des Geländes entsprechen. Der Teilbereich kann eine Größe von 10 m x 10 m in der virtuellen Realität aufweisen. Für jeden Teilbereich des Geländes kann in der Textur ein digitaler Wert hinterlegt werden, der angibt, ob der entspre- chende Teilbereich verändert wurde oder unverändert ist. Durch die Elemente, die den veränderten Teilbereichen entsprechen, kann der veränderte Bereich des Geländes definiert werden.
Bevorzugt ist es ferner, wenn die Höhendaten in einer Textur hinterlegt sind. Durch diese Maßnahme kann ebenfalls eine Reduktion der zu übertragenden Daten erreicht werden. Die Textur der Höhendaten kann nach Art einer Höhenkarte strukturiert sein, die Elemente aufweist, welche einem vorgegebe- nen Teilbereich des durch die Positionsdaten definierten veränderten Geländebereichs entsprechen. Für jeden Teilbereich kann in der Textur der Höhendaten ein Wert hinterlegt werden, der der Veränderung der Höhe an der betreffenden Stelle des Geländes entspricht. In diesem Zusammenhang hat es sich als vorteilhaft erwiesen, wenn die Textur der Höhendaten eine höhere Auflösung als die Textur der Positionsdaten aufweist. Hierbei werden nur für den veränderten Bereich des Geländes Höhendaten mit hohem Detailgrad erzeugt und übertragen, so dass sich die zu übertragende Datenmenge verringert. Es ist nicht erforderlich, für den Bereich des Geländes, der nicht verändert wurde, hochaufgelöste Höhendaten zu übertragen. Ein Element der Textur der Höhendaten kann einem Teilbereich mit einer Kantenlänge von bis zu 10 cm, bevorzugt von bis zu 5 cm, besonders bevorzugt von bis zu 2 cm entsprechen. Bevorzugt werden die Höhendaten als Quadtree über das Netzwerk übermittelt. In einem Quadtree können die Höhendaten effizient gespeichert werden. Insbesondere bei Höhendaten, die als Textur vorliegen, kann die zu übertragende Datenmenge reduziert werden, da Bereiche der Textur mit demselben Inhalt zu einem Blatt des Quadtrees zusammengefasst werden können. Bei der Übertragung der Daten über das Netzwerk kann die Anzahl zu übertragener Schichten des Quadtree derart gewählt werden, dass die Datenmenge an die zur Verfügung stehende Bandbreite des Netzwerks angepasst wird. Somit kann über die Tiefe des Quadtrees die Datenmenge gesteuert werden.
Ferner hat es sich als vorteilhaft herausgestellt, wenn die Steuereinheit, die Tessellatoreinheit und/oder die Berechnungseinheit Teil einer Grafikkarte des Simulationsrechners sind. Durch die Anordnung der Steuereinheit, der Tessellatoreinheit und/oder der Berechnungseinheit auf einer Grafikkarte kann ein Hauptprozessor (CPU) des zweiten Simulationsrechners entlastet werden. Es ist nicht erforderlich, die Auswahl der Polygone, die Unterteilung in SubPolygone sowie die Berechnung der Raumkoordinaten der Sub-Polygone in dem Hauptprozessor durchzuführen. Hierdurch kann die Darstellung des Geländes auf der Anzeigevorrichtung des zweiten Simulationsrechners beschleunigt wer- den. Besonders vorteilhaft ist es, wenn die Steuereinheit, die Tessellatoreinheit und/oder die Berechnungseinheit Teil eines Grafikprozessors (GPU) sind. Durch die Integration der vorstehend genannten Einheiten in einem Grafikprozessor kann die Rechenleistung der Einheiten weiter gesteigert werden. Bevorzugt sind die Steuereinheit, die Tessellatoreinheit und/oder die Berechnungs- einheit programmierbar ausgebildet, so dass sie an Erfordernisse der Simulationsvorrichtung anpassbar sind.
Nachfolgend sollen vorteilhafte Ausgestaltungen der Erfindung dargestellt werden, die die oben genannten Einheiten des zweiten Simulationsrechners betreffen.
Bevorzugt ist es, wenn die Steuereinheit für jedes darzustellende Polygon prüft, ob es in einem veränderten Bereich des Geländes liegt, so dass die Unterteilung der Polygone ausschließlich in dem veränderten Bereich des Gelän- des erfolgen muss. Hierdurch kann die Menge der für die Anzeige des Geländes auf der Anzeigevorrichtung des zweiten Simulationsrechners erforderlichen Berechnungen verringert werden. In dem Bereich, der anhand der Positionsdaten als nicht verändert gekennzeichnet ist, müssen keine Veränderungen an den Polygonen vorgenommen werden.
Gemäß einer weiteren bevorzugten Ausgestaltung wird die Auflösung der Höhendaten bestimmt und die Tessellatoreinheit unterteilt die Polygone gemäß der Auflösung der Höhendaten in Sub-Polygone. Dies bringt den Vorteil mit sich, dass die Unterteilung der Polygone in Sub-Polygone über die Wahl der Auflösung der Höhendaten gesteuert werden kann. Der erste Simulationsrechner kann somit über die Wahl der Auflösung Einfluss auf die Darstellung des Geländes auf dem zweiten Simulationsrechner nehmen. Die zur Unterteilung der Polygone erforderlichen Berechnungen können im Anschluss an die Über- tragung der Höhendaten über das Netzwerk in der Tessellatoreinheit des zweiten Simulationsrechners erfolgen.
Ferner ist es vorteilhaft, wenn die Berechnungseinheit die Raumkoordinaten der Sub-Polygone gemäß einem in den Höhendaten gespeicherten Hohenoffset berechnet, so dass es nicht erforderlich ist, die Eckpunkte von dem ersten Simulationsrechner zu dem zweiten Simulationsrechner über das Netzwerk zu übertragen. Vielmehr ist es ausreichend, lediglich den Hohenoffset zu übertragen, so dass die Menge der zu übertragenden Daten reduziert werden kann. Durch die Erfindung kann die Menge der für die Übertragung der Veränderungen der Polygone erforderlichen Daten über das Netzwerk stark verringert werden. Somit kann eine verbesserte Übertragung der für eine Drahtgitterdarstellung des Geländes maßgeblichen Daten ermöglicht werden. Um die Darstellung des Geländes auf der Anzeigevorrichtung realistischer erscheinen zu las- sen, können die Polygone mit Texturen belegt werden, die die Oberfläche des Geländes darstellen. Auch eine derartige Textur und /oder eine Zuweisung einer solchen Textur zu einem Polygon kann durch den ersten Simulationsrechner verändert werden.
In diesem Zusammenhang hat es sich als vorteilhaft erwiesen, wenn der erste Simulationsrechner Geländetypdaten des veränderten Bereichs des Geländes erzeugt, die zur Darstellung der Oberfläche des veränderten Bereichs auf dem zweiten Simulationsrechner an den zweiten Simulationsrechner übermittelt werden. Anhand der Übertragung eines Geländetyps können die Polygone bei der Anzeige auf der Anzeigevorrichtung mit einer Textur belegt werden.
Hierbei ist es bevorzugt, wenn die Geländetypdaten Einträge aufweisen, welche jeweils einen Verweis auf eine Textur, insbesondere eine Untergrundtex - tur, bilden. Aufgrund der übertragenen Verweise kann die Datenmenge stark reduziert werden. Es ist nicht erforderlich, für jedes Polygon eine eigene Textur zu übertragen. Die Geländetypdaten können nach Art einer Indextextur strukturiert sein, welche anstelle von Bilddaten, Verweise auf Texturen enthält.
Eine weitere Verbesserung der Erfindung kann durch eine Ausgestaltung erzielt werden, bei der zur Anzeige eines Bildpunktes auf der Anzeigevorrichtung ein Pixel-Shader des zweiten Simulationsrechners anhand der Geländetypdaten eine Untergrundtextur auswählt und eine Farbe des Bildpunktes berechnet. Der Verweis auf eine Untergrundtextur kann in dem Pixel-Shader ausgewertet werden und es kann anhand des Verweises eine Untergrundtextur ausgewählt werden, die bei der Anzeige auf der Anzeigevorrichtung auf das jeweilige Polygon gelegt wird. Somit ist zur Steuerung der Anzeige auf der Anzeigevorrichtung des zweiten Simulationsrechners lediglich eine geringe Datenmenge zu übertragen.
Ferner ist es bevorzugt, wenn der zweite Simulationsrechner anhand der Geländetypdaten einen dem jeweiligen Geländetyp entsprechenden Bodenbewuchs auf der Anzeigevorrichtung darstellt. Die Berechnungen zur Darstellung
des Bodenbewuchses können dabei auf dem zweiten Simulationsrechner, insbesondere auf einer Grafikkarte, durchgeführt werden. Es ist daher nicht erforderlich Daten über das Netzwerk zu übertragen, die die Gestalt des Bodenbewuchses beschreiben. Über den in den Geländetypdaten enthaltenen Ver- weis auf eine Textur kann ein der Textur entsprechender Bodenbewuchs ausgewählt und berechnet werden.
Nachfolgend sollen anhand eines in den Zeichnungen dargestellten Ausführungsbeispiels weitere Einzelheiten und Vorteile der Erfindung beschrieben werden. Hierin zeigt:
Fig. 1 ein Blockdiagramm einer Simulationsvorrichtung; Fig. 2 eine schematische Darstellung der zur Übertragung verwendeten Datenstrukturen; und
Fig. 3 ein Blockdiagramm eines Teils eines Simulationsrechners.
In Fig. 1 ist eine vernetzte Simulationsvorrichtung 1 dargestellt, die mehrere Simulationsrechner 2 aufweist, welche über ein als Local Area Network (LAN) oder Wide Area Network (WAN) ausgebildetes Netzwerk 4 miteinander verbunden sind. Zum Datenaustausch zwischen den einzelnen Simulationsrechnern 2 wird der Distributed Interactive Simulation (DIS) Standard IEEE1278 verwendet. Mit jedem Simulationsrechner 2 ist mindestens eine Anzeigevorrichtung 3 verbunden, auf der eine durch die vernetzte Simulationsvorrichtung 1 generierte virtuelle Realität anzeigbar ist. Solche Anzeigevorrichtungen 3 können
z. B. als Monitor, Flachbildschirm, Projektor oder Head-Mounted-Display ausgebildet sein.
Einige Simulationsrechner 2 sind lediglich mit einer Anzeigevorrichtung 3 ver- bunden. Gemäß der Darstellung in Fig. 1 ist einer der Simulationsrechner 2 jedoch mit mehreren Anzeigevorrichtungen 3 verbunden, um verschiedene Ansichten der virtuellen Realität darzustellen, beispielsweise eine Sicht aus einem Fahrzeug nach vorne und eine Sicht nach hinten. Die Simulationsvorrichtung 1 kann im zivilen Umfeld beispielsweise Anwendung finden zur Ausbildung von Fahrern von rad- oder kettengetriebenen Landfahrzeugen, wie z. B. Planierraupen, Baggern oder anderen Baumaschinen. Im militärischen Einsatzbereich kann mit der Simulationsvorrichtung 1 die Ausbildung von Besatzungsmitgliedern von militärischen Fahrzeugen durchgeführt werden. Hierzu kann jedem Besatzungsmitglied, welches ausgebildet werden soll, ein Simulationsrechner 2 zugeordnet werden. Das Besatzungsmitglied kann als Simulationsteilnehmer über in den Figuren nicht dargestellte Bedienvorrichtungen des Simulationsrechners 2 Einfluss auf den Verlauf der Simulation nehmen und die simulierte, virtuelle Realität über eine oder mehrere mit dem jeweiligen Simulationsrechner 2 verbundene Anzeigevorrichtungen 3 wahrnehmen.
Die von den Simulationsteilnehmern auf den Anzeigevorrichtungen 3 wahrnehmbare virtuelle Realität weist ein Gelände auf, welches durch eine Viel- zahl an Polygonen gebildet wird, die nach Art eines Drahtgitters angeordnet sind. Damit jeder Simulationsrechner 2 die zur Anzeige der Polygone auf der entsprechenden Anzeigevorrichtung 3 erforderlichen Berechnungen durchführen kann, werden Raumkoordinaten der Polygone in jedem Simulationsrechner 2 vorgehalten. Die Raumkoordinaten können hierzu über das Netzwerk 4
von einem anderen Simulationsrechner 2 oder einem in der Figur nicht dargestellten Server übertragen werden und auf dem jeweiligen Simulationsrechner 2 gespeichert werden. Die auf den einzelnen Simulationsrechnern 2 gespeicherten Raumkoordinaten sind identisch, um eine konsistente Darstellung des Geländes auf allen mit den Simulationsrechnern 2 verbundenen Anzeigevorrichtungen 3 zu ermöglichen. Um die Darstellung des Geländes realistischer erscheinen zu lassen, können auf die Polygone zudem Texturen abgebildet werden, die die Oberfläche des Geländes darstellen. Beispielsweise können vorgegebene Bereiche des Geländes mit einer Textur überzogen werden, die Rasen darstellt, um den Eindruck einer Wiesenlandschaft zu erzeugen.
Im Zusammenhang mit der Simulation von Bewegungen der Landfahrzeuge kommt es im Laufe der Simulation oftmals zu Veränderungen des Geländes, beispielsweise wenn ein Landfahrzeug über eine nachgiebige Geländeoberflä- che bewegt wird und sich das Gelände infolgedessen z. B. durch Bildung von Fahrspuren verformt. Ferner können im Rahmen der Ausbildung Aushub- oder Planierarbeiten an dem Gelände der virtuellen Realität vorgenommen werden, z. B. dann, wenn Vorbereitungen zur Verlegung einer mobilen Brücke simuliert werden sollen. Bei militärischen Simulationen kann das Gelände ferner durch Explosionen oder Geschosseinschläge verändert werden.
Bei allen diesen Veränderungen des Geländes wird es erforderlich, die Veränderungen, die in einem der Simulationsrechner 2, beispielsweise aufgrund von Eingaben eines Simulationsteilnehmers, generiert werden, nicht nur auf den mit diesem Simulationsrechner 2 verbundenen Anzeigevorrichtungen 3, sondern auch auf den anderen Anzeigevorrichtungen 3 der Simulationsvorrichtung 1 anzuzeigen. Um eine realistische Simulation in Echtzeit zu ermöglichen, ist es dabei erforderlich, die entsprechenden Daten in Echtzeit zu den anderen Simulationsrechnern 2 über das Netzwerk 4 zu übertragen. Für eine realisti-
sehe Anzeige der dynamischen Veränderungsprozesse müssen mindestens 60 Bilder pro Sekunde zu jeder Anzeigevorrichtung 3 übertragen und dann in dieser angezeigt werden. Um die Datenmenge gering zu halten und die Übertragung in Echtzeit zu ermöglichen werden folgende Verfahrensschritte durch- geführt:
- Der erste Simulationsrechner 2 erzeugt Positionsdaten L , die angeben, welcher Bereich des Geländes verändert wurde,
- der erste Simulationsrechner 2 erzeugt Höhendaten H des veränder- ten Bereichs des Geländes,
- der erste Simulationsrechner 2 übermittelt die Positionsdaten L und die Höhendaten H über das Netzwerk 4 zu einem zweiten Simulationsrechner 2,
- eine Steuereinheit 1 1 des zweiten Simulationsrechners 2 wählt an- hand der Positionsdaten L jene Polygone des Geländes aus, die in dem veränderten Bereich liegen,
- eine Tessellatoreinheit 12 des zweiten Simulationsrechners 2 unterteilt die ausgewählten Polygone jeweils in mehrere Sub-Polygone,
- eine Berechnungseinheit 13 des zweiten Simulationsrechners 2 be- rechnet Raumkoordinaten der Sub-Polygone gemäß der Höhendaten
H,
- die Sub-Polygone werden auf einer mit dem zweiten Simulationsrechner 2 verbundenen Anzeigevorrichtung 3 angezeigt. Aufgrund dieses Vorgehens ist es nicht erforderlich, Veränderungen der Raum- koordinaten der Polygone und/oder neue Raumkoordinaten, insbesondere Eckpunkte, der generierten Sub-Polygone in dem ersten Simulationsrechner 2 zu berechnen und dann an den zweiten Simulationsrechner 2 zu übertragen. An-
stelle von Raumkoordinaten werden in dem ersten Simulationsrechner 2 niedrig aufgelöste Positionsdaten L erzeugt und zu dem zweiten Simulationsrechner 2 übertragen, welche den Bereich des Geländes festlegen, der bei der Anzeige in einer der Anzeigevorrichtungen 2 verändert werden soll. Zudem wer- den für den durch die Positionsdaten L gekennzeichneten Bereich des Geländes hochaufgelöste Höhendaten H erzeugt und übertragen, welche angeben, inwiefern das Gelände an einem Punkt des Bereichs verändert werden soll. Durch die Positionsdaten L und die Höhendaten H fällt eine wesentlich geringere Menge an Daten an, als es bei der Übertragung von Raumkoordinatenda- ten des veränderten Bereichs des Geländes der Fall wäre. Somit kann die Übertragungszeit über das Netzwerk 4 erheblich verringert werden und eine hochdynamische Darstellung der Geländeveränderungen in Echtzeit ermöglicht werden. Gemäß dem Ausführungsbeispiel werden die Daten L und H ausgehend von dem ersten Simulationsrechner 2 über das Netzwerk 4 an alle anderen Simulationsrechner 2 der Simulationsvorrichtung 1 übermittelt, z. B. über eine Multicast- oder Broadcast-Übertragung. Die Struktur der über das Netzwerk 4 übertragenen Positionsdaten L und Höhendaten H soll im Folgenden anhand der schematischen Darstellung in Fig. 2 näher erläutert werden:
Die Positionsdaten L liegen als zweidimensionale Datenstruktur nach Art einer Textur vor, die der gesamten Fläche des simulierten Geländes entspricht. Somit kann man sich die Positionsdaten L als eine Geländekarte vorstellen, die angibt, an welchen Stellen sich das Gelände gegenüber dem in den Simulationsrechnern 2 gespeicherten Stand verändert hat. Die Positionsdaten L enthalten binäre Einträge, die jeweils einem vorgegebenen Teilbereich des Geländes
entsprechen. Der Teilbereich kann eine Größe von 10 m x 10 m aufweisen. Für jeden Teilbereich des Geländes kann in der Textur ein digitaler Wert hinterlegt werden, der angibt, ob der entsprechende Teilbereich verändert wurde oder unverändert ist. Durch die Elemente, die den veränderten Teilbereichen entsprechen, kann der veränderte Bereich des Geländes definiert werden.
Gemäß dem in Fig. 2 dargestellten Beispiel ist durch die Positionsdaten L in der Mitte des Geländes ein aus insgesamt vier Teilbereichen gebildeter Bereich definiert, in dem sich das Gelände verändert hat. Die diesen Teilbereichen entsprechenden Elemente L.1 der Positionsdaten L sind auf den Wert„1 " gesetzt, wohingegen die Elemente L.0, welche Teilbereichen entsprechen, die nicht verändert wurden, auf den Wert„0" gesetzt sind.
Zur Repräsentation des veränderten Bereichs des Geländes werden in dem ers- ten Simulationsrechner 2 weitere Datenstrukturen H und D angelegt und zusammen mit den Positionsdaten L parallel zu den anderen Simulationsrechnern 2 der Simulationsvorrichtung 1 übertragen. Hierbei handelt es sich um die Höhendaten H sowie die Geländetypdaten D, auf die nun näher eingegangen werden soll.
Die Höhendaten H sind ebenfalls in einer Textur hinterlegt, wodurch eine Reduktion der zu übertragenden Daten erreicht werden kann. Die Textur der Höhendaten H ist nach Art einer Höhenkarte strukturiert, die Elemente H.E aufweist, welche einem vorgegebenen Teilbereich des durch die Positionsdaten L definierten veränderten Geländebereichs entsprechen. Für jeden Teilbereich ist in der Textur der Höhendaten H ein numerischer Wert - ein Höhenoffset - hinterlegt, der der Veränderung der Höhe an der betreffenden Stelle des Geländes entspricht. Die Textur der Höhendaten H weist eine höhere Auflösung als die Textur der Positionsdaten L auf. Da ausschließlich für den veränderten
Bereich des Geländes Höhendaten H mit hohem Detailgrad erzeugt und übertragen werden, kann die zu übertragende Datenmenge gering gehalten werden. Es ist nicht erforderlich, für den Bereich des Geländes, der nicht verändert wurde, hochaufgelöste Höhendaten H zu übertragen. Ein Element H.E der Höhendaten H kann einem Teilbereich des Geländes mit einer Kantenlänge von bis zu 10 cm, bevorzugt von bis zu 5 cm, besonders bevorzugt von bis zu 2 cm entsprechen.
Die Datenstruktur der Geländetypdaten D ist ebenfalls als Textur ausgebildet und weist dieselbe Auflösung wie die Textur der Höhendaten H auf. Somit kann jedem Element D.E der Geländetypdaten D ein Element H.E der Höhendaten zugeordnet werden, welches demselben Teilbereich des veränderten Geländes der virtuellen Realität entspricht. Der erste Simulationsrechner 2 erzeugt Geländetypdaten D des veränderten Bereichs des Geländes, die zur Darstellung der Oberfläche des veränderten Bereichs auf dem zweiten Simulationsrechner 2 an den zweiten Simulationsrechner 2 übermittelt werden. Anhand der Übertragung eines Geländetyps können die Polygone bei der Anzeige auf der mit dem zweiten Simulationsrechner 2 verbundenen Anzeigevorrichtung 3 mit einer Untergrundtextur belegt werden, welche dem jeweiligen Geländetyp entspricht. Die Elemente D.E sind jeweils Verweise auf eine Untergrundtextur T. Die Untergrundtextur T kann in dem mit jeweiligen die Daten D empfangenden Simulationsrechner 2 gespeichert sein oder zusammen mit den Positionsdaten L, den Höhendaten D und /oder den Geländetypdaten D übertragen werden. Somit ergibt sich eine Datenstruktur nach Art einer eine Indextextur, welche anstelle von Bilddaten, Verweise auf Untergrundtexturen T enthält. Solche Untergrundtexturen können beispielsweise Gras, Wasser, Gestrüpp, Wald- oder Wüstenboden darstellen.
Optional kann der zweite Simulationsrechner 2 anhand der Geländetypdaten D einen dem jeweiligen Geländetyp entsprechenden Bodenbewuchs, z. B. Grashalme oder Büsche, auf der Anzeigevorrichtung 3 darstellen. Die Berechnungen zur Darstellung des Bodenbewuchses können dabei dem zweiten Simulati- onsrechner 2 durchgeführt werden. Es ist daher nicht erforderlich, Daten über das Netzwerk 4 zu übertragen, die die Gestalt des Bodenbewuchses beschreiben. Über den in den Geländetypdaten D enthaltenen Verweis D.E auf eine Untergrundtextur T kann in dem die Geländetypdaten empfangenden, zweiten Simulationsrechner 2 ein der Untergrundtextur T entsprechender Bodenbe- wuchs ausgewählt und berechnet werden.
Die Höhendaten H sowie die Geländetypdaten D werden über das Netzwerk 4 als Quadtree übermittelt. Hierdurch können die entsprechenden Daten H, D effizient gespeichert werden. Die zu übertragende Datenmenge kann dadurch reduziert werden, dass Bereiche der Textur H, D mit demselben Inhalt zu einem Blatt des Quadtrees zusammengefasst werden. Bei der Übertragung der Daten H, D über das Netzwerk 4 wird die Anzahl zu übertragener Schichten des Quadtree dabei von dem Simulationsrechner 2, welcher die Daten H, D sendet, derart gewählt, dass die in dem Quadtree enthaltene Datenmenge an die zur Verfügung stehende Bandbreite des Netzwerks 4 angepasst wird. Somit kann über die Wahl der Tiefe des Quadtrees die zu übertragende Datenmenge gesteuert werden.
Anhand der Darstellung in Fig. 3 soll nachfolgend erläutert werden, wie die über das Netzwerk 4 übertragenen Positionsdaten L, Höhendaten H und Geländetypdaten D bei der Berechnung der Darstellung des Geländes auf Seiten des die Daten L, H, D empfangenden zweiten Simulationsrechners 2 verwendet werden. Jeder Simulationsrechner 2 weist eine Grafikkarte mit einem Grafikprozessor (GPU) 10 auf, dem die übermittelten Positionsdaten L, Höhenda-
ten H und Geländetypdaten D zur Berechnung der Anzeige in der mit dem Simulationsrechner 2 verbundenen Anzeigevorrichtung 3 zugeführt werden. Die Steuereinheit 11 , die Tessellatoreinheit 12 sowie die Berechnungseinheit 13 sind Teil einer Verarbeitungskette des Grafikprozessors 10. Sie sind programmierbar ausgebildet, so dass sie an die Erfordernisse der Simulationsvorrichtung 1 angepasst werden können.
Zur Berechnung der einzelnen Pixel, welche auf der Anzeigevorrichtung 3 dargestellt werden sollen, werden dem Grafikprozessor 10 Polygondaten P, insbe- sondere Raumkoordinaten, der einzelnen Polygone des Geländes aus einem Speicher des zweiten Simulationsrechners 2 zugeführt. Innerhalb der GPU 10 durchlaufen diese Polygondaten P zunächst die Steuereinheit 11 , welche für jedes darzustellende Polygon prüft, ob es in einem veränderten Bereich des Geländes liegt. Hierzu werden die Positionsdaten L herangezogen. Durch einen Vergleich mit den Positionsdaten L kann die Steuereinheit feststellen, ob das zu prüfende Polygon Teil eines veränderten Geländebereichs ist.
In einem sich daran anschließenden Prozesselement der Verarbeitungskette, der Tessellatoreinheit 12, werden dann solche Polygone, die durch die Steuer- einheit 11 als in dem veränderten Geländebereich liegend erkannt wurden, weiterverarbeitet. Zunächst wird die Auflösung der Höhendaten H bestimmt. In der Tessellatoreinheit 12 werden die erkannten Polygone gemäß der Auflösung der Höhendaten H in Sub-Polygone unterteilt, so dass der veränderte Geländebereich auf der Anzeigevorrichtung 3 detaillierter dargestellt werden kann. Hierzu werden der Tessellatoreinheit 12 die Höhendaten H zugeführt.
In der als nächstes Prozesselement der Verarbeitungskette der GPU 10 angeordneten Berechnungseinheit 13 werden Raumkoordinaten, insbesondere Eckpunkte, der in der Tessellatoreinheit 12 erzeugten Sub-Polygone gemäß dem in
den Höhendaten H gespeicherten Höhenoffset berechnet. Hierzu verfügt die Berechnungseinheit 13 über Zugriff auf die Höhendaten H.
Nachdem die einzelnen Polygone und Sub-Polygone des Geländes in den Ein- heiten 1 1 , 12, und 13 berechnet wurden, werden die Polygondaten P einem Pixel-Shader 1 zugeführt, in welchem die Farbwerte der einzelnen Bildpunkte der Anzeigevorrichtung 3 berechnet werden. Diesem Pixel-Shader 14 werden zudem die Geländetypdaten D zugeführt. Anhand der Geländetypdaten D wählt der Pixel-Shader 14 eine Untergrundtextur aus und berechnet für jeden Bildpunkt einen entsprechenden Farbwert, der anschließend auf der Anzeigevorrichtung 4 dargestellt wird.
Das vorstehend beschriebene Verfahren zur synchronen Wiedergabe eines aus Polygonen gebildeten Geländes einer virtuellen Realität ermöglicht es, die Übertragungszeit zur Übertragung der Daten über das Netzwerk 4 der Simulationsvorrichtung 1 zu verringern. Hierdurch können dynamische Geländeveränderungen in Echtzeit auf allen Anzeigevorrichtungen 3 angezeigt werden. Aufgrund einer effizienten Kommunikation und Synchronisation über das Netzwerk 4 ist eine hohe Darstellungsgeschwindigkeit erreichbar. Die Leistung von Hauptprozessoren und Grafikprozessoren 10 der Simulationsrechner 2 kann optimal und parallel genutzt werden. Ferner zeichnet sich das Verfahren dadurch aus, dass eine hohe Auflösung in den Anzeigevorrichtungen darstellbar ist und realistische Texturen und Texturübergänge Verwendung finden können. Auch wenn vorstehend die Vorgänge bei der Berechnung der Darstellung des Geländes auf der Anzeigevorrichtung 3 beschrieben wurden, die sich auf Seiten des die Positionsdaten L, Höhendaten H und Geländetypdaten D empfangenden Simulationsrechners 2 befindet, können diese Verfahrensschritte gleichfalls auf Seiten des Simulationsrechner 2 durchgeführt werden, welcher
die Daten L, H und D berechnet und an die anderen Simulationsrechner 2 übermittelt.
Bezugszeichen:
1 Simulationsvorrichtung
2 Simulationsrechner
3 Anzeigevorrichtung
4 Netzwerk
10 Grafikprozessor
1 1 Steuereinheit
12 Tessellatoreinheit
13 Berechnungseinheit
14 Pixel-Shader
D Geländetypdaten
D.E Element
H Höhendaten
H.E Element
L Positionsdaten
L.O Element
L.1 Element
P Polygondaten