Virtuelle Realität
Verteilte VR Systeme
Dr. Thies Pfeiffer
Termin: Freitags, 10:15 Uhr
Raum: S2-121
Überblick
Inhalte der letzten Veranstaltung: Software Architekturen für Virtuelle Umgebungen
- Anforderungen an eine VR Architektur
- Wesentliche Meilensteine der VR Architekturentwicklung
- Aktuelle Architekturen
Überblick
Inhalte dieser Veranstaltung
- Verteilte VR Systeme
- Ebenen für eine Verteilung in VR Systemen
- Netzwerk-Architekturen
- Anwendungsbeispiele
Ebenen für eine Verteilung in VR Systemen
Ebenen für eine Verteilung in VR Systemen
Überblick
- Anwendung
- Mechanismen zur Verteilung von Anwendungen, insbesondere des Anwendungszustands
- Szenengraph/Middleware
- Mechanismen zur Verteilung der Beschreibung von Grafik
- Rendering (z.B. OpenGL)
- Mechanismen zur Verteilung von Zeichenbefehlen an die Grafik-Pipeline
Verteiltes Rendering
Verteilung über OpenGL
Chromium
- Basiert auf WireGL, Entwicklung eingestellt
- WWW: http://chromium.sourceforge.net/
- Wrapper für OpenGL
- Idee: fängt Aufrufe an die Grafik-Pipeline über OpenGL ab und verteilt diese dann auf mehrere Pipelines
- Fähigkeiten
- Sort-First / Tiled Rendering (mehrere Rechner für ein Bild, Aufteilung in nicht-überlappende Bereiche)
- Sort-Last / Z-Compositing Rendering (mehrere Rechner für ein Bild, Überlagerung anhand des Z-Buffers)
- Hybrid (Sort-First kombiniert mit Sort-Last)
Chromium
Besonderes Feature
- Anwendungen müssen nicht verändert werden
Verteiler Szenengraph
Verteilung bei OpenSG
- Verteilung des Szenengraphen
- Anwendungsrechner konstruiert den kompletten Szenengraphen mit OpenSG
- Mehrere OpenSGServer bieten das Rendern von Szenengraphen an
- Die Anwendung wird entsprechend der benötigten OpenSGServer konfiguriert
- OpenSG ist die Basis von InstantReality
OpenSG
OpenSG - Example of a Stereo Cluster
Verteilte Anwendung
Allgemein
- Die Verteilung von Anwendungen ist ein allgemeines Problem der Informatik und kein Spezialfall von Systemen der Virtuellen Realität
- Es gibt jedoch Speziallösungen aus dem Bereich der VR.
- Beispiel: Avango (OpenSG verteilt auch Felder, bietet aber keine Routen)
- Einfachste Möglichkeit: alle Knoten des System führen Anwendung parallel aus und nur der Zeitpunkt der Grafikausgabe wird synchronisiert
- Determinismus der Anwendung wird vorausgesetzt
Verteilte Anwendung
Verteilung bei Avango
- Verteilter Szenengraph plus
- Verteilter Datengraph
- Nutzung in der VR etablierter Strukturen und Paradigmen
- Übertragung des Anwendungszustands über das Netzwerk
- heterogene Gestaltung möglich
- Anwendungen teilen in der Regel nur einen kleinen Ausschnitt ihrer Szenengraphen
- Festlegung der Verteilung über Distribution Groups im Szenengraphen
Überblick der Architektur von Avango
Netzwerk-Architekturen
Netzwerk-Architekturen
Wichtige Eigenschaften
- Latenz und Bandbreite
- Priorisierung kritischer Nachrichten
- Synchrone/Asynchrone Kommunikation
- Mechanismen für Besitz und Locking
- Persistenz
Netzwerk-Architekturen
Software-Ebenen
- Netzwerk-Protokoll (TCP, UDP, InfiniBand)
- Middleware
- Nachrichten-basierte Systeme
- Systeme für geteilte Objekte
Netzwerk-Architekturen
Überblick
- Multicast
- Client/Server
- Peer-to-Peer
- Peer-to-Peer mit Master
- Peer-to-Peer mit zentralem Registrar
Netzwerk-Architekturen
Multicast
- Sender schickt Daten an Gruppe von Empfängern gleichzeitig
- Anwendungsgebiete: Verteiltes Rendering, Verteilte Szenengraphen
- Vorteile
- Daten müssen nur einmal ins Netzwerk gegeben werden, spart Bandbreite
- Flexible Struktur (Gruppen können auf Netzwerk-Ebene konfiguriert werden)
- Nachteile
- Paralleler Betrieb mit anderen Diensten schwierig
- Wird nur in lokalen Netzen geroutet
Netzwerk-Architekturen
Client/Server
- Je nach Metapher verbinden sich mehrere Clients mit einem Server oder mehrere Server werden von einem Client verwendet
- In der Unix/Linux Welt wird pro Display-Gerät ein Server betrieben (X11), Anwendungen verbinden sich damit als Clients
- Anwendungsgebiete: Verteiltes Rendering, Verteilte Szenengraphen
- Vorteile
- einfach zu Administrieren
- kann auch über das Internet geroutet werden
- starrere Struktur (Server müssen in der Regel vorher bekannt sein und wechseln nicht)
- Nachteile
- benötigt mehr Bandbreite, insbesondere beim zentralen Client bzw. Server
Netzwerk-Architekturen
Peer-to-Peer
- Jeder ist mit jedem verbunden
- Anwendungsgebiete: Verteilte Anwendung
- Vorteile
- geringe Latenz durch direkte Verbindung aller Teilnehmer (1Hop)
- kann über das Internet geroutet werden
- Nachteile
- Bootstrapping schwierig, da Teilnehmer sich alle kennen müssen
Netzwerk-Architekturen
Peer-to-Peer mit Master
- Einer der Peer-to-Peer Teilnehmer übernimmt Rolle als Master
- Master ist erster Anlaufpunkt der Teilnehmer und verwaltet Liste der Teilnehmer
- Anwendungsgebiete: Verteilte Anwendung
- Vorteile
- Konfiguration des Netzes kann sich dynamisch ändern
- Nachteile
- Single Point of Failure durch zentralen Master
Netzwerk-Architekturen
Peer-to-Peer mit zentralem Registrar
- Ein dedizierter Master, der nicht gleichzeitig Teilnehmer ist, verwaltet die Teilnehmer
- Anwendungsgebiete: Verteilte Anwendung
- Vorteile
- Konfiguration des Netzes kann sich dynamisch ändern
- Zwar noch Single Point of Failure, aber reduzierte Komplexität des Prozesses, welcher den Dienst betreibt
- Zentraler Dienst kann auch das Routing vermitteln, insbesondere bei NAT Systemen
- Nachteile
- Separate Instanz muss gewartet werden
Massive Multiplayer Online Games
MMOGs - Herausforderungen
Herausforderungen
- Große Welten - umfangreiche Daten (Texturen, Modelle, etc.)
- Große Anzahl an Nutzern
- Latenz - Updates möglichst schnell beim Spieler
- Konsistenz - Zustand für alle Spieler gleich
- Persistenz - Zustand über mehrere Sitzungen gehalten
MMOGs - Herausforderungen
Umfangreiche Daten
- Texturen, Geometrien, Musik und Geräusch-/Sprachdateien benötigen viel Platz
- Meistens wird eine lokale Installation erstellt (DVDs, Steam, etc.)
- Bei sehr dynamischen Welten mit benutzergenerierten Inhalten geht dies nicht
- Caching-Strategien notwendig
- Kontinuierliches Nachladen/Streaming
MMOGs - Herausforderungen
Große Anzahl an Nutzern
- Große Anzahl der Nutzer $\to O(n^2)$ Datenupdates
- Echtzeit-Interaktionen kaum machbar
- Mögliche Strategien
- Rundenbasierte Interaktionen (z.B. EverQuest)
- Für große Gruppen Interaktionen auf Bewegung und Chats beschränken, intensivere Handlungen auf kleine Gruppen beschränken (Instancing, z.B. World of Warcraft, Guild Wars)
MMOGs - Herausforderungen
Latenz/Jitter
- Updates der Interaktionen sollen möglichst schnell bei allen Teilnehmern sein
- Latenz: Dauer einer Übertragung von A nach B
- Jitter: Unregelmäßigkeiten in der Übertragungsdauer (führt zu nicht-regulären Statusupdates)
- Strategie:
- Peer-to-Peer Verbindungen für Interaktionsupdates (z.B. beim Instancing)
- Zielwert: 25 ms bei visueller Darstellung (Haptisch noch darunter)
- Spannende Methoden: Vorhersage von Bewegungen, Extrapolation
MMOGs - Herausforderungen
Konsistenz
- Problem: in der realen Welt erfahren alle einen identischen (äußeren) Weltzustand
- In der verteilten Welt ist das auf Grund der Latenzen kaum machbar
- Lösung: angenäherte Konsistenz der Ansicht ist ausreichend, so lange die Kausalität konsistenz ist
- Beispiel:
- Durch Latenzen sehen sich die Teilnehmer an leicht unterschiedlichen Stellen in der Virtuellen Welt.
- Tests auf Kollisionen fallen je nach Teilnehmer unterschiedlich aus.
- Möglicher Ansatz: wenn ein Teilnehmer eine Handlung ausführt, die in seiner Darstellung eine kausale Konsequenz erzwingt, so wird diese Konsequenz auch bei anderen durchgeführt.
- Dazu muss aber die kausale Reihenfolge von Events konsistent gehalten werden.
- Probleme entstehen dann, wenn mehrere Teilnehmer mit den gleichen Objekten interagieren.
MMOGs - Herausforderungen
Persistenz
- Was geschieht zwischen zwei Sitzungen eines Benutzers?
- Einfache Lösung: Avatar verschwindet. Die meisten Systeme verfahren so, z.B: Guild Wars
- Alternativ: Avatar wird vom System übernommen und absolviert handwerkliche Arbeiten oder Trainings (z.B. EVE Online)
- Altern?
Literatur
Literatur
- Kloss, Jörg H. (2010). X3D - Programmierung interaktiver 3D-Anwendungen für das Internet. Addison-Wesley.
- Steed, Anthony and Oliveira, Manuel Fradinho (2010). Networked Graphics - Building Networked Games and Virtual Environments. Morgan Kaufmann.
Zusammenfassung
Zusammenfassung
Inhalte dieser Veranstaltung
- Verteilte VR Systeme
- Verteilung von VR Systemen
- Netzwerk-Architekturen
- MMOGs
Ausblick
Philosophische und rechtliche Fragen
- Diskussion zu den folgenden Fragestellungen:
- Ist man in der virtuellen Welt eine Person?
- Welche rechtlichen Fragestellungen ergeben sich, z.B. für die Frage des Besitzes von Gegenständen?
- Ist eine Virtuelle Welt ein eigener Staat?