Virtuelle RealitätVirtual Reality

Verteilte VR SystemeDistributed VR Systems

Dr. Thies Pfeiffer

Cognitive Interaction Technology Center of Excellence,
Technische Fakultät, Universität Bielefeld

Termin:Freitags, 10:15 Uhr

Raum: CITEC Auditorium

Schedule:Fridays, 10:15 a.m.

Room: CITEC Auditorium

ÜberblickOverview

Inhalte der letzten Veranstaltung: Software Architekturen für Virtuelle UmgebungenTopic of the previous lecture: Software architectures for VR environments

  • Anforderungen an eine VR ArchitekturRequirements for a virtual reality architecture
  • Wesentliche Meilensteine der VR ArchitekturentwicklungImportant milestones in the development of virtual reality architectures
  • Aktuelle ArchitekturenCurrent architectures

ÜberblickOverview

Inhalte dieser VeranstaltungTopics of this lecture

  • Verteilte VR SystemeDistributed VR Systems
    • Ebenen für eine Verteilung in VR SystemenRepresentation levels for distribution in VR systems
    • Netzwerk-ArchitekturenNetwork architectures
    • AnwendungsbeispieleApplication examples

Ebenen für eine Verteilung in VR SystemenRepresentation levels for distribution in VR systems

Ebenen für eine Verteilung in VR SystemenRepresentation levels for distribution in VR systems

Überblick der verschiedenen EbenenOverview of the different representation levels

  • AnwendungsebeneApplication level
    • Mechanismen zur Verteilung von Anwendungen, insbesondere des Anwendungszustands Mechanisms for distributing applications, in particular application states/contexts
  • Ebene des SzenengraphScenegraph level/Middleware
    • Mechanismen zur Verteilung der Beschreibung von Grafik Mechanisms for distributing the description of graphics
  • Rendering (z.B.e.g. OpenGL)
    • Mechanismen zur Verteilung von Zeichenbefehlen an die Grafik-Pipeline Mechanisms for the distribution of drawing API calls to the graphics pipeline

Verteiltes RenderingDistributed Rendering

Verteilung über OpenGLDistribution over OpenGL

  • Existierende LösungenExisting solutions
  • WireGL
  • Chromium
  • TechViz

Chromium

  • Basiert aufBased on WireGL, Entwicklung 2003 eingestelltdevelopment has been stopped in 2003
  • WWW: http://chromium.sourceforge.net/
  • Wrapper fürfor OpenGL
  • Idee: fängt Aufrufe an die Grafik-Pipeline über OpenGL ab und verteilt diese dann auf mehrere Pipelines Idea: intercepts calls to the graphics-pipeline via OpenGL and distributed them to multiple pipelines
  • FähigkeitenFeatures
    • Sort-First / Tiled Rendering (mehrere Rechner für ein Bild, Aufteilung in nicht-überlappende Bereichemultiple computers for one image, segmentation into non-overlapping areas)
    • Sort-Last / Z-Compositing Rendering (mehrere Rechner für ein Bild, Überlagerung anhand des Z-Buffersmultiple computers for one image, blending based on z-Buffer)
    • Hybrid (Sort-First kombiniert mitcombined with Sort-Last)
  • NachteileDrawbacks
    • Neuere OpenGL Versionen und Erweiterungen seit 2003 werden nicht mehr unterstütztNewer OpenGL versions and extensions since 2003 are not supported
Chromium
Chromium

Besonderes FeatureFeature Highlight

  • Anwendungen müssen nicht verändert werden!Applications do not have to be touched/changed to be distributed!

TechViz

  • Französische Firma aus Paris, gegründet inFrench company from Paris, founded in 2004
  • WWW: http://www.techviz.net/
  • Bieten verteiltes Rendering ohne Eingriff in die AnwendungProvide distributed rendering without touching the application
  • Zusätzliche Unterstützung eines Rückkanals zur Anbindung von GerätenIn addition to that they support a back-channel to connect devices
TechViz Fusion
TechViz Fusion

Verteiler SzenengraphDistributed Scenegraph

Verteilung des Szenengraphs bei OpenSGDistributed scenegraphs with OpenSG

  • Anwendungsrechner konstruiert den kompletten Szenengraphen mit OpenSGApplication server constructs the complete scenegraph with OpenSG
  • Mehrere OpenSGServer bieten das Rendern von Szenengraphen an (z.B. über das Netzwerk)Multiple OpenSGServers offer the rendering of scenegraphs (e.g. over the network)
  • Die Anwendung wird entsprechend der benötigten OpenSGServer konfiguriertThe application is configured regarding the required OpenSGServers
  • OpenSG ist die Basis von InstantRealityOpenSG is the basis of InstantReality
OpenSG
OpenSG
OpenSG Stereo Cluster
OpenSG - Beispiel eines Stereo ClustersExample of a Stereo Cluster
Image taken from the OpenSG online manual

Verteilte AnwendungDistributed Application

ÜberblickOverview

  • Die Verteilung von Anwendungen ist ein allgemeines Problem der Informatik und kein Spezialfall von Systemen der Virtuellen Realität. The distribution of applications is a common problem of computer science and not only a special case for virtual reality.
  • Es gibt jedoch Speziallösungen aus dem Bereich der VR.There are, however, special purpose solutions for virtual reality.
  • Beispiel: Avango (OpenSG verteilt auch Felder, bietet aber keine Routen)For example: Avango (OpenSG also distributes fields, but does not provide distributed routes)
  • Einfachste Möglichkeit: alle Knoten des System führen Anwendung parallel aus und nur der Zeitpunkt der Grafikausgabe wird synchronisiert.Most simple example: all nodes of the system run the application in parallel and only the point when the graphics are updated to the screen is synchronized.
    • Dieser Ansatz setzt deterministisch laufende Anwendungen vorausThis approach requires applications that run deterministically

Verteilte AnwendungDistributed Application

Verteilung bei AvangoDistribution in Avango

  • Verteilter Szenengraph plusDistributed scenegraph plus
  • Verteilter Datengraphdistributed datagraph
    • Nutzung in der VR etablierter Strukturen und Paradigmenuses structures and paradigms established in VR
    • Übertragung des Anwendungszustands über das Netzwerkdistribution of the application state over the network
    • heterogene Gestaltung möglich, z.B. kein zentraler Anwendungsrechnerheterogeneous design possible, e.g. no central application host
    • Anwendungen teilen in der Regel nur einen kleinen Ausschnitt ihrer Szenengraphenapplications commonly share only a small subset of their scenegraphs
  • Festlegung der Verteilung über Distribution Groups im SzenengraphenThe distribution of content is defined using Distribution Groups in the scenegraph
Architektur von Avango
Überblick der Architektur von AvangoOverview of the architecture of Avango

Netzwerk-ArchitekturenNetwork Architectures

Netzwerk-ArchitekturenNetwork Architectures

Wichtige EigenschaftenImportant Properties

  • Latenz und Bandbreitelatency and bandwidth
  • Priorisierung kritischer Nachrichtenprioritization of critical messages
  • Synchrone/Asynchrone Kommunikationsynchronous/asynchronous communication
  • Mechanismen für Besitz und Lockingmechanisms for ownership and locking
  • Persistenzpersistence

Netzwerk-ArchitekturenNetwork Architectures

Software-EbenenLevels of Software

Netzwerk-ArchitekturenNetwork Architectures

Overview

  • Multicast
  • Client/Server
  • Peer-to-Peer
  • Peer-to-Peer mitwith Master
  • Peer-to-Peer mit zentralemwith central Registrar

Netzwerk-ArchitekturenNetwork Architectures

Multicast

  • Sender schickt gleiche Daten an Gruppe von Empfängernsender posts the same data to a group of recipients
  • Anwendungsgebiete: Verteiltes Rendering, Verteilte Szenengraphenareas of application: distributed rendering, distributed scenegraphs
  • VorteileAdvantages
    • Daten müssen nur einmal ins Netzwerk gegeben werden, spart Bandbreitedata has to be sent only once over the "wire", saves bandwidth
    • Flexible Struktur (Gruppen können auf Netzwerk-Ebene konfiguriert werden)flexible structure (groups can be defined on network level)
  • NachteileDisadvantages
    • Paralleler Betrieb mit anderen Diensten schwierigparallel use with other services difficult
    • Wird nur in lokalen Netzen geroutetoften only routed in local networks

Netzwerk-ArchitekturenNetwork Architectures

Client/Server

  • Je nach Metapher verbinden sich mehrere Clients mit einem Server oder mehrere Server werden von einem Client verwendetdepending on the metaphor used, several clients connect to a single server or multiple server are used by a single client
  • In der Unix/Linux Welt wird pro Display-Gerät ein Server betrieben (X11), Anwendungen verbinden sich damit als Clientsin the unix/linux world, an X11 server is run per display and applications connect ot that server as clients
  • Anwendungsgebiete: Verteiltes Rendering, Verteilte Szenengraphenareas of application: distributed rendering, distributed scenegraphs
  • VorteileAdvantages
    • einfach zu Administriereneasy to administrate
    • kann auch über das Internet geroutet werdencan be routed over the internet
    • starrere Struktur (Server müssen in der Regel vorher bekannt sein und wechseln nicht)fixed structure (server have to be known in advance and do not change)
  • NachteileDisadvantages
    • benötigt viel Bandbreite, insbesondere beim zentralen Client bzw. Serverhigh demands on bandwidth, in particular at the central client/server

Netzwerk-ArchitekturenNetwork Architectures

Peer-to-Peer

  • Jeder ist mit jedem verbundeneveryone is connected to everyone
  • Anwendungsgebiete: Verteilte Anwendungareas of application: distributed applications
  • VorteileAdvantages
    • geringe Latenz durch direkte Verbindung aller Teilnehmerlow latency because of direct connections to all participants (1Hop)
    • kann über das Internet geroutet werdencan be routed over the internet
  • NachteileDisadvantages
    • Bootstrapping schwierig, da Teilnehmer sich alle kennen müssenbootstrapping difficult, as all participants need to know each other (technically)

Netzwerk-ArchitekturenNetwork Architectures

Peer-to-Peer mitwith Master

  • Einer der Peer-to-Peer Teilnehmer übernimmt Rolle als Masterone of the peer-to-peer participants takes the leadership as a master
  • Master ist erster Anlaufpunkt der Teilnehmer und verwaltet Liste der Teilnehmerthe master is the first starting point for participants, he manages a list of participants
  • Anwendungsgebiete: Verteilte Anwendungareas of application: distributed applications
  • VorteileAdvantages
    • Konfiguration des Netzes kann sich dynamisch ändernconfiguration of the network might change dynamically
  • NachteileDisadvantages
    • Single Point of Failure durch zentralen Mastersingle point of failure because of the central master

Netzwerk-ArchitekturenNetwork Architectures

Peer-to-Peer mit zentralemwith central Registrar

  • Ein dedizierter Master, der nicht gleichzeitig Teilnehmer ist, verwaltet die Teilnehmera dedicated master, who is not an active participant, manages the list of participants
  • Anwendungsgebiete: Verteilte Anwendungareas of application: distributed applications
  • VorteileAdvantages
    • Konfiguration des Netzes kann sich dynamisch ändernconfiguration of the network might change dynamically
    • Zwar noch Single Point of Failure, aber reduzierte Komplexität des Prozesses, welcher den Dienst betreibtstill a single point of failure, but likelihood of of breakdowns lower because of less complex master
    • Zentraler Dienst kann auch das Routing vermitteln, insbesondere bei NAT Systemencentral service may also mediate the routing between participants, in particular for systems using NAT
  • NachteileDisadvantages
    • Separate Instanz muss gewartet werdena separate instance has to be maintained

Massive Multiplayer Online Games

MMOGs - HerausforderungenChallenges

HerausforderungenChallenges

  • Große Welten - umfangreiche Daten (Texturen, Modelle, etc.)huge worlds - much data (textures, models, etc.)
  • Große Anzahl an Nutzernhigh count of users
  • Latenz - Updates möglichst schnell beim Spielerlatency - updates should be available for all users as quickly as possible
  • Konsistenz - Zustand für alle Spieler gleichconsistency - application state should be the same for all users
  • Persistenz - Zustand über mehrere Sitzungen gehaltenpersistence - application state should be maintained over multiple sessions

MMOGs - HerausforderungenChallenges

Umfangreiche DatenHuge Amounts of Data

  • Texturen, Geometrien, Musik und Geräusch-/Sprachdateien benötigen viel Platztextures, geometries, music and audio-/speech-samples require much space
  • Meistens wird eine lokale Installation erstellt (DVDs, Steam, etc.)often a local installation (DVDs, Steam, etc.) is required
  • Bei sehr dynamischen Welten mit benutzergenerierten Inhalten geht dies nichtthis is not possible for very dynamic worlds, with user generated content
    • Caching-Strategien notwendigcaching strategies are required
    • Kontinuierliches Nachladen/Streamingcontinuous loading/streaming

MMOGs - Challenges

Große Anzahl an NutzernHuge Count of Users

  • Große Anzahl der Nutzer $\to O(n^2)$ Datenupdatesa large number of users requires $\to O(n^2)$ data updates
  • Echtzeit-Interaktionen kaum machbarinteraction in real-time hardly possible
  • Mögliche Strategienpossible strategies
    • Rundenbasierte Interaktionen (z.B. EverQuest)turn-based interaction (e.g. 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)for larger groups the interaction is restricted to movements and chats, more intense action is restricted to smaller groups (instancing, e.g. World of Warcraft, Guild Wars)

MMOGs - HerausforderungenChallenges

LatenzLatency/Jitter

  • Updates der Interaktionen sollen möglichst schnell bei allen Teilnehmern seinupdates of the interactions should be available for all players as quickly as possible
  • Latenz: Dauer einer Übertragung von A nach Blatency: duration of a transmission from A to B
  • Jitter: Unregelmäßigkeiten in der Übertragungsdauer (führt zu nicht-regulären Statusupdates)jitter: irregularity of the duration of the transmission (leads to non-regular updates)
  • Strategiestrategy:
    • Peer-to-Peer Verbindungen für Interaktionsupdates (z.B. beim Instancing)connections for interaction updates (e.g. for instancing-based systems)
  • Zielwert: 25 ms bei visueller Darstellung (Haptisch noch darunter)target: 25 ms for visible details (for haptics even less)
  • Spannende Methoden: Vorhersage von Bewegungen, Extrapolationadvanced methods: prediction of movements and extrapolation

MMOGs - HerausforderungenChallenges

KonsistenzConsistency

  • Problem: in der realen Welt erfahren alle einen identischen (äußeren) Weltzustandprobem: in the real world everyone has an identic (external) state of the world
  • In der verteilten Welt ist das auf Grund der Latenzen kaum machbarin a distributed world this is hardly possible due to latencies
  • Lösung: angenäherte Konsistenz der Ansicht ist ausreichend, so lange die Kausalität konsistenz istsolution: approximated consistency of the display is sufficient if causality is maintained
  • Beispielexample:
    • Durch Latenzen sehen sich die Teilnehmer an leicht unterschiedlichen Stellen in der Virtuellen Welt.based on latency the participants will see themselves on slightly different possitions in the virtual world
    • Tests auf Kollisionen fallen je nach Teilnehmer unterschiedlich aus.tests for collisions will thus result slightly differently
    • 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.possible approach: if a participants takes an action, which leads to a causal consequence in his display, this consequence is replicated for all participants
    • Dazu muss aber die kausale Reihenfolge von Events konsistent gehalten werden.for this, however, at least the causal order of events has to be consistent
  • Probleme entstehen dann, wenn mehrere Teilnehmer mit den gleichen Objekten interagieren.problems arise if multiple participants are interacting with the same objects at the same time

MMOGs - HerausforderungenChallenges

PersistenzPersistency

  • Was geschieht zwischen zwei Sitzungen eines Benutzers?what happens between two sessions of the same user?
  • Einfache Lösung: Avatar verschwindet. Die meisten Systeme verfahren so, z.B: Guild Warssimple solution: avatar vanished. Most systems operate like that, e.g. Guild Wars
  • Alternativ: Avatar wird vom System übernommen und absolviert handwerkliche Arbeiten oder Trainings (z.B. EVE Online)alternative: avatar is taken over by the system and does some workmanship or training (e.g. EVE Online)
  • Altern?aging?

LiteraturLiterature

LiteraturLiterature

  • 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.

ZusammenfassungSummary

ZusammenfassungSummary

Inhalte dieser VeranstaltungTopics of this lecture

  • Verteilte VR SystemeDistributed VR Systems
    • Ebenen für eine Verteilung in VR SystemenRepresentation levels for distribution in VR systems
    • Netzwerk-ArchitekturenNetwork architectures
    • AnwendungsbeispieleApplication examples

AusblickOutlook

Inhalte der nächsten VeranstaltungContent of the upcoming lecture

  • Definition von Erweiterter Realität/Augmented RealityDefinition of Augmented Reality
  • Grundlegende ProzessschritteBasic processing steps
  • Anwendungsbeispiel CITECApplication example: CITEC
  • Interaktionsmöglichkeiten mit ARUser interaction with AR