WebGLRenderingContext: stencilOp() 方法
注意:此功能在 Web Workers 中可用。
WebGL API 的 WebGLRenderingContext.stencilOp() 方法用于设置正面和背面片元测试的操作。
语法
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-
按位反转当前模板缓冲区的值。
示例
默认情况下,模板测试是禁用的。要启用或禁用模板测试,请使用带有参数 gl.STENCIL_TEST 的 enable() 和 disable() 方法。
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 |
浏览器兼容性
加载中…