Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
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