Fixed Function Pipeline: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
Zyx 2000 (talk | contribs)
Categorized
No edit summary
Line 1: Line 1:
{{deprecated}}
{{deprecated}}


There are two basic ways to render. Either use a fixed function pipeline, or a [[Shader|shader program]].
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.
The fixed function pipeline is the legacy way, while using a [[Shader|shader program]] is the new way.
In OpenGL 2.1, fixed function pipeline will be used if no [[Shader|shader program]] is used.
A fixed function is characterized by the use of glBegin() and glEnd().


With OpenGL 3.1 [[Core And Compatibility in Contexts|core]], the fixed function pipeline has been removed from OpenGL. You may create a compatibility context to access the fixed-function pipeline again.
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|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 2.1 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 [[Deprecation|deprecated]] or removed.


[[Category:Deprecated]]
[[Category:Deprecated]]


{{stub}}
{{stub}}

Revision as of 08:07, 4 September 2012

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 2.1 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 deprecated or removed.