虛擬現實(VR)

出自 Arch Linux 中文维基

虛擬現實是使用各種外圍設備,頭戴式顯示器或CAVEs和跟蹤器為用戶模擬環境的一系列過程。虛擬顯示技術不會從屏幕上向您顯示靜態視點,而是將您的視點相對於您站立的位置(在貼頭或投影的表面上)進行渲染,以提供與您自己的眼睛觀看視角相同的效果。

許多虛擬現實的設備已經發佈或即將發佈,這為人們帶來了不是那麼昂貴,身臨其境的虛擬現實環境。這些設備大多數都具有全部或部分Linux支持,並且許多具有AUR軟件包。

環境兼容列表[編輯 | 編輯原始碼]

本文或本章節的語言、語法或風格需要改進。參考:幫助:風格

原因:Use Template:Yes and question marks.(在Talk:虛擬現實(VR)討論)

Legend:

  • 綠色: 原生支持
  • 黃色: 通過工具集支持或部分支持
  • 紅色: 不完整支持
  • 無色: 未知/未完成/計劃支持
Oculus Rift OSVR OpenVR Leap Motion Razer Hydra
Dolphin (從源倉庫 fork 的 VR 版本) 部分完成
Dolphin (官方 OSVR 支持) 通過 OSVR 通過 OSVR 通過 OSVR
Minecrift (Minecraft VR) (計劃) 通過 OSVR-SteamVR (計劃) (計劃) 通過 OSVR
Janus VR 通過 OSVR
Team Fortress 2 通過 OpenVR 通過 OSVR-SteamVR 不完整支持,隨機修復狀態 通過 OSVR 通過 OSVR
Half Life 2 顯示處於一隻眼黑,一隻眼無色的狀態 通過 OSVR-SteamVR 顯示處於一隻眼黑,一隻眼無色的狀態 通過 OSVR 通過 OSVR
VRUI VR 工具集和演示
4089: The Ghost Within 通過 OpenVR 通過 OSVR-SteamVR 直到V社修復問題之前都不完善 通過 OSVR 通過 OSVR
Games/Programs in Wine 在 OVRSDK 版本 <=0.5.0.0, 且 oculus-wine-wrapper-gitAUR[損壞的連結:package not found]wine-unity3d-gitAUR[損壞的連結:package not found]上支持 跟蹤器工作完美。 但是在Unity演示沒有Render Manager的工作時有問題,使用Render Manager的Unity演示會出現白屏或者黑屏。

支持的設備和工具集[編輯 | 編輯原始碼]

OpenXR[編輯 | 編輯原始碼]

OpenXR是一種開放的,不收費用的標準,用於訪問虛擬現實以及增強現實的平台和設備。它由Khronos集團維護,並被大多數行業所採用,大多數運行時都支持OpenXR。

Monado[編輯 | 編輯原始碼]

Monado是由Collabora開發的開源OpenXR運行時。它正在開發中,旨在提供支持大多數耳機的通用運行時。你可以在 https://monado.freedesktop.org/ 上查看進度

OpenVR / SteamVR[編輯 | 編輯原始碼]

Valve致力於通過OpenVR創建用於VR開發的開放API。不幸的是,當API開放時,實際的默認實現(SteamVR)卻沒有進行開放。它提供了一個OpenXR標準的運行時。

配置[編輯 | 編輯原始碼]

安裝 Steam, 通過Steam裡的下載按鈕下載SteamVR。

故障排除[編輯 | 編輯原始碼]

配置和啟動錯誤[編輯 | 編輯原始碼]

SteamVR / OpenVR創建一個配置目錄〜/.openvr,該目錄可能在不同的版本上出現配置錯誤。刪除該目錄,然後完全卸載/重新安裝SteamVR可以解決。

在某些配置下,訪問Rift顯然也很麻煩。一種替代方法是使用OSVR-SteamVR驅動程序和OSVR-Oculus-Rift插件。

OpenHMD[編輯 | 編輯原始碼]

OpenHMD 目標是為沉浸式技術提供免費和開源的API和驅動程序,例如具有內置頭部跟蹤功能的頭戴式顯示器。目標是在便攜式跨平台封裝中實現儘可能多設備的支持。

OpenHMD支持多種設備,例如Oculus Rift,HTC Vive,Sony PSVR,Deepoon E2等。

可以從第三方獲得 .NET,Java,Perl,Python和Rust的編程語言綁定。

安裝[編輯 | 編輯原始碼]

安裝 openhmd-gitAUR.

SteamVR 支持[編輯 | 編輯原始碼]

可以將OpenHMD與SteamVR一起使用。為此,您需要安裝 steamvr-openhmd-gitAUR 並創建符號連結,該連結指向SteamVR驅動程序目錄中的OpenHMD SteamVR驅動程序,例如:

 ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd

過時的設備和工具集[編輯 | 編輯原始碼]

OSVR[編輯 | 編輯原始碼]

OSVR是由Sensics,Inc(一家歷史悠久的VR公司)和Razer共同努力創建的VR的完全或幾乎完全開放的軟件API,最終開發人員只需要將各自的頭戴式耳機掛接一些功能即可獲得一流的支持。它支持最廣泛的外圍設備,並通過JSON配置文件具有極其靈活的配置。

它還提供了一個插件,使其可以用作OpenVR實施,使您可以使用它與支持的任何設備一起玩OpenVR / SteamVR遊戲。

配置[編輯 | 編輯原始碼]

安裝 osvr-core-gitAUR, 還有一些其他需要支持的獨立設備,現在支持的插件有: osvr-oculus-rift-gitAUR[損壞的連結:package not found]

osvr-leap-motion-gitAUR

如果希望將OSVR與SteamVR / OpenVR遊戲和應用程式一起使用,安裝 osvr-steamvr-gitAUR連結驅動到SteamVR, 運行OSVR伺服器,並通過以下命令使其在後台運行:

   osvr_server /usr/share/osvrcore/sample-configs/your_device_config.json

您可能希望自定義配置以適合您的個人需求。

要測試您的安裝是否正常並且跟蹤器可用,請安裝osvr-tracker-viewer-gitAUR 和執行 OSVRTrackerView. 您應該看到OSVR可以拾取的每個跟蹤器的一組軸。如果不這樣做,請運行 osvr_print_tree 以查看可用的跟蹤器或是否存在配置問題。

Oculus Rift[編輯 | 編輯原始碼]

Oculus Rift 已經停止支持Linux了,更多請見

Oculus Rift.

Leap Motion[編輯 | 編輯原始碼]

Leap Motion是一款價格實惠的手持跟蹤器,可以輕鬆地安裝在HMD的面板上,以允許您與虛擬對象進行交互。不幸的是,最新的Orion軟件不適用於Linux,因此當前可用的跟蹤功能正常但存在很多錯誤,它僅真正適用於Linux上的社交互動。但由於它的成本不到HMD或等效跟蹤系統的1/10,因此它仍然是相當有用的設備。

配置[編輯 | 編輯原始碼]

安裝 leap-motion-driverAUR, osvr-leap-motion-gitAUR 可選擇安裝 leap-motion-sdkAUR.

要配置,啟用 leapd.service 需執行 LeapControlPanel. 要測試跟蹤是否有效,請運行安裝隨附的 Playground

支持的軟件[編輯 | 編輯原始碼]

當前,有一些應用程式可以在Rift和Linux上正常運行,其中一些應用程式位於AUR中。

Dolphin (VR fork 版本)[編輯 | 編輯原始碼]

dolphin-emu-vr-gitAUR[損壞的連結:package not found] 是Gamecube的仿真器,具有一些修補程序,可使其具有完整的頭部追蹤立體渲染效果,並帶有許多自定義功能,使遊戲在VR中開箱即用(例如,禁用剔除功能,讓您查看整個世界)。

鑑於Dolphin項目已開始正式支持上游OSVR,因此大部分支持已停止。

注意: 當將此應用程式與Rift一起使用時,它可以在縱向(直接)模式下正常工作,並且應在不旋轉Rift的情況下運行,這樣可以最小化延遲。

Dolphin (官方 OSVR 支持)[編輯 | 編輯原始碼]

olphin項目已開始致力於使用OSVR正式增加對VR的支持,可通過 dolphin-emu-osvr-gitAUR獲得支持。 它甚至可以使用OSVR的路徑樹輸入作為控制器輸入,這樣您就可以使用收縮或六軸控制器輸入作為Wiimote輸入。但是,在某些地方支持有限,因為和原始的Oculus-only 的fork版本差別較大。

wine中的遊戲和程序[編輯 | 編輯原始碼]

使用Wine時,許多應用程式具有一定程度的兼容性問題,但通常需要進行一些程度的調整才能使其按預期運行。

oculus-wine-wrapper-gitAUR[損壞的連結:package not found] 是一個實用工具,用於在運行Wine時修補Oculus SDK的Linux和Windows版本之間的差異。它為Wine應用程式創建要使用的共享內存上下文,從而允許該應用程式訪問本機Oculus SDK。但似乎沒有必要將SDK安裝到wineprefix。

Unity 遊戲[編輯 | 編輯原始碼]

為了在基於Unity的遊戲中獲得最佳性能,理想情況下,您應使用-force-opengl使其強制為opengl模式。 但是,對於未打補丁的Wine上,目前尚不可能做到這一點,因為它試圖強制執行的WGL上下文與典型的GLX上下文有一些差異有相關描述[失效連結 2021-11-19 ⓘ]。 使用 wine-unity3d-gitAUR[損壞的連結:package not found] 包 將使您可以使用本機OpenGL運行這些遊戲,從而可以在計算機上以不錯的性能進行遊戲。但是,玩家嘗試更改視頻模式或將設置弄亂,因此需要提供默認的視頻設置。此外,由於它使用的是本機OpenGL,因此nvidia的__GL_THREADED_OPTIMIZATIONS可以顯着提高性能。總體而言,該命令應如下所示:

   env __GL_THREADED_OPTIMIZATIONS=1 wine UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl

或者使用 oculus-wine-wrapper-gitAUR[損壞的連結:package not found]:

   env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl

Minecrift (Minecraft VR)[編輯 | 編輯原始碼]

可在這裏找到使用最新的JRift(本機Java rift運行時)版本運行現有Minecrift版本的指南。 您可能會希望在使用Rift時安裝較舊的版本,因為JRift已不斷更新以匹配Oculus SDK。

另外,許多用戶報告說使用JRE8的性能要好於JRE7。

注意: 使用Rift時,此應用程式可在縱向(直接)模式下正常工作,並且應在不旋轉Rift的情況下運行。但是,從15年5月12日開始,遊戲中的GUI將顯示為拉長的16:9矩形,而不是停留在屏幕比例上。這雖然是可用的,但是表現不理想。

JanusVR[編輯 | 編輯原始碼]

「janusVR:一個沉浸式,協作的多維互聯網。」 JanusVR是一款應用程式,可讓您在多人遊戲體驗中瀏覽3D網站。janusvr的AUR包可以使用: janusvrAUR

當JanusVR升級時,AUR軟件包不會自動更新,但是當有新版本可用時,應用程式會告訴您,發生這種情況時,只需重新構建新軟件包即可。

注意: 此應用程式可在縱向(直接)模式下正常使用(從42.3開始),並且應在不旋轉Rift的情況下運行。

Leap Motion 支持[編輯 | 編輯原始碼]

Leap Motion使您可以通過手勢輸入,並且上世界上的其他人看到。您將需要將Leap安裝到HMD的前面,並確保使用的是默認的頭像。

其他注意事項[編輯 | 編輯原始碼]

啟用OpenAL雙耳模式支持[編輯 | 編輯原始碼]

請查看 Gaming#Binaural audio with OpenAL.