Virtuelle Realität

Verteilte VR Systeme

Dr. Thies Pfeiffer

AG Wissensbasierte Systeme, Technische Fakultät, Universität Bielefeld

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

  • WireGL
  • Chromium

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
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
OpenSG Stereo Cluster
OpenSG - Example of a Stereo Cluster
Image taken from the OpenSG online manual

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
Architektur von Avango
Ü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-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?