WebGLRenderingContext.blendFunc

blendfunc方法用来定义混合像素运算的函数。

语法

void gl.blendFunc(sfactor, dfactor);

参数

sfactor

GLenum类型,定义源混合因子的乘数。默认的值是gl.ONE。可能的值见下表。

dfactor

GLenum类型,定义目标混合因子的乘数。默认的值是gl.ZERO。可能的值见下表。

错误抛出

如果sfactor或dfactor不是下表中列出的值,gl.INVALID_ENUM错误会被抛出。

返回值

常量

下列的常量可用作sfactor和dfactor。

混合颜色的公式可被描述为:颜色值(RGBA) = (源颜色值 * sfactor) + (目标颜色值 * dfactor)。RBGA值是在0-1之间的。

常量 因子 描述
gl.ZERO 0,0,0,0 所有颜色都乘以0
gl.ONE 1,1,1,1 所有颜色都乘以1
gl.SRC_COLOR Rs,Gs,Bs,As 所有颜色都乘以源颜色值
gl.ONE_MINUS_SRC_COLOR 1-Rs,1-Gs,1-Bs,1-As 所有颜色都乘以1减每个源颜色值
gl.DST_COLOR Rd,Gd,Bd,Ad 所有颜色都乘以目标颜色值
gl.ONE_MINUS_DST_COLOR 1-Rd,1-Gd,1-Bd,1-Ad 所有颜色都乘以1减每个目标颜色值
gl.SRC_ALPHA As,As,As,As 所有颜色都乘以源alpha值
gl.ONE_MINUS_SRC_ALPHA 1-As,1-As,1-As,1-As 所有颜色都乘以1减源alpha值
gl.DST_ALPHA Ad,Ad,Ad,Ad 所有颜色都乘以目标alpha值
gl.ONE_MINUS_DST_ALPHA 1-Ad,1-Ad,1-Ad,1-Ad 所有颜色都乘以1减目标alpha值
gl.SRC_ALPHA_SATURATE min(As,1-Ad),min(As,1-Ad),min(As,1-Ad),1 所有GRB颜色乘以源alpha值和1减目标alpha值中的最小值。alpha值乘以1。

例子

要使用混合函数,首先必须要激活混合,使用 以gl.BLEND为参数的WebGLRenderingContext.enable()。

gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_COLOR, gl.DST_COLOR);

获得现有的混合函数,询问BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB和 BLEND_DST_ALPHA常数,可返回混合函数常数之一。

gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_COLOR, gl.DST_COLOR);
gl.getParameter(gl.BLEND_SRC_RGB) == gl.SRC_COLOR;
// true

规范

WebGL 1.0

OpenGL ES 2.0

浏览器兼容

Desktop:Chrome 9、Firefox 4.0 、 Internet Explorer 11 、Opera 12、Safari 5.1;

Mobile: Android ?、 Chrome for Android 25、 Firefox Mobile (Yes)、 IE Mobile ?、 Opera Mobile 12、 Safari Mobile 8.1;

results matching ""

    No results matching ""