GLAPI/glBlendEquation: Difference between revisions
m Bot: Adding better formatting. |
m Bot: Adding better formatting. |
||
Line 14: | Line 14: | ||
: for '''glBlendEquationi''', specifies the index of the draw buffer for which to set the blend equation. | : for '''glBlendEquationi''', specifies the index of the draw buffer for which to set the blend equation. | ||
; mode | ; mode | ||
: specifies how source and destination colors are combined. It must be {{ | : specifies how source and destination colors are combined. It must be {{enum|GL_FUNC_ADD}}, {{enum|GL_FUNC_SUBTRACT}}, {{enum|GL_FUNC_REVERSE_SUBTRACT}}, {{enum|GL_MIN}}, {{enum|GL_MAX}}. | ||
== Description == | == Description == | ||
Line 30: | Line 30: | ||
! '''Alpha Component''' | ! '''Alpha Component''' | ||
|+ | |+ | ||
| {{ | | {{enum|GL_FUNC_ADD}} | ||
| <math>\begin{align}R_r & = s_R R_s + d_R R_d\\G_r & = s_G G_s + d_G G_d\\B_r & = s_B B_s + d_B B_d\end{align}</math> | | <math>\begin{align}R_r & = s_R R_s + d_R R_d\\G_r & = s_G G_s + d_G G_d\\B_r & = s_B B_s + d_B B_d\end{align}</math> | ||
| <math>A_r = s_A A_s + d_A A_d</math> | | <math>A_r = s_A A_s + d_A A_d</math> | ||
|+ | |+ | ||
| {{ | | {{enum|GL_FUNC_SUBTRACT}} | ||
| <math>\begin{align}R_r & = s_R R_s - d_R R_d\\G_r & = s_G G_s - d_G G_d\\B_r & = s_B B_s - d_B B_d\end{align}</math> | | <math>\begin{align}R_r & = s_R R_s - d_R R_d\\G_r & = s_G G_s - d_G G_d\\B_r & = s_B B_s - d_B B_d\end{align}</math> | ||
| <math>A_r = s_A A_s - d_A A_d</math> | | <math>A_r = s_A A_s - d_A A_d</math> | ||
|+ | |+ | ||
| {{ | | {{enum|GL_FUNC_REVERSE_SUBTRACT}} | ||
| <math>\begin{align}R_r & = d_R R_d - s_R R_s\\G_r & = d_G G_d - s_G G_s\\B_r & = d_B B_d - s_B B_s\end{align}</math> | | <math>\begin{align}R_r & = d_R R_d - s_R R_s\\G_r & = d_G G_d - s_G G_s\\B_r & = d_B B_d - s_B B_s\end{align}</math> | ||
| <math>A_r = d_A A_d - s_A A_s</math> | | <math>A_r = d_A A_d - s_A A_s</math> | ||
|+ | |+ | ||
| {{ | | {{enum|GL_MIN}} | ||
| <math>\begin{align}R_r & = min(R_s, R_d)\\G_r & = min(G_s, G_d)\\B_r & = min(B_s, B_d)\end{align}</math> | | <math>\begin{align}R_r & = min(R_s, R_d)\\G_r & = min(G_s, G_d)\\B_r & = min(B_s, B_d)\end{align}</math> | ||
| <math>A_r = min(A_s, A_d)</math> | | <math>A_r = min(A_s, A_d)</math> | ||
|+ | |+ | ||
| {{ | | {{enum|GL_MAX}} | ||
| <math>\begin{align}R_r & = max(R_s, R_d)\\G_r & = max(G_s, G_d)\\B_r & = max(B_s, B_d)\end{align}</math> | | <math>\begin{align}R_r & = max(R_s, R_d)\\G_r & = max(G_s, G_d)\\B_r & = max(B_s, B_d)\end{align}</math> | ||
| <math>A_r = max(A_s, A_d)</math> | | <math>A_r = max(A_s, A_d)</math> | ||
Line 53: | Line 53: | ||
The results of these equations are clamped to the range [0, 1]. | The results of these equations are clamped to the range [0, 1]. | ||
The {{ | The {{enum|GL_MIN}} and {{enum|GL_MAX}} equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The {{enum|GL_FUNC_ADD}} equation is useful for antialiasing and transparency, among other things. | ||
Initially, both the RGB blend equation and the alpha blend equation are set to {{ | Initially, both the RGB blend equation and the alpha blend equation are set to {{enum|GL_FUNC_ADD}}. | ||
== Notes == | == Notes == | ||
The {{ | The {{enum|GL_MIN}}, and {{enum|GL_MAX}} equations do not use the source or destination factors, only the source and destination colors. | ||
== Errors == | == Errors == | ||
{{ | {{enum|GL_INVALID_ENUM}} is generated if {{param|mode}} is not one of {{enum|GL_FUNC_ADD}}, {{enum|GL_FUNC_SUBTRACT}}, {{enum|GL_FUNC_REVERSE_SUBTRACT}}, {{enum|GL_MAX}}, or {{enum|GL_MIN}}. | ||
{{ | {{enum|GL_INVALID_VALUE}} is generated by '''glBlendEquationi''' if {{param|buf}} is greater than or equal to the value of {{enum|GL_MAX_DRAW_BUFFERS}}. | ||
== Associated Gets == | == Associated Gets == | ||
{{apifunc|glGet}} with an argument of {{ | {{apifunc|glGet}} with an argument of {{enum|GL_BLEND_EQUATION_RGB}} | ||
{{apifunc|glGet}} with an argument of {{ | {{apifunc|glGet}} with an argument of {{enum|GL_BLEND_EQUATION_ALPHA}} | ||
== See Also == | == See Also == |
Revision as of 17:16, 29 April 2012
Core in version | 4.6 | |
---|---|---|
Core since version | 1.0 |
glBlendEquation: specify the equation used for both the RGB blend equation and the Alpha blend equation
Function Definition
void glBlendEquation(GLenum mode); void glBlendEquationi(GLuint buf, GLenum mode);
- buf
- for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
- mode
- specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
Description
The blend equations determine how a new pixel (the source color) is combined with a pixel already in the framebuffer (the destination color). This function sets both the RGB blend equation and the alpha blend equation to a single equation. glBlendEquationi specifies the blend equation for a single draw buffer whereas glBlendEquation sets the blend equation for all draw buffers.
These equations use the source and destination blend factors specified by either glBlendFunc or glBlendFuncSeparate. See glBlendFunc or glBlendFuncSeparate for a description of the various blend factors.
In the equations that follow, source and destination color components are referred to as $ (R_{s},G_{s},B_{s},A_{s}) $ and $ (R_{d},G_{d},B_{d},A_{d}) $, respectively. The result color is referred to as $ (R_{r},G_{r},B_{r},A_{r}) $. The source and destination blend factors are denoted $ (s_{R},s_{G},s_{B},s_{A}) $ and $ (d_{R},d_{G},d_{B},d_{A}) $, respectively. For these equations all color components are understood to have values in the range [0, 1].
Mode | RGB Components | Alpha Component |
---|---|---|
GL_FUNC_ADD | $ {\begin{aligned}R_{r}&=s_{R}R_{s}+d_{R}R_{d}\\G_{r}&=s_{G}G_{s}+d_{G}G_{d}\\B_{r}&=s_{B}B_{s}+d_{B}B_{d}\end{aligned}} $ | $ A_{r}=s_{A}A_{s}+d_{A}A_{d} $ |
GL_FUNC_SUBTRACT | $ {\begin{aligned}R_{r}&=s_{R}R_{s}-d_{R}R_{d}\\G_{r}&=s_{G}G_{s}-d_{G}G_{d}\\B_{r}&=s_{B}B_{s}-d_{B}B_{d}\end{aligned}} $ | $ A_{r}=s_{A}A_{s}-d_{A}A_{d} $ |
GL_FUNC_REVERSE_SUBTRACT | $ {\begin{aligned}R_{r}&=d_{R}R_{d}-s_{R}R_{s}\\G_{r}&=d_{G}G_{d}-s_{G}G_{s}\\B_{r}&=d_{B}B_{d}-s_{B}B_{s}\end{aligned}} $ | $ A_{r}=d_{A}A_{d}-s_{A}A_{s} $ |
GL_MIN | $ {\begin{aligned}R_{r}&=min(R_{s},R_{d})\\G_{r}&=min(G_{s},G_{d})\\B_{r}&=min(B_{s},B_{d})\end{aligned}} $ | $ A_{r}=min(A_{s},A_{d}) $ |
GL_MAX | $ {\begin{aligned}R_{r}&=max(R_{s},R_{d})\\G_{r}&=max(G_{s},G_{d})\\B_{r}&=max(B_{s},B_{d})\end{aligned}} $ | $ A_{r}=max(A_{s},A_{d}) $ |
The results of these equations are clamped to the range [0, 1].
The GL_MIN and GL_MAX equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The GL_FUNC_ADD equation is useful for antialiasing and transparency, among other things.
Initially, both the RGB blend equation and the alpha blend equation are set to GL_FUNC_ADD.
Notes
The GL_MIN, and GL_MAX equations do not use the source or destination factors, only the source and destination colors.
Errors
GL_INVALID_ENUM is generated if mode is not one of GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MAX, or GL_MIN.
GL_INVALID_VALUE is generated by glBlendEquationi if buf is greater than or equal to the value of GL_MAX_DRAW_BUFFERS.
Associated Gets
glGet with an argument of GL_BLEND_EQUATION_RGB
glGet with an argument of GL_BLEND_EQUATION_ALPHA
See Also
glBlendColor, glBlendFunc, glBlendFuncSeparate
Copyright
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.