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上下文管理的是纹理和顶点缓冲区,而不是调用函数来绘制线条 和填充形状。