OCULUS-VR-ppt_第1頁
OCULUS-VR-ppt_第2頁
OCULUS-VR-ppt_第3頁
OCULUS-VR-ppt_第4頁
OCULUS-VR-ppt_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Oculus SDK HMD-ALOG Architecture Terms and definitions VrLib/VrApi目錄 Important struct/class ATW線程HMD-ALOGl 反畸變算法 (Distortion)多采樣著色(Multi-Resolution Shading)l 反色散(Chromatic Aberration correction,CA)l Stereo Renderingl 時間扭曲(Timewarp,ATW)l 位置扭曲(Positional Timewarp)l Yaw Correctionl Sensor Algo(暫時忽略)反畸變

2、/DistortionVR眼睛看正常2D圖像:上圖圓圈所覆蓋的位置是一樣的。從左到右,是一個從邊緣往中間內(nèi)縮的過程。而內(nèi)縮的幅度,與圓圈的半徑,也就是像素點到圖像中間的距離成比正比。 所以為了從VR的凸透鏡看到正常的圖形,所以我們需要將原始2D圖像經(jīng)過一些反畸變,再通過眼睛的突變之后恢復(fù)成正常圖像。 經(jīng)過VR渲染畸變圖像:多采樣著色(Multi-Resolution Shading) Why? 通過上一頁我們知道,我們需要做Distortion。但是如果我們按照上張圖來實現(xiàn),就會引入一個問題,我們對每個2D圖像每個像素點都進行渲染的話,不但邊角毫無意義,主要會造成極大的硬件和軟件的資源浪費。

3、How?在中央視區(qū)仍保留完整分辨率的情況下,外圍視區(qū)則用類似于傳統(tǒng)后處理階段的扭曲方式進行渲染。當這一切完成后,同樣用戶感知效果的圖像相比原來的像素數(shù)量可減少25%到50%,而像素渲染效率則提升為原來的1.3倍到2倍。反色散/CA Correction 色差(Chromatic aberration;chromatic aberration):色差又稱色像差,是透鏡成像的一個嚴重缺陷,色差簡單來說就是顏色的差別,發(fā)生在以多色光為光源的情況下,單色光不產(chǎn)生色差。 現(xiàn)象:VR頭盔在使用時候都會在邊緣區(qū)域(邊緣位置)出現(xiàn)紅綠藍的色邊反色散方法:1. 使用低色散的透鏡,無法根本解決問題,并且成本還不知

4、道貴不貴2. 軟件補償Stereo Rendering 對同一圖像需要渲染兩次。簡單的說,人的雙眼看同一物體時,由于左右眼視線方位不同,視網(wǎng)膜上的圖像會略有差別,即雙眼視差,VR利用雙眼視差原理在左右眼屏幕上分別顯示兩幅具有微小差別的圖像,用戶將兩幅圖像融合后得到一幅具有立體效果的圖像。時間扭曲/Timewarp 時間扭曲:時間扭曲:是一種圖像幀修正的技術(shù),在使用虛擬現(xiàn)實眼睛設(shè)備時,由于頭部運動過快,而造場景渲染的延遲,即頭已經(jīng)轉(zhuǎn)過去了,但是圖像還沒有渲染出來,或者渲染的是上一幀的圖像, 時間扭曲它通過扭曲一副被送往顯示器之前圖像,來解決這個延遲問題。 最基礎(chǔ)的時間扭曲是基于方向的扭曲,這種只

5、糾正了頭部的轉(zhuǎn)動變化姿勢,這種扭曲對于2D圖像是有優(yōu)勢的,它合并一副變形圖像不需要花費太多系統(tǒng)資源。對于復(fù)雜的場景,它可以用較少的計算生成一個新的圖像幀。 異步時間扭曲:異步時間扭曲:(Asynchronous Timewarp簡稱ATW)是一種生成中間幀的技術(shù),當游戲不能保持足夠幀率的時候,ATW能產(chǎn)生中間幀,從而有效減少游戲畫面的抖動,但是,ATW不是靈丹妙藥,有一定局限性(局限性在后面介紹),開發(fā)人員也應(yīng)該意識到。指在一個線程(稱為稱為ATW線程線程)中進行處理,這個線程和渲染線程平行運行(異步),在每次同步之前,ATW線程根據(jù)渲染線程的最后一幀生成一個新的幀時間扭曲/Timewarp

6、位置扭曲,Positional Timewarp ()位置抖動(Positional Judder):位置抖動是最明顯的用基于方向的時間扭曲帶來瑕疵之一, 在使用虛擬現(xiàn)實設(shè)備時,當頭部移動了, 如果在ATW產(chǎn)生圖像幀時只考慮了旋轉(zhuǎn)分量,那么任何頭部平移分量都將被忽略了。這就意味著當你的頭部從一邊移動 到另一邊時,甚至是旋轉(zhuǎn)你的頭并且你的轉(zhuǎn)動眼睛,你講看見離你很近的物體會有多個圖像的抖動,這種效果是非常明顯的。 ()位置扭曲(Positional Timewarp):解決位置顫抖的一個可能的方法是實現(xiàn)全位置扭曲,它應(yīng)用平移和旋轉(zhuǎn)兩個分量來修正原始幀,位置扭曲,位置扭曲需要考慮原始幀的深度信息,由

7、不同的量替代圖像的一部分。 然而,這樣產(chǎn)生的中間幀會使物體邊緣不閉合,由于沒有原始幀中的數(shù)據(jù),會導(dǎo)致中間幀某些區(qū)域不能被覆蓋。 WHY?HOW?Yaw Correction(腦補翻譯) 隨著時間的改變,可能會方向會產(chǎn)生偏移,但是現(xiàn)實中人的方向還是正前方的。如下圖:ArchitectureArchitectureTerms and definitions HMD: Head Monitor Display 頭戴式顯示器 OVR:Oculus VR CA :chroma aberration 色散 Timewarp:時間扭曲 Distortion:畸變 Pitch,Yaw,Roll:俯仰,偏航,翻

8、轉(zhuǎn)(右手笛卡爾) EGL,OpenGL,JNI,SensorFusion MIP: 紋理特別大的時候,渲染物體小的情況下,效果不好。所以在一開始將紋理按照2的倍數(shù)縮小成很多大小不同的紋理,這樣我們就可以很快的用任意大小進行紋理貼合。VRApi Dir DirectRender.cpp DirectRender.h Distortion.cpp Distortion.h HmdInfo.cpp HmdInfo.h HmdSensors.cpp HmdSensors.h ImageServer.cpp ImageServer.h LocalPreferences.cpp LocalPreferen

9、ces.h Sensors OVR_Android_DeviceManager.cpp SystemActivities.cpp SystemActivities.h TimeWarp.cpp TimeWarp.h TimeWarpLocal.h TimeWarpProgs.cpp VrApi_Android.h VrApi.cpp VrApi.h VrApi_Helpers.h VrApi_local.h Vsync.cpp Vsync.h WarpGeometry.cpp WarpGeometry.h WarpProgram.cpp WarpProgram.hVIP File JAVA:

10、VrActivity.java /實現(xiàn)實現(xiàn)VrActivity接口接口, public class MainActivity extends VrActivity Native: VrApi.cpp,VrApi.h /JNI接口接口 App.cpp,App.h /實現(xiàn)了實現(xiàn)了VrAppInterface基本接口,以及基本接口,以及Class App的接口的接口 Oculus360Videos.cpp eg. Oculus360Videos.h eg. /實現(xiàn)這個實現(xiàn)這個app的基本功能接口的基本功能接口Struct/Class/enum DeviceType: HMDInfo HMDDevic

11、e SensorInfo SensorDevice class VrAppInterface Class APPenum DeviceTypeHMDInfoclass HMDDevice這個機構(gòu)體代表了HMD這個device,涵蓋了基本操作。這個結(jié)構(gòu)體被DeviceManager創(chuàng)建。class SensorInfoSensor HW本身的一些信息class SensorDevicevirtual void SetCoordinateFrame(CoordinateFrame coordframe) -轉(zhuǎn)換坐標系,將Sensor的坐標系轉(zhuǎn)換成HMD坐標系class DeviceManager : public DeviceBaseclass DeviceManager : public DeviceBase EnumerateDevices:獲取可用的Device,并且把內(nèi)部指針指向next,再次調(diào)用的時候就是第二個DEVICE. Instance:上面就是創(chuàng)建上面就是創(chuàng)建DeviceManager,再有,再有Manager獲取第一個對應(yīng)的獲取第一個對應(yīng)的HMD或者或者Sensor Device,創(chuàng)建,創(chuàng)建它,再操作它。它,再操作它。class VrA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論