此教程相關(guān)的詳細(xì)教案,文檔,思維導(dǎo)圖和工程文件會放入 Spatial XR 社區(qū)。這是一個高質(zhì)量知識星球 XR 社區(qū),博主目前在內(nèi)擔(dān)任 XR 開發(fā)的講師。此外,該社區(qū)提供教程答疑、及時交流、進(jìn)階教程、外包、行業(yè)動態(tài)等服務(wù)。
社區(qū)鏈接:
Spatial XR 高級社區(qū)(知識星球)
Spatial XR 高級社區(qū)(愛發(fā)電)
本篇文章配套的視頻鏈接:【2023 VR+MR全硬件開發(fā)教程】:一、開發(fā)導(dǎo)論(主講:YY)
??開發(fā)平臺分類
VR(XR)頭顯的開發(fā)按照程序運(yùn)行的平臺分類主要可以分為一體機(jī)應(yīng)用和 PCVR 應(yīng)用。一體機(jī)應(yīng)用就是直接運(yùn)行在 VR 頭顯內(nèi)的應(yīng)用,它的算力由頭顯本身提供。PCVR 應(yīng)用就是需要將頭顯和電腦進(jìn)行串流,它的算力由電腦提供,頭顯只負(fù)責(zé)顯示畫面。
因為目前來說電腦的芯片比一體機(jī)頭顯內(nèi)置的芯片更加強(qiáng)大,所以通常來說 PCVR 應(yīng)用相比一體機(jī)應(yīng)用會有更好的畫質(zhì),但是一體機(jī)應(yīng)用也有它的優(yōu)點(diǎn),就是方便。因為玩 PCVR 需要有一個頭顯和電腦串流的步驟,串流分為有線串流和無線串流。有線串流就是需要將頭顯和電腦通過一根串流線進(jìn)行連接,那么我們玩 PCVR 可能經(jīng)常會受到這根串流線的束縛。無線串流就是需要將頭顯和電腦通過 WiFi 進(jìn)行連接,那么這就需要一個比較好的網(wǎng)絡(luò)才能有流暢的體驗。并且你的電腦配置也決定了是否能流暢地玩 PCVR 游戲。但是一體機(jī)應(yīng)用就比較方便了,頭顯開機(jī)之后就能直接玩,沒有什么束縛。那么以上就是 PCVR 應(yīng)用和一體機(jī)應(yīng)用的區(qū)別,大家需要根據(jù)自己的需求選擇哪一種類型的開發(fā)。
??Quest 一體機(jī)開發(fā)分類
那么我會先從 Meta Quest 一體機(jī)開發(fā)講起。Quest 一體機(jī)開發(fā)按照輸入類型分類可以分為手柄功能的開發(fā)(比如操作手柄按鍵去控制人物)和手勢追蹤(用自己的雙手去與虛擬物體進(jìn)行交互)。
然后按照應(yīng)用中的背景環(huán)境分類的話可以分為 VR 和 MR 。VR 就是完全虛擬的環(huán)境。MR 就是能在現(xiàn)實場景中看到虛擬的物體,并且能和虛擬物體交互,虛擬物體也能和現(xiàn)實物體交互,比如虛擬物體與現(xiàn)實物體產(chǎn)生遮擋關(guān)系、虛擬物體能夠與現(xiàn)實物體發(fā)生碰撞。 Quest 頭顯能夠通過它的視頻透視技術(shù)(Video See-Through)看到現(xiàn)實中的環(huán)境,但是透視只是將原來虛擬世界的游戲背景替換成現(xiàn)實世界的圖層,然后將虛擬物體疊加在現(xiàn)實世界的圖層上。如果想要實現(xiàn)虛擬物體和現(xiàn)實物體的碰撞和遮擋,就要用上一些 MR 的技術(shù)。這方面 Meta 已經(jīng)在不斷完善它的 API 了。因為最近 Quest3 出了嘛,它有兩個 RGB 彩色攝像頭和一個深度傳感器,透視的清晰度更高,并且能對周圍場景進(jìn)行掃描,對 MR 的支持肯定會更好,并且 Meta 在 Quest3 發(fā)布會上也著重強(qiáng)調(diào)了 Quest3 的 MR 體驗,這說明 MR 在未來可能會是一個非常值得研究的方向。包括明年會出的Apple Vision Pro,也是注重MR體驗。身為開發(fā)者,我們也可以提前做一些技術(shù)積累,應(yīng)對未來快速發(fā)展的時代。
??Quest 一體機(jī)開發(fā)主流 SDK
要想開發(fā) XR 應(yīng)用,我們需要使用一些 XR 開發(fā)的 SDK,也就是軟件開發(fā)工具包。那么我們先來看一看目前市面上有哪些主流的用于開發(fā) Quest 一體機(jī)應(yīng)用的 SDK。本系列教程使用的是 Unity 引擎進(jìn)行開發(fā),因此我會列出一些 Unity 版本的 SDK。
首先是 OpenXR+XR Interaction Toolkit(XRI)的方案。這個 OpenXR 是什么東西呢?在 OpenXR 還沒出現(xiàn)之前,XR行業(yè)發(fā)展的早期,不同的 XR 設(shè)備都維護(hù)著它們各自的 SDK,供開發(fā)人員制作出能在相應(yīng)設(shè)備上運(yùn)行的程序,因此開發(fā)者需要根據(jù)不同的 XR 設(shè)備廠商選擇不同的 SDK 進(jìn)行開發(fā)。但是如果在不同設(shè)備上移植同一套程序就比較麻煩了,因為可能會出現(xiàn) A 廠商的 SDK 無法兼容到 B 廠商的設(shè)備上。這就會導(dǎo)致如果我想要使用不同設(shè)備的人都能體驗到我開發(fā)的程序,就需要為每一種設(shè)備開發(fā)一個特定的程序版本。那么這顯然是巨大的負(fù)擔(dān)。而開發(fā)者希望 XR 行業(yè)能有一套統(tǒng)一的標(biāo)準(zhǔn),只要編寫一次代碼,就能兼容所有的設(shè)備。這樣開發(fā)者只要專注于程序開發(fā)本身,而不用在意設(shè)備間的差異。
而 OpenXR 就是為了簡化 XR 開發(fā)而制定的一套標(biāo)準(zhǔn)。相當(dāng)于在編寫的 XR 應(yīng)用程序和不同的硬件設(shè)備間新增了一個中間層,最上層是 XR 應(yīng)用程序,最底層是硬件設(shè)備,而這兩個層的中間夾了一個 OpenXR 層,它向上提供一套統(tǒng)一的開發(fā) API,不同的開發(fā)引擎對該 API 進(jìn)行二次封裝,提供給 XR 應(yīng)用開發(fā)者使用。而不同的設(shè)備廠商為硬件編寫支持 OpenXR 標(biāo)準(zhǔn)的接口,使得中間層能夠向下兼容對應(yīng)的硬件設(shè)備。如今,越來越多的 XR 設(shè)備開始支持 OpenXR 標(biāo)準(zhǔn),這意味著選用 OpenXR 進(jìn)行 XR 設(shè)備的開發(fā)可以成為一種通用的方案。
而 XR Interaction Toolkit 是 Unity 官方提供的開發(fā) VR/AR 程序的工具包。結(jié)合 Unity 中的 OpenXR 插件,就能開發(fā) XR 應(yīng)用了,并且理論上適用于所有支持 OpenXR 標(biāo)準(zhǔn)的頭顯。那么這套方案適用于開發(fā) VR 手柄相關(guān)功能,比如移動,傳送,轉(zhuǎn)向,抓取,射線交互,點(diǎn)觸交互,點(diǎn)觸交互就比如直接用手去點(diǎn)擊一個 UI 按鈕。那么 XR Interaction Toolkit 的優(yōu)點(diǎn)就是跨平臺,易上手。但是目前來說一些復(fù)雜的功能需要自己實現(xiàn),比如手部物理,抓取手勢等功能。不過這個XR Interaction Toolkit 目前也是在不斷更新,每次更新都會新加一些功能,也許在未來它會內(nèi)置更多復(fù)雜的功能。
OpenXR+XR Hands 的方案是用來實現(xiàn)手勢追蹤的,OpenXR+Meta OpenXR Feature 的方案是用來實現(xiàn) MR 的。但是 XR Hands 和 Meta OpenXR Feature 目前還處于早期開發(fā)階段,提供的功能不是很多。
接下來是 Oculus Integration:
它是 Meta 自家的SDK。能夠用于手柄功能的開發(fā),手勢追蹤(包括抓取,點(diǎn)擊,射線交互,識別手勢,比如我擺出一個剪刀手,能被Quest識別出來),然后還有 MR 的開發(fā)。這款 SDK 提供的功能是挺多的,但是它也有一個缺點(diǎn),就是 SDK 迭代速度很快,可能前一個版本中的一個組件到了下一個新版本,使用方法就發(fā)生了很大的改變。并且我感覺它的官方文檔某些地方寫的挺亂的,可能不易看懂。
除此之外,還有 UltimateXR,它也是一款比較好用的 XR 開發(fā)框架。(https://www.ultimatexr.io/)
還有這個 AutoHand,它是一款付費(fèi)插件,具有非常優(yōu)秀的手部物理交互系統(tǒng)。
??Quest PCVR 開發(fā)主流 SDK
那么既然講了 Quest 一體機(jī)開發(fā)的 SDK,我也順帶講一下 PCVR 的一些主流的 SDK。首先這個 OpenXR+XR Interaction Toolkit 的方案也是適用的,然后還有像SteamVR,VRTK,
UltimateXR, Auto Hand,VR Interaction Framework,HurricaneVR,都是比較不錯的選擇。
文章來源:http://www.zghlxwxcb.cn/news/detail-765770.html
??新手入門開發(fā)的 SDK 推薦
最后總結(jié)一下,如果要開發(fā) Quest 一體機(jī)應(yīng)用,手柄功能的開發(fā)我推薦用 OpenXR+XR Interaction Toolkit 的方案,對于新手來說容易上手,并且它的相關(guān)教程目前是最多的。如果你想開發(fā)手勢追蹤或者 MR 的內(nèi)容,目前我推薦用 Meta 自家的 Oculus Integration。如果要開發(fā) PCVR,然后用 Quest 串流。我也推薦新手從 OpenXR+XR Interaction Toolkit 入手,如果想要實現(xiàn)更復(fù)雜的功能也可以嘗試其他插件。文章來源地址http://www.zghlxwxcb.cn/news/detail-765770.html
到了這里,關(guān)于Unity Meta Quest 開發(fā)(一)導(dǎo)論:開發(fā)現(xiàn)狀與主流 SDK的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!