将近20年之久了,3D在Web上的发展一直非常曲折。在1994年,VRML被认为是明日之星,吸引了来自行业内的关注,然而在第一次互联网大爆炸中却不幸地成为了主流web开发的弃子。2000年左右,新的明日之星Shockwave 3D被认为有希望使游戏开发变得大众化;然而到2004年,Shockwave的相关产物也被抛进了孤儿院。在2007年,媒体科技企业的跨域式产品,一个虚拟世界系统第二人生(Second Life)登上了商业周刊的封面,从此开启了一个新的3D抢滩时代,系统中,居民争相租用第二人生的岛屿,尝试去建立一个从未如何具象化的网络殖民地 。截止到2010年,虚拟世界已经成为昨日新闻,消费者开始痴迷于社交和手机游戏来满足他们的娱乐需求。从某种角度来看,这是一连串的失败,但是从另外一个角度看,这不过是考验而已。
好的想法可能很长时间才被印证,但是它们从来不会真的死去。在Web上实现3D就是如此。一旦你回顾过去那些意义非凡但因为一味用力过猛而失败的尝试,谦卑一点地说,你就会发现,我们中的一些人已经达成了共识:3D只不过是另一个媒介类型而已。无论你是用它构建一个大型的多人在线游戏,还是一个交互式的化学课程,抑或其他数不清的3D应用,3D说到底就是另外一种让像素点按照用户意愿而在屏幕上移动的方式。幸运的是,最新一代的浏览器厂商意识到了这一点,开始缓慢但稳健地把浏览器变成一个具有一流的图形图像硬件加速以及一个集成组合架构的富媒体开发平台。一言以蔽之:3D时代已然来临,你做好准备了吗?
本书的目的就是教给你如何使用现代浏览器中的WebGL,Canvas和CSS3等图形图像技术来为桌面和移动浏览器打造高质量的3D应用。同时也会介绍JavaScript性能,移动开发,高性能web设计等相关主题,并进一步深入介绍能够提升你产出效率的工具和库,比如说Three.js,Tween.js以及新的应用框架,3D内容创建时的许多可选。
读过我第一本书《WebGL Up and Running》的读者会发现在我们本书的前面章节很多内容跟《WebGL Up and Running》有重复。这一点是不可避免的。前面章节主要还是概括性的总览和介绍,因为你不能要求读者必须读过前书才能理会本书的内容。抛开前面章节的重复不说,第一本书的读者依然会发现很多额外的知识。即使是重复的介绍章节也有其自己的使命,比第一本书要更加深入。一旦我们读完最初的三章之后,后边的内容就完全不同了。《WebGL Up and Running》的目的是以一种比较深入浅出的介绍方式把读者引入一个全新的,让人多少怯步的主题。如果让我评价本书,我认为它或许不是那么学术严谨,但却充满了激情。如果你读完本书的时候,不留遗憾充满想学到更多的渴望,我将认为自己的工作是有意义的。另一方面,本书的目标是让读者理论与实践相结合,让他们在构建3D应用产品时经验十足。