本書從AR/VR理論知識(shí)點(diǎn)到專題技術(shù)知識(shí)點(diǎn)(場(chǎng)景、燈光、材質(zhì)等)都做了非常詳細(xì)的講解,將晦澀的專題技術(shù)知識(shí)點(diǎn)以通俗易懂的語言進(jìn)行描述,并且引入相應(yīng)的小規(guī)模案例,便于讀者在動(dòng)手實(shí)操的過程中更加輕松地理解它們。對(duì)于之前沒有接觸過HTML CSS開發(fā)的讀者,本書還提供了在線圖形化開發(fā)WebXR應(yīng)用的詳細(xì)步驟(詳見第5章),通過一些簡(jiǎn)單的操作步驟就能夠制作出效果不俗的應(yīng)用進(jìn)行發(fā)布和預(yù)覽,因此對(duì)于初學(xué)者非常友好。
本書內(nèi)容
全書分為6章,其中第1章為概述部分,第2章和第3章為WebXR技術(shù)的框架部署、代碼規(guī)范和開發(fā)組件的講解,第4~6章為WebXR開發(fā)綜合案例。各章主要內(nèi)容介紹如下。
第1章主要介紹了虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)以及混合現(xiàn)實(shí)這3種技術(shù)的概念、技術(shù)特征、實(shí)現(xiàn)的相關(guān)原理以及實(shí)現(xiàn)所需的相關(guān)硬件設(shè)備環(huán)境,讓讀者從感性認(rèn)識(shí)方面出發(fā)了解這3種技術(shù)的相關(guān)知識(shí)。
第2章介紹了WebXR技術(shù)的發(fā)展以及目前主流WebXR技術(shù)開發(fā)使用的框架。本章講解了Three.js、AFrame以及Babylon.js這3種框架的使用方法、代碼編寫風(fēng)格以及小型案例實(shí)現(xiàn)的效果。
第3章是正式步入WebXR開發(fā)的前置章節(jié),重點(diǎn)講解了在Babylon.js框架下WebXR開發(fā)中所必須掌握的模塊創(chuàng)建方法,包括場(chǎng)景、燈光、相機(jī)、動(dòng)畫、音頻、材質(zhì)等的創(chuàng)建,并且針對(duì)其中的代碼以及API的使用做了詳細(xì)的說明。
第4章以中國(guó)典型傳統(tǒng)建筑三維展示項(xiàng)目為例,詳細(xì)介紹了WebXR開發(fā)環(huán)境搭建、案例介紹與工程創(chuàng)建以及場(chǎng)景創(chuàng)建、場(chǎng)景交互的開發(fā)步驟和方法,使讀者能夠深入理解并掌握商用WebXR案例的開發(fā)流程。
第5章介紹了在線圖形化開發(fā)WebXR應(yīng)用的具體步驟,對(duì)于編程基礎(chǔ)較弱的初學(xué)者非常友好,讀者可以根據(jù)書中的內(nèi)容在圖形化界面中完成WebXR開發(fā)的每一步操作,并最終完成測(cè)試與預(yù)覽。
第6章以目前國(guó)內(nèi)WebXR商業(yè)項(xiàng)目開發(fā)主流使用的Cocos Creator引擎作為開發(fā)工具,以第十四屆全運(yùn)會(huì)為背景,通過Cocos Creator引擎開發(fā)一款帶有皮影戲風(fēng)格的全運(yùn)會(huì)比賽項(xiàng)目的WebXR游戲,讓使用者在體驗(yàn)WebXR游戲的同時(shí),還能夠了解全運(yùn)會(huì)各比賽項(xiàng)目的比賽規(guī)則,可以說本章案例非常具有代表性,也非常接近真實(shí)商業(yè)項(xiàng)目的規(guī)模。
開發(fā)環(huán)境
本書每個(gè)章節(jié)所使用的開發(fā)工具可能都不一樣,但是,只要開發(fā)人員所使用的開發(fā)主機(jī)硬件環(huán)境滿足如下相關(guān)配置要求即可。
序號(hào)
配置項(xiàng)
配 置 要 求
1
CPU
2核4線程 1.8GHz及以上
2
內(nèi)存
4GB及以上
3
操作系統(tǒng)
Windows 7/10/11
4
硬盤
500GB及以上(系統(tǒng)盤預(yù)留至少15GB剩余空間)
5
網(wǎng)絡(luò)
有線或者無線網(wǎng)絡(luò)(僅限于需要在官方下載資源包的情景)
6
顯卡
入門級(jí)的獨(dú)立顯卡及以上
配套資源
教學(xué)課件、程序代碼和素材資源包(約1GB)等,掃描下方二維碼或者到清華大學(xué)出版社官方網(wǎng)站本書頁面獲取。
配套資源
本書還提供一些網(wǎng)絡(luò)上的輔助學(xué)習(xí)視頻,需關(guān)注微信公眾號(hào)觀看,具體獲取方式見配套資源中的說明。
致謝
作者要特別感謝對(duì)本書寫作有幫助的所有人,正是他們的幫助以及悉心指導(dǎo)才讓作者有了完成本書的信心。
首先,感謝陜西加速想象力教育科技有限公司,該公司建立的AR/VR訓(xùn)練營(yíng)為廣大AR/VR開發(fā)愛好者提供了非常豐富的學(xué)習(xí)資源,并對(duì)本書的一些實(shí)現(xiàn)思想、素材等提供了適當(dāng)?shù)膮⒖肌M瑫r(shí),張克發(fā)經(jīng)理以及公司技術(shù)人員在作者寫書的過程中積極參與,并且提供了非常多的指導(dǎo)和幫助。
其次,感謝各WebXR技術(shù)官方網(wǎng)站提供的開源WebXR開發(fā)框架(Three.js/AFrame/Babylon.js/AR.js/Cocos Creator等)以及相關(guān)的開發(fā)手冊(cè),使作者在本書的每個(gè)章節(jié)論述相關(guān)的理論知識(shí)點(diǎn)或者是重點(diǎn)操作說明時(shí)能夠有章可循。官方開發(fā)手冊(cè)不僅是編寫本書的重要參考依據(jù),同時(shí)也是WebXR開發(fā)初學(xué)者必須關(guān)注的資源。
期望本書的問世能夠激發(fā)更多WebXR開發(fā)愛好者和初學(xué)者的學(xué)習(xí)興趣,降低WebXR開發(fā)學(xué)習(xí)的入門門檻。
在本書的編寫過程中,得到了省部共建藏語智能信息處理及應(yīng)用國(guó)家重點(diǎn)實(shí)驗(yàn)室、青海省物聯(lián)網(wǎng)重點(diǎn)實(shí)驗(yàn)室、高原科學(xué)與可持續(xù)發(fā)展研究院、青海師范大學(xué)計(jì)算機(jī)學(xué)院領(lǐng)導(dǎo)和師生的熱心支持,書中使用了課題組的大量資料,在此致以誠摯的謝意。
另外,書中各部分教學(xué)內(nèi)容得到第二批新工科項(xiàng)目面向區(qū)域的多學(xué)科交叉融合新工科人才培養(yǎng)探索與實(shí)踐(編號(hào): EDXKJC20200527)、青海省科技廳重點(diǎn)研發(fā)與轉(zhuǎn)化計(jì)劃項(xiàng)目(編號(hào): 2022SF165)、國(guó)家重點(diǎn)研發(fā)計(jì)劃公共文化服務(wù)裝備研發(fā)及應(yīng)用示范(編號(hào): 2020YFC1523300)和青海師范大學(xué)校級(jí)教學(xué)研究項(xiàng)目(編號(hào): qhnujy2021102)創(chuàng)新基金的資助。
由于作者水平有限,書中難免存在不足之處,敬請(qǐng)讀者批評(píng)指正。
謝平2023年3月于西寧
第1章虛擬現(xiàn)實(shí)基礎(chǔ)
1.1增強(qiáng)現(xiàn)實(shí)介紹
1.1.1增強(qiáng)現(xiàn)實(shí)概念
1.1.2增強(qiáng)現(xiàn)實(shí)技術(shù)特點(diǎn)
1.1.3增強(qiáng)現(xiàn)實(shí)技術(shù)發(fā)展
1.1.4增強(qiáng)現(xiàn)實(shí)技術(shù)分類
1.1.5增強(qiáng)現(xiàn)實(shí)的技術(shù)原理
1.2虛擬現(xiàn)實(shí)介紹
1.2.1虛擬現(xiàn)實(shí)概念
1.2.2虛擬現(xiàn)實(shí)的特性
1.2.3虛擬現(xiàn)實(shí)技術(shù)發(fā)展
1.2.4虛擬現(xiàn)實(shí)技術(shù)分類
1.2.5虛擬現(xiàn)實(shí)技術(shù)原理
1.3混合現(xiàn)實(shí)介紹
1.3.1混合現(xiàn)實(shí)概念
1.3.2混合現(xiàn)實(shí)內(nèi)容設(shè)計(jì)
1.3.3混合現(xiàn)實(shí)中的交互設(shè)計(jì)
1.3.4混合現(xiàn)實(shí)體驗(yàn)舒適度
1.3.5混合現(xiàn)實(shí)內(nèi)容設(shè)計(jì)的視覺表現(xiàn)
1.4虛擬現(xiàn)實(shí)硬件設(shè)備介紹
1.4.1PC端頭顯設(shè)備
1.4.2一體式頭顯設(shè)備
1.4.3移動(dòng)端頭顯設(shè)備
1.5增強(qiáng)現(xiàn)實(shí)硬件設(shè)備介紹
1.5.1微軟HoloLens智能眼鏡
1.5.2Magic Leap
1.5.30glass AR
1.5.4HoloMax全息交互系統(tǒng)
1.5.5XMAN智能眼鏡
第2章WebXR介紹
2.1WebGL介紹
2.1.1基本概念
2.1.2發(fā)展歷史
2.1.3應(yīng)用場(chǎng)景
2.2WebXR技術(shù)發(fā)展與現(xiàn)狀
2.2.1W3C標(biāo)準(zhǔn)化組織
2.2.2曇花一現(xiàn)的WebVR API
2.2.3WebXR API介紹
2.3Three.js框架介紹
2.3.1基于Python的Web服務(wù)器搭建
2.3.2基于NPM的Web服務(wù)器搭建
2.4AFrame框架介紹
2.5Babylon.js引擎介紹
2.5.1初始化網(wǎng)頁
2.5.2初始化3D場(chǎng)景
2.5.3創(chuàng)建三維物體
2.5.4修改物體的材質(zhì)
第3章WebXR開發(fā)基礎(chǔ)
3.1一行代碼讓網(wǎng)站支持3D和VR
3.2場(chǎng)景創(chuàng)建
3.2.1快速創(chuàng)建場(chǎng)景
3.2.2場(chǎng)景創(chuàng)建API說明
3.3場(chǎng)景燈光
3.3.1燈光的類型
3.3.2燈光顏色的設(shè)置
3.3.3燈光開關(guān)和調(diào)光器
3.4場(chǎng)景陰影
3.4.1陰影生成
3.4.2透明物體和陰影
3.4.3燈光與陰影的關(guān)系
3.4.4體積光散射后處理
3.5場(chǎng)景交互
3.5.1如何在場(chǎng)景中進(jìn)行交互
3.5.2鍵盤的交互
3.5.3鼠標(biāo)的交互
3.6相機(jī)
3.6.1通用相機(jī)
3.6.2軌道相機(jī)
3.6.3跟隨相機(jī)
3.7動(dòng)畫
3.7.1設(shè)計(jì)動(dòng)畫
3.7.2序列動(dòng)畫
3.8音頻
3.8.1創(chuàng)建音頻文件
3.8.2通過事件觸發(fā)音頻播放
3.8.3音樂屬性
3.8.4通過ArrayBuffer來加載音頻文件
3.8.5通過資源管理器加載音頻文件
3.9相機(jī)和網(wǎng)格
3.9.1相機(jī)的行為
3.9.2網(wǎng)格的行為
3.10資源管理
3.10.1SceneLoader.Append
3.10.2SceneLoader.Load
3.10.3SceneLoader.ImportMesh
3.10.4SceneLoader.ImportMeshAsync
3.10.5SceneLoader.LoadAssetContainer
3.10.6SceneLoader.ImportAnimations
3.10.7SceneLoader.AppendAsync
3.10.8AssetsManager
3.10.9使用加載進(jìn)度
3.11材質(zhì)
3.11.1材質(zhì)的創(chuàng)建
3.11.2漫反射
3.11.3環(huán)境光顏色
3.11.4透明顏色
3.11.5紋理
3.11.6透明紋理
3.11.7顯示模型線框
第4章中國(guó)傳統(tǒng)建筑三維展示案例開發(fā)
4.1基于VSCode開發(fā)環(huán)境配置
4.1.1安裝VSCode開發(fā)工具
4.1.2Live Server插件安裝
4.1.3在VSCode中調(diào)試代碼
4.2PBR材質(zhì)的使用
4.2.1PBR材質(zhì)簡(jiǎn)介
4.2.2PBR基礎(chǔ)理論
4.2.3PBR材質(zhì)的制作
4.2.4使用Blender導(dǎo)出glTF模型
4.2.5在Sandbox中查看模型效果
4.3模型導(dǎo)出
4.3.1常見的3D模型格式
4.3.2從3ds Max軟件導(dǎo)出glTF模型
4.3.3從Blender導(dǎo)出glTF模型
4.3.4在Sandbox中查看glTF模型
4.4加載頁面
4.4.1基礎(chǔ)頁面創(chuàng)建
4.4.2創(chuàng)建加載頁面
4.5場(chǎng)景加載
4.5.1設(shè)置Canvas
4.5.2初始化引擎
4.5.3創(chuàng)建場(chǎng)景Scene
4.5.4游戲循環(huán)
4.5.5相機(jī)的創(chuàng)建
4.5.6創(chuàng)建天空盒
4.5.7創(chuàng)建環(huán)境燈光
4.5.8模型加載
4.6場(chǎng)景交互
4.6.1UI的創(chuàng)建
4.6.2音樂的創(chuàng)建和控制
4.6.3場(chǎng)景中物體的交互
第5章WebAR解決方案介紹
5.1基于Kivicube的WebAR應(yīng)用開發(fā)
5.1.1項(xiàng)目創(chuàng)建
5.1.2場(chǎng)景創(chuàng)建
5.1.3創(chuàng)建場(chǎng)景內(nèi)容
5.1.4創(chuàng)建場(chǎng)景交互
5.1.5場(chǎng)景保存與分享
5.2基于EasyAR的WebAR應(yīng)用開發(fā)
5.2.1EasyAR WebAR簡(jiǎn)介
5.2.2EasyAR WebAR快速入門
5.2.3EasyAR Web3D模型動(dòng)畫要求
5.3基于開源的AR.js應(yīng)用開發(fā)
5.3.1圖像跟蹤案例
5.3.2基于位置的AR案例
5.3.3基于標(biāo)記的AR案例
第6章Web游戲非遺慶全運(yùn)開發(fā)案例
6.1案例介紹
6.2Cocos Creator引擎
6.2.1Cocos Creator引擎簡(jiǎn)介
6.2.2引擎安裝
6.2.3使用Dashboard
6.2.4Hello World
6.3場(chǎng)景創(chuàng)建
6.3.1場(chǎng)景資源
6.3.2節(jié)點(diǎn)和組件
6.3.3坐標(biāo)系和節(jié)點(diǎn)變換屬性
6.3.4使用場(chǎng)景編輯器搭建場(chǎng)景圖像
6.4游戲動(dòng)畫
6.4.1動(dòng)畫幀
6.4.2Sprite
6.4.3動(dòng)畫片段
6.4.4SpriteAnimation類的實(shí)現(xiàn)
6.4.5編輯SpriteAnimation
6.5游戲UI交互
6.5.1UI入門
6.5.2Canvas組件
6.5.3UI變換組件
6.5.4Widget組件
6.5.5Button組件
6.6游戲發(fā)布
6.6.1熟悉構(gòu)建發(fā)布面板
6.6.2構(gòu)建選項(xiàng)介紹
參考文獻(xiàn)