为了渲染本地 Chrome 中的 3D 图形,Google 使用的是 WebGL 。这样做的问题在于 WebGL 依赖于 OpenGL 2.0,而并非所有的 Windows 系统都安装了它的驱动。 ANGLE (近似本地图形层引擎 Almost Native Graphics Layer Engine)项目试图在 WebGL 和 DirectX 之间建立简单的层,用来支持 Chrome 在任意 Windows 系统中都可以处理 3D 图形。
一种基于 OpenGL ES 2.0、跨平台、免版税的针对低级 3D 图形 API 的 web 标准,它通过 HTML5 的 Canvas 元素暴露出来,作为文档对象模型( Document Object Model )的接口。熟悉 OpenGL ES 2.0 API 的开发者会发现,WebGL 使用的是 GLSL 基于着色的 API,它在语义上与底层的 OpenGL ES 2.0 API 拥有类似的结构。它与 OpenGL ES 2.0 的规格非常相近,只是其中有一些为期望在内存托管语言,像 JavaScript,之外使用它所做的特别处理。
实际上,WebGL 让浏览器具备了在本地处理 3D 图形的能力,而所有主要的浏览器厂商——Apple、Google、Mozilla 以及 Opera 等等——都是 WebGL 工作组的成员,Khronos 组(一个非盈利的协会)的成员中,一部分是推动者:AMD、Apple、ARM、Intel、Motorola、Nokia、NVIDIA、Sun、德州机器,还有很多贡献者:创新、戴尔、EA、Google、IBM、Opera、Mozilla,以及许多其它与图形领域有关系的公司。
但是存在这样的问题,当前对 WebGL 的实现是基于 OpenGL 2.0 运行的,而并非所有 Windows 的机器上都会安装它的驱动,或者对于某些图形卡来说根本就不存在。这使得在这样的系统中我们无法通过 WebGL 进行 3D 渲染。而这也正是 Google 使用 ANGLE 所要解决的问题,它会在 WebGL 和 DirectX 之间创建简单的层,用来在 Windows 中不依赖于 OpenGL 驱动来支持 Chrome 进行 3D 渲染。
ANGLE 还会帮助开发者在 Windows 中创建原型,并且也将手机和嵌入式系统作为将来的目标,因为 OpenGL ES 本来就是专门针对这样的系统所设计的。ANGLE 已经基于新的BSD 许可公开了源码。
评论