01.02.2013 Aufrufe

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Wichtig für den Ablauf des Berechungsprozesses sind nun noch Funktionen, mit denen z.B. die<br />

Höhe – also im Fall der Madness Engine die y-Koordinate – eines bestimmten Punktes in der Szene<br />

berechnet werden kann. Dies übernimmt in der Madness die Methode getHeightOfTerrain(), die<br />

unter Zuhilfenahme des BSP-Baums ausgehend von einer gegebenen Position nach unten überprüft,<br />

an welchem Punkt eine Kollision mit der Landschaft bzw. dem Boden stattfindet.<br />

Die konkrete Umsetzung der Daten in Bilder erfolgt, wie schon oben erwähnt, mit der Open-Source-<br />

Multimediabibliothek SDL (Simple DirectMedia Layer) [SDL04]. Diese Funktionsbibliothek stellt Funktionen<br />

zur Verfügung, die beispielsweise OpenGL-Aufrufe 10 kapseln oder das Laden und Abspielen<br />

von Sounddateien unterstützen. SDL gewährleistet außerdem eine gewisse Portabilität der 3D-<br />

Engine, da es außer für die Linux-Plattform beispielsweise auch für Windows verfügbar ist.<br />

3.4 Netzwerkarchitektur<br />

Die ursprüngliche Version der Madness Engine enthielt schon die Möglichtkeit, das Rendern der Welt<br />

auf mehrere Rechner zu verteilen. Diesem verteilten Rendern liegt das Prinzip zu Grunde, dass jeder<br />

Rechner aufgrund der ihm übermittelten Informationen über die aktuelle Position des Sichtpunkts<br />

und den aktuellen Sichtwinkel sein eigenes Bild errechnet. Hierdurch ist es möglich durch eine beim<br />

Start festgelegte, feste Verschiebung des Sichtfelds mit Hilfe mehrere Rechner eine 360 o -Ansicht zu<br />

rendern und diese mit mehreren Beamern auf eine bestimmte Anzahl von Leinwänden zu verteilen.<br />

Grundsätzlich benötigt dazu jeder Rechner zunächst einmal die gleichen Daten, d. h. das gleiche<br />

Weltmodell, die animierten Modelle und auch alle benötigten Sounds. Diese Einrichtung muss vor<br />

dem Start der Engine erfolgen, da zur Lauftzeit nur noch Positionsangaben über das Netzwerk verschickt<br />

werden. Ein Rechner übernimmt nun die Aufgabe des Hauptrechners (Master) und übernimmmt<br />

die Steuerung der übrigen teilnehmenden Rechner. Genauer gesagt bedeutet dies, dass auf<br />

diesem Hauptrechner sämliche Interaktionen mit dem Benutzer, evtl. KI-Berechnungen und ähnliches<br />

abläuft und er dann nur die Position des Sichtpunkts und die Position der Modelle an seine<br />

Hilfsrechner (Slaves) übermittelt. Dies geschieht per UDP-Multicast verschickter Informationspakete,<br />

die von den Slaves empfangen werden. Diese berechnen dann jeder für sich aufbauend auf den Informationen,<br />

die sie erhalten haben, ihr eigenes Bild. Haben sie ein weiteres Bild gerendert, wird dem<br />

Master-Rechner ein Bestätigungspaket gesendet. Der grundsätzliche Aufbau ist in Abbildung 3.2<br />

verdeutlicht.<br />

10 Diese 3D-Engine basiert auf der Grafikbibliothek OpenGL. [OGL04] [SWN99]<br />

15

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!