Pico 4 Ultra 企業串流指南
Pico 4 Ultra 的企業串流通過 PICO 官方提供的 Business Streaming 工具,將 Unity 項目在 PC 端渲染並串流到設備上進行瀏覽和交互,從而藉助 PC 端的算力獲得比端側渲染更高的性能。本指南說明如何接入 LCC Unity SDK,配合 Business Streaming 完成串流開發。
版本要求
本指南使用的軟件及插件版本如下,建議使用相同版本開發,其他未經測試的版本可能存在兼容問題:
| 軟件 / 插件 | 版本 | 說明 |
|---|---|---|
| Unity | v6000.0.69f1 及以上 | 使用 Unity 6 |
| OpenXR | 1.61.1 及以上 | Unity OpenXR Plugin,從 Unity Registry 安裝 |
| LCC Unity SDK | v2.3.0 及以上 | 從 LCC Unity SDK 下載頁 獲取 |
| Business Streaming | v2.2.0 及以上 | 從 PICO 官方 獲取 |
注意:
- 企業串流通過 OpenXR 接入,與使用 PICO Unity Integration SDK 的 Pico 4 Ultra 開發指南 接入方式不同,請勿混用。
- Unity 版本、OpenXR 版本、LCC SDK 版本均會影響渲染與性能,請盡量保持各軟件版本與本指南一致。
開發流程
步驟 1:前置準備
在需要串流的計算機上 和 Pico4 Ultra 設備上下載並安裝 Business Streaming v2.2.0 及以上版本,建議安裝完成後重啟一次計算機。
步驟 2:創建 URP 工程
在工程模板中選擇 Universal 3D(URP 渲染管線)類型,如下圖所示:

創建 Universal 3D 工程
步驟 3:導入 Unity OpenXR
通過 Unity 菜單 Window → Package Manager 打開 UPM 窗口,在左側列表中選擇 Unity Registry,在搜索框中輸入 OpenXR,在檢索結果中選擇 OpenXR Plugin 並安裝,如下圖所示:

從 Unity Registry 安裝 OpenXR Plugin
步驟 4:導入 LCC Unity SDK
通過 Unity 菜單 Window → Package Manager 打開 UPM 窗口,單擊左側 +,在下拉菜單中選擇 Install package from disk,定位到 LCC Unity SDK,選擇 package.json 文件導入,如下圖所示:

通過 Install package from disk 導入 LCC Unity SDK
注意:完成以上步驟後,請重啟 Unity 再進行後續設置。
步驟 5:設置 Unity 環境
配置 XR Plug-in Management
在 Unity 菜單欄中選擇 File → Project Settings,在左側選擇 XR Plug-in Management,在 PC, Mac & Linux Standalone Settings 選項卡下勾選 Initialize XR on Startup,並勾選 OpenXR 作為 Plug-in Provider,如下圖所示:

在 XR Plug-in Management 中勾選 Initialize XR on Startup 與 OpenXR
注意:如果 OpenXR 後出現黃色警示標識,點擊 Fix All 全部修復。
選擇 XR Plug-in Management 下的 OpenXR 項,根據需要將 Render Mode 設為 Single Pass Instanced 或 Multi Pass,通常而言 Single Pass Instanced 能提供更好的性能,其餘設置保持默認,如下圖所示:

將 OpenXR 的 Render Mode 設為 Single Pass Instanced 或 Multi Pass
配置圖形 API
通過 Edit → Project Settings → Player 打開設置面板,在對應平台的選項卡下選擇 Other 條目,按平台配置圖形 API:
| 平台 | 操作 |
|---|---|
| Windows | 取消勾選 Auto Graphics API for Windows,添加 DirectX12、Vulkan、DirectX11 三個圖形 API |
| macOS | 取消勾選 Auto Graphics API for Mac,保留 Metal 圖形 API |
| Linux | 取消勾選 Auto Graphics API for Linux,保留 Vulkan 圖形 API |
注意:在 Windows 平台,建議使用 DirectX12 或者 Vulkan, 能提供更好的性能, DirectX11 建議打開 HDR 渲染以避免渲染瑕疵;
步驟 6:創建場景
本示例從一個全新的 Scene 開始。創建一個 Unity 場景(Scene),在層級窗口(Hierarchy)空白處單擊鼠標右鍵,在彈出菜單中選擇 XR → Convert Main Camera To XR Rig,將 Main Camera 轉換為 XR 相機。
步驟 7:配置場景
在層級窗口(Hierarchy)中選擇 XR Rig 遊戲對象,在屬性窗口(Inspector)中,將 Camera Offset 屬性的 Request Tracking Mode 設為 Floor,如下圖所示:
將 XR Rig 的 Camera Offset Request Tracking Mode 設為 Floor
在層級窗口(Hierarchy)中選擇 XR Rig → Camera Offset → Main Camera 遊戲對象,在屬性窗口(Inspector)中設置 Camera 組件相關屬性:Clipping Planes Near = 0.3、Far = 5000;Anti-aliasing = No Anti-aliasing;Opaque Texture = Off、Depth Texture = Off;Background Type = Solid Color、Background = 黑色;HDR Rendering = Off、MSAA = Off、URP Dynamic Resolution = Off,如下圖所示:

設置 XR Rig 下 Main Camera 的 Camera 組件屬性
步驟 8:編寫代碼,加載場景
在層級窗口(Hierarchy)中右鍵 Create Empty 創建一個空對象,命名為 LCCManager,將其 Transform 歸一,並通過 Add Component 為其掛載 LCCManager 腳本,如下圖所示:

創建 LCCManager 空對象並掛載 LCCManager 腳本
在層級窗口(Hierarchy)中右鍵 Create Empty 創建另一個空對象,命名為 LCCRenderer,將其 Transform 設置 Rotation.x = -90、Scale.x = -1,如下圖所示:

創建 LCCRenderer 空對象,設置 Rotation.x = -90、Scale.x = -1 以對齊座標系
Rotation.x = -90、Scale.x = -1 是 LCC 數據座標系(Z-up 右手)到 Unity 座標系(Y-up 左手)的對齊變換,詳見 Unity SDK 簡介 中的「LCC 數據座標系」。
編寫一個 C# 腳本,命名為 LCCRenderer.cs,代碼如下:
using LCCCore;
using UnityEngine;
[DefaultExecutionOrder(100)]
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
private Camera m_mainCamera;
private bool m_isLoaded = false;
void Start()
{
m_mainCamera = Camera.main;
// set platform type to PCVR
m_manager.SetPlatformType(PlatformType.PCVR);
m_manager.SetMainCamera(m_mainCamera);
m_manager.SetLockFPS(false);
//將全量渲染 splat 設為 1500 萬,即 LCC LOD0 超過 1500 萬時將走分塊渲染路徑。
//m_manager.SetFullRenderSplat(1500);
//將最大渲染 splat 設為 1500 萬,即分塊渲染路徑上同屏 splat 上限為 1500 萬。
//m_manager.SetMaxRenderSplats(1500);
m_renderer = m_manager.GetRender(this.transform);
if (m_renderer == null)
Debug.LogError("GetRender failed, check if the manager is set correctly and the file path is valid.");
m_renderer.Load(m_FilePath, onLoadProgress, onLoadCallback, onError);
}
private void onLoadProgress(float value)
{
Debug.Log($"loading progress: {value}");
}
private void onLoadCallback()
{
//將起始 LOD 設為 2,即初始渲染將處於 LOD2 層級。
//m_manager.SetStartLod(2);
Debug.Log("data loaded !!!");
m_isLoaded = true;
}
private void onError(string error)
{
Debug.LogError($"load error: {error}");
}
}
將該腳本掛載到層級窗口(Hierarchy)中的 LCCRenderer 遊戲對象上,然後在屬性窗口(Inspector)中將 LCCManager 遊戲對象拖到腳本的 Manager 屬性上,最後填寫 LCC 文件的路徑地址。
完成上述配置後,層級窗口(Hierarchy)中的場景結構如下圖所示:

完成配置後的場景結構
注意:場景中需保留 URP 工程默認創建的 Directional Light、Global Volume 等對象。
步驟 9:設置 Business Streaming
在電腦端啟動 Business Streaming,選擇 Settings → General,將 Default Streaming Type 設為 OpenXR Streaming,如下圖所示:

將 Business Streaming 的 Default Streaming Type 設為 OpenXR Streaming
步驟 10:開始串流
- 將 Pico 4 Ultra 通過 USB 3.0 或高速 WiFi 連接計算機。
- 在 Pico 4 Ultra 設備上打開 Business Streaming,並連接到計算機。
- 在 Unity Editor 中點擊 Play 按鈕運行,或打開發佈好的應用程序,即可開始串流。
注意:
- Business Streaming 軟件使用請參考 PICO 官方文檔:https://business.picoxr.com/cn/doc/Business-Streamingv2。
- 工程設置請參考工程設置優化指南。
- 串流對 PC 計算機硬件設備(特別是顯卡)要求較高,請使用高性能計算機串流,並使用 USB 3.0 或高速 WiFi。
- PCVR 串流會渲染兩次(SPI 模式也有頂點翻倍開銷),因此可通過設置全量/分塊渲染、最大同屏渲染總量、起始 LOD 層級等方式提升性能和幀率,參數設置請參考 渲染性能參數設置指南。
相關參考
- 工程項目與性能優化,請參見工程設置優化指南、渲染性能參數設置指南 章節。
- 使用 PICO Unity Integration SDK 的端側渲染流程,請參見 Pico 4 Ultra 開發指南。
- Business Streaming 的其它使用說明,請參考 PICO 官方文檔:Business Streaming 企業串流。