The OpenGL library is basically a generic interface that allows software to use the advanced hardware-rendering features of graphics cards, so there are many types of OpenGL programs. By far, video games are the most prevalent type of OpenGL programs, because they require the optimized drivers and hardware interaction to maintain smooth animation and realistic scene rendering. Many image and video editing packages also use OpenGL to reduce the time it takes to apply image manipulation algorithms to an image and to allow very large images or files to be stored in immediate memory on the graphics card itself. Three-dimensional (3D) modeling programs also often use OpenGL for rendering while a model is being constructed as a lightweight way to show real-time texture and geometry changes. Some operating systems are even technically OpenGL programs, because they use the libraries as the primary, default display drivers.
Video games are both the largest class of OpenGL programs and an important catalyst for the further development of the libraries. To render increasingly complex scenes on a growing variety of computers, consoles and devices, OpenGL libraries have to be continually updated. As opposed to many other OpenGL programs, a video game might need to render a scene containing tens of thousands of polygons anywhere from 30 to 100 times each second. This increase in the efficiency of the libraries has benefitted other OpenGL programs, as well.
Image and video editing OpenGL programs use the libraries to make it easier to edit large images or video files. Instead of having to use slow virtual memory, the image can be loaded directly into the memory on the graphics hardware. This also means applying filters such as Gaussian blur or other special effects can be done much more quickly than if the entire process were performed within virtual memory using only the computer’s primary central processing unit (CPU). This is especially effective when editing video files in which thousands of frames might need to be processed for each modification.
Modeling programs used to created 3D objects for use in animation, games or artwork frequently employ OpenGL libraries. The libraries provide a way to quickly display the current model being worked on as the geometry is being constructed, textured and possibly manipulated for analysis by the user. Having an efficient and hardware-accelerated way to show a scene or objects as it is being built allows the designer to work in a seamless environment where the results of his actions can be observed immediately in real time.
Other types of OpenGL programs include scientific and engineering visualization software that can show cell structures, architectural layouts or even abstract mappings of graphs and other data in 3D. These programs can allow a user to manipulate the data within the virtual environment. Nearly any program that uses OpenGL as the primary display driver can be considered an OpenGL program, regardless of its function or the extent of the use of the libraries.