Virtual Reality (VR) is a research area at the intersection of computer graphics, physically-based simulation, and 3D human-computer interaction (HCI). Novel interaction technologies and interaction metaphors VR and 3D realtime computer games share a lot of algorithmic challenges: in virtual environments (in particular, intuitive and direct metaphors), immersion and presence, and real-time rendering. Another important topic is physically-based simulation in real-time, which tries to simulate real-world 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 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. During the past few years, we have been witnessing the second "wave" of VR, this time in the consumer, in particular, in the entertainment markets.
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 full-fledged VR systems or real-time computer games. Example topics are 3D interaction, physically-based behavior of objects, acoustic rendering, haptics, and collision detection.
Goals of This Course - Cognitive Processes
Some of the topics to be covered (tentatively):
- Introduction, basic notions of VR, several example applications
- VR technologies: displays, tracking, input devices, scene graphs, game engines
- The human visual system and Stereo rendering
- Techniques for real-time rendering
- Fundamental immersive interaction techniques: fundamentals and principles, 3D navigation, user models, 3D selection, redirected walking, system control
- Complex immersive interaction techniques: world-in-miniature, action-at-a-distance, magic lens, etc.
- Particle systems
- Spring-mass systems
- Haptics and force feedback
- Collision detection
- Acoustic rendering
The assignments will be mostly practical ones, based on the cross-platform game engine Unreal. Participants will start developing with "visual programming", and later use C++ to solve the assignments.You are encouraged to work on assignments in small teams.