名称

glBlendFuncSeparate - 分别指定RGB和alpha分量的像素算术

C规范

void glBlendFuncSeparate(    GLenum srcRGB,
     GLenum dstRGB,
     GLenum srcAlpha,
     GLenum dstAlpha);

参数

srcRGB

指定如何计算红色,绿色和蓝色混合因子。下列符号常量被接受: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。

dstRGB

指定如何计算红色,绿色和蓝色目标混合因子。接受以下符号常量: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。

srcAlpha

指定如何计算alpha源混合因子。对于srcRGB,接受相同的符号常量。初始值为GL_ONE。

dstAlpha

指定如何计算alpha目标混合因子。 dstRGB接受相同的符号常量。初始值为GL_ZERO。

描述

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

glBlendFuncSeparate定义启用时的混合操作。 srcRGB指定用于缩放源RGB颜色分量的方法。 dstRGB指定用于缩放目标RGB颜色分量的方法。同样,srcAlpha指定用于缩放源alpha颜色分量的方法,dstAlpha指定用于缩放目标alpha分量的方法。可能的方法如下表所述。每种方法都定义了四个比例因子,分别为红色,绿色,蓝色和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 fB fA
GL_ZERO 0,0,0 0
GL_ONE 1,1,1 1
GL_SRC_COLOR Rs,Gs,Bs As
GL_ONE_MINUS_SRC_COLOR 1-Rs,1-Gs,1-Bs 1-As
GL_SRC_ALPHA As,As,As As
GL_ONE_MINUS_SRC_ALPHA 1-As,1-As,1-As 1-As
GL_DST_COLOR Rd,Gd,Bd Ad
GL_ONE_MINUS_DST_COLOR 1-Rd,1-Gd,1-Bd 1-Ad
GL_DST_ALPHA Ad,Ad,Ad Ad
GL_ONE_MINUS_DST_ALPHA 1-Ad,1-Ad,1-Ad 1-Ad
GL_CONSTANT_COLOR Rc,Gc,Bc Ac
GL_ONE_MINUS_CONSTANT_COLOR 1-Rc,1-Gc,1-Bc 1-Ac
GL_CONSTANT_ALPHA Ac,Ac,Ac Ac
GL_ONE_MINUS_CONSTANT_ALPHA 1-Ac,1-Ac,1-Ac 1-Ac
GL_SRC_ALPHA_SATURATE min(As,1-Ad) 1

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

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

注意

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

错误

GL_INVALID_ENUMsrcRGBdstRGBsrcAlphadstAlpha不是可接受的值。

相关Gets

glGet 参数GL_BLEND_SRC_RGB

glGet 参数GL_BLEND_SRC_ALPHA

glGet 参数GL_BLEND_DST_RGB

glGet 参数GL_BLEND_DST_ALPHA

glIsEnabled 参数GL_BLEND

另见

glBlendColor,glBlendEquation,glBlendEquationSeparate,glBlendFunc,glClear,glEnable,glStencilFunc

版权

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,图形学

GLES2.0中文API-glBlendFuncSeparate相关推荐

  1. GLES2.0中文API-glGet

    名称 glGet - 返回所选参数的值 C规范 void glGetBooleanv(    GLenum pname,      GLboolean * params); void glGetFlo ...

  2. GLES2.0中文API-glBlendFunc

    名称 glBlendFunc - 指定像素算术 C规范 void glBlendFunc(    GLenum sfactor,      GLenum dfactor); 参数 sfactor 指定 ...

  3. GLES2.0中文API-glUseProgram

    名称 glUseProgram- 使用程序对象作为当前渲染状态的一部分 C规范 void glUseProgram(GLuint program); 参数 program 指定程序对象的句柄,该程序对 ...

  4. GLES2.0中文API-glUniform

    名称 glUniform - 指定当前程序对象的统一变量的值 C规范 void glUniform1f(    GLint location, GLfloat v0); void glUniform2 ...

  5. GLES2.0中文API-glTexImage2D

    名称 glTexImage2D- 指定一个二维的纹理图片 C规范 void glTexImage2D(GLenum target, GLint level, GLint internalformat, ...

  6. GLES2.0中文API-glReadPixels

    名称 glReadPixels - 从帧缓冲区中读取一个像素块 C规范 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei heigh ...

  7. GLES2.0中文API-glCopyTexImage2D

    名称 glCopyTexImage2D - 将像素复制到2D纹理图像中 C规范 void glCopyTexImage2D(    GLenum target,      GLint level,   ...

  8. GLES2.0中文API-glGetActiveUniform

    名称 glGetActiveUniform - 返回有关活动统一变量的信息 C规范 void glGetActiveUniform(GLuint program, GLuint index, GLsi ...

  9. GLES2.0中文API-glTexParameter

    名称 glTexParameter  - 设置纹理参数 C规范 void glTexParameterf(GLenum target,GLenum pname,GLfloat param); void ...

最新文章

  1. Oracle宣布终止所有Intel Itanium平台上的软件开发
  2. Protege A DOT error has occurred错误
  3. Python3 中的最大整数和最大浮点数
  4. java中读取某路径下的文本内容
  5. 40个最好的Tumblr主题
  6. python爬携程酒店评论_python爬虫爬取携程网的酒店评论数据时,有个请求参数不知道是怎么生成的?...
  7. 继承(继承父类,super)
  8. Apache工具包方法——Hex.encodeHexString(byte[] data)源码浅析
  9. Java复习-对象的回收与垃圾的回收
  10. java跨系统和跨域_java web服务解决跨域问题
  11. 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧(指定开始帧)以及扩展Cocos2d源码的CCAnimation简化动画创建!...
  12. oracle数据库sql查询,oracle数据库中常用经典SQL查询
  13. 差分进化算法用c语言实现,python 实现差分进化算法
  14. 算法分析与设计:贪心算法
  15. iOS检测当前设备是否越狱系统
  16. 自学机器学习,怎么才能找到工作啊?至少要避开十大雷区
  17. poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
  18. 电脑无法连接mysql_本地电脑无法连接到MySQL
  19. 头戴式蓝牙耳机怎么选?2020五款主动降噪性能强劲蓝牙耳机盘点
  20. adonis视图——nodejs应用第一季04

热门文章

  1. AI遮天传 DL-深度学习在计算机视觉中的应用
  2. 个人简历制作时的自我评价应该怎么写?
  3. VMware的几种网络类型
  4. JavaWeb-狂神系列
  5. 数据库系统概论 第七章设计数据库
  6. 工行连接深圳通 dll调不到
  7. 【密码学篇】商用密码产品的密钥体系结构小结
  8. 【kaggle】特征工程 trick
  9. ufl计算机科学排名,美国计算机专业如何选校
  10. 你不知道的Windows小技巧~~