我的代码如下。错误行是最后一行。
gl.enable(gl.STENCIL_TEST);
gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 0xFF);
gl.stencilOpSeparate(gl.FRONT, gl.KEEP, gl.KEEP, gl.REPLACE);
gl.stencilMaskSeparate(gl.FRONT, 0xFF);
gl.clear(gl.STENCIL_BUFFER_BIT);
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);//error line
答案 0 :(得分:1)
6.10模板分离掩模和参考值
在WebGL API中,在模板操作中为前向和后向三角形指定不同的蒙版或参考值是非法的。如果出现以下情况,拨打
drawArrays
或drawElements
会产生INVALID_OPERATION
错误:
STENCIL_WRITEMASK != STENCIL_BACK_WRITEMASK
(由stencilMaskSeparate
指定,分别与face的FRONT
和BACK
值相关联的掩码参数
STENCIL_VALUE_MASK != STENCIL_BACK_VALUE_MASK
(由stencilFuncSeparate
指定,分别与face的FRONT
和BACK
值相关联的掩码参数
STENCIL_REF != STENCIL_BACK_REF
(由stencilFuncSeparate
指定,分别与face的FRONT
和BACK
值相关联的ref参数
我将猜测必须添加it's a DirectX limit,以便可以在DirectX中运行WebGL