最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity MRTK ——XRAnchor

2023-04-04 14:27 作者:三分留白san  | 我要投稿

????不論是AR還是MR中,都有一個(gè)空間錨點(diǎn)的概念,表示系統(tǒng)經(jīng)過一段時(shí)間追蹤的現(xiàn)實(shí)世界中的重要點(diǎn)。每個(gè)錨點(diǎn)都有一個(gè)可調(diào)整的坐標(biāo)系統(tǒng),根據(jù)其他錨點(diǎn)和參考框架,以確保錨定虛擬投影在現(xiàn)實(shí)位置中。

????通俗的來說,可以利用這個(gè)空間錨點(diǎn)系統(tǒng)來實(shí)現(xiàn)將虛擬物體的位置錨定在現(xiàn)實(shí)空間你指定的位置上,該錨點(diǎn)可以持久化存儲(chǔ),在下次使用時(shí),虛擬物體仍會(huì)出現(xiàn)在錨點(diǎn)所在位置上。這個(gè)功能可以用來實(shí)現(xiàn)多人協(xié)同、特定位置展示虛擬物體等效果

????目前MRTK本地錨點(diǎn)有新舊兩套錨點(diǎn)系統(tǒng),新錨點(diǎn)的識(shí)別度和穩(wěn)定性略好于舊版錨點(diǎn),但沒有提供序列化和反序列化的方法,也就是無法自定義導(dǎo)出導(dǎo)入(Unity2020版本及以上+OpenXR),舊版錨點(diǎn)則提供序列化和反序列化的方法,可以將錨點(diǎn)數(shù)據(jù)導(dǎo)出保存在本地位置(僅能在Unity2020版本以下使用)這次先介紹新版錨點(diǎn),舊版錨點(diǎn)會(huì)在后面如何開發(fā)MR多人協(xié)同時(shí)講到。

????首先新建一個(gè)工程,導(dǎo)入OpenXR和MR相關(guān)配置(工程及場景搭建可以參考《使用OpenXR開發(fā)MR》這篇文章),并創(chuàng)建一個(gè)C#腳本,先把錨點(diǎn)的相關(guān)功能完成

錨點(diǎn)初始化:

添加錨點(diǎn):

刪除錨點(diǎn):

保存錨點(diǎn):

加載錨點(diǎn):

場景設(shè)置:

寫完腳本后,回到場景,還需要在場景中添加一些物體組件

1、在Hierarchy面板中右鍵選擇添加XR—AR Session 和 AR Session Origin到場景中,并在<AR Session Origin>物體上添加<AR Anchor Manager>組件

2、創(chuàng)建一個(gè)Sphere用來作為錨點(diǎn)的物體(可以是任意物體),并在上面添加抓取移動(dòng)等腳本(MR SDK自帶提供)

3、將之前寫的腳本掛在一個(gè)新建的空物體上,將剛才創(chuàng)建的對(duì)象拖入到腳本變量中

4、為了方便測試,可以用MR提供的UI面板,或者自己創(chuàng)建UI按鈕,將腳本中的幾個(gè)錨點(diǎn)方法添加在按鈕監(jiān)聽中

????然后就可以打包測試了,將錨點(diǎn)物體也就是那個(gè)小球拖動(dòng)到任意地方,然后觸發(fā)添加錨點(diǎn)和保存錨點(diǎn),如果錨點(diǎn)添加成功,那么物體會(huì)被錨定在那個(gè)現(xiàn)實(shí)位置上,只有移除后才可以移動(dòng),并且在退出程序,觸發(fā)加載錨點(diǎn)后,物體又會(huì)回到之前保存的位置上。

????這里就不截圖展示了,感興趣的可以自己去試試,錨點(diǎn)功能大致就在這里了,我個(gè)人測試的時(shí)候也遇到過一些坑,可以多去微軟文檔里和網(wǎng)上找找資料。

注意事項(xiàng):

????錨點(diǎn)可以存在多個(gè),但每個(gè)錨點(diǎn)的名稱必須是唯一的,否則會(huì)保存失敗。如果在運(yùn)行中多次重復(fù)刪除添加錨點(diǎn)出現(xiàn)保存失敗的問題,多半可能是錨點(diǎn)名稱重復(fù)了。我目前測試中,最多一次性放置了八個(gè)錨點(diǎn),具體上限沒有測試過,但推薦還是減少錨點(diǎn)數(shù)量,如果需要多個(gè)物體定位,可以考慮將物體設(shè)為錨點(diǎn)子集,保存錨點(diǎn)位置后,再將物體和錨點(diǎn)的相對(duì)位置保存記錄下來。

????測試使用中,錨點(diǎn)的精準(zhǔn)度根據(jù)環(huán)境識(shí)別度波動(dòng),在環(huán)境識(shí)別不夠、環(huán)境復(fù)雜度過高或者光線不理想的場景下,錨點(diǎn)會(huì)出現(xiàn)丟失、抖動(dòng)等情況,不太適用于室外或過大的空間,出現(xiàn)這種問題情況時(shí),嘗試多掃描周圍環(huán)境、調(diào)整燈光、重啟應(yīng)用等方法來讓錨點(diǎn)恢復(fù)。

????以上就是個(gè)人在使用MR錨點(diǎn)時(shí)一些使用心得和遇到的一些問題,因?yàn)橐呀?jīng)是去年使用測試的了,一些內(nèi)容有錯(cuò)誤和遺漏歡迎指正。

參考項(xiàng)目:https://github.com/microsoft/OpenXR-Unity-MixedReality-Samples

參考文章:https://blog.csdn.net/ShanGuUncle/article/details/122670263


Unity MRTK ——XRAnchor的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
墨竹工卡县| 玛沁县| 中超| 新民市| 乐陵市| 宜昌市| 光山县| 龙山县| 新干县| 望江县| 北流市| 清流县| 洛宁县| 阳泉市| 镇原县| 崇左市| 抚松县| 腾冲县| 铜鼓县| 永修县| 承德市| 阳江市| 兴和县| 仁怀市| 东辽县| 名山县| 海门市| 阳曲县| 永吉县| 静安区| 华阴市| 哈尔滨市| 尚义县| 古交市| 运城市| 花垣县| 泾源县| 瓦房店市| 宁阳县| 岳阳市| 水城县|