WebGLRenderingContext:stencilFuncSeparate() 方法
WebGLRenderingContext.stencilFuncSeparate()
方法是 WebGL API 的一部分,用于设置模板测试的前端和/或后端的函数和参考值。
模板化功能允许或禁止基于每个像素的绘制。它通常用于多通道渲染以实现特殊效果。
语法
js
stencilFuncSeparate(face, func, ref, mask)
参数
face
-
一个
GLenum
,指定更新前端和/或后端模板状态。可能的取值包括:gl.FRONT
gl.BACK
gl.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
).
示例
模板测试默认情况下是禁用的。要启用或禁用模板测试,请使用 enable()
和 disable()
方法,并将参数设置为 gl.STENCIL_TEST
。
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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。