Lindsay's OpenGL Light Demo Overview This program was designed to introduce artists and programmers to the fundamentals of lighting and materials in a 3D environment. The program demonstrates the effects of various lighting models and materials on various geometries. The program is controlled via the right hand panel. From this panel a user can turn on adjust lights and navigate the 3D scene. A right-click menu also controls the program. The right click menu allows the user to change models, turn lights on and off, change materials and quit the application. All functions are supported by specific keystrokes. Please review the table at the end of this document for a list of supported keyboard shortcuts. Features: * Simple interface * Uses simple primitives and complex models * Supports multiple materials * Logs light intensity, color, and position The four basic light sources supported are: Ambient: Light from all directions. Ambient light is analogous to an object having it's own radiant light that emanates directly from the object's surface. Directional: Light from a single, "non-attenuating", uni-directional source. This is similar to light from the sun. Point Light: Light from a single, attenuating, multi-directional source. This is similar to light from a light bulb. Spotlight: Light from a single, attenuating, fixed distance source. This is similar to light from a spotlight (go figure). Basic Use: Adjusting Lights The program loads a default model and provides a single spotlight light on start. To move the light click the left mouse button on an area in the main window. You may hit the [r] key on your keyboard to display a ray from the light source to the light subject. To turn on, move, or adjust lighting choose the light menu by right-clicking the mouse. The corresponding keystroke is listed near any item that supports shortcut keys. Basic Use: Changing Models The program supports all the basic 3D primitives and a few simple models. To select a new model open the models menu or choose the appropriate keystroke. Basic Use: Changing Materials The program provides a few hard-coded materials. These materials may only be applied to the entire object or primitive in view. To change a material, simply choose it from the right-click menu Basic Use: The Control Panel The control panel provides controls to change the color of each light. Users can also change the camera position by selecting the + and - signs, or by clicking the arrows. Light Color Control: To change a light's color click the + or - signs over each color bar. Spotlight Control: The spotlight's attenuation cutoff is manipulated from the control panel. These options are only displayed when a spotlight has been added to the scene. Use the following case-sensitive keys to explore openGL lighting: Key Action r Displays rays from light source to light subject Turns on reporting for light intensity and color. o Show an object model (e.g. woman) instead of a primitive (e.g. cone) B Display a box (or cube) light subject C Display a cone light subject D Display a torus (aka doughnut) light subject T Display teapot light subject S Display a sphere light subject m Enable or Disable object material a Enable or Disable ambient light (light from all directions) d Enable or Disable directional light source (a light source like the sun) p Enable or Disable point light source (a light source like a light bulb) s Enable or Disable spot light +/- Scale object (this will effect the light) The right click menu also supports most of the keyboard functions Credit and Disclaimer Lindsay Grace created all code and documentation. All models were created by Lindsay Grace with the exception of the following. Woman: Provided free of charge through 3D Café at http://www.3Dcafe.com Dwarf: Provided free of charge through University of Illinois. Original model by R. Laduca for the Rise of the Dead game. More info at http://rise.Lgrace.com. This program uses the GLUT openGL windows implementation. The C++ source code for this program may be included in your installation version. Documentation for Lindsay's OpenGL Lighting Demonstration http://www.Lgrace.com