Virtuelle Realität (VR) befindet sich an der Überschneidung von Computer-Graphik, physikalisch-basierter Simulation, und Human-Computer-Interaction (HCI). VR befaßt sich mit neuartigen Eingabegeräten, intuitiver und direkter Interaktion, Immersion, Echtzeit-Rendering und physikalisch-basierter Simulation in Echtzeit. Bei letzterem geht es um die möglichst realistische Simulation von natürlichen Phänomenen, z.B. Feuer, von Stoff, z.B. als Kleidung, oder dem Verhalten starrer Objekte bei Stößen.
VR hat sich inzwischen in verschiedenen Anwendungsbereichen als wichtiges Werkzeug durchgesetzt, u.a. im Automobil- und Flugzeugbau und der Medizin. Außerdem lassen sich viele Techniken und Lösungen auch im Bereich der Computerspiele anwenden.
In dieser Vorlesung werden zunächst grundlegende Methoden und Algorithmen vorgestellt. Anschließend werden Themen behandelt, die für ein komplexes VR-System relevant sind (z.B. Objekt-Verhalten, Kollisionserkennung, akustisches Rendering, etc.).
In den Übungen soll eine eigene kleine virtuelle Umgebung programmiert werden basierend auf
dem cross-plattform-fähigen VR-System
InstantReality.
Gerne dürfen diese auch in kleinen Teams bearbeitet werden.
Geplant ist, Ihr VR-Szenario auch in einer VR-Umgebung (Powerwall mit Tracking) laufen zu lassen.
Geplante Themen:
Woche | Thema | Folien, 1up | Folien, 2up | Übungs-blatt |
---|---|---|---|---|
1. | Einführung (Definitionen, Immersion, Präsenz, Geschichte), Anwendungen (Architektur, Simulation, Training, Prototyping), Szenengraphen (Semantik von Knoten und Kanten, verteiltes Rendering, Thread-Safety) | PDF1 PDF2 PDF3 | PDF1 PDF2 PDF3 | |
2. | Einführung in VRML / X3D
(Felder, Knotenspezifikation allg., indizierte Geometrieknoten); Übung 1 |
PDF1 PDF2 | PDF1 | Blatt 1 |
3. | Einführung in VRML / X3D, Teil 2
(Knoten zur Hierarchiebildung, Wiederverwendung, Verhaltensgraph, Execution Model, User-Input,
Animationsknoten, Script-Knoten, Prototypen) Display-Technologien (HMD, Workbench, Cave, Dome, etc.) |
PDF1 PDF2 | PDF1 PDF2 | |
4. |
Stereo-Projektion, Stereo-Effekte; Übung 2 |
PDF1 PDF2 | PDF1 | Blatt 2 |
5. |
Eingabegeräte (Arten, Locomotion devices, Systemeinbindung, logische Geräte) Fehlerkorrektur (Darstellungsfehler, Fehlerquellen, Trackingkorrektur, Latenz-Pipeline, Filterung) |
PDF1 PDF2 | PDF1 PDF2 | Blatt 3 |
6. | Real-time rendering (viewport-independent rendering, Level-of-Detail-Technik, predictive LOD-Selektion, Progressive Meshes, portal culling, state sorting, image warping) | |||
7. | Interaktion durch Techniken der Computer Vision (background subtraction, color segmentation, Kantenextraktion, Canny edge detector, Gesichtserkennung, template matching, Gestenerkennung) | Blatt 4 | ||
8. | Interaktionsmetaphern in und mit virtuellen Umgebungen 1 (Klassifikation, Gestenerkennung, Navigation, Taxonomie, Wahrnehmung, neuere Metaphern) | |||
9. | Interaktionsmetaphern 2 (User Models, Selektionsmetaphern) | Blatt 5 | ||
10. |
Interaktionsmetaphern 3
(Manipulation, Interaktionsprinzipien, system control, tangible user interfaces)
Kollisionserkennung 1 (Einführung, konvexe Koll.det., Voronoi-Diagramme) |
PDF1 PDF2 | PDF1 PDF2 | |
11. | Kollisionserkennung 2 (Closest Feature Tracking, Hierarchische Koll.erkennung, Bounding Volumes, Minkowski-Summe, OBBs, SAT-Lemma, k-DOPs, restricted Boxtrees, Konstruktion von BVHs) | PDF PDF2 | PDF PDF2 | Blatt 6 |
12. | Partikelsysteme 1 (Massepunkt, Phasenraum, Definition, Operationen auf Partikeln, Rendering als blobby objects, .. und mit Alpha-Blending, Flammen, Procedural Modeling von Pflanzen mit Partikeln) | |||
13. |
Partikelsysteme 2 (massiv-parallele Simulation); Feder-Masse-Systeme (Definition, DGL einer Feder, Euler- / Runge-Kutta-Integration, implizite Integration, konsistente Kollisionsantwort) |
PDF1 PDF2 | PDF1 PDF2 |
Falls Sie sich diese Bücher anschaffen möchten, sollten Sie vielleicht überlegen, gebrauchte Exemplare zu erwerben -- oft gibt es diese zu einem Bruchteil des Neupreises. Zwei gute Internetadressen sind Abebooks und BookButler.
Im Verlauf der Vorlesung sollen kleinere virtuelle Umgebungen programmiert werden (basierend auf einem frei verfügbaren VR-System), in denen einige der in der Vorlesung erlernten Techniken praktisch umgesetzt werden sollen. Daneben soll aber auch Raum sein für eigene Ideen.