CS230/CS238: Virtual Reality

Spring 2019

  • Description
  • Details
  • Final Project
  • Bonus Project ๐Ÿ†•
  • Lecture Notes
  • Homeworks
  • Resources ๐Ÿ†•
  • Need help?

The concept of virtual reality (VR) has been around for many years, recent commercial availability of hardware and software is spurring renewed interest. This course introduces the basic principles of Virtual Reality and its applications. The necessary hardware and software components of interactive 3D systems as well as human factors are discussed. Students will be exposed to a wide range of interesting and exciting cross-disciplinary research in the broadly-defined fields of virtual and augmented reality, 3D user interaction and spatial user interfaces. Virtual reality emphasizes on the construction of interactive 3D virtual/mixed environments, and how to interact within such environments through different sensory channels, such as audio, vision and gesture. Virtual Reality has many applications including 3D computer games and virtual walkthrough, which have attracted a lot of attention.

This course aims at introducing both basic and advanced virtual reality techniques and their applications. This course will cover the state of the art in the design and implementation of Virtual Reality, Augment Reality, and Mixed Reality. Topics covered include: head-tracked and head-mounted displays, stereoscopic display, position tracking, 3D user interface design, applications of VR, evaluation of VR and other topics. Students will have the opportunity to gain programming experience with the homework assignments as well as conduct a semester-long term project, while working hands-on with leading edge virtual reality hardware such as the Oculus Rift / HTC Vive if desired.

This term we will be using Piazza for homework submissions and questions, so make sure to sign up! The system is highly catered to getting you help fast and efficiently from the TAs and classmates. Rather than emailing questions to the teaching staff, it is encouraged to post the questions on Piazza. Please e-mail the TAs when your problems cannot be resolved via Piazza.

Grading Policy:

  • Homework: 40%
  • Project: 60%
    • Presentation: 20%
    • Code: 20%
    • Report: 20%
  • Bonus: 10%

Topics:

  • Introduction to computer graphics
  • The graphics pipeline
  • OpenGL, WebGL, and GLSL shader programming
  • JavaScript with Three.js
  • Stereoscopic perception and rendering
  • Head mounted display optics and electronics
  • Inertial measurement units: gyros, accelerators, magnetometers
  • Sensor fusion: complementary filter, Kalman filter
  • Human perception: visual, audio, vestibular, tactile, ...
  • ... and many interesting topics.

Goals:

  • Ability to develop 3D interaction techniques.
  • Ability to develop 3D virtual environments.
  • Ability to develop immersive virtual reality applications.
  • Ability to conduct literature reviews.
  • Ability to present research ideas and results.
  • Identify the important characteristics of different virtual reality techniques.
  • Evaluate and critique different types of virtual reality hardware systems.
  • Evaluate and critique different types of virtual reality applications.
  • Design and apply virtual reality techniques to address real-world problems.

Details about the final project:

๐Ÿ“– ๐Ÿ™‹โ— ๐Ÿ“ฆ

Task Date
Implementation Week 2-7
Function test using assigned cases Week 8-9
Online Q&A meeting Apr 28th 2019
VR Devices Adaptation Week 10-12
Presentation Week 12
Code/Report Submit Deadline June 9th 2019

Details about the bonus project:

๐Ÿ“–

Data Visualization and Collaboration in Virtual Spaces

Submission Deadline: June 9th 2019, 22:00


Lecture Date Description Materials
1 27 February 2019 Introduction to VR and AR
Course overview and logistics
History of VR and AR
๐Ÿ“š
2 6 March 2019
The Graphics Pipeline and OpenGL I: Overview and Transformations
Rotation, translation, scaling, modelview matrix, projection matrix
๐Ÿ“š
3 13 March 2019 The Graphics Pipeline and OpenGL II: Lighting and Shading ๐Ÿ“š
4 13 March 2019 The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL)
GLSL vertex and fragment shaders
๐Ÿ“š
5 20 March 2019 Human Visual System, Depth of Field Rendering, Head Mounted Display Optics (VR & AR) ๐Ÿ“š ๐ŸŽž๏ธ ๐ŸŽž๏ธ ๐ŸŽž๏ธ
6 27 March 2019 Rotations, Vertex Blending, Morphing
Extra Content: Pose Tracking
๐Ÿ“š ๐ŸŽž๏ธ ๐ŸŽž๏ธ
๐ŸŽž๏ธ ๐ŸŽž๏ธ ๐ŸŽž๏ธ
EC: ๐Ÿ“š ๐ŸŽž๏ธ
7 03 April 2019 Texturing ๐Ÿ“š ๐ŸŽž๏ธ ๐ŸŽž๏ธ
๐ŸŽž๏ธ ๐ŸŽž๏ธ ๐ŸŽž๏ธ ๐ŸŽž๏ธ
๐ŸŒ ๐ŸŒ ๐ŸŒ
8 10 April 2019 Raytracing and Shadows ๐Ÿ“š ๐ŸŽž๏ธ

Submit your homeworks to our Piazza panel.

Homework Given Due Description Materials
1 6 March 2019 15 March 2019 Getting Started with OpenGL, SDL, GLM, and Transformations
๐Ÿ“ ๐Ÿ“– ๐Ÿ“ฆ ๐ŸŽž๏ธ
2 13 March 2019 22 March 2019 Lighting and Shading with GLSL
๐Ÿ“ ๐Ÿ“– ๐Ÿ“ฆ ๐ŸŒ
3 20 March 2019 05 April 2019 Unity and VR Basics
๐Ÿ“ ๐Ÿ“ฆ
4 10 April 2019 2 June 2019
Re-Re-Extended
VR Flight Simulator
๐Ÿ“ ๐Ÿ“ฆ

๐ŸŽ“ Learn

1. Alvin Wang Graylin - Abundance 360 Summit 2019

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video

Fundamental:

Bowman, D., Kruijff, E., LaViola, J., and Poupyrev, I. "3D User Interfaces: Theory and Practice", Addison-Wesley, 2005.
Sherman, William R. and Alan B. Craig. "Understanding Virtual Reality โ€“ Interface, Application, and Design", Morgan Kaufmann, 2002.
Fei GAO. "Design and Development of Virtual Reality Application System", Tsinghua Press, March 2012.
(้ซ˜้ฃž. ่™šๆ‹Ÿ็Žฐๅฎžๅบ”็”จ็ณป็ปŸ่ฎพ่ฎกไธŽๅผ€ๅ‘, ๆธ…ๅŽๅคงๅญฆๅ‡บ็‰ˆ็คพ, 2012 ๅนด 3 ๆœˆ). Guangran LIU. Virtual Reality Technology, Tsinghua Press, Jan. 2011. (ๅˆ˜ๅ…‰็„ถ. ่™šๆ‹Ÿ็ŽฐๅฎžๆŠ€ๆœฏ, ๆธ…ๅŽๅคงๅญฆๅ‡บ็‰ˆ็คพ, 2011 ๅนด 1 ๆœˆ)

Recommended:

Marschner, Shirley "Fundamentals of Computer Graphics", 4th Edition, CRC Press 2016
LaValle "Virtual Reality", Cambridge University Press, 2016

Homework Helpers:

Learn OpenGL ๐Ÿ”—
OpenGL Tutorial ๐Ÿ”—
WebGL Reference Card ๐Ÿ”—
Unity Manual ๐Ÿ”—,
Oculus Best Practices ๐Ÿ”—๐Ÿ†•
Introducing the Oculus Sample Framework for Unity 5 ๐Ÿ”—๐Ÿ†•

Instructor

Dr. Sheng Bin
(็››ๆ–Œ)

Teaching Assistants

Anum Masood

Egemen Ertugrul

Xiaoshuang Li
(ๆŽๆ™“้œœ)

Tingyao Li
(ๆŽๅบญ็‘ถ)

Homework Submission

The homework files should be named as <Your Student ID>_HW<number> compressed and uploaded in .zip or .7z format.
(e.g. 118033991234_HW1.zip)
In order to submit homework, go to Piazza panel, click on New Post. Follow the steps as shown below:


Make sure you don't post it to Entire Class! Find my name (Egemen Ertugrul) and send it to me only.
Finally, don't forget to click on the Post button!
Don't worry if I received your homework or not. I will definitely contact you if something is not right.

Designed by Egemen Ertugrul.