GLES2.0中文API-glBlendFunc

名称

glBlendFunc - 指定像素算术

C规范

void glBlendFunc(    GLenum sfactor,
     GLenum dfactor);

参数

sfactor

指定如何计算红色,绿色,蓝色和alpha源混合因子。下列符号常量被接受:GL_ZERO,GL_ONE,GL_SRC_COLOR,GL_ONE_MINUS_SRC_COLOR,GL_DST_COLOR,GL_ONE_MINUS_DST_COLOR,GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_DST_ALPHA,GL_ONE_MINUS_DST_ALPHA,GL_CONSTANT_COLOR,GL_ONE_MINUS_CONSTANT_COLOR,GL_CONSTANT_ALPHA,GL_ONE_MINUS_CONSTANT_ALPHA和GL_SRC_ALPHA_SATURATE。初始值为GL_ONE

dfactor

指定如何计算红色,绿色,蓝色和alpha目标混合因子。接受以下符号常量:GL_ZERO,GL_ONE,GL_SRC_COLOR,GL_ONE_MINUS_SRC_COLOR,GL_DST_COLOR,GL_ONE_MINUS_DST_COLOR,GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA,GL_DST_ALPHA,GL_ONE_MINUS_DST_ALPHA。 GL_CONSTANT_COLOR,GL_ONE_MINUS_CONSTANT_COLOR,GL_CONSTANT_ALPHA和GL_ONE_MINUS_CONSTANT_ALPHA。初始值为GL_ZERO

描述

可以使用将输入(源)RGBA值与帧缓冲区中已有的RGBA值(目标值)混合的函数来绘制像素。最初禁用混合。使用参数GL_BLEND调用glEnableglDisable以启用和禁用混合。

glBlendFunc定义启用时的混合操作。 sfactor指定用于缩放源颜色分量的方法。 dfactor指定用于缩放目标颜色分量的方法。可能的方法如下表所述。每种方法都定义了四个比例因子,分别为红色,绿色,蓝色和alpha。在表格和随后的等式中,源和目标颜色分量被称为Rs Gs Bs As和Rd Gd Bd Ad。 glBlendColor指定的颜色称为Rc Gc Bc Ac。它们被理解为具有0到kR kG kB kA之间的整数值,其中

kc=2^mc-1;(mR mG mB mA是红色,绿色,蓝色和alpha位平面的数量)

源和目标比例因子称为sR sG sB sA和dR dG dB dA.表中描述的比例因子,记为fR fG fB fA,表示源或目标因子。所有比例因子的范围均为[0,1]。

混合函数
混合系数枚举值fR fG fBfA
GL_ZERO0,0,00
GL_ONE1,1,11
GL_SRC_COLORRs,Gs,BsAs
GL_ONE_MINUS_SRC_COLOR1-Rs,1-Gs,1-Bs1-As
GL_SRC_ALPHAAs,As,AsAs
GL_ONE_MINUS_SRC_ALPHA1-As,1-As,1-As1-As
GL_DST_COLORRd,Gd,BdAd
GL_ONE_MINUS_DST_COLOR1-Rd,1-Gd,1-Bd1-Ad
GL_DST_ALPHAAd,Ad,AdAd
GL_ONE_MINUS_DST_ALPHA1-Ad,1-Ad,1-Ad1-Ad
GL_CONSTANT_COLORRc,Gc,BcAc
GL_ONE_MINUS_CONSTANT_COLOR1-Rc,1-Gc,1-Bc1-Ac
GL_CONSTANT_ALPHAAc,Ac,AcAc
GL_ONE_MINUS_CONSTANT_ALPHA1-Ac,1-Ac,1-Ac1-Ac
GL_SRC_ALPHA_SATURATEmin(As,1-Ad)1

为了确定像素的混合RGBA值,系统会使用由glBlendEquationglBlendEquationSeparate设置的方程之一。

未精确指定混合算法,因为混合使用不精确的整数颜色值。但是,保证应该等于1的混合因子不会修改其被乘数,并且混合因子等于0会将其被乘数减少为0。

注意

传入(源)alpha被视为材料的不透明度,范围从表示完全不透明度的1.0(kA)到0.0(0),表示完全透明。

最好使用混合函数(GL_SRC_ALPHAGL_ONE_MINUS_SRC_ALPHA)实现透明度,其中基元从最远到最近排序。请注意,此透明度计算不要求帧缓冲区中存在alpha位平面。

错误

GL_INVALID_ENUMsfactordfactor不是可接受的值。

相关Gets

glGet 参数GL_BLEND_SRC_RGBGL_BLEND_SRC_ALPHA

glGet 参数GL_BLEND_DST_RGBGL_BLEND_DST_ALPHA

glIsEnabled 参数GL_BLEND

另见

glBlendColorglBlendEquationglBlendEquationSeparateglBlendFuncSeparateglClearglEnableglStencilFunc

版权

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glBlendFunc.xml

https://blog.csdn.net/flycatdeng

Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.

Android,OpenGL ES,图形学
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值