WebGLRenderingContext:stencilOp() 方法
WebGLRenderingContext.stencilOp()
方法是 WebGL API 的一部分,用于设置正面和背面模板测试操作。
语法
js
stencilOp(fail, zfail, zpass)
参数
返回值
无 (undefined
)。
常量
gl.KEEP
-
保留当前值。
gl.ZERO
-
将模板缓冲区值设置为 0。
gl.REPLACE
-
将模板缓冲区值设置为参考值,如
WebGLRenderingContext.stencilFunc()
中指定。 gl.INCR
-
递增当前模板缓冲区值。钳位到最大可表示的无符号值。
gl.INCR_WRAP
-
递增当前模板缓冲区值。当递增最大可表示的无符号值时,将模板缓冲区值环绕到零。
gl.DECR
-
递减当前模板缓冲区值。钳位到 0。
gl.DECR_WRAP
-
递减当前模板缓冲区值。当递减模板缓冲区值为 0 时,将模板缓冲区值环绕到最大可表示的无符号值。
gl.INVERT
-
按位反转当前模板缓冲区值。
示例
模板测试默认情况下是禁用的。要启用或禁用模板测试,请使用 enable()
和 disable()
方法,并使用参数 gl.STENCIL_TEST
。
js
gl.enable(gl.STENCIL_TEST);
gl.stencilOp(gl.INCR, gl.DECR, gl.INVERT);
要获取有关模板和深度通过或失败的当前信息,请使用 getParameter()
查询以下常量。
js
gl.getParameter(gl.STENCIL_FAIL);
gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BACK_FAIL);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BITS);
规范
规范 |
---|
WebGL 规范 # 5.14.3 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。