- WebGL 3D開發實戰詳解(第2版)
- 吳亞峰 于復興 索依娜
- 2482字
- 2020-07-07 17:17:01
前言
寫作本書的目的
隨著各大瀏覽器先后支持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。
作者