第1章 入门篇

Web自20世纪90年代初诞生以来,经过20多年的发展,现在已经成为Internet上最重要、最普及的应用,从HTML1.0发展到2.0、3.0、4.0、XHTML以及现在的HTML5.0。但至今为止,主流的Web页面仍然是二维的,随着3D技术的日益普及,Web技术正朝着3D方向发展。传统的3D页面开发技术主要包括:

1.Flash 3D

Flash的前身是Future Wave公司的Future Splash,是世界上第一个商用的二维矢量动画软件,用于设计和编辑Flash文档。1996年,美国Macromedia公司收购了Future Wave,并将其改名为Flash。2005年,Macromedia被Adobe公司收购。目前,Flash动画在Web上的应用已经非常普及,Internet上大多数视频都是基于Flash播放器的,如优酷、土豆、酷6、搜狐等。正是由于Flash在实际中的普遍应用,Flash 3D引擎也很多,如Papervision 3D、Alternativa 3D、Away 3D、Sandy 3D、Flash Player 10等,但它们都不是开源的,而且必须安装Flash插件才能运行。

2.Unity 3D

Unity是由Unity Technologies公司开发的一个可以轻松创建三维视频游戏、建筑可视化、实时三维动画等类型的多平台综合型游戏开发工具,是一个全面整合的专业游戏引擎,可发布游戏至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏、手机游戏,支持Mac和Windows的网页浏览。游戏开发是Unity 3D的主要应用,熟悉C#或JavaScript的开发者,可以轻松入门。其典型的产品有PC游戏《新仙剑》《将魂三国》《QQ乐团》和手机游戏《神庙逃亡》《极限摩托车》《公路战士》等。和Flash一样,Unity也不是开源的,基于网页的应用也需要安装插件才能运行,而且Unity 3D的针对性很强,即主要针对游戏开发。

3.CopperCube

CopperCube是由Ambiera公司开发的一款用于创建交互式3D场景的软件,著名的3D引擎Irrlicht即是该公司的产品,它可制作从最简单三维全景到复杂的完整三维游戏。Coppercube可将场景、资源、逻辑直接导出成引擎支持的场景文件,不需编写代码即可生成简单的游戏或应用,并可由Irrlicht引擎导出成Flash-swf、HTML5-Canvas、Android-app或者独立的Windows-exe文件,是一款很有前途的3D开发工具,但CopperCube是一个商用软件,并不是一个公共标准,用户需要购买使用。

4.Silverlight

Silverlight中文名“微软银光”,是由Microsoft推出的一种新的Web呈现技术,能在各种平台上运行。对于Web用户来说,Silverlight是一个简单的浏览器插件,用户只要安装了这个插件程序,就可以在Windows和Macintosh上的多种浏览器中运行相应版本的Silverlight应用程序;对于开发者来说,它提供了一套开发框架,并通过使用基于向量的图层技术,支持任何尺寸图像的无缝整合,对基于asp.net、AJAX在内的Web开发环境实现了无缝连接。Silverlight运行在.NET 3.0以上,它不是开源的,对于Web来说仍然需要安装插件。

在工业需求的推进下,HTML5于2004年被Whatwg提出,2007年被W3C接纳,2008年1月HTML5的第一份正式草案公布,2012年12月HTML5规范正式定稿,2013年5月,HTML5.1正式草案公布。目前,支持HTML5的浏览器包括Firefox、IE9及其更高版本、Chrome(谷歌浏览器)、Safari、Opera、360浏览器、搜狗浏览器、QQ浏览器、猎豹浏览器等。

在图形图像方面,HTML5新增了Canvas标记,允许浏览器直接在上面绘制矢量图形,这意味着用户可以脱离各种插件,直接在浏览器中显示图形或动画。目前HTML5和Canvas2D规范的制定已经完成,尽管还不能算是W3C标准,但是这些规范已经功能完整,它最终代替多媒体框架(如Flash)也是一个必然趋势。现在一些主流的大公司都已经逐步转向使用HTML5。

HTML5只完成了Canvas 2D规范,直接利用Canvas API只能进行二维平面图形的绘制,如果想制作3D场景,用户必须自行开发3D引擎,这对于绝大多数的Web开发者来说,仍然是一个巨大的挑战。

2011年3月,多媒体技术标准化组织Khronos在美国洛杉矶举办的游戏开发大会上发布了WebGL标准规范R 1.0,支持WebGL的浏览器不借助任何插件便可提供硬件图形加速,从而提供高质量的3D体验。WebGL标准已经获得了Apple(Mac OS Safari Nightly Builds)、Google(Chrome 9.0)、Mozilla(Firefox 4.0 Beta)和Opera(Preview Build)等的支持。