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);
//Set the full render splat to 15 million, which means lCC LOD0 > 15 million will go chunk rendering path.
//m_manager.SetFullRenderSplat(1500);
//Set the max render splat to 15 million, which means max on-screen splat limit to 15 million on chunk rendering path.
//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()
{
//set the start lod to 2, which means the initial rendering will be at LOD2 level.
//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 企业串流。