WebGL简介
WebGL(Web Graphics Library)是一项在网页上绘制复杂三维图像、并允许用户与之交互的技术。开发者可通过HTML5的Canvas元素获得WebGL上下文,从其中获得内置的JavaScript API来完成各种绘制任务。WebGL程序包括用 JavaScript 写的控制代码,以及在图形处理单元(GPU, Graphics Processing Unit)中执行的特效代码(shader code,渲染代码)。
在个人计算机上使用最广泛的两种三维图形渲染技术是Direct3D和OpenGL(Open Graphics Library)。WebGL基于OpenGL ES 2.0(OpenGL for Embedded Systems),后者是OpenGL的一个派生版本,专门用于嵌入式计算机、智能手机、家用游戏机等设备。OpenGL各版本与WebGL的关系如下图所示:
OpenGL从2.0开始支持一项很重要的特性,即可编程着色器方法(programmable shader functions)。该特性被OpenGL ES 2.0继承,并成为了WebGL2.0标准的核心部分。
着色器方法,或称着色器,使用一种类似C的编程语言实现了精美的视觉效果。OpenGL ES 2.0基于OpenGL着色器语言(GL shading language),因此前者的编程语言被称为GLSL ES。WebGL基于OpenGL ES 2.0,也是用GLSL ES编写着色器。
OpenGL规范的更新和标准化由Khronos(一个非盈利的行业协会,专注于制订、发布、推广多种开放标准)组织负责。2009年,Khronos建立了WebGL工作小组,开始基于OpenGL ES着手建立WebGL规范,并与2011年发布了WebGL规范的第一个版本。