WebGL 有一个clear
清除整个表面的方法。清除特定矩形表面的最佳方法是什么?例如,我想将一个从 (50, 50) 开始的 100x100 像素框设置为全零 (ARGB 0, 0, 0, 0)。我现在能想到的就是用一个写入零的片段着色器绘制一个四边形。没有更简单的方法吗?
问问题
3836 次
2 回答
17
您可以使用 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);
于 2012-07-18T16:10:27.433 回答
1
如果在 webgl 上下文中,视口之外的任何东西都将被绘制,剪刀之外的任何东西都将被剪裁并且根本不绘制!
于 2015-01-21T00:24:31.510 回答