[轉]VR原理講解及開發入門

 

本文轉自:http://www.52vr.com/article-661-1.htmlhtml

 

本文是做者obuil根據多年心得專門爲想要入門的VR開發者所寫,由52VR網站提供支持。
 
1. VR沉浸感和交互做用產生的原理:
 
在以前,咱們觀看一個虛擬的創造內容是經過平面顯示器的,52VR上次發佈過一篇文章《一張圖讓你認識VR》,在其中,你會看到不少10年前的虛擬現實裝備,他們基本是平面顯示器,或者將產生的畫面投影到一個弧形甚至是球形屏幕上;或者在這些屏幕上疊加左右眼分別的圖像,從而產生更加立體的效果。
而這類裝置每每很大型,也很昂貴。
 
而近幾年發展起來的VR頭戴顯示器,則達到了更好的使用效果:更好的沉浸感和更便宜的價格,目前一套主流的VR眼鏡是不到1萬元RMB的。
 
這種VR眼鏡 可以達到更好的沉浸感的原理是什麼呢?

221205hhs7jiqziit8ls8k

咱們看到,VR眼鏡,主要經過三方面來達到沉浸感的目的:
 

190802wi70spi4g7646785

1)經過凸透鏡來放大人眼看到的即時圖像範圍,如今的VR眼鏡大概會產生90-120度範圍的圖像視野,這樣的視野大概和一個良好的三通道環幕投影系統產生的效果差很少,不過VR眼鏡要更加貼近人眼一些,人眼被幹擾的可能性大大下降。

221326sn5tccljtq8rn95n

2)經過頭部的陀螺儀,當人轉動頭部時,陀螺儀可以及時的通知圖像生成引擎,及時的更新畫面,從而令人感受到,本身是在看一個環繞的虛擬空間,從而產生360度的三維空間感。

221326wkqjpdvev9qmvzdv

3)左右眼每一時刻看到的圖像是不同的,是兩幅區別左右眼位置的不一樣頭像,從而產生很強烈的立體縱深感。
以上三個緣由,就是VR眼鏡的沉浸特色。

185306ucp1ljbljclxrlxm

 
 
2. 關於沉浸感和交互做用的定義
 
對於這兩個名詞的定義,我認爲大概能夠如此解釋:
1)所謂沉浸感
 
使用戶處於一個四維的虛擬世界以內,用戶各類感受器官、特別是視覺器官對虛擬世界發生適應性正向反饋。
 

就目前的VR眼鏡來說,主要經過兩方面來達到沉浸感的目的:linux

  1. 一是經過通過放大的顯示屏技術,可以在用戶眼前顯示出一個放大的局部虛擬時間景象,目前顯示視場角在90-110度左右,在這個顯示範圍內,主要經過三維引擎技術,產生實時的立體圖像。
  2. 二是經過和頭部的位姿傳感採集的數據配合,讓三維引擎響應頭部轉動方向(和當前頭部位置變化),以很高的頻率實時改變顯示的三維頭像,用戶頭部轉動的角度恰好和三維引擎模擬的三維畫面視覺一致,讓用戶以爲放佛是經過一個大窗口 在觀察一個虛擬的三維世界。

 

 
2)所謂交互做用
 
用戶經過動做、手勢、語言等人類天然的方式可以與虛擬世界進行有效的溝通。
一般來說,用戶的雙手動做,雙腳行走,在虛擬世界中產生用戶可以理解的變化,用戶就認爲該虛擬世界對用戶發生了反饋,那麼用戶的動做和虛擬世界對用戶的反饋,組合在一塊兒,就造成一次交互做用
 
 
 
 
那麼主題來了,要達到目前VR眼鏡所具備的沉浸互動效果,是須要有一整套軟件和內容的配合。
 
 
3. 如何生成符合VR要求的虛擬世界
 

生成一個三維的虛擬世界,自從三維遊戲誕生時,就不缺少工具,基本能夠認爲,凡是具有三維構建和渲染能力的圖形學引擎,均可以生成三維的虛擬圖像世界,不少引擎擁有完整的遊戲引擎功能,不只僅限於圖像方面,還可以產生聲音,模擬物理現象等功能,這些目前還存在於世的引擎包括但不限於:windows

 
1)世界上最知名的引擎排名前十,其中包括各大遊戲公司出品的引擎
  1. The Dead Engine,美國EA公司重製過的引擎
  2. Avalanche Engine,
  3. Mt Framework引擎,鬼泣遊戲你們知道吧?就是這個作的
  4. Anvil引擎,UBsoft的引擎
  5. EGO引擎
  6. 寒霜引擎
  7. CryEngine
  8. IW引擎
  9. 頑皮狗引擎
  10. Unreal Engine
 
2)還有一堆開放源代碼的渲染引擎,有興趣的同窗能夠下載下來嘗試下18
OGRE、Irrlicht、Panda3D、Crystal Space、jME、Blender Game Engine、Reality Factory、The Nebula Device 二、RealmForge、OpenSceneGraph
 
何謂引擎:
 

這些引擎都是基於計算機操做系統API和顯卡驅動接口構建的,目的是方便上層應用開發人員快速生產內容,在引擎和操做系統之間,其實廣泛還有一層中間件,基礎圖形接口:api

在windowsPC和移動操做系統上,是directx基礎圖像api編輯器

在工業領域,在linux、蘋果PC和IPhone上,在安卓操做系統上,是一系列OpenGL基礎圖形接口(移動端爲opengl es,是簡化的opengl版本)工具

 
幾乎全部引擎都是基於上述二者或者其中之一進行構建的。
 
 
 
4.最主流的VR開發引擎
 
上述引擎因爲其難易程度,功能完善度,開發成本等緣由,在經歷了長時間的興衰過程後,目前最爲流行和最適合開發VR內容的三大引擎爲:
 
 
Unity Unreal Engine CryEngine

在手機遊戲爆發的時代,迅速崛起,成爲開發遊戲最多最爲流程的引擎學習

,其主要特色爲:網站

不開源ui

上手容易spa

多平臺開發容易

 
 

目前的unreal第四代版本大有青出於藍之勢,依然是引擎中的No.!。

其特色簡單概括爲:

開放源代碼

軟件體系完整,不太須要額外插件。

視覺表現和功能都極爲強大

上手入門不易

最牛逼的孤島引擎了,其表明做在效果上,大部分人認爲比unreal更強,其特色歸納爲:

開放源代碼

編輯器強大

入門難

三多:插件多、資源多、文檔多 文檔很多 文檔並很少
上述引擎比較,你們能夠看個人另外一篇文章:《目前VR遊戲開發,使用Unity仍是Unreal4?
 
上述三種引擎對VR的支持力度如何?
上述三大引擎在不一樣程度上,已經內置對VR的支持
 
Unity Unreal Engine CryEngine
內置 SteamVR插件
內置OSVR插件
內置SteamVR插件
內置OSVR插件
內置OSVR插件
有了上述引擎提供的SteamVR和OSVR插件原生支持,開發者無需擔心跟不上VR眼鏡中功能API和設備自己的發展變化,可利用插件打造兼容不一樣設備的虛擬現實體驗。
 
SteamVR插件是什麼?
SteamVR 是Value公司的一個VR 遊戲平臺,其開源SDK 是,OpenVR,OpenVR SDK是由本來的SteamWorks SDK更新而來,其包含對幾大VR設備的支持和封裝,這樣開發者能夠不用面對具體的設備接口,而只須要面對 OpenVR SDk的統一接口了,該SDK 包含了對HTC VIVE和Oculus Rift開發者版本的支持,也包含Steam VR的控制器及定位設備的支持。相關的API是以C++實做,已有C++經驗的開發人員能夠直接 學習。
 
OSVR插件是什麼
 
雷蛇及其合做夥伴聯合建立了一個虛擬現實開放式平臺:OSVR開源虛擬現實系統(Open-Source Virtual Reality)。OSVR旨在支持軟件插件(Unity 3D、虛幻引擎4和英雄引擎(HeroEngine)、輸入硬件(Sixsense和Leap Motion等)及其餘虛擬現實的設備,包括Oculus rift DK2和Vrvana Totem。
 
 
有了上述主流引擎和專用VR插件,那麼你就能夠開張了,來到52VR.COM一塊兒來學習這幾個主流製做工具吧,咱們會繼續推出下面的連接:
 
相關文章
相關標籤/搜索