OpenGL is a cross-platform standard for drawing two- and three-dimensional computer graphics, de- signed to provide a common interface for different types of graphics hardware. It is used in a variety of applications from video games to the Mac OS X Window Manager. It consists of two interdependent parts: a state machine with a complex, fixed inter- nal structure for processing graphical data, and an API (application programming interface) in the C programming language for interacting with the state machine. The state machine defines a sequence of steps by which image textures can be applied to the faces of geometric primitives and rendered as seen by a virtual camera to create a final image. Many parameters that control the final image are defined, including a complex lighting model and extra processing steps that can be applied to the final rendering.