如何清除WebGL中的矩形区域?

时间:2012-07-18 15:13:12

标签: javascript html5 canvas webgl

WebGL有一个clear方法可以清除整个表面。清除表面特定矩形的最佳方法是什么?例如,我想将从(50,50)开始的100x100像素盒设置为全零(ARGB 0,0,0,0)。我现在能想到的就是用一个写入零的着色器着色器绘制四边形。有没有更简单的方法?

2 个答案:

答案 0 :(得分:14)

您可以使用SCISSOR测试将清除(和一般渲染)约束为矩形。

// turn on the scissor test.
gl.enable(gl.SCISSOR_TEST);

// set the scissor rectangle.
gl.scissor(x, y, width, height);

// clear.
gl.clearColor(r, g, b, a);
gl.clear(gl.COLOR_BUFFER_BIT ...);

// turn off the scissor test so you can render like normal again.
gl.disable(gl.SCISSOR_TEST);

答案 1 :(得分:1)

在视口之外的任何内容如果在webgl上下文中将被绘制,剪刀外的任何内容都将被裁剪而不会被绘制!