WebGLRenderingContext:stencilOpSeparate() 方法
WebGL API 的 WebGLRenderingContext.stencilOpSeparate()
方法设置正面和/或背面模板测试操作。
语法
js
stencilOpSeparate(face, 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.stencilOpSeparate(gl.FRONT, 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 的浏览器中加载。