--- title: WebGLRenderingContext.blendFunc() slug: Web/API/WebGLRenderingContext/blendFunc translation_of: Web/API/WebGLRenderingContext/blendFunc ---
WebGL API 的WebGLRenderingContext.blendFunc()
方法定义了一个用于混合像素算法的函数.
void gl.blendFunc(sfactor, dfactor);
sfactor
gl.ONE
. 有关可能的值, 查看下面.dfactor
gl.ZERO
. 有关可能的值, 查看下面.None.
sfactor 或
dfactor
不是列出的可能值一直, 则抛出 gl.INVALID_ENUM
错误.gl.INVALID_ENUM
错误.下列常数可用于 sfactor
和dfactor
.
混合颜色的公式可以这样描述: color(RGBA) = (sourceColor * sfactor) + (destinationColor * dfactor). RBGA 值在 0 到1 之间.
Constant | Factor | Description |
---|---|---|
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.CONSTANT_COLOR |
RC, GC, BC, AC | 将所有颜色乘以一个常数颜色. |
gl.ONE_MINUS_CONSTANT_COLOR |
1-RC, 1-GC, 1-BC, 1-AC | 所有颜色乘以1减去一个常数颜色. |
gl.CONSTANT_ALPHA |
AC, AC, AC, AC | 将所有颜色乘以一个常数. |
gl.ONE_MINUS_CONSTANT_ALPHA |
1-AC, 1-AC, 1-AC, 1-AC | 所有颜色乘以1减去一个常数. |
gl.SRC_ALPHA_SATURATE |
min(AS, 1 - AD), min(AS, 1 - AD), min(AS, 1 - AD), 1 |
将RGB颜色乘以源alpha值或1减去目标alpha值中的较小值。alpha值乘以1. |
使用混合函数, 您首先必须使用参数 gl.BLEND
来激活{{domxref("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
Specification | Status | Comment |
---|---|---|
{{SpecName('WebGL', "#5.14.3", "blendFunc")}} | {{Spec2('WebGL')}} | Initial definition. In WebGL, constant color and constant alpha cannot be used together as source and destination factors in the blend function. See section 6.13. of the specification. |
{{SpecName('OpenGL ES 2.0', "glBlendFunc.xml", "glBlendFunc")}} | {{Spec2('OpenGL ES 2.0')}} | Man page of the OpenGL API. |
{{Compat("api.WebGLRenderingContext.blendFunc")}}