From OpenGL Reference
Jump to navigation Jump to search

Specify the equation used for both the RGB blend equation and the Alpha blend equation.

C Specification[edit]

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 .


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 [math](R_{s}G_{s}B_{s}A_{s})[/math] and [math](R_{d}G_{d}B_{d}A_{d})[/math] , respectively. The result color is referred to as [math](R_{r}G_{r}B_{r}A_{r})[/math] . The source and destination blend factors are denoted [math](s_{R}s_{G}s_{B}s_{A})[/math] and [math](d_{R}d_{G}d_{B}d_{A})[/math] , respectively. For these equations all color components are understood to have values in the range [math][0,1][/math] .

Mode RGB Components Alpha Component
GL_FUNC_ADD   [math]Rr=R_{s}⁢s_{R}+R_{d}⁢d_{R}[/math]  [math]Gr=G_{s}⁢s_{G}+G_{d}⁢d_{G}[/math]  [math]Br=B_{s}⁢s_{B}+B_{d}⁢d_{B}[/math]   [math]Ar=A_{s}⁢s_{A}+A_{d}⁢d_{A}[/math] 
GL_FUNC_SUBTRACT   [math]Rr=R_{s}⁢s_{R}-R_{d}⁢d_{R}[/math]  [math]Gr=G_{s}⁢s_{G}-G_{d}⁢d_{G}[/math]  [math]Br=B_{s}⁢s_{B}-B_{d}⁢d_{B}[/math]   [math]Ar=A_{s}⁢s_{A}-A_{d}⁢d_{A}[/math] 
GL_FUNC_REVERSE_SUBTRACT   [math]Rr=R_{d}⁢d_{R}-R_{s}⁢s_{R}[/math]  [math]Gr=G_{d}⁢d_{G}-G_{s}⁢s_{G}[/math]  [math]Br=B_{d}⁢d_{B}-B_{s}⁢s_{B}[/math]   [math]Ar=A_{d}⁢d_{A}-A_{s}⁢s_{A}[/math] 
GL_MIN   [math]Rr=min⁡()[/math]  [math]Gr=min⁡()[/math]  [math]Br=min⁡()[/math]   [math]Ar=min⁡()[/math] 
GL_MAX   [math]Rr=max⁡()[/math]  [math]Gr=max⁡()[/math]  [math]Br=max⁡()[/math]   [math]Ar=max⁡()[/math] 

The results of these equations are clamped to the range [math][0,1][/math] .

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 .


The GL_MIN , and GL_MAX equations do not use the source or destination factors, only the source and destination colors.



 GL_INVALID_VALUE is generated by glBlendEquationi if buf is greater than or equal to the value of GL_MAX_DRAW_BUFFERS .

Associated Gets[edit]

 glGet with an argument of GL_BLEND_EQUATION_RGB 

 glGet with an argument of GL_BLEND_EQUATION_ALPHA 

Version Support[edit]

 glBlendEquation  2.0+
 glBlendEquationi  4.0+

See Also[edit]

 glBlendColor , glBlendFunc  glBlendFuncSeparate 


Copyright© 1991-2006 Silicon Graphics, Inc. Copyright© 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see