###### tags: `CloudXR` `Nvidia` `Unity` `VR` # NVIDIA CloudXR SDK VR Streaming Solutuin. ## Cloud XR Setup * Date: 2021/9/10 - Build success. * SteamVR Version: 1.19.7 * CloudXR Version: 3.0 (2021-08-04-CloudXR-SDK) * Platform: Windows 10/11 - 21H2 https://docs.nvidia.com/cloudxr-sdk/index.html Cloud XR Server 測試畫面: ![](https://i.imgur.com/daDxPeM.png) ![](https://i.imgur.com/L4f35hD.jpg) ### Setup CloudXR Server 解壓縮 2021-08-04-CloudXR-SDK ![](https://i.imgur.com/4CFptST.png) ### Run CloudXR-Setup 執行 `...\2021-08-04-CloudXR-SDK\Installer\CloudXR-Setup.exe` 安裝完成後, 開啟 SteamVR/左上角 Menu/Settings/確認CloudXRRemoteHMD 已開啟 <font color=#FF0000>若不使用 CloudXR 需關閉, 否則會無法正常執行原本的 SteamVR</font> ![](https://i.imgur.com/JFMjsgZ.png =250x) ![](https://i.imgur.com/d37VGRh.png =250x) ### Build CloudXR Client APP (Android OVR) 1. 開啟 Android Studio ![](https://i.imgur.com/ls7qWDA.png) 2. Build APK ![](https://i.imgur.com/jcQXvhN.png) 3. 若發生錯誤 在 `…\2021-08-04-CloudXR-SDK\Sample\Android\OculusVR\app\libs` 補上以下資料: + CloudXR.aar → 路徑 …\2021-08-04-CloudXR-SDK\Client\Lib\Android + oboe-1.5.0.aar → https://github.com/google/oboe/releases/ + ovr_sdk.zip → https://developer.oculus.com/downloads/package/oculus-mobile-sdk/1.35.0/ (下載完成後將檔名改成 ovr_sdk.zip) ![](https://i.imgur.com/8zVG9RT.png) 4. Build Success!! Build 成功後產生 app-debug.apk 在以下路徑: `…\CloudXR-SDK\2021-08-04-CloudXR-SDK\Sample\Android\OculusVR\app\build\outputs\apk\debug` 將 app-debug.apk 複製至 adb 資料夾內, 我這邊為 C:\adb (路徑不限看個人) ![](https://i.imgur.com/4UfVtUD.png) 另外, 在 adb 內資料夾建立文字檔, 檔名為 CloudXRLaunchOptions.txt 新增以下內容 ip 請自行修改為 Server 電腦 的IP (可利用 cmd/ipconfig 查詢) ``-s 172.20.10.2`` 5. 安裝 app-debug.apk 進行此步驟, 前先接上 Oculus Quest 2, 並確保電腦可存取 Oculus quest 2 內的文件. 輸入 adb install app-debug.apk ![](https://i.imgur.com/RjfTgY5.png) 6. 複製 CloudXRLaunchOptions.txt 輸入 ``` adb push CloudXRLaunchOptions.txt /sdcard/cloudXRLaunchOptions.txt ``` ![](https://i.imgur.com/NcUpDlC.png) ### Run CloudXR 1. Server → PC, Client → Quest2 需先連到同一個網域(建議為5G網路) 2. 開啟 SteamVR 還未開啟 Client 時, SteamVR 顯示的狀態如下 ![](https://i.imgur.com/Iuv6Kso.png =250x) 3. 開啟 Oculus Quest2 app-debug Client 開啟成功後, 顯示的狀態如下: ![](https://i.imgur.com/eC9j0W4.png =250x) 4. 移除 USB Type C ## 防火牆/Port 設置 1. 防火牆允許應用程式如下圖: ![](https://i.imgur.com/nH6v9rP.png) ![](https://i.imgur.com/gajubxE.png) VRServer, VRService路徑 `...\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64` 2. Port 為 47999-48005, 需要為開啟狀態 ![](https://i.imgur.com/dA3z8fO.png) ## 在雲端環境中運作 CloudXR 1. 雲端空間的VM 開啟 Web搜尋列 輸入 ipconfig.me ![](https://i.imgur.com/zxiUrpO.png) 2. 確認防火牆/Port 3. 建立 CloudXRLaunchOptions 4. 開啟 SteamVR 5. 開啟 Client CloudXR-app ## Issue 1. Client/Server 顯示影像為綠色 修正方法 改為使用 VNC ![](https://i.imgur.com/AHafsKI.jpg) > Microsoft Remote Desktop (RDP) is known to be incompatible with CloudXR, and it causes side effects such as a green video stream, and sometimes, network connection issues. * https://docs.nvidia.com/cloudxr-sdk/usr_guide/cxr_server.html * https://forums.developer.nvidia.com/t/connecting-to-cloudxr-server-vr-headset-stays-blind/187718 # Reference 1. Stream virtual reality content from a virtual workstation using NVIDIA CloudXR https://cloud.google.com/community/tutorials/streaming-vr-content-from-a-virtual-workstation-using-nvidia-cloudxr 2. Field Notes: Streaming VR to Wireless Headsets Using NVIDIA CloudXR https://aws.amazon.com/tw/blogs/architecture/field-notes-streaming-vr-to-wireless-headsets-using-nvidia-cloudxr/ 3. SteamVR 做為企業 / 政府用途 https://partner.steamgames.com/doc/features/steamvr/enterprise