VR 2012 Tutorial proposal Contact: William R. Sherman ([email protected]) Title: An in-‐depth introduction to virtual reality programming Length: Full day Brief Description: This tutorial introduces basic programming concepts particular to virtual reality. The presentation progresses step-‐by-‐step from a very simple world with no interactions (apart from physical immersion), and continues to add features related to 3D user interfaces, interactive rendering and interesting ways to travel through virtual worlds. The presentation includes the opportunity for audience members to follow along with software on their laptops, though the tutorial will also be valuable for those who wish to expressly follow the lectures. No prior VR programming experience is required, and while the examples will be based on OpenGL, no prior OpenGL knowledge is required. With the focus of the tutorial specifically on VR techniques, early examples begin with very simple OpenGL objects. More complex objects are enabled through interfacing with scene-‐graph libraries such as OpenSceneGraph. Some moderately advanced OpenGL features such as billboarding, clipping planes and shaders are used, but presented in a clear and simple manner that does not require foreknowledge. Examples are in fundamental C/C++ style, so users of any procedural language should be able to readily follow the progress. After the introduction, we will spend about 30 minutes allowing those who wish to follow along hands-‐on to install and setup their systems. The software will work under OSX, Linux and Cygwin. Software can be downloaded or read from USB-‐sticks provided by the lecturer. Those interested in using Cygwin should come with it pre-‐installed (this will be mentioned in the published tutorial description). Additionally, the published description will suggest that users can bring game controllers or space-‐ball/mouse devices to enhance the experience. Once all hands-‐on participants are ready to move forward, we will jump in with the simple applications and continue to build up to virtual worlds with interesting objects, interesting interactions, travel and virtual controls. Topics include:
• Overview of VR integration libraries • Setup of laptops for participants who want to follow along hands-‐on • Simple manipulations in a virtual world • Travel and navigation through the virtual world
• Adding complexity to the virtual world • Virtual widgets in the virtual world • Working with shaders, clipping planes and other graphics techniques • Interfacing with open-‐source scene-‐graph libraries • Interfacing with open-‐source sound libraries • Interfacing with open-‐source physics libraries • How to create a simple low-‐cost VR system
Each topic will take approximately 30 minutes (60 minutes for the low-‐cost VR topic). Technical level of the intended audience: Beginner This tutorial is for people interested in getting started with virtual reality programming, and does not require advanced knowledge of any graphics library or scene-‐graph library. Basic programming skills in any procedural language will be expected. Expected value to the audience: Attendees will be able to go from little-‐to-‐no knowledge in programming virtual reality experiences to having a good grasp of the basics, plus a feeling for how more advanced techniques fit within the model. Instructor: William R. Sherman Sherman has over 20 years experience in the field of computer graphics, and visualization, with a focus on virtual reality interfaces over the past 19 years. He is co-‐author of two books on virtual reality (Understanding Virtual Reality and Developing Virtual Reality Applications), and has taught several semester courses on virtual reality at the University of Illinois and the University of Nevada, as well as lectured on virtual reality programming for courses at Old Dominion University and Vassar College. Sherman was the VR Impresario at the National Center for Supercomputing Applications for twelve years. Following that he spent five years leading the effort to build a new visualization and virtual reality facility at the Desert Research Institute in Reno Nevada. This facility included a 4-‐sided FLEX CAVE, a high-‐resolution 6-‐sided CAVE-‐like display, as well as low-‐cost VR displays. He currently is the Senior Technology Advisor for the Advanced Visualization Lab at the Pervasive Technology Institute of Indiana University. He was also the program chair, chair and senior chair of the IEEE VR 2007, 2008, and 2009 conferences respectively. Past presentations: This tutorial was presented at IEEE VR 2011, with good attendance even while competing with 3 other tutorials, keynotes in a side symposium as well as 3DUI. This year’s effort has enhancements based on the 2011 tutorial. It builds on material distilled from courses taught at the University of Illinois, University of Nevada and Old Dominion University.