Virtuelle Realität und physikalischbasierte Simulation WS 12/13
Virtual Reality (VR) is a research area at the intersection of computer graphics, physicallybased simulation, and 3D humancomputer interaction (HCI). VR is concerned with novel interaction devices and interaction metaphors in virtual environments (in particular intuitive and direct metaphors), immersion and presence, and realtime rendering. Another important topic is physicallybased simulation in realtime, which tries to simulate realworld phenomena such as fire, cloth, the behavior of rigid objects when colliding with each other, fluids, or objects made of deformable material.
Over the past one or two decades, VR has established itself as an important tool in several industries, such as manufacturing (e.g., automotive, airspace, ship building), architecture, and pharmaceutical industries. In addition, a lot of the techniques and solutions developed in the area of VR can be applied directly to computer games.
In this course, we will first look at the fundamental methods, and then go on to more advanced algorithms that are needed to build complex and fullfledged VR systems or realtime computer games. Example topics are object behavior, acoustic rendering, haptics, and collision detection.
The assignments will be mostly practical ones, based on the crossplatform
VR system
InstantReality.
Participants can choose the programming language from
Java, Javascript, and C++.
You are encouraged to work on assignments in small teams.
Some of the topics to be covered (tentatively):
 Introduction, basic notions of VR, a few applications
 VR devices: displays, tracking, input devices, software design
 Stereo rendering
 Error correction: tracking correction, filtering
 Techniques for realtime rendering
 Fundamental immersive interaction techniques: gesture recognition, navigation, selection, grasping, menues in 3D
 Complex immersive interaction techniques: worldinminiature, actionatadistance, magic lens, etc.
 Collision detection
 Force feedback: rendering forces
 Acoustic rendering
 Particle systems
 Springmass systems
Note: this list is just tentative and subject to change during the semester.
Aktuelles
Slides
The following table contains all the topics that were covered in this class, the accompanying slides, exercise sheets, and frameworks for solving the programming exeercises. (This table will be filled week by week.)
Note that the German slides are, in some places, slightly outofdate! The authoritative source are the English slides!
Week  Topics 

1. 
Einführung (Definitionen, Immersion, Präsenz, Geschichte), Szenengraphen (Semantik von Knoten und Kanten, multithreaded VR Applications, verteiltes Rendering, ThreadSafety); 
2.  FieldsandRoutesKonzept, VRML/X3D (Geometry, Grouping, DEF/USE, behavior graph, events and routes) 
3.  Displays, Advantages/Disadvantages, Stereo Displays, Multiplexing variants for stereo, MultiUser stereo, the Horopter, stereo projection, Issues with stereo projection 
4.  Realtime Rendering: Sources of latency, viewindependent rendering, levelofDetail techniques, predictive LOD selection, progressive meshes, portal culling, image warping 
5. 
Input Devices: degrees of freedom, multimodality, virtual trackball,
tracking, data gloves, locomotion devices Interaction metaphors 1: Universal Interaction Tasks, design of user interfaces, gesture recognition, navigation metaphors (pointandfly et al.), magic mirror, navidget 
6.  Interaction metaphors 2: user models (power law of practice, Hick's law, Fitts's law), selection techniques, gogo, raybased techniques, controldisplay ratio, eyehand mismatch, conebased techniques, iSith, balloon selection, actionatadistance, image plane interaction, proprioceptive interaction, worldinminiature, voodoo dolls, magic lenses, system control, menus, marking menus, tanible user interfaces 
7.  Particle Systems: dynamics/kinematics, Euler integration, pahse space, definitions, particle interactions, collision handling, rendering, rendering transparent objects, flames & fire, procedural modeling of plants. 
8. 
Massivelyparallel sorting on the GPU with oddeven merge sort. Massspring systems: Newton's Laws, single springdamper, explicit Euler integration, instability and error accumulation with Euler integration, RungeKutta, Verlet integration, constraints. 
9. 
Massspring systems 2:
Implicit integration, tangent stiffness matrix, comparison to explicit integration,
mesh creation for volumetric objects, consistent collision response for volumetric
massspring systems. Haptics 1: applications, devices, the haptic loop, human factors, haptic textures, buzzing, intermediate representations, software architecture. 
10. 
Haptics 2: impendance/admittance approaches, surface contact point approach,
voxmappointshell method, friction in one contact point, haptic illusions. Collision detection: importance, definitions, collision detection pipeline, broad/narrow phase, planesweep technique, separating planes algorithm (for convex objects), Mikowski sums, intersection test based on Minkowski sums, hierarchical coll.det., bounding volume hierarchies, kinds of BV's, separating axis test (SAT), overlap test for kDOP's, restricted boxtrees, construction of BVH's. 
Here are some examples and demos of VRML, some of which I have presented in class. You can use them, for instance, to test your VRML client/browser setup.
Literature
 Kay M. Stanney (Ed.): Handbook of Virtual Environments. Lawrence Erlbaum Associates, 2002
 William R. Sherman, Alan B. Craig: Understanding Virtual Reality. Morgan Kaufmann, 200
 Don Brutzman, Leonard Daly: X3D: Extensible 3D Graphics for Web Authors. Morgan Kaufmann, 2007.
 Daniel Fleisch: A Student's Guide to Vectors and Tensors. Cambridge University Press
 Kenny Erleben et al.: Physics Based Animation. Charles River Media, 2005.
 Mario Gutiérrez, Frédéric Vexo, Daniel Thalmann: Stepping into Virtual Reality. Springer, 2008. You can read the ebook from within the university's network.
 Anthony Steed, Manuel Oliveira: Networked Graphics: Building Networked Games and Virtual Environments. Morgan Kaufman, 2009. From this book, only chapters 7, 10, and 11 are relevant to this course.
Warning: these text books can only give you a general introduction to the field of VR! Most of the topics taught in class will not be covered by any of these text books directly  in fact, AFAIK there are no text books that cover these topics. Therefore, I recommend to attend class.
If you are thinking of buying some of these books, then I suggest to consider buying a used copy of them  very often, you can find them at a fraction of the price of a new copy. The following are two very good internet sites for finding inexpensive used copies of books: Abebooks and BookButler.
Online Literature and Resources on the Internet
 Tools that can "play" X3D / VRML97 files:
 InstantReality; on their homepage, you can also find a lot of examples and tutorials.
 FreeWRL (for Linux and OSX).
 Cortona; this is a commercial browser plugin.
 Introduction to VRML / X3D:
 A "Cheat Sheet" for VRML.
 SIGGRAPH 2008 Class Notes: Don't be a WIMP; konkrete Anleitungen, wie spezielle Features in InstantReality benutzt werden (z.B. die verschiedenen StereoModi, Interaktionsgeräte, Clustering, Scripting, Animationen, etc.). (Quelle)
 The Annotated VRML97 Reference Manual (Quelle)
 Der VRML Primer and Tutorial; die Kapitel, die etwas mit HTML zu tun haben, sind für uns nicht relevant, auch ist das Kapitel über Tools völlig veraltet, aber ansonsten immer noch eine brauchbare Einführung für Anfänger (Quelle)

Die wichtigsten Dokumente zum X3DStandard:
 Architecture and base components (d.h., Spec der Knoten und Profiles)
 Scene access interface (SAI)
 X3D language bindings for Javascript (ECMAScript)
 X3D language bindings for Java
 Beispiele für X3D / VRML:
 Die Beispiele aus der Vorlesung (und viele weitere!)
 Auf der Homepage von InstantReality;
 Auf der Homepage des X3D Buches von Don Brutzman und Leonard Daly;
 Eine MetaSeite mit vielen Links zu großen Archiven von Beispielen.
 Eine große Sammlung von Materialien,
sowohl im VRML als auch im XMLEncoding.
Und hier das ganze nochmal als ZIPArchiv.  Links zu sog. "Authoring Tools" gibt es hier; wer mag, kann diese gerne einetzen. Allerdings bezweifle ich den signifikanten Nährwert, da wir alle gut programmieren und mit TextEditoren umgehen können.
 A handy little tool for Calculating VRML Viewpoints.
 Nicht ganz ernst gemeint sind die Cartoon Laws of Physics ;) .
 Weiterführende Literatur zum Thema "User Interface Design":
 Das Siggraph 2001 tutorial Advanced Topics in 3D User Interface Design
 Ein unterhaltsames und lehrreiches Quiz zu Fitts' Law
 Eine Erläuterung, wo überall Fitts' Law im UI Design von Office 2007 Anwendung fand: Giving You Fitts
 Literatur zur physikalischbasierten Simulation allgemein:
 Norman Wittels: Introductory Vector Calculus (Quelle)
 Real Time Physics; Siggraph 2008 course notes.
 Physically Based Modeling; Siggraph 2001 course notes.
 Physically Based Deformable Models in Computer Graphics Andrew Nealen, Mathias Muller, Richard Keiser, Eddy Boxerman and Mark Carlson, EG 2005 (nice survey paper of the field)
 Literatur zu Partikel und FederMassesystemen:
 William T. Reeves: Particle Systems  A Technique for Modeling a Class of Fuzzy Objects;
 Georgii, Westermann: MassSpring Systems on the GPU, Simulation Practice and Theory 2005. (Quelle)
 Die Novelle
Gegen den Strich
von JorisKarl Huysmans.
Denkanregung: was hat das mit VR zu tun?
Change Monitoring:
If you enter your email adress in one of the boxes above and then press one of the "Monitor" buttons, then either ChangeDetection or ChangeDetect will send you an email whenever I make changes to this page.
Gabriel ZachmannLast modified: Fri Sep 20 15:16:12 MDT 2013