VR開發(fā)者們在開發(fā)應用之前需要了解一下重要的概念,這里跟大家分享一下。
搭建場景:
創(chuàng)建一個可視化、可交互、腳本驅(qū)動的虛擬現(xiàn)實環(huán)境。
立體渲染:
用兩個相機渲染場景分別表示用戶的左右眼,然后通過Oculus Rift頭顯的透鏡,這兩幅圖片被重合在一起,從而形成清晰且具有深度視覺的場景。
頭動追蹤:
通過捕獲Oculus Rift頭顯的位置和轉(zhuǎn)向來改變虛擬世界中相機的位置和轉(zhuǎn)向。
我們需要編寫大量3D操作的代碼來表現(xiàn)我們的想法,可以直接通過OpenGL和DirectX來渲染3D視圖,但是這樣做太浪費時間了,而且也超出了本書的范疇。
我們選擇Unity3D游戲引擎來做這件事,Unity用于快速構(gòu)建VR內(nèi)容非常合適,最主要的是它非常容易掌握。
在深入研究Unity之前,我們來簡單了解一下基本的3D圖形技術(shù)。如果你對3D圖形編程已經(jīng)非常熟悉了,這部分內(nèi)容可以直接跳過。
3D圖形學基礎定義
在繼續(xù)之前,我們來看看3D圖形學的定義,下面是維基百科給出的定義:3D computer graphics (in contrast to 2D computer graphics) are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of performing calculations and rendering 2D images. Such images may be stored for viewing later or displayed in real-time.
上面的定義主要有3個部分:
(1)所有的數(shù)據(jù)都以三維坐標系方式表示。
(2)它們最終都會畫(渲染)在一張二維圖上,其中VR會分成左右眼畫在兩張圖上。
(3)圖像都是實時渲染的,當一些動畫或者用戶操作引起了3D數(shù)據(jù)的改變,它們所渲染出來的圖像會實時更新,這種更新頻率必須讓人眼無法察覺。以上三點中最后一點是建立可交互應用的關(guān)鍵。
事實上,3D圖形渲染技術(shù)如此重要,以至于它已經(jīng)創(chuàng)造了幾十億美元的市場,許多大公司都在一心專注做3D實時渲染的技術(shù),比如NVIDIA、ATI、Qualcomm等。