An OpenGL® renderer is a software application, library or abstract programming interface (API) that is designed to take mathematical, geometric and texture information from a program and display it on an output device. The duty of an OpenGL® renderer is to bridge the gap between information about a three-dimensional (3D) object that is stored as coordinates, vectors and other numbers and convert it into an image with lighting, textures and the proper viewing angle. OpenGL® includes its own rendering implementation, but this can be overridden either to improve on existing algorithms or to support features that might otherwise be unsupported with certain hardware configurations. Many programs that use 3D graphics often include an option to choose the type of renderer used, depending on what is supported by the hardware.
One use for an OpenGL® renderer is to provide a custom interface between the OpenGL® API and some proprietary or specialized hardware. This is frequently seen with mobile devices or custom displays that support unique features such as 3D imaging. By customizing the rendering portion of an application, the limitations or special abilities of the output media can be targeted so the program runs smoothly and displays in the desired fashion.
Another application for an OpenGL® renderer is to help streamline functions so they perform faster or in a different way than the default renderer. This can be seen with some video games in which specific features and functions that are rarely used in non-gaming programs need to be further expanded on to achieve high frame rates and consistent performance. A custom renderer also can be used during game development to provide a debugging environment when other rendering methods are causing graphical problems.
There are certain instances — such as in security, transportation or other embedded systems — in which software might be written using OpenGL® to display real-time information, but that software ultimately might not be run on a system that has a graphics card. One example of this is a display on an aircraft in which the software is developed and tested on a desktop computer system. In this case, an OpenGL® renderer can be used to ensure that, although the software uses standard function calls, none of the calls fail to execute because of the lack of graphics hardware. This is a way that standard programming libraries can be used anywhere through re-directed software emulation.