VR與AR開發高級教程 基於Unity 第2版
內容描述
本書主要介紹AR與VR應用的開發流程。本書共11章。第1章主要介紹了AR應用開發的基礎知識,第2~4章介紹了AR開發中所廣泛使用的Vuforia與ARCore引擎,第5章介紹基於小米VR的應用開發,第6~8章分別介紹了基於HTC VIVE與Leap Motion設備的應用開發步驟,第9章介紹了當前VR與AR的創新風口,最後兩章分別給出了一個完整的VR游戲案例與一個結合AR、VR的科普類應用案例。本書適合VR、AR應用開發方面的專業人士閱讀。
目錄大綱
第 1章 AR應用開發的基礎知識 11.1 引言 11.2 AR插件 21.3 Unity開發環境的搭建 21.3.1 Windows平臺下Unity的下載與安裝 31.3.2 macOS平臺下Unity的下載與安裝 61.3.3 把目標平臺的SDK集成到Unity中 91.4 Vuforia開發環境的搭建 131.5 本章小結 161.6 習題 17第 2章 Vuforia的核心功能 182.1 圖片掃描 182.2 圓柱體識別 192.2.1 圖片規格 192.2.2 如何獲取實際物體的具體參數 192.2.3 製作商標圖片的註意事項 202.2.4 如何達到最好的效果 232.3 多目標識別 232.3.1 多目標識別的原理 232.3.2 對多目標識別對象的選擇 242.4 下一代條形碼識別——VuMark 252.5 用戶自定義目標 262.5.1 適合追蹤的場景和物體 262.5.2 用戶自定義目標預製件 262.6 虛擬按鈕 272.6.1 按鈕的設計以及佈局 272.6.2 虛擬按鈕的相關特性 272.6.3 虛擬按鈕的擺放 282.7 物體識別 292.7.1 可識別物體 292.7.2 下載Vuforia對象掃描儀 292.7.3 掃描3D物體的步驟 302.8 雲識別 322.8.1 雲識別的優勢以及註意事項 322.8.2 雲識別數據庫與目標的創建 322.9 模型識別 352.9.1 模型識別的註意事項 352.9.2 模型目標的製作 352.9.3 創建模型目標的註意事項 372.10 水平面識別 372.11 本章小結 382.12 習題 38第3章 關於Vuforia核心功能的官方案例 393.1 官方案例下載與AR Camera參數詳解 393.2 圖片識別案例詳解 433.2.1 預製件的通用腳本 433.2.2 運行結果 503.2.3 開發流程 503.3 圓柱識別案例詳解 543.3.1 運行結果 543.3.2 開發流程 553.4 多目標識別案例詳解 583.4.1 運行結果 593.4.2 開發流程 593.5 VuMark案例詳解 633.5.1 運行結果 643.5.2 開發流程 643.6 自定義目標識別案例詳解 673.6.1 運行結果 673.6.2 開發流程 683.7 虛擬按鈕案例詳解 743.7.1 運行結果 743.7.2 開發流程 743.8 3D物體識別案例詳解 793.8.1 運行結果 793.8.2 開發流程 803.9 雲識別案例詳解 823.9.1 運行結果 833.9.2 開發流程 833.10 模型目標識別案例詳解 913.10.1 運行結果 913.10.2 開發流程 923.11 水平面識別案例詳解 933.11.1 主要腳本 933.11.2 運行結果 973.11.3 開發流程 973.12 本章小結 983.13 習題 98第4章 ARCore 994.1 ARCore基礎知識 994.2 ARCore 圖片識別功能 1024.2.1 運行結果 1034.2.2 註意事項 1034.2.3 案例詳解 1044.3 ARCore平面識別功能 1084.3.1 運行結果 1094.3.2 案例詳解 1094.4 ARCore雲錨點功能 1154.4.1 運行結果 1154.4.2 案例詳解 1164.5 本章小結 1234.6 習題 123第5章 小米VR應用開發 1245.1 小米VR SDK 1245.1.1 下載與導入小米VR SDK並運行官方案例 1255.1.2 SDK官方預製件 1285.1.3 SDK中的腳本文件 1295.2 小米VR SDK官方案例 1305.3 一個綜合案例 1325.3.1 案例策劃與準備工作 1335.3.2 創建項目與搭建場景 1345.3.3 GameManager.cs腳本的編寫 1375.3.4 moveController.cs腳本的編寫 1395.4 本章小結 1405.5 習題 140第6章 HTC VIVE平臺下的VR開發基礎 1416.1 HTC VIVE基礎知識 1426.1.1 HTC VIVE設備的安裝 1446.1.2 VIVEPORT和手機通知 1486.2 SteamVR SDK基礎知識 1516.2.1 SteamVR SDK的下載與導入 1516.2.2 SteamVR SDK的目錄結構 1526.3 第 一個HTC VIVE項目 1546.3.1 項目的搭建 1546.3.2 [CameraRig]預製件 1566.4 控制手柄的按鈕監聽 1586.4.1 SteamVR_Controller.cs腳本 1596.4.2 MyControllerEvent.cs腳本 1626.5 SteamVR SDK案例 1646.5.1 場景功能 1646.5.2 代碼 1656.6 SteamVR SDK的關鍵腳本 1666.6.1 凝視處理 1676.6.2 激光射線 1696.6.3 追蹤渲染 1726.6.4 按鈕監聽 1736.7 本章小結 1766.8 習題 176第7章 HTC VIVE平臺下的VR開發進階 1777.1 VRTK的安裝與使用 1777.2 控制手柄的按鈕監聽 1787.2.1 按鈕監聽接口 1797.2.2 按鈕監聽接口的調用 1837.3 光線的創建 1857.3.1 光線開發的基本知識 1867.3.2 光線案例的開發 1907.4 光線UI交互拾取 1937.4.1 光線UI交互拾取開發的基本知識 1937.4.2 光線UI交互拾取案例的開發 1947.5 基礎傳送 1997.5.1 傳送技術 1997.5.2 傳送案例的開發 2047.6 物體的抓取與使用 2077.6.1 基本知識 2077.6.2 抓取案例 2127.7 設置控制器上按鈕的標簽 2157.7.1 按鈕的標簽 2157.7.2 案例詳解 2157.8 綜合案例 2187.8.1 運行結果 2197.8.2 場景的搭建 2197.8.3 動畫的製作 2237.8.4 腳本的開發 2247.9 本章小結 2327.10 習題 232第8章 Leap Motion在開發中的應用 2338.1 Leap Motion開發環境配置 2338.1.1 Leap Motion驅動的下載與安裝 2348.1.2 官方SDK與Example下載 2358.2 Leap_Motion_Core_Assets_4.4.0.unitypackage模塊 2368.2.1 使用預製件獲取模擬手 2368.2.2 Leap的手模型 2398.2.3 Leap Motion的服務提供者腳本 2428.2.4 Leap Motion與Vive頭盔的結合 2448.3 Leap Motion中擴展的交互功能 2458.3.1 交互案例的導入及相關設置 2458.3.2 Leap Motion交互案例 2478.4 Leap Motion圖形渲染器的功能 2718.4.1 Leap Motion圖形渲染器的主要腳本 2718.4.2 烘焙渲染器官方案例 2728.4.3 扭曲空間官方案例 2748.4.4 動態渲染器官方案例 2768.4.5 大型對象官方案例 2788.4.6 錶面著色器官方案例 2808.5 手模塊 2828.6 本章小結 2868.7 習題 286第9章 VR與AR創新風口 2879.1 虛擬現實技術 2879.2 增強現實技術 2919.3 混合現實技術 2959.4 本章小結 2979.5 習題 297第 10章 HTC VIVE游戲——VR化的《俄羅斯方塊》 29810.1 背景與操作過程概述 29810.1.1 游戲背景概述 29810.1.2 游戲的操作過程 29910.2 游戲的策劃與開發前的準備工作 30010.2.1 游戲的策劃 30110.2.2 使用Unity開發游戲前的準備工作 30110.3 游戲的架構 30210.3.1 主場景 30210.3.2 游戲架構 30310.4 HTC VIVE開發環境的搭建 30410.5 游戲主場景的開發 30510.5.1 場景的搭建 30510.5.2 UI的搭建 30810.5.3 游戲攝像機和控制器 31310.5.4 不同形狀方塊的實現 31710.5.5 排行榜的實現 32310.5.6 核心腳本的開發 32510.5.7 其他功能的實現 33010.6 游戲的優化與改進 334第 11章 科普類AR&VR應用——星空探索 33511.1 開發背景以及應用的功能 33511.1.1 開發背景 33511.1.2 應用的功能 33611.2 應用的策劃與準備工作 33911.2.1 應用的策劃 33911.2.2 資源的準備 34011.3 應用的架構 34111.3.1 應用的結構 34111.3.2 各個腳本的簡要介紹 34211.4 天文學基礎以及相關計算公式 34511.4.1 重要天文坐標系 34511.4.2 行星、月球、深空天體簡介 34711.4.3 行星位置的計算 34811.4.4 月球位置的計算 35211.4.5 儒略日等的計算 35511.5 星空觀察模塊的開發 35611.5.1 天體數據的存儲與讀取 35711.5.2 星座以及深空天體相關內容的繪制 36211.5.3 八大行星以及月球的繪制 36611.5.4 深空天體介紹場景的開發 37111.5.5 天體與連線著色器的開發 37311.6 太陽系普通模式的開發 37511.6.1 太陽系場景的搭建 37511.6.2 行星與衛星運行腳本的開發 37611.6.3 太陽特效的實現與小行星帶的開發 37811.7 太陽系增強現實模塊的開發 38011.7.1 AR開發前期準備 38011.7.2 場景搭建過程 38111.7.3 攝像機自動對焦腳本的開發 38311.8 太陽系虛擬現實模塊的開發 38411.8.1 使用CardBoard SDK 38411.8.2 構建應用並部署到Android設備 38511.8.3 將太陽系場景開發成VR模式 38611.9 藍牙搖桿的使用與其他設置功能的實現 39011.9.1 YaoGanControl.cs腳本的開發 39011.9.2 VR開關、藍牙搖桿靈敏度、音效與時間縮放因子的設置 39111.9.3 實現主界面的腳本 39111.9.4 MobileGyro.cs腳本的開發 39511.10 本章小結 396
作者介紹
吴亚峰,本科毕业于北京邮电大学,硕士毕业于澳大利亚卧龙岗大学,1998年开始从事Java应用的开发,有10多年的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游戏。于复兴,任职于华北理工大学信息工程学院,唐山市优秀教师,从事计算机方面的工作16年,在软件开发和计算机教学方面有着丰富的经验。他主持过省市级项目5项,获得过11项国家专利,曾为多家单位设计并开发了管理信息系统,并在各种科技刊物上发表多篇相关论文。2014年开始关注VR/AR应用的开发,参与开发了多款手机娱乐、游戏应用。