Time: MWF 1:25-2:15 pm
Examples created by UNCC students
Instructor: Prof. Zachary Wartell
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.
- 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.
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 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.
The following are available to students for their projects:
- Head Mounted Displays
- 2 x HTC Vive Pro
- 2 x Oculus Rift DK2: http://www.oculusvr.com/
- Microsoft HoloLens
- 'CAVE' type system
- 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:
- "Desktop VR" (also called "Fish-tank VR") systems - head-tracked, stereoscopic desktop display system with tracked input devices
- 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
- [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. [Amanzon]
Midterm Exam – 25%
Final Exam – 25%
Project – 50% (more)
For complete details (lecture slides, videos, etc.) see the Canvas "Developement Course" for this class.
It is fully accessible to any UNCC student after logging into Canvas at https://uncc.instructure.com/courses/114362.
- 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)
- Selected readings from IEEE VR Conference
Prior exams will be made available within Moodle.
- Semester Project (50% of total grade)
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.
- Closed Source Option:
- Unity3D with VR hardware plugins
- programming languages: various
- Open Source Option:
- OpenSceneGraph for the interactive 3D graphics
- VRPN toolkits are recommended for interfacing to VR output display hardware and VR input devices. Others available online as well.
- C++ for Java Programmers, Timothy Budd, 1999
- C++ Primer Plus: Teach Yourself Object-Oriented Programming, Stephen Prata
The following links have been suggested by other students as useful tutorials on learning C++ assuming you know Java