webgl是针对web上3d图像的api。历史上,moziua、opera、google等浏览器厂商曾分另提供了试验性的javascript3dapi。今天,webgl正向规范化方向迈进,而越来越多的html5浏览器加入了支持它的阵营。webgl的规范化进程由浏览器厂商和the khronos group(负责opengl的组织,opcngl是1992年创建的跨平台3d绘图标准)共同推进。opengl规范的当前版本为第4版,它已被广泛应用于游戏和计算机辅助设计中,并成为了微软direct3d的有力竞争对手。
我们在看到了在canvas元素中调用getcontextr2ch,可以获得2d绘图的上下文。亳无疑问,这为其他类型的绘图上下文提供了方便之门。webgl使用的同样是canvas元素,只不过获取的是3d上下文。由于还在试验期,所以调用getcontexu)时,传入的参数需要使用浏览器厂商指定的名称作为前缀(moz-webgl、webk1t-3d等例如,在支持webgl的firefox版本中,可以在canvas元素中调用getcontextrmoz-webgr)来获取3d上下文。这里调用getcontexto返回的api对象与2dcanvas的有所不同,因为它提供的是opengl绑定,而非绘图操作。webgl版本的canvas上下文管理的是纹理和顶点缓冲区,而不是调用函数来绘制线条 和填充形状。