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