WebGL有一个clear
方法可以清除整个表面。清除表面特定矩形的最佳方法是什么?例如,我想将从(50,50)开始的100x100像素盒设置为全零(ARGB 0,0,0,0)。我现在能想到的就是用一个写入零的着色器着色器绘制四边形。有没有更简单的方法?
答案 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上下文中将被绘制,剪刀外的任何内容都将被裁剪而不会被绘制!