本書循序漸進地引導開發人員學習用谷歌魔鏡開發工具包(Cardboard Android SDK)以及Unity開發包進行VR應用開發的技術,講解了創建令人沉浸其中的虛擬景觀應用、開發使用智能手機拍攝3D全景照片的應用,以及采集和控制語音到優化畫面的技術。
本書內容分為5章,包括初始VR、VR應用——Alien Apartment、VR應用——Glitcher VR、Lanterns和Village案例以及谷歌魔鏡——面向大眾的VR。
本書適合VR虛擬現實開發人員、游戲開發人員、程序員學習使用,也可作為大專院校相關專業師生的學習用書和培訓學校的教材。
·谷歌公司推出的虛擬現實開發工具已經在業界引起了不小轟動。Google APP 市場目前已有幾十款用Unity開發的應用。本書可滿足國內虛擬現實愛好者的學習需求。
·帶你進入谷歌魔鏡安卓開發包以及unity開發包創建的“新世界”
·詳述創建沉浸感十足的虛擬景觀、采集和控制語音以及優化畫面的方法
·對谷歌魔鏡項目實例進行從開發到推廣的深度解讀
第 1章 初識VR 1
1.1 令人驚嘆的效果 1
1.2 讓人不滿足的體驗 1
1.3 為什么要大力發展谷歌魔鏡 2
1.4 進一步了解VR應用開發的市場 3
1.5 對未來幾年的預測 4
1.6 開發工具和工作流 4
1.6.1 Unity 5.1 4
1.6.2 谷歌魔鏡開發工具包(v0.5) 5
1.6.3 3D建模創作工具Blender 5
1.6.4 圖像處理軟件GMIP 6
1.6.5 音效創作 6
1.6.6 3D人物角色建模軟件Makehuman 6
1.6.7 關于工作流 7
1.6.8 硬件 7
1.7 VR能帶來什么 7
1.7.1 身臨其境的氛圍 8
1.7.2 沉浸式的體驗 9
1.7.3 真實感和依賴性 9
1.8 谷歌魔鏡平臺 10
1.8.1 現實與虛擬現實 10
1.8.2 移動平臺 11
1.8.3 移動平臺的VR用戶 11
1.8.4 硬件 12
1.8.5 制約因素及局限性 13
第 2章 VR應用—Alien Apartment 15
2.1 我為何會制作Alien Apartment 15
2.2 構建自己世界的相關基礎知識 16
2.2.1 相關的設置 16
2.2.2 管理坐標軸 17
2.2.3 立體視圖的開發 21
2.2.4 更新玩家的方位角 22
2.2.5 運動檢測原理(頭部運動觸發的事件) 25
2.2.6 創建非傳統的用戶交互界面 32
2.3 基礎知識 32
2.4 運行案例 36
可以制作凌駕于VR 3D場景之上的用戶界面嗎 38
2.5 打造環境氛圍 39
2.5.1 天空盒和光照 39
2.5.2 打造能勾起美好回憶的氛圍 39
2.5.3 音頻 41
2.5.4 音樂 42
2.5.5 到目前我們做了什么 42
2.6 雜項 42
2.6.1 光照貼圖 43
2.6.2 性能 43
2.6.3 淡入淡出 47
2.6.4 簽名 47
2.6.5 版本控制 47
2.6.6 運行時回調方法 47
2.6.7 通用協同程序管理 48
2.6.8 構建參數 49
2.6.9 用返回鍵退出應用 49
2.6.10 屏幕自動休眠時間 49
2.6.11 著色器 50
2.7 小結 56
第3章 VR應用—Glitcher VR 57
3.1 Glitcher VR簡介 57
先前的經驗和開發的動機 58
3.2 VR開發的挑戰 59
3.3 Glitcher VR應用架構解析 60
3.3.1 攝像頭子系統 61
3.3.2 攝像頭子系統需要處理的問題 62
3.3.3 啟用和停用攝像頭 62
3.3.4 快速將幀畫面發送到GPU 64
3.4 創建繪制用表面 64
3.4.1 保存照片、截屏和錄像功能 66
3.4.2 通過攝像頭管理器自動檢測和管理攝像頭 67
3.5 輸入子系統 69
3.5.1 輸入子系統需要解決的問題 69
3.5.2 檢測和處理輸入設備 70
3.5.3 將語音作為輸入復用器 71
3.6 渲染和濾鏡系統 73
3.6.1 設計目標 74
3.6.2 基礎濾鏡 75
3.6.3 基于基礎濾鏡構建復雜濾鏡 78
3.6.4 附加內容的渲染 79
3.6.5 濾鏡管理器 85
3.7 通知系統 87
3.7.1 設計目標 87
3.7.2 構建文本渲染器 87
3.7.3 創建基本通知 89
3.7.4 通過通知調度程序調度通知 90
3.8 輔助工具類和其他特性 92
3.8.1 手電筒和閃光燈 94
3.8.2 實施面部檢測 95
3.8.3 將面部位置轉換為GLSL坐標 96
3.8.4 將面部信息發送給濾鏡 97
3.9 一些技巧和潛在的改進 98
3.9.1 輸入系統的改進 98
3.9.2 避免無用的內容 99
3.9.3 讓普通用戶參與測試 100
3.9.4 硬件兼容性測試 101
3.9.5 內存管理及分析工具的使用 101
3.10 小結 102
第4章 Lanterns和Village案例 105
4.1 兩個VR應用都能使用的通用渲染技術 106
4.1.1 為VR改造場景 107
4.1.2 創建自己的渲染器 109
4.1.3 使用安卓版谷歌魔鏡SDK的渲染器 111
4.2 渲染Lanterns VR應用的場景 114
4.2.1 優化繪制順序 114
4.2.2 霧和燈光著色器 114
4.2.3 水面的反射效果 116
4.2.3 夜空著色器 120
4.3 Village VR場景的渲染及優化技巧 121
4.3.1 用單次繪制調用生成煙霧效果 122
4.3.2 用點精靈實現螢火蟲和雪 124
4.3.3 按照距離進行對象排序 125
4.3.4 視錐體剪裁 126
4.3.5 人物的移動 130
4.3.6 重用紋理和圖集 130
4.3.7 整合光照貼圖 131
4.3.8 光照貼圖調色板 133
4.3.9 Village著色器 140
4.3.10 植被著色器 142
4.3.11 天空紋理的壓縮 145
4.4 小結 147
第5章 谷歌魔鏡—面向大眾的VR 149
5.1 谷歌魔鏡項目 149
5.2 開始使用谷歌魔鏡 150
5.2.1 之前的宇航員游戲 151
5.2.2 WAA!VR的故事 152
5.2.3 開始開發WAA! 153
5.2.4 Unity 3D專業版 153
5.2.5 測試設備Nexus 5 153
5.2.6 谷歌魔鏡裝備 154
5.2.7 用Maxon Cinema4D R16開發游戲素材 155
5.2.8 將資源文件導出到Unity:FBX還是C4D格式 155
5.3 Unity3D版谷歌魔鏡SDK 155
5.4 應用人機交互方案 158
5.4.1 磁鈕觸發器 159
5.4.2 射線碰撞檢測 160
5.5 UI界面、菜單以及場景設置 161
5.5.1 天空盒以及“太空”環境 162
5.5.2 屏幕標題 164
5.5.3 “Universe”主菜單 165
5.5.4 游戲中的HUD顯示 166
5.6 VR中射擊和擊中效果的開發 168
5.6.1 添加作為目標的小行星 168
5.6.2 發射導彈 170
5.6.3 VR 3D效果的有效空間區域 173
5.6.4 避免暈動癥 174
5.7 特殊效果、調整和測試 174
5.7.1 使用粒子特效提升視覺效果 175
5.7.2 拖尾渲染器 176
5.7.3 添加道具 177
5.7.4 調整游戲控制參數 180
5.7.5 添加角色身體 181
5.8 發行以及聽取玩家社區的反饋 181
5.8.1 來自谷歌的聯絡 182
5.8.2 SXSW和Google I/O開發人員大會 182
5.8.3 下一步:移植Oculus和iOS平臺 183
5.9 致謝 184