The OpenGL® utility library (GLU) is a collection of graphical programming functions that provides added functionality for the basic OpenGL® routines. The basic OpenGL® library supplies a basic framework for rendering three-dimensional (3D) graphics, and the OpenGL® GLU implements functions that work with the framework to give the programmer an expanded set of tools to use in performing more complex operations in a simpler manner. There also are several functions within the OpenGL® GLU that make advanced primitive types such as cylinders and spheres readily available. In addition to support for complex modeling systems, the GLU additionally includes functions to perform matrix operations, convenient translations for the scene camera and viewport, and more human readable function wrappers for common 3D graphics processing.
Features of the OpenGL® GLU attempt to expand on the basic functions that are included in the standard OpenGL® library. Instead of focusing simply on rendering individual polygons, the GLU attempts to provide more functions that help to create and manage entire scenes. These include a number of routines that make it easier to translate the camera position around arbitrary points as well as simplified functions that help to establish the viewing volume.
Another part of the OpenGL® GLU that is not in the basic library is the implementation of advanced primitive shapes. Whereas the standard library only provides functions to draw triangles or polygons, the GLU has functions that can construct objects such as spheres, boxes and cylinders. Although these functions can easily be written by a 3D graphics programmer, it can save time to use versions that are already tested and bug-free.
In addition to shape primitives, there also is basic support for non-uniform rational b-splines (NURBS). These are very efficient geometrical shapes that can bend and flow organically and use very little memory. The support for NURBS in the GLU allows a programmer or artist to have almost complete freedom in designing shapes and objects within a scene.
A high-level ability that the OpenGL® GLU supplies is a mipmapping framework. Mipmapping is a form of texture mapping that helps to increase the speed of rendering a scene. This is achieved by using more than one image for the texture. Each texture is made from several similar images, each one smaller and less detailed than the last, so objects that are at a distance use less detailed textures and are consequently rendered much faster.