名称
glBlendEquationSeparate - 分别设置RGB混合方程和alpha混合方程
C规范
void glBlendEquationSeparate( GLenum modeRGB,
GLenum modeAlpha);
参数
modeRGB
指定RGB混合方程,如何组合源和目标颜色的红色,绿色和蓝色分量。它必须是GL_FUNC_ADD,GL_FUNC_SUBTRACT或GL_FUNC_REVERSE_SUBTRACT。
modeAlpha
指定alpha混合等式,如何组合源和目标颜色的alpha分量。它必须是GL_FUNC_ADD,GL_FUNC_SUBTRACT或GL_FUNC_REVERSE_SUBTRACT。
描述
混合方程式确定新像素(“源”颜色)如何与帧缓冲区中已有的像素(“目标”颜色)组合。此函数指定RGB颜色分量的一个混合方程和alpha分量的一个混合方程。
这些等式使用由glBlendFunc或glBlendFuncSeparate指定的源和目标混合因子。有关各种混合因子的说明,请参阅glBlendFunc或glBlendFuncSeparate。
在下面的等式中,源和目标颜色分量分别称为Rs Gs Bs As和Rd Gd Bd Ad。结果颜色称为Rr Gr Br Ar。源和目的地混合因子分别表示为sR sG sB sA和dR dG dB dA.对于这些等式,所有颜色分量被理解为具有[0,1]范围内的值。
Mode | RGB | Alpha |
GL_FUNC_ADD | Rr = Rs*sR + Rd*dR Gr = Gs*sG + Gd*dG |
Ar = As*sA + Ad*dA |
GL_FUNC_SUBTRACT | Rr = Rs*sR - Rd*dR Gr = Gs*sG - Gd*dG Br = Bs*sB - Bd*dB |
Ar = As*sA - Ad*dA |
GL_FUNC_REVERSE_SUBTRACT | Rr = Rd*dR - Rs*sR Gr = Gd*dG - Gs*sG Br = Bd*dB - Bs*sB |
Ar = Ad*dA - As*sA |
这些方程的结果被限制在[0,1]的范围内。
除其他外,GL_FUNC_ADD方程对于抗锯齿和透明度非常有用。
默认的,RGB混合方程和α混合方程都设置为GL_FUNC_ADD。
错误
GL_INVALID_ENUM:modeRGB或modeAlpha不是GL_FUNC_ADD,GL_FUNC_SUBTRACT或GL_FUNC_REVERSE_SUBTRACT之一。
相关Gets
glGet 参数GL_BLEND_EQUATION_RGB
glGet 参数GL_BLEND_EQUATION_ALPHA
另见
glGetString,glBlendColor,glBlendEquation,glBlendFunc,glBlendFuncSeparate
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glBlendEquationSeparate.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.