清空绘图区
HelloCanvas.html
1 <!DOCTYPE html> 2 <html lang = "en"> 3 <head> 4 <meta charset="utf-8" /> 5 <title>Clear canvas</title> 6 </head> 7 <body onload="main()"> 8 <canvas id="webgl" width="400" height="400"> 9 Please use the browert supporting "canvas" 10 </canvas> 11 <script src="../lib/webgl-utils.js"></script> 12 <script src="../lib/webgl-debug.js"></script> 13 <script src="../lib/cuon-utils.js"></script> 14 15 <script src="HelloCanvs.js"></script> 16 </body> 17 </html>
首先使用<canvas>元素定义绘图区域(第8行),然后引入HelloCanvas.js文件(webgl程序),第11-13行引入了定义好的一些库。
//HelloCanvas.js function main() { // 获取<canvas>元素 var canvas = document.getElementById('webgl'); // 获取webGL绘图上下文 var gl = getWebGLContext(canvas); if (!gl) { console.log('Failed to get the rendering context for WebGL'); return; } // 指定清空<canvas>的颜色 gl.clearColor(0.0, 0.0, 1.0, 1.0); // 清空<canvas> gl.clear(gl.COLOR_BUFFER_BIT); }
main()函数的执行流程:

1、获取<canvas>元素,和之前一样使用document.getElementById(id);
2、获取绘图上下文,这里不和之前一样使用“canvas.getContex()”因为在不同浏览器中该函数接收的参数不同,所以这里用getWebGLContex()来隐藏不同浏览器之间的差异,具体定义可以在coun-utils.js中查看。
getWebGLContex()的规范:

3、设置<canvas>的背景色
在清空绘图区之前需要指定背景颜色,使用gl.clearColor()以RGBA格式设置背景色,由于WebGL继承自OpenGL,所以它遵循OpenGL颜色分量的取值范围,即从0.0-1.0,。

一旦指定了背景色之后,背景色会驻存在WebGL系统中,在下一次调用gl.clearColor()方法前不会改变,
4、清空<canvas>
gl.clear(gl.COLOR_BUFFER.BIT)函数,用之前指定的背景色清空(即用背景色填充,擦除已经绘制的内容)绘图区域。参数gl.COLOR_BUFFER.BIT是告诉WebGL清空颜色缓冲区。
清空颜色缓冲区将导致WebGL清空页面上的<canvas>区域。

各个缓冲区的默认值:


浙公网安备 33010602011771号