This course presents the algorithms and techniques required to develop and deploy virtual reality and augmented reality applications. The course will cover VR and AR hardware, stereoscopic vision, VR software development, 3D user interfaces and presence.
Person in charge
Nuria Pelechano Gomez (
Carlos Andujar Gran (
Marta Fairen Gonzalez (
Technical Competences of each Specialization
Computer graphics and virtual reality
CEE1.2 - Capability to understand and know how to apply current and future technologies for the evaluation, implementation and operation of virtual and / or increased reality environments, and 3D user interfaces based on devices for natural interaction.
Generic Technical Competences
CG1 - Capability to apply the scientific method to study and analyse of phenomena and systems in any area of Computer Science, and in the conception, design and implementation of innovative and original solutions.
CTR6 - Capacity for critical, logical and mathematical reasoning. Capability to solve problems in their area of study. Capacity for abstraction: the capability to create and use models that reflect real situations. Capability to design and implement simple experiments, and analyze and interpret their results. Capacity for analysis, synthesis and evaluation.
Understand the elements, architecture, input and output devices of virtual and augmented reality systems.
Be able to develop and evaluate 3D interactive applications involving stereoscopic output, virtual reality hardware and 3D user interfaces.
VR as a discipline. Basic features of VR systems. Architecture of VR systems.
Fundamentals of the human visual system. Depth cues. Stereopsis. Retinal disparity and parallax. Synthesis of stereo pairs. Pipeline for stereo images.
Haptic sense. Haptic devices. Algorithms for haptic rendering
VR software development
Challenges in VR software development. Windowing, viewing, input/output and networking issues. Master/slave and Client/server architectures. Cluster rendering. VR Juggler and XVR. Game Engines and available sdk to develop VR applications for different hardware (HTC VIVE, Oculus, Google VR).
AR software development
AR software. Camera parameters and camera calibration. Marker-based augmented reality. Pattern recognition. AR Toolkit
3D user interfaces
Why 3D user interfaces. Major user tasks in VE. Interaction techniques for selection, manipulation and navigation. 3DUI evaluation.
Presence: concept, definition, measurement and applications.
Development of a programing project using a game engine and google VR software to run it on a smarphone inside a head set. Objectives:2 Contents:
The course is based on weekly theory classes explaining the course concepts, techniques and algorithms.
The students will have to complete weekly assignments. The assigments require the student to read and analyse a few papers about the course topics and to answer questions or solve problems on the subject.
The students will have to complete a programming project involving the development of a moderate-complexity VR or AR application.
The course assumes advanced knowledge of the C++ language and OpenGL and GLSL APIs.
The course assessment is based on three types of activities: