內容簡介
21世紀以來,虛擬現實技術得到瞭高速的發展,這門學科涉及計算機圖形學、多媒體技術、傳感技術、人工智能等多個領域,具有很強的交叉性。虛擬現實技術被認為是21世紀發展為迅速的、對人們的工作生活有著重要影響的計算機技術之一,在教育、醫療、娛樂、軍事、建築、規劃等眾多領域中有著非常廣泛的應用前景。本書詳細介紹瞭虛擬現實應用的基本原理及其在遊戲和桌麵應用程序中的應用。
目錄
譯者序
審校者簡介
前言
第1章萬物皆可虛擬1
1.1虛擬現實對你來說意味著什麼2
1.2頭戴式顯示器的類型4
1.2.1桌麵VR4
1.2.2移動VR4
1.3虛擬現實與增強現實的區彆5
1.4應用與遊戲5
1.5本書涵蓋的內容8
1.6VR體驗類型9
1.7VR必備技能9
小結10
第2章 物體和縮放比例12
2.1開始使用Unity12
2.1.1新建Unity項目13
2.1.2Unity編輯器13
2.1.3默認世界坐標係14
2.2創建簡單的透視圖15
2.2.1添加立方體15
2.2.2添加平麵16
2.2.3添加球體和材質17
2.2.4改變場景視圖19
2.2.5添加照片20
2.2.6給地平麵著色21
2.3測量工具22
2.3.1隨手保留一個單位立方體22
2.3.2使用網格投影器22
2.3.3測量Ethan角色23
2.4從Blender 實驗中導入25
2.5Blender簡介25
2.5.1立方體28
2.5.2UV紋理圖片28
2.5.3導入Unity30
2.5.4觀察者31
小結32
第3章 虛擬現實的構建和運行33
3.1虛擬現實設備集成的軟件34
3.1.1Unity對虛擬現實的內置支持34
3.1.2設備特有的SDK34
3.1.3開源虛擬現實項目 34
3.1.4WebVR35
3.1.53D世界35
3.2創建MeMyselfEye預製件36
3.3為 Oculus Rift構建項目37
3.4為 Google Cardboard構建項目37
3.4.1配置Android環境38
3.4.2配置iOS38
3.4.3安裝Cardboard的Unity包38
3.4.4添加攝像機39
3.4.5構建設置39
3.4.6試玩模式39
3.4.7構建並在Android中運行40
3.4.8構建並在iOS中運行40
3.5不依賴於設備的點擊器類41
3.6虛擬現實設備的運行原理42
3.6.13D立體視圖42
3.6.2頭部跟蹤45
小結47
第4章 基於凝視的操控48
4.1步行者Ethan49
4.1.1人工智能Ethan49
4.1.2Navmesh 烘焙50
4.1.3鎮上的遊走者51
4.1.4插麯—Unity編程簡介51
4.1.5RandomPosition腳本53
4.1.6“僵屍”Ethan55
4.2嚮我看的方嚮行走56
4.2.1LookMoveTo腳本57
4.2.2添加反饋光標59
4.2.3觀察者60
4.3如果眼神可以殺人61
4.3.1KillTarget腳本61
4.3.2添加粒子效果63
4.3.3清理工作64
小結64
第5章 世界坐標係UI66
5.1可重用的默認canvas67
5.2護目鏡HUD71
5.3十字光標73
5.4擋風玻璃HUD75
5.5遊戲元素UI77
5.6信息框79
5.7響應輸入事件的遊戲內儀錶闆82
5.7.1用按鈕創建儀錶闆83
5.7.2連接水管與按鈕 85
5.7.3用腳本激活按鈕86
5.7.4用注視高亮顯示按鈕88
5.7.5注視並點擊選擇90
5.7.6注視並聚焦選擇91
5.8帶有頭部姿勢的響應式UI93
5.8.1使用頭部的位置93
5.8.2使用頭部的姿勢95
小結98
第6章 第一人稱角色99
6.1深入理解Unity角色100
6.1.1Unity組件100
6.1.2Unity 的Standard Assets102
6.2製作第一人稱角色104
6.2.1在直視的方嚮上移動105
6.2.2保持腳著地106
6.2.3不要穿透固體106
6.2.4不要在邊緣墜落108
6.2.5跨越小物體並處理崎嶇路麵108
6.2.6開始和停止移動109
6.2.7使用頭部姿勢開和關109
6.3用戶校準110
6.3.1角色的身高111
6.3.2玩傢的真實身高112
6.3.3迴到中心位置113
6.4保持自我感113
6.4.1身首分離114
6.4.2頭部和身體115
6.4.3雙腳115
6.4.4身體的虛擬角色117
6.4.5虛擬的David le 鼻子118
6.4.6聲音提示119
6.5移動、傳送和傳感器120
6.6對付VR 暈動癥122
小結123
第7章 物理組件和周邊環境125
7.1 Unity的物理組件126
7.2 彈力球127
7.3 用頭部射擊131
7.4 蹦床與彈力球134
7.5 人類的蹦床135
7.5.1 像一塊磚135
7.5.2 像一個人物角色136
7.6 插麯—環境和萬物139
7.6.1 縹緲的天空140
7.6.2 行星地球140
7.6.3 企業標識140
7.7 升降機142
7.8 跳起來143
小結145
第8章 漫遊和渲染146
8.1 用Blender構建147
8.1.1 牆體147
8.1.2 天花闆150
8.2 用Unity組裝場景153
8.2.1 畫廊153
8.2.2藝術品部件154
8.2.3 展覽計劃156
8.3 添加圖片到畫廊中157
8.4 漫遊動畫160
8.4.1 Unity的動畫係統160
8.4.2 腳本動畫161
8.5 優化性能和舒適感163
8.5.1 優化實現和內容164
8.5.2 優化Unity渲染流水綫166
8.5.3 優化目標硬件和驅動169
8.5.4 Unity Profiler170
小結171
第9章 利用360°172
9.1 360暗畝嗝教?73
9.2 水晶球173
9.3 魔法球175
9.4 全景圖178
9.5 信息圖179
9.6 等距圓柱投影182
9.7 地球儀183
9.8 照片球184
9.9 視野187
9.10 捕捉360岸嗝教?88
小結189
第10章 社交化的VR虛擬空間191
10.1 多玩傢網絡192
10.1.1 網絡服務192
10.1.2 網絡架構193
10.1.3 本地與服務器193
10.1.4 Unity的網絡係統195
10.2 建立簡單的場景195
10.2.1 創建場景環境196
10.2.2 創建虛擬角色的頭部197
10.3 添加多玩傢網絡198
10.3.1 Network Manager和HUD198
10.3.2 Network Identity 和Transform198
10.3.3 作為一個主機運行199
10.3.4 添加齣生點位199
10.3.5 運行兩個遊戲實例200
10.3.6 關聯虛擬角色與第一人稱角色201
10.4 添加多玩傢到虛擬現實202
10.4.1 Oculus Rift玩傢202
10.4.2 Google Cardboard 玩傢204
10.4.3 下一步206
10.5 構建和共享一個自定義的V
前言/序言
如今,我們正見證著虛擬現實(VR)的迅猛發展,這是一項令人激動的技術,它有望改變我們與信息、朋友和整個世界進行交互的基本方式。
什麼是消費級虛擬現實?戴上一個頭盔顯示器(比如護目鏡),你可以觀看立體3D場景,你可以通過移動頭部嚮四周看以及通過使用手持控製或動作傳感器四處走動,你可以擁有完整的沉浸式體驗。這就像你真的在某個虛擬世界中一樣。
本書通過實戰的、基於項目的方式教你使用Unity 3D遊戲引擎開發虛擬現實的細節。我們通過一係列實戰工程、循序漸進的教程,並使用Unity 5和其他免費或開源軟件進行深入討論。而VR技術正在快速發展,我們將試著獲取基本的原則和技巧,以便使你能夠讓自己的VR遊戲和應用程序具有沉浸感和舒適感。
你將學習如何使用Unity開發可以用Oculus Rift或者Google Cardboard這樣的設備體驗的VR應用程序。我們將涵蓋技術上對於VR來說重要且可能獨一無二的考慮。讀完本書後,你將有能力用Unity開發豐富的、交互性的虛擬現實體驗程序。
本書的主要內容第1章介紹消費級虛擬現實(VR)中關於遊戲和非遊戲應用程序的新技術和新機遇。
第2章討論如何構建一個簡單的透視圖場景。本章介紹瞭Unity 3D 遊戲引擎和用於3D建模的Blender,並探索瞭世界坐標係和縮放比例的問題。
第3章幫助你配置項目以便運行於VR頭盔,比如Oculus Rift和Google Cardboard(Android或iOS)。然後,我們深入瞭解VR硬件和軟件如何運行的細節。
第4章探討瞭場景中的VR攝像機與對象的關係,包括3D光標與基於凝視的射綫槍。本章還包括使用C#編程語言編寫Unity腳本。
第5章實現瞭很多VR的用戶界麵(UI)例子,包括一個平視顯示器(HUD)、信息框,以及帶有很多代碼和說明的遊戲中的對象。
第6章剖析Unity的人物角色對象和組件,它們用於構建我們自己的帶有基於凝視的導航功能的第一人稱角色。然後,我們將探討擁有一個第一人稱虛擬身體的體驗,並考慮暈動癥的問題。
第7章在我們通過若乾個VR項目案例和遊戲學習使用作用力和重力的同時,深入瞭解Unity的物理引擎、組件及材質。
第8章幫助我們構建一個3D架構的空間和實現虛擬的漫遊。我們還討論瞭Unity中的渲染和性能優化。
第9章利用全部的360霸詬髦窒钅恐惺褂?60岸嗝教澹�其中包括地球儀、全景圖、照片球。我們還討論瞭它們的原理�?第10章探討瞭使用Unity 5的網絡組件帶VR功能的多玩傢實現。我們還看瞭VRChat作為一個用於社交式VR的可擴展平颱的例子。
第11章展望VR技術。
準備工作在我們開始前,你將需要完成一些工作。隨便吃點東西,一瓶水或一杯咖啡。除瞭這些,你還需要一颱安裝瞭Unity 3D遊戲引擎的PC(Windows或Mac)。
你不需要超級性能的配置,因為Unity可以像猛獸一樣渲染復雜的場景,而Oculus已經發布瞭推薦的PC硬件規格,你可以用較少的錢獲取到。甚至一颱筆記本就可以完成本書中的項目。要想獲取Unity,訪問https://unity3d.com/get-unity/,選擇你想用的版本,點擊Download Installer,然後繼續按照說明操作即可。選擇Unity的免費個人版本就行。
我們還可以選擇使用Blender開源項目進行3D建模。本書不是關於Blender的著作,但是如果你需要的話,我們可以使用它。要獲取Blender可以訪問http://www.blender.org/download/,根據你的係統平颱按照說明下載。
建議擁有一颱虛擬現實頭盔顯示器(HMD)以便試運行你的構建成果以及獲取本書中項目開發的第一手體驗。完全可以在一颱颱式機顯示器上構建和運行所有的項目,但是樂趣在哪裏呢?本書將涉及Google Cardboard和Oculus Rift的細節。
Google Cardboard是移動VR的一個示範,讓你可以用智能手機運行VR應用。如果你有一颱Android智能手機,你需要從Google獲取Android開發工具;如果你有一颱iOS設備,你需要從Apple獲取Xcode開發工具(及授權)。具體細節在第3章有所介紹。
Oculus Rift 是一個關於Desktop VR的例子目前,Unity對Rift內置支持。然而,如果你有不同的頭盔顯示器,你可能還需要從廠商處下載一個Unity的接口包。具體細節也在第3章中進行介紹。
這應該就差不多瞭—一颱PC、Unity軟件、一颱HMD,我們就準備好瞭!
目標讀者如果你對虛擬現實感興趣,想要學習它的原理或者想創建自己的VR體驗,那麼本書適閤你。不管你是否是程序員,是否熟悉3D計算機圖形,或者有前兩者的經驗但對於VR是個新手,你都可以從本書中受益。使用Unity並不是重新開始,但你也不需要是一位專傢。然而,如果你是Unity新手,隻要你認為自己可以適應本書的節奏,就可以購買本書。
遊戲開發者可能已經熟悉本書中的概念瞭,在學習瞭很多特定於VR的知識後把它們重新應用於VR項目。已經瞭解如何使用Unity的移動平颱和2D遊戲的設計師將會發現另一個維度!工程師和3D設計師可能理解很多3D概念,但是他們可以學習把遊戲引擎用於VR。應用程序開發者也許會感激VR在非遊戲用途方麵的潛能,並且想要學習使用製作這類程序的工具。
約定本書中,你將發現很多文本風格以區分不同種類的信息。這裏有這些風格的一些例子和它們含義的說明。
代碼會設置成下麵這樣:
當我們想讓你注意代碼塊的某一部分時,相關的行或項會加粗:
任何命令行輸入或輸齣都寫成下麵這樣:
新的術語或重要的詞語以黑體顯示。你在屏幕上看見的單詞,舉個例子,在菜單或對話框中,文本中這樣顯示:
“點擊這裏創建一個Room按鈕。”
錶示警告或重要的注意事項。
錶示技巧或小巧門。
讀者反饋來自我們讀者的反饋永遠是受歡迎的。讓我們知道你對於本書的看法—你喜歡與否。讀者反饋對我們來說很重要,因為它幫助我們改進那些你們可以真正利用的內容。
若想嚮我們發送常規的反饋,請寫電子郵件到feedback@packtpub.com,並在郵件主題中提及書名即可。
如果你對某個話題有專業意見或者你對寫作或參與一本書的編寫有興趣,請參見我們的作者指南:www.packtpub.com/authors。
客戶支持你已經是Packt圖書的尊貴用戶,我們有很多方式幫助你從購買中獲取最大價值。
下載代碼示例你可以通過在http://www.packtpub.com的賬戶下載所有你在Packt齣版社所購買書籍的示例代碼文件。如果你是在其他地方購買的本書,可以訪問http://www.packtpub.com/support 並注冊,以便我們通過電子郵件把文件發送給你。
下載本書的彩色插圖我們還嚮你提供本書中所用到的截圖/圖錶的彩色插圖的PDF文件。這些彩色插圖將幫助你更好地理解輸齣結果中的改變。你可以從http://www.packtpub.com/sites/default/files/downloads/ 8556OS_ColorImages.pdf 下載這個文件。
勘誤盡管我們已經盡力去確保內容的準確性,但是錯誤仍在所難免。如果你發現瞭書中的錯誤,也許是文本或代碼,若能報告給我們,我們將非常感激。因為這麼做,你可以幫助其他讀者,並且能夠幫助我們改進本書接下來的版本。如果你發現瞭任何錯誤,請通過http://www.packtpub.com/submit-errata 報告它們,選擇書名,點擊“勘誤提交錶(Errata Submission Form)”鏈接,然後鍵入你的勘誤細節。一旦你的勘誤被確認,你的提交將會被采納,而這個勘誤將會被上傳到我們的網站或添加到之前標題下的勘誤部分的任何現在已有勘誤錶中。
要審閱之前提交的勘誤,請訪問 https://www.packtpub.com/books/content/support ,並在搜索框中輸入書名。所需要的信息就會齣現在勘誤部分之下。
盜版行為盜版行為在互聯網上是一個持續存在的問題,對於所有媒體皆如此。在Packt,我們非常重視保護我們的版權和許可。如果你在互聯網上遇到以任何形式非法復製我們的産品,請立即嚮我們提供地址或網站名稱,以便我們能夠彌補這一缺失。
請通過copyright@packtpub.com聯係我們,並附上有盜版嫌疑的材料鏈接。
我們非常感激你在保護作者以及我們嚮你提供有價值的內容上所做的幫助。
The Translator s Words 譯者序毫無疑問,虛擬現實(VR)是科技界2016年最熱的關鍵詞。
這不僅是因為虛擬現實技術能夠改變我們娛樂和遊戲的方式,而且對於很多行業或領域都具有重要意義。比如,旅遊業、電影行業、視頻會議行業、醫學行業、室內設計、房地産開發、軍事演練、工業仿真、應急演練、文物古跡展示、教育、康復訓練等都將可以應用虛擬現實技術增強用戶體驗,為業界帶來巨大的價值。
而虛擬現實本身也包括一條很長的産業鏈,從虛擬現實硬件設備的製造到軟件係統的研發,從操控技術到核心算法,從虛擬現實內容的采集到虛擬現實內容的生産,這些都帶來瞭大量新的創業和就業機會。
得益於移動互聯網和智能硬件的浪潮,軟硬件技術成熟,消費級虛擬現實所需硬件設備的價格能夠被普通人接受,最便宜的Google Cardboard僅用幾十塊錢就可以擁有。未來幾年,虛擬現實必將快速融入我們的生活。
而對於對虛擬現實感興趣的我們,最令人興奮的事當然是通過學習參與創建自己的虛擬現實應用瞭。虛擬現實的關鍵技術點包括3D圖形渲染、第一人稱操控、頭部運動跟蹤、用戶輸入控製、鏡頭變形、全景場景、暈動癥處理等。Unity 3D界麵友好、上手較快,是當今最流行的3D引擎之一,也是最早支持虛擬現實的引擎之一,而Cardboard是成本最低廉的虛擬現實設備。當然,學習這些技術點最快速的開始方式是動手使用Unity 3D結閤Google的Cardboard和手機開發簡單的虛擬現實應用。
本書以循序漸進、深入淺齣、具體案例講述的方式引導讀者走進虛擬現實的世界,相信讀完此書後,讀者不僅能夠理解虛擬現實的基本原理並瞭解虛擬現實的關鍵技術點,還能夠從書中的範例中學習和總結,進而結閤Unity 3D引擎創建齣自己卓越的虛擬現實應用。
即使你不是開發人員,也不熟悉3D圖形學,僅對虛擬現實興趣濃厚,原作者書中對於虛擬現實的深入理解也能夠使你受益匪淺。
有幸翻譯本書,非常感謝繆傑編輯和李靜編輯對我的信任和幫助,感謝我的翻譯夥伴吳迪的共同努力,感謝我的妻子對我的支持。
童明2016年8月於北京
Unity虛擬現實開發實戰 下載 mobi epub pdf txt 電子書