前言
写作本书的目的
随着各大浏览器先后支持WebGL以及HTML5的兴起,越来越多的开发者与公司开始将目标转向WebGL的开发。网页游戏市场的火热发展也催生了很多优秀的引擎诞生,像白鹭的egret3D、LayaBox的LayaAir引擎在这块“蓝海”上已经抢占了先机。与市场的火热不相称的是学习资料的匮乏,国内专门系统介绍WebGL开发的图书和资料很少,不能满足初学者学习需要。根据这种情况,作者结合多年从事游戏应用开发经验编写了本书。
了解WebGL的技术人员可能知道,WebGL是一种通过统一标准的跨平台的OpenGL ES接口实现的,用在浏览器中绘制、显示三维计算机图形的技术。该技术的优势在于同一个程序能够通过浏览器运行在多种设备上,避免了程序在各个平台的兼容与适配问题。
随着HTML5和微信等平台的兴起,使得WebGL项目推广的难度大大降低。越来越多的读者希望深入学习WebGL技术。通过JavaScript语言来开发HTML5与WebGL 3D应用,就能在页面中呈现出酷炫的3D画面,可以说是“海阔凭鱼跃,天高任鸟飞”。目前,WebGL有1.0和2.0两个版本,本书将着重介绍WebGL 2.0。
本书特点
❑ 内容丰富,由浅入深。
本书内容组织上本着“起点低,终点高”的原则,覆盖了从最基础的与HTML5相关的知识到学习WebGL 2.03D应用开发必知必会的基础知识,再到基于Three.js引擎和Babylon.js引擎实现各种高级特效。同时,本书还详细介绍了如何结合3D物理引擎Bullet的JavaScript版本Ammo进行开发。为了让读者不但能掌握好基础知识,而且还能学习到一些实际项目的开发经验,本书最后还给出了一个具体案例。
这样的组织形式使得初入网页3D开发的读者可以一步一步成长为WebGL 2.0的开发达人,这符合绝大部分想学习页面3D游戏和应用开发的学生、软件开发人员以及相关技术人员的需求。
❑ 结构清晰,讲解到位。
本书配合每个需要讲解的知识点给出了丰富的插图与完整的案例,使得初学者易于上手,有一定基础的读者便于深入。书中所有的案例均是结合作者多年的开发心得进行设计,结构清晰明朗,便于读者学习。同时书中还给出了很多作者多年来积累的编程技巧与心得,希望对读者有一定的参考价值。
❑ 既可作为自学读物,也适合作为教材。
本书的内容组织及安排既考虑了读者自学的需要,也考虑了作为高等院校相关专业课程教材的需要,最后一章的案例可以作为课程设计的参考案例。
内容导读
本书共分为15章,内容按照由浅入深的原则进行安排。第1章主要介绍了HTML5开发的基础知识;第2~7章为WebGL 2.0开发中必知必会的基础知识;第8~10章为WebGL 2.0开发中的一些高级知识;第11~12章介绍了对WebGL封装比较好的Three.js引擎;第13章介绍支持WebGL 1.0和2.0两个版本的Babylon.js引擎;第14章介绍了3D物理引擎Bullet的JavaScript版本——Ammo;第15章给出了一个完整的项目实战案例——在线3D模型交互式编辑系统。主要内容介绍如下表所示。
读者对象
本书内容丰富,从基础知识到高级特效再到Ammo物理引擎,从简单的应用程序到完整的项目实战案例,适合不同需求、不同水平层次的各类读者。
❑ 具有一定OpenGL/OpenGL ES基础的编程人员
WebGL与OpenGL/OpenGL ES十分相似,且WebGL通过统一标准的跨平台OpenGL ES接口实现的,免去了开发人员学习不同接口的麻烦。本书可帮助此类读者迅速熟悉WebGL的开发。
❑ 有一定HTML5基础并且希望学习WebGL技术的读者
传统HTML5的开发人员在网页开发中已有了相当丰富的经验,但部分人员希望在网页开发中加入酷炫的3D场景,但因为未能掌握WebGL技术而苦恼。此类读者通过对本书的学习,并结合自己的开发经验能够快速地提高3D开发水平。
❑ 具有少量HTML5经验与图形学知识的开发人员
虽然此类开发人员具有一定的编程基础,但缺乏此方面的开发经验,在实际的项目开发中往往感到吃力。本书既对项目开发中所需要的HTML5开发基础进行了详细介绍,又结合作者的开发经验对WebGL 2.0的整体开发框架和技巧进行细致讲解。该类读者通过本书的学习可快速掌握相关的开发技巧,了解详细的开发流程,进一步提升编程开发能力。
❑ 致力于学习WebGL的计算机及相关专业的学生
由于此类读者在学校学习的知识偏重理论基础,因此实际操作与开发能力较弱。本书既有基础知识介绍又有完整的案例。读者可以在学习基础知识的同时,结合案例进行分析,使学习过程更高效。
❑ 具有一定WebGL开发基础并希望进一步学习WebGL 2.0高级开发技术的读者
此类读者具有一定的WebGL 3D开发基础,并且希望学习最新的WebGL 2.0技术以提升开发能力。本书主要介绍WebGL 2.0技术,结合具体案例帮助读者学习WebGL 2.0的特性。
本书作者
吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,具有十多年的Java开发与培训经验。主要的研究方向为Vulkan、OpenGL ES、手机游戏,以及VR/AR。同时,他是3D游戏、VR/AR独立软件工程师,并兼任百纳科技软件培训中心首席培训师。近十年来为数十家著名企业培养了上千名高级软件开发人员,曾编写过《OpenGL ES 3x游戏开发》(上下卷)、《Unity案例开发大全》(第1~2版)、《VR与AR开发高级教程——基于Unity》《H5和WebGL 3D开发实战详解》《Android应用案例开发大全》(第1~4版)、《Android游戏开发大全》(第1~4版)等畅销技术图书。2008年年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。
于复兴,北京科技大学硕士,从业于计算机软件领域十余年,在软件开发和计算机教学方面有着丰富的经验。工作期间曾主持科研项目“PSP流量可视化检测系统研究与实现”,主持研发了多项省市级项目,同时为多家单位设计开发了管理信息系统,并在各种科技刊物上发表了多篇相关论文。2012年开始关注HTML5平台下的应用开发,参与开发了多款手机娱乐、游戏应用。
索依娜,毕业于燕山大学,现任职于华北理工大学。2003年开始从事计算机领域教学及软件开发工作,曾参与编写《Android核心技术与实例详解》《Android平板电脑开发实战详解和典型案例》等技术图书。近几年曾主持市级科研项目一项,发表论文8篇,拥有多项软件著作权,多项发明及实用新型专利。同时多次指导学生参加国家级、省级计算机设计大赛并获奖。
本书在编写过程中得到了华北理工大学以升大学生创新实验中心移动及互联网软件工作室的大力支持,同时王琛、刘亚飞、夏新园、宋润坤、张争、苏瑞梦、杨明、忽文龙以及作者的家人为本书的编写提供了很多帮助,在此表示衷心感谢!
由于作者水平和学识有限,且书中涉及的知识较多,难免有疏漏之处,敬请广大读者批评指正,并提宝贵意见,本书责任编辑的联系邮箱为zhangtao@ptpress.com.cn。
作者