WebGLRenderingContext: stencilFuncSeparate() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.stencilFuncSeparate() 方法是 WebGL API 的一部分,用于设置模板测试的前部和/或后部函数及参考值。
模板(Stencil)功能允许逐像素地启用和禁用绘制。它通常用于多通道渲染以实现特殊效果。
语法
js
stencilFuncSeparate(face, func, ref, mask)
参数
face-
一个
GLenum,用于指定是更新正面还是背面模板状态,或两者都更新。可能的值为:gl.FRONTgl.BACKgl.FRONT_AND_BACK
func-
一个
GLenum,用于指定测试函数。默认函数是gl.ALWAYS。可能的值为:gl.NEVER:永不通过。gl.LESS:当(ref & mask) < (stencil & mask)时通过。gl.EQUAL:当(ref & mask) = (stencil & mask)时通过。gl.LEQUAL:当(ref & mask) <= (stencil & mask)时通过。gl.GREATER:当(ref & mask) > (stencil & mask)时通过。gl.NOTEQUAL:当(ref & mask) !== (stencil & mask)时通过。gl.GEQUAL:当(ref & mask) >= (stencil & mask)时通过。gl.ALWAYS:总是通过。
ref-
一个
GLint,用于指定模板测试的参考值。此值会被限制在 0 到 2^n - 1 的范围内,其中 n 是模板缓冲区中的比特平面数。默认值为 0。 mask-
一个
GLuint,用于指定一个按位掩码,在进行测试时,该掩码会与参考值和存储的模板值进行 AND 运算。默认值为全 1。
返回值
无(undefined)。
示例
默认情况下,模板测试是禁用的。要启用或禁用模板测试,请使用带有参数 gl.STENCIL_TEST 的 enable() 和 disable() 方法。
js
gl.enable(gl.STENCIL_TEST);
gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 0.2, 1110011);
要获取当前的模板函数、参考值或其他模板信息,请使用 getParameter() 查询以下常量。
js
gl.getParameter(gl.STENCIL_FUNC);
gl.getParameter(gl.STENCIL_VALUE_MASK);
gl.getParameter(gl.STENCIL_REF);
gl.getParameter(gl.STENCIL_BACK_FUNC);
gl.getParameter(gl.STENCIL_BACK_VALUE_MASK);
gl.getParameter(gl.STENCIL_BACK_REF);
gl.getParameter(gl.STENCIL_BITS);
规范
| 规范 |
|---|
| WebGL 规范 # 5.14.3 |
浏览器兼容性
加载中…