ITCS 6125/8125 Virtual and Augmented Reality (Spring 2020)
Time: MWF 1:25-2:15 pm
Examples created by UNCC students
Instructor: Prof. Zachary Wartell
Contents
Overview
This course covers 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, 6DOF tracking, 3D user interface design, applications of VR, evaluation of VR and other topics.
The Canvas Course is fully accessible to any UNCC student at https://uncc.instructure.com/courses/121775.
Pre-requisites
- Data Structures (ITCS 2214 or equivalent)
- Linear Algebra (MATH 2164 or equivalent )
- Good programming skills
- It is strongly recommended that students have completed a graduate or undergraduate course in computer graphics (at the OpenGL or WebGL level) or have taken a course with extensive programming experience in a 3D object-oriented graphics API such as Unity, OpenSceneGraph, etc. UNCC equivalent courses are:
- ITCS 3120
or - ITCS 8120/6120
or - ITCS 5232/4232 (and implicitly ITCS 5231/4231)
- ITCS 3120
Note, the specific programming language requirements are subject to change and will be posted prior to each semester this course is offered (see Programming References ). If you have further questions email Prof. Zachary Wartell.
Undergraduates
Undergraduates interested in this course should contact Prof. Wartell for creating an ITCS 4990 Undergraduate Research section in order to attend the course during its regular meeting times. Further Dr. Aidong Lu and I are in the process of creating an pair of undergraduate courses in VR/AR, hopefully they will be available Fall 2020 or Spring 2121.
Virtual and augmented Reality Facilities
The following are available to students for their projects:
- Head Mounted Displays
- 2 x HTC Vive Pro with extra trackers
- Microsoft HoloLens 1
- Microsoft HoloLens 2 [new Summer 2021]
- Oculus Rift
- Oculus Quest 1
- (older: 2 x Oculus Rift DK2: http://www.oculusvr.com/)
- Woodward RM 412
- “Desktop VR” (also called “Fish-tank VR”) systems – head-tracked, stereoscopic desktop display system with tracked input devices
- 2 Nvidia GeForce 3D Vision LCD monitors
- 2 Polhemus Fastrack electro-magnetic tracking
- Woodward RM 412
- UNCC Project Videos:
- Multi-touch Stereoscopic Powerwall
- Display 13 ft x 7 ft
- multi-touch surface
- stereoscopic 3D
- Vicon tracking systems (6 cameras)
- Woodward 232
- UNCC Project Videos:
- Spindle + Wheel User Interface (ported to Powerwall but shown in old CAVE)
- HyFinBall – Hybrid User Interface (Powerwall port in progress)
- ‘CAVE’ type system – [This system was decommission in Spring 2020, but is listed to reference prior projects. Some have been port to the Powerwall above]
- 3 screen projected, stereoscopic immersive virtual reality display system with tracked input devices
- 3 Bacro GEMINI displays arranged in CAVE-like configuration
- Polhemus Fastrack (long-range) electro-magnetic tracking
- UNCC Project Videos:
- Other Input Devices:
- 1 XBox Kinects
- UNCC Project Video:
- 5 Windows Kinects
- 4 Leap Motion
- 2 x Wii-Motes
- 1 x Razor Hydra
- 1 XBox Kinects
Syllabus
Textbook:
- [Laviola2017] 3D User Interfaces: Theory and Practice (2nd Edition). Joseph J. LaViola Jr., Ernst Kruijff, Ryan P. McMahan, Doug Bowman , Ivan P. Poupyrev. English ISBN-10: 0201758679 ISBN-13: 978-0134034324. [Amazon]
Grading:
-
Midterm Exam – 25%
-
Final Exam – 25%
-
Projects – 50% (more)
Topics
Complete details are accessible to UNCC students on Canvas at https://uncc.instructure.com/courses/114362.
Below is a summary of topics.
- Introduction to Virtual and Augmented Reality
- Brief History of VR and AR
- Eye and Displays (2D)
- Depth Perception and 3D Displays
- Scene Graphs
- 3D Transforms (Review)
- 2D and 3D Tracking
- Selection and Manipulation Technique
- Travel Techniques and Wayfinding
- Evaluation Methods (Human Factors Studies)
- Presence
- Selected readings from IEEE VR Conference
Exams
Prior exams will be made available within Canvas.
Project Assignments
- Tutorial 1: Git_Tutorial_and_Coding_Standards
- Tutorial 2: MSVS_CSharp_Tutorial
- Tutorial 3: Unity_XR_Tutorial
- Semester Project:
Note due to COVID19 in Spring 2020 an alterate set of projects had to developed]
Students propose their own projects using the available VR facilities (or build something!) that are then approved by the professor.
- Two presentations – 10% – one presentation to present your proposed project and one final presentation on your final results (5% each)
- Final Report – 10% – discusses your project and results
- Virtual Environment Application Software – 80%
Your application software will have multiple deliverables, including an initial “getting started” project.
Depending on the scope of the project, students may do them individually or in groups of two.The recommended API’s are generally C++ (more). If a student is familiar with other API’s and the API supports interactive 3D graphics and the API supports virtual reality display systems and input devices, I will consider allowing students to use them.
Programming Tools & References
- Closed Source Option:
- Unity3D with VR hardware plugins
- programming languages: various
- Open Source Option:
- OpenSceneGraph for the interactive 3D graphics
- Quick Start Guide is free download – http://www.lulu.com/content/767629
- OpenSceneGraph WWW – http://www.openscenegraph.org/projects/osg
- VRPN toolkits are recommended for interfacing to VR output display hardware and VR input devices. Others available online as well.
- C++
- C++ for Java Programmers, Timothy Budd, 1999
- C++ Primer Plus: Teach Yourself Object-Oriented Programming, Stephen Prata
- http://www.cplusplus.com/
The following links have been suggested by other students as useful tutorials on learning C++ assuming you know Java
- http://www.cs.brown.edu/courses/cs123/javatoc.htm
- OpenSceneGraph for the interactive 3D graphics