# 初步認識 VR / AR

關鍵詞: VR / AR / 基礎 / 虛擬現實 / 通用計算平臺 / Unity3D

VR技術已經在尖端領域成爲主流技術。隨着各個虛擬現實頭顯和虛擬現實平臺的發佈,虛擬現實是越來越受到歡迎。什麼是虛擬現實呢?一般來說,VR就電腦模擬的3D環境,使用特別的電子裝備,讓人真實感受虛擬世界。其目標是在虛擬環境中得到強感官感受。
參考:虛擬現實之父:VR會改變整個社會
每個人對於這個世界都會有不同的想法與想像,但是如何可以實現他們,將你想要的世界帶到人們的面前?VR就是一個入口,可以將大家帶入你所想進入的地方。你想像中的世界,這是十分令人驚奇與振奮的一件事!

1.什麼是 VR / AR #

VR: Virtual Reality 虛擬現實,利用電腦設備模擬出一個虛擬的三維空間,再運用沉浸式頭戴設備,爲使用者提供視覺,聽覺,觸覺反饋。讓使用者身臨其境。比如 Oculus Rift(facebook收購), Htc Vive。都是頭戴設備,有操作手柄。
AR: Augmented Reality 增強現實,利用電腦技術將虛擬信息投射或疊加到現實。如google glass,在眼鏡前方懸置一個攝像頭和一個電腦處理器裝置,通過控制攝像頭拍照一個大廈,上傳數據後可以得到大廈相關信息。

今天消費型VR技術涉及到可穿戴的頭盔,用於瀏覽立體的3D場景。轉你的頭,你就可以查看四周,使用手柄或是運動傳感器就可移動。你置身於身臨其境的環境中,就好像你真實在存在於一個虛擬世界中。

VR讓用戶置身於一個想象出來或者重新複製的世界(如遊戲、電影或航班模擬),抑或是模擬真實的世界(如觀看體育直播)。VR領域主要的硬件廠商有Oculus、索尼(PlayStation VR)、HTC(Vive)和三星(Gear VR)。

AR是把數字想象世界加在真實世界之上,主要硬件包括微軟(HoloLens)、谷歌(Google Glass)和Magic Leap。

區分VR和AR的一個簡單的方法是:VR需要用一個不透明的頭戴設備完成虛擬世界裏的沉浸體驗,而AR需要清晰的頭戴設備看清真實世界和重疊在上面的信息和圖像。

從目前的觀察來看,AR比較適合服務企業級用戶,而VR同時適用於消費者和企業用戶。有些情況下,兩者還會出現重疊市場。例如,目前大多數遊戲基於VR研發,但微軟也用HoloLens重新創作了《我的世界》這樣的遊戲。

另外,VR和AR均通過頭部和手勢操控。這種基於手勢的操控非常直觀,相信會給計算生態系統帶來新的變化。

VR/AR最有可能率先實現應用的九大領域:視頻遊戲、事件直播、視頻娛樂、醫療保健、房地產、零售、教育、工程和軍事。其中,在VR/AR應用方面,視頻遊戲將是今年的核心領域。
參考:只能玩遊戲?虛擬現實能做的其實還有很多

從目前來看, VR成功的可能性要高於AR,這主要得益於VR技術的進步,已經廠商和合作伙伴生態系統的初步形成。目前,VR和AR的技術均有待進一步提高,但AR面臨的挑戰更嚴峻,包括屏幕技術、實時處理和實時物理環境的校準等。但同時,一旦AR技術成熟,我們就會看到更多的企業應用案例,尤其是考慮到AR允許人們看到實時的物理環境,而這是VR所做不到的。

從長期角度講,VR/AR產品最終將變得像太陽鏡一樣輕便。屆時,可以把多個設備整合成一款產品,從而取代當前的手機和PC。

參考:高盛VR與AR報告:下一個通用計算平臺(精華版)

VR可能給各行各業帶來什麼影響?

  1. 普及較慢,但潛力巨大(隨着科技進步,零售價下降,以及出現全新的企業和個人應用市場,VR有望孵化成數十億美金的產業,並且可能和PC一樣具有劃時代的意義)
  2. 市場規模取決於接納程度
  3. 從遊戲到零售的九個領域,其中視頻遊戲佔比最大,但從醫療到房地產的各行各業都可能受到衝擊
  4. 頭戴式VR設備價格預計將下降

VR將是下一個計算平臺,和由臺式機向移動轉變一樣,將是突破性的,2016年是上半年我們將看到VR史上最大的進步

參考:關於VR和AR的6張圖表

2. VR 的本質 #

3D的 / 沉浸的 / 交互性的

創造了 身臨其境 的 沉浸感 和 臨場感 和 帶入感

3.關於學習 Unity3D 的思路 #

關於VR 開發,通常說的VR開發是支持Oculus Rift設備的應用開發,類似蘋果手機下應用開發。
以Oculus Rift APP開發爲例,與一般3D遊戲開發差別不大。

  1. Unity + VR SDK
    直接使用Unity,導入專門的Oculus SDK,使用VR視角就可以了。Oculus Rift有一套開發者指南,主要是一些規則,避免用戶頭暈 噁心。因爲開發者需要不斷的帶着設備調試,一般開發的時候就會經歷不斷的頭暈 噁心。

  2. WebGL + Three.js + WebVR
    WebGL:開發Web 3D圖形的工具。將JavaScript和OpenGL ES 2.0(3D圖形規範)結合,JavaScript實現WEB交互式三維動畫製作,OpenGL渲染。
    Three.js:前端js框架,提供了很多3D顯示功能,一個運行在瀏覽器中的3D引擎。
    WebVR:支持HTML端VR體驗的瀏覽器。

    http://madebyevan.com/webgl-water/

    如果要實現沉浸式體驗,同樣需要類似 Oculus Rift頭戴設備輸出和輸入進行交互。

Unity3D 用於遊戲開發,也可以用於VR/AR的內容開發。和Unreal引擎都有各自的優缺點,而兩者都有可用的藍圖和源代碼,讓開發者可以隨意進行修改調整,並根據自己的意願選擇特定的引擎。而影響你選擇某個引擎的因素之一是編程語言。Unity支持的是C#語言,而Unreal支持的則是C++,所以如果你只會其中一種語言的話,那麼你的選擇就很明顯了。

整理一下關於 Unity 學習路徑和方法。

C# + Unity引擎

  1. 有了Java的基礎就好辦,C#與Java的語法近乎相同(面向對象),花一天時間瞭解一下C#的特性即可直接開始上手正式學習入門Unity了,可在做項目的過程和後期查漏補缺中進一步鞏固C#的基礎
  2. 找個Demo跟着做一遍項目(不寫代碼熟悉操作過程),即可入門Unity引擎,做第二遍動手寫代碼
  3. 去官網找開發手冊學習是最好的選擇(英文的)
  4. 學習動畫系統
  5. 學習物理系統
  6. uGUI
  7. 2D開發
  8. 編輯器擴展
  9. 網絡系統
  10. 導航系統
  11. 通過項目加強學習的知識 *
  12. 算法、AI,狀態機、提高技巧、編程思想、設計模式

前11是搬磚碼農,提高技巧、編程思想是合格工程師目標

Unity 引擎學習目錄:

  • 引擎基礎
  • 動畫系統
  • 2D和UI
  • 導航系統
  • 粒子系統
  • 數據處理
  • 網絡
  • 打包
  • HoloLens(沒有設備也可以開發,有模擬器)
  • C++
  • 算法和數據結構
  • 設計模式

項目:C#空間射擊,Unity變形金剛

如果真的是第一次接觸虛擬現實開發,那麼這個世界或許會讓你感到十分震撼,不僅僅只是因爲你可以製作任何你能想象到的體驗。建議從爲移動虛擬現實頭顯開發一個小型網頁應用開始,當你積累了一定經驗後再開發完整的PC應用。

你可以從中掌握到許多關於虛擬現實開發的基本知識,而這些都是可以應用到PC端開發的,所以你用於開發移動應用的時間是絕對有意義的。另外,市場對虛擬現實應用開發一直都有需求,所以這些經驗會給你帶來很大的優勢。

Unity和Unreal都向開發者提供blueprint(藍圖)。這些基本的平臺和遊戲的功能都是完備的,而且還包含了源代碼讓用戶隨意使用。你可以對這些blueprint進行修改,並製作發佈自己的虛擬現實版本。充分利用好這些blueprint,尤其是你纔剛剛開始接觸虛擬現實開發。

參考:給虛擬現實開發者的十大貼士

4. 關於 VR 播放器 #

VR播放器,就是360度全景視頻播放器,雖然VR代表的內容遠遠不止這些。
VR播放器應該怎麼做?現在的思路主要有 2 類:
一類在播放器上做開發,另一類在現有遊戲引擎上開發比如unity;播放器上開發,需要了解Opengl (移動端Opengles,web端需要webGL),原理就是用這些Opengl做出來一個球體,然後在球體裏面渲染視頻。這個需要比較深厚的編程功底。
另一類在unity上開發,用Unity做的難點就是播放器,unity自帶的播放器很挫,支持格式很少,推薦使用EasyMovieTexture作爲播放器,支持iOS和Android;這個播放器可以支持在GameObject表面播放視頻,做全景播放器就很Easy了。

VR 開發如何入手

  1. 做一個 Android MediaPlayer
  2. 做一個 Unity3D 場景
  3. 將 Surface 賦值給 Texture2D
  4. 編譯看效果
  5. 更多舞臺效果

Unity 中的貼圖,細節:

  • Texture2D/OpenGL ES Texture
  • External Texture in Unity
  • OES_EXTERNAL_TEXTRUE in Android
  • Android Rendering Pipleline

End.

發佈了104 篇原創文章 · 獲贊 63 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章