此教程相關(guān)的詳細(xì)教案,文檔,思維導(dǎo)圖和工程文件會(huì)放入 Spatial XR 社區(qū)。這是一個(gè)高質(zhì)量知識(shí)星球 XR 社區(qū),博主目前在內(nèi)擔(dān)任 XR 開(kāi)發(fā)的講師。此外,該社區(qū)提供教程答疑、及時(shí)交流、進(jìn)階教程、外包、行業(yè)動(dòng)態(tài)等服務(wù)。
社區(qū)鏈接:
Spatial XR 高級(jí)社區(qū)(知識(shí)星球)
Spatial XR 高級(jí)社區(qū)(愛(ài)發(fā)電)
這篇教程將會(huì)介紹 Meta XR SDK(舊版叫做 Oculus Integration)中 OVRManager 的 Eye Level,F(xiàn)loor Level,Stage 的區(qū)別。
Oculus Integration 開(kāi)發(fā)包中有個(gè) OVRManager 腳本被掛載到 OVRCameraRig 物體上。OVR Manager 中有個(gè) Tracking Origin Type 參數(shù),它相當(dāng)于追蹤的參考系,參數(shù)分為 Eye Level, Floor Level 和 Stage。
VR 設(shè)備會(huì)對(duì)頭顯進(jìn)行追蹤,于是現(xiàn)實(shí)中頭顯的位置和旋轉(zhuǎn)數(shù)據(jù)會(huì)被傳輸給 Unity,讓 Unity 中的眼部相機(jī)匹配上現(xiàn)實(shí)中玩家頭顯的位置和朝向。而頭顯的位置和旋轉(zhuǎn)數(shù)據(jù)是個(gè)三維坐標(biāo),那么它們的值一定是相對(duì)于某個(gè)參考系的,只有確立坐標(biāo)系的原點(diǎn)后,才能給出三維坐標(biāo)的值。 這時(shí)候 Tracking Origin Type 參數(shù)就派上了用場(chǎng)。Oculus 官方文檔對(duì)三種 Type 的定義是這樣的:(https://developer.oculus.com/documentation/unity/unity-add-camera-rig/)
- Eye Level tracks the position and orientation relative to the device’s position.
- Floor Level tracks the position and orientation relative to the floor, whose height is decided through guardian setup.
- Stage also tracks the position and orientation relative to the floor. On Quest, the Stage tracking origin will not directly respond to user recentering.
如果直觀的看,Tracking Origin Type 也相當(dāng)于設(shè)置 VR 世界中頭部的初始高度。
選擇 Floor Level,會(huì)以安全區(qū)的地面(打開(kāi) VR 設(shè)備一般都會(huì)先設(shè)置地面高度,然后劃安全區(qū))作為參考系,運(yùn)行程序后頭部高度會(huì)以地面作為參考點(diǎn),高度相當(dāng)于擺放在場(chǎng)景中的玩家物體的高度加上現(xiàn)實(shí)中玩家頭顯到安全區(qū)地面的距離。
選擇 Eye Level,會(huì)以頭顯設(shè)備本身作為參考系,頭部高度相當(dāng)于擺放在場(chǎng)景中的玩家物體的高度加上頭顯相對(duì)于設(shè)備自身坐標(biāo)系的高度(每次設(shè)備定位成功后會(huì)建立設(shè)備自身的坐標(biāo)系,以現(xiàn)實(shí)世界中頭顯的位置作為原點(diǎn)),不會(huì)額外加上現(xiàn)實(shí)中頭顯到地面的高度。
選擇 Stage,和 Floor Level 一樣也是以地面作為參考系,但是不會(huì)受頭顯的重定位影響。重定位是什么意思呢?以 Quest 舉例,長(zhǎng)按右手柄的 Oculus 鍵或者重新劃安全區(qū)會(huì)對(duì)用戶的位置和朝向重新定位,根據(jù)用戶當(dāng)前的位置和朝向重新定位原點(diǎn)的位置。假設(shè)剛進(jìn)入一個(gè)游戲,我們?cè)诂F(xiàn)實(shí)中的位置相當(dāng)于虛擬世界中的初始位置,位于(0,0,0)原點(diǎn),然后一開(kāi)始有個(gè)方塊處于我們的正前方。這時(shí)候我們?cè)诂F(xiàn)實(shí)中轉(zhuǎn)過(guò) 90°,然后往前走一步,再進(jìn)行重定位。如果選擇的是 Floor Level,方塊就會(huì)被重新定位在我們的正前方,和一開(kāi)始的位置是不一樣的;如果選擇的是 Stage,重定位是不起作用的,方塊還會(huì)位于原來(lái)的位置。
大家可以通過(guò)下面的圖感受它們的區(qū)別,也建議自己打包出來(lái)運(yùn)行一下。
(注:只有打包出來(lái),在一體機(jī)中運(yùn)行,才能看到 Stage 不受重定位的影響,在串流的時(shí)候是看不出來(lái)的)
?相機(jī)的初始高度
Eye Level:
Floor Level / Stage:
?Floor Level 和 Stage 的區(qū)別
Floor Level:
Stage:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-543414.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-543414.html
到了這里,關(guān)于Unity VR:Oculus Integration 中 OVRManager 的 Eye Level,F(xiàn)loor Level,Stage 的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!