Fixed Function Pipeline

From OpenGL.org
Jump to: navigation, search

OpenGL exposes features of the underlying graphics hardware to application developers. Before the advent of programmable shading processors, a graphics processing unit(GPU) would integrate dedicated hardware to do specific operations. An example is the concept of separate transform and lighting engines built into the legacy GPUs to support hardware-sided transformation of vertices and lighting calculations. These parts of the GPU are not programmable and can only be configured using corresponding OpenGL functions. The GPU will then use this configuration to perform, for instance, hardware-accelerated vertex transformations. In this case the term fixed stems from the fact that the exposed hardware may be used only by means of a limited, specific set of special-purpose functions.

Modern desktop GPUs integrate unified shading processors which are able to process multiple shading stages and can be programmed using high-level shading languages like GLSL. For instance, a single processor is able to execute shading stages for both vertex and fragment processing. While there are still parts of the hardware that are only configurable, OpenGL has become shader centric and most of the formerly fixed functionality can, if needed, be emulated using programmable hardware.

OpenGL 3.0 was the last revision of the specification which fully supported both fixed and programmable functionality. In modern OpenGL, almost all functions expressing fixed-function concepts are removed from the core profile.