本节书摘来自异步社区《WebGL入门指南》一书中的第1章,第1.1节WebGL——一个技术定义,作者 【美】Tony Parisi,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.1 WebGL——一个技术定义
WebGL入门指南
WebGL 标准是由科纳斯组织(Khronos Group)开发和维护的,该组织还是管理着 OpenGL、COLLADA等其他你也许早有耳闻的规范的标准组织。以下是科纳斯组织的网站上对WebGL的官方描述:
WebGL是免授权费的,跨平台的应用程序接口API,它将OpenGL ES 2.0作为在HTML网页内的3D绘图环境,作为低级别文档对象模型接口开放。它使用OpenGL渲染语言GLSL ES,并可被整洁地与其他3D内容上层或下层的网页内容捆绑。它是使用JavaScript编程开发语言开发适合动态3D网页应用的理想工具,并已被主流互联网浏览器集成。
这段定义中包含了好几个核心概念,下面让我们逐条地详细铺开来看。
WebGL是一套API
WebGL是一套JavaScript编程接口,并且JavaScript是WebGL的唯一入口,所以也并不需要任何特殊的HTML标签。WebGL中的3D渲染与使用Canvas元素的2D绘画类似,所有的功能都通过JavaScript API调用。事实上,要想调用WebGL接口,只需要使用已有的Canvas元素,并设置一个特殊的绘制上下文即可。
WebGL是基于OpenGL ES 2.0的
OpenGL ES是历史悠久的3D渲染标准OpenGL的精简版本。“ES”是指“Embedded Systems”,即“嵌入式系统”,也就是说,它是为小型的计算机设备量身定制的,其中最典型的就是智能手机和平板电脑。目前iPhone、iPad、Android手机和平板电脑都使用了OpenGL ES来进行3D渲染。WebGL标准的设计者认为,沿着OpenGL ES的足迹前行,打造一个协调一致、跨平台、跨浏览器的3D Web API会更加切实可行。
WebGL和其他网络内容可以整合在一起
WebGL内容可以放置于其他页面内容之上或者之下。3D(canvas)画布元素可以作为页面的一部分,也可以充满整个页面。并且可以放置于
WebGL是用于搭建动态Web应用的
WebGL在设计之初就是为Web交付而生的。尽管脱胎于OpenGL ES,但却继承了那些能够更好地和Web浏览器整合、与JavaScript语言协同工作的特性,因此WebGL对于Web交付是非常友好的。
WebGL是跨平台的
WebGL可以运行于任何操作系统,以及从手机、平板电脑到桌面电脑的任何设备。
WebGL是完全免费的
和所有开放的Web规范一样,WebGL是免费使用的。没有人会因为WebGL而向你征收版权费用。
许多浏览器厂商,包括Chrome、Firefox、Safari和Opera,都做出了显著贡献,包括对WebGL的支持以及大量的开发资源,这些浏览器团队中的一些工程师也是WebGL规范工作组里的核心成员。WebGL规范流程是对所有科纳斯组织的成员开放的,同时他们建立了一个公开的邮件列表。你可以在附录A中找到邮件列表的信息和其他关于WebGL规范的资源。