14.11.2012 Aufrufe

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet 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.

<strong>Projekt</strong> MiCarpet <strong>Projekt</strong>bericht<br />

12.4 Netzwerksystem<br />

Wie schon in der Übersicht erwähnt wurde, ist das System fähig, mehrere Computer parallel in einem<br />

Netzwerk zu nutzen, um mehrere Ansichten der Szene verteilt auf mehreren Rechnern zu rendern. Das<br />

hat den Vorteil, dass jeder Rechner nur eine Standard-Grafikkarte mit einem Ausgang benötigt. Es wäre<br />

zwar auch theoretisch möglich, nur einen Rechner zu benutzen, das aber erfordert eine Ausstattung mit<br />

einem Grafikausgang für jede <strong>Projekt</strong>ionswand und ist somit nur sehr schlecht zu realisieren. Insbesondere<br />

wäre ein Rechner mit dem gleichzeitigen Rendern mehrerer Ansichten bei interaktiven Bildwiederholungsraten<br />

überfordert.<br />

Da wir keine stereoskopische Ansicht im System nutzen (für die pro Wand auch zwei <strong>Projekt</strong>oren oder<br />

ein Spezialprojektor mit extrem hoher Bildwiederholungsrate notwendig wäre), sind die Aufgaben für<br />

das Netzwerksystem, welches die verteilte Grafikausgabe koordiniert, folgende:<br />

• Finden der Rechner im Netz, Initialisieren und Beenden einer Sitzung<br />

• Synchronisation des Renderns aller Rechner auf Framebasis<br />

• Synchronisation der Szene (Animation, Änderungen im Objektstatus)<br />

Wir haben auf Basis des Netzwerkprotokolls TCP/IP[TCP/IP??] (das Standardprotokoll im Internet,<br />

siehe [?]) ein Netzwerksystem für die Engine entwickelt, welches diese Punkte erfüllt. Unser System<br />

setzt dabei auf dem Protokoll UDP auf, welches eine verbindungslose und schnelle Datenübertragung<br />

ermöglicht. Das übliche Protokoll TCP schied dabei aus, weil es verbindungsbasiert ist und so bei jedem<br />

Paket noch weitere Verbindungsinformationen (Datenbestätigungen, ...) übertragen werden müssen, was<br />

insgesamt die Latenzzeit erhöht. In unserem Fall ist aber die Latenzzeit entscheidender als die Verbindungssicherheit,<br />

da jede Verzögerung durch Datenübertragung die Reaktionszeit des Systems erhöht. Die<br />

durch die Verwendung von UDP fehlende Übertragungssicherheit (UDP garantiert keine Erkennung und<br />

Behebung bei Paketverlusten) fällt nicht ins Gewicht, da wir in einem lokalen Netzwerk arbeiten, in dem<br />

im Normalfall keine Verluste entstehen sollten. In den meisten Fällen kann außerdem das System einen<br />

solchen Ausfall ausgleichen.<br />

Aufbau Das Protokoll baut auf dem Master/Slave-Prinzip auf, d.h. es gibt einen bestimmenden Rechner<br />

(Master) und n untergeordnete Clients (Slaves). Wie in Abbildung 10.2 auf Seite 71 schon zu sehen<br />

war, hat üblicherweise der Master auch alle Peripherie-Geräte und die Slaves haben nur jeweils einen<br />

Grafikausgang. Es wäre aber auch einfach möglich, dass der Master selbst keine Grafik ausgibt und nur<br />

die Slaves <strong>Projekt</strong>oren ansteuern. Änderungen an der Szene und dem Status kann allerdings nur der<br />

Master hervorrufen, die Slaves selbst haben ansonsten keine Mitwirkungsmöglichkeiten.<br />

Die Kommunikation im Netzwerksystem über UDP/TCP/IP kann auf drei verschiedene Arten erfolgen:<br />

• Unicast. Entspricht jeweils einer 1:1 Verbindung. Der Master schickt also Pakete, die an alle Slaves<br />

gesendet werden sollen, nacheinander einzeln an alle Slaves, was natürlich gerade bei steigender<br />

Anzahl Slaves länger dauern kann. Dementsprechend skaliert diese Lösung schlecht mit einer<br />

steigenden Menge an Slaves, bei einer kleinen Menge von Slaves (2-3) ist die dadurch entstehende<br />

Verzögerung bei unseren Tests noch vernachlässigbar gewesen.<br />

• Broadcast. Hier schickt der Master Pakete grundsätzlich an alle Rechner im Netzwerk, also auch<br />

alle, die gar nicht im System teilnehmen. Dadurch muss jedes Paket an die Slaves natürlich nur<br />

einmal geschickt werden, in einem größeren Netzwerk erhalten aber viele Rechner Pakete, die sie<br />

nichts angehen und es kann so zu einer Störung des Datenverkehrs kommen (insbesondere, weil<br />

6. Januar 2005 Seite 108

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!