OpenGL Lighting Effects Library
Internship at Disney Imagineering in the Summer ’98
Kenneth E. Hoff III

Product Name: OpenGL-based Lighting Effects Library for the next generation VR rendering system.
For Walt Disney Imagineering / Research and Development / VR Studio
VR Studio Director: Gary Daines (daines@wdi.rd.disney.com)
Worked closely with: Mark Mine (mine@wdi.rd.disney.com) and Mike Goslin (mike@wdi.rd.disney.com)
Team Size: The VR studio consists of about 30 to 40 people and the group working on the next generation VR rendering system consists of about 6 people. The large group met about every two weeks to discuss goals and progress of all subgroups. Our subgroup met once a week officially with the director of the studio (Daines). I met with Mark and Mike on a daily basis to discuss new algorithm ideas, the necessary interfaces between all related modules, and the integration issues.
Size of Product: The next generation VR system may possibly provide the core for upcoming VR attractions put our by Disney (any further description is confidential). I was responsible for the lighting effects library and the OpenGL viewer core.
Deliverables: I was responsible for designing and implementing the following modules:
OpenGL-based Lighting Effects Library consisting of the following:
  • 6 different shadows algorithms:
    • Shadow-mapping: backward and forward mapping, forward-mapped using points and graphics hardware
    • Planar projection
    • Projective texture
    • Shadow-volumes
  • 2 different reflection algorithms:
    • Planar
    • Sphere-mapping
  • Spotlights : includes atmospheric effect and proper spotlight projection
  • Phong Highlighting using sphere-mapping
  • Non-photorealistic outlining using sphere-mapping
  • Slide Projector effects using projective textures
An OpenGL/GLUT based portable viewer upon which to build and test all library modules. This viewer may serve as the core to the overall next generation VR rendering system. The basic core viewer provides the following:
  • Various modes of world navigation
  • Window frame-grabbing
  • Camera path recording and playback
  • Inertial navigation system allowing users to impart momentum on objects
  • Multiple camera support
  • Clean programming interface where a user need only provide an OpenGL display routine
  • Complete portability between SGIs and PCs
  • A complete, but simple math library
An extended viewer framework was also provided that formed the main interface between portions of their original system to the new system. All extensions act through an object container class. The extensions provide the following:
  • Object container class and the object-frame class (local coordinate system)
  • Several example objects including loaders for various model file formats
  • An object manager that handles collections of objects and provides user interaction with multiple objects