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调用glEnable和glDisable以启用和禁用混合。
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 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_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)实现透明度,其中基元从最远到最近排序。请注意,此透明度计算不要求帧缓冲区中存在alpha位平面。
错误
GL_INVALID_ENUM:sfactor或dfactor不是可接受的值。
相关Gets
glGet 参数GL_BLEND_SRC_RGB或GL_BLEND_SRC_ALPHA
glGet 参数GL_BLEND_DST_RGB或GL_BLEND_DST_ALPHA
glIsEnabled 参数GL_BLEND
另见
glBlendColor,glBlendEquation,glBlendEquationSeparate,glBlendFuncSeparate,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/.
GLES2.0中文API-glBlendFunc相关推荐
- GLES2.0中文API-glGet
名称 glGet - 返回所选参数的值 C规范 void glGetBooleanv( GLenum pname, GLboolean * params); void glGetFlo ...
- GLES2.0中文API-glStencilFunc、glStencilFuncSeparate
名称 glStencilFunc - 设置模板测试的前后功能和参考值 glStencilFuncSeparate - 设置模板测试的前端和/或后端功能和参考值 C规范 void glStencilFu ...
- GLES2.0中文API-glEnable、glDisable
名称 glEnable- 启用或禁用服务器端GL功能 C规范 void glEnable(GLenum cap); void glDisable(GLenum cap); 参数 cap 指定表示GL功 ...
- GLES2.0中文API-glBlendFuncSeparate
名称 glBlendFuncSeparate - 分别指定RGB和alpha分量的像素算术 C规范 void glBlendFuncSeparate( GLenum srcRGB, G ...
- GLES2.0中文API-glUseProgram
名称 glUseProgram- 使用程序对象作为当前渲染状态的一部分 C规范 void glUseProgram(GLuint program); 参数 program 指定程序对象的句柄,该程序对 ...
- GLES2.0中文API-glBlendColor
名称 glBlendColor- 设置混合颜色 C规范 void glBlendColor( GLclampf red, GLclampf green, GLclampf b ...
- GLES2.0中文API-glUniform
名称 glUniform - 指定当前程序对象的统一变量的值 C规范 void glUniform1f( GLint location, GLfloat v0); void glUniform2 ...
- GLES2.0中文API-glTexImage2D
名称 glTexImage2D- 指定一个二维的纹理图片 C规范 void glTexImage2D(GLenum target, GLint level, GLint internalformat, ...
- GLES2.0中文API-glReadPixels
名称 glReadPixels - 从帧缓冲区中读取一个像素块 C规范 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei heigh ...
最新文章
- nUnit,凑合着测试
- The practice program of C on point
- Android最佳性能实践(二)——分析内存的使用情况
- install onnx_tensort
- 特殊空格的坑,原来空格可以有好多种
- 讲真,MySQL索引优化看这篇文章就够了
- 【转载】优秀文章转载集合
- 为什么idea的断点变黑了_IntelliJ IDEA Debug回退断点
- 运用范式的规范数据库设计的好处
- 文件那些事儿之一(初稿)
- SPSS可以生成正交表吗?
- windows安装office2016
- 电商小程序实战教程-总体介绍
- 职能型、矩阵型、项目型组织结构的优缺点
- Docker基础介绍(二)
- TCP三次握手四次挥手(三国版)
- 小猿理财:如何成为百万富翁?
- Proteus仿真STM32F103R6(一)
- VC2013下使用64位libcurl(包含zlib1、ssleay32等)
- Fusion 360的快捷键大全