Pico 4 Ultra 開發指南
Pico 4 Ultra 的 LCC 開發流程與 PICO 官方創建 VR 項目基本一致,官方流程見 PICO Unity Integration SDK。本指南在其基礎上,說明如何接入 LCC Unity SDK 渲染 3DGS 場景。
版本要求
本指南使用的軟件及插件版本如下,建議使用相同版本開發,其他未經測試的版本可能存在兼容問題:
| 軟件 / 插件 | 版本 | 說明 |
|---|---|---|
| Unity | v2022.3.62f3 | 使用 Unity 2022 LTS |
| PICO Unity Integration SDK | v3.4.0 | 從 PICO 官方獲取 |
| LCC Unity SDK | v2.1.27 及以上 | 支持 Built-in 的版本,需下載 Unity 2022 LTS 兼容版 |
更詳細的硬件、軟件要求見開發環境要求。
注意:
開發流程
步驟 1:創建工程
在工程模板中選擇 3D (Built-in Render Pipeline) 類型。由於 PICO Unity Integration SDK 在 URP 管線上存在嚴重的性能問題,請不要選擇 URP 管線,如下圖所示:

創建 3D (Built-in Render Pipeline) 工程
步驟 2:切換平台
在 Unity 菜單中選擇 File → Build Profiles 打開應用構建窗口,將平台切換為 Android,如下圖所示:

在 Build Profiles 中將平台切換為 Android
步驟 3:導入 PICO Unity Integration SDK
從 PICO 官方網站下載 PICO Unity Integration SDK,並按照 PICO 教程安裝該插件;也可以直接從 GitHub 導入,地址為 https://github.com/Pico-Developer/PICO-Unity-Integration-SDK.git。本指南使用的版本為 v3.4.0,如下圖所示:

導入 PICO Unity Integration SDK v3.4.0
步驟 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
步驟 5:設置 Unity 環境
配置 XR Plug-in Management
在 Unity 菜單欄中選擇 File → Project Settings,在左側選擇 XR Plug-in Management,在 Android 平台選項卡下勾選 Initialize XR on Startup,如下圖所示:

在 XR Plug-in Management 中勾選 Initialize XR on Startup
選擇 XR Plug-in Management 下的 PICO 項,將 Android 平台的 Render Mode 設為 MultiView,如下圖所示:

將 PICO 的 Render Mode 設為 MultiView
選擇 XR Plug-in Management 下的 Project Validation 項,點擊 Fix All 完成必要設置(也可以先不處理,後續手動創建),如下圖所示:

在 Project Validation 中點擊 Fix All
注意:
- 如果點擊 Fix All,會在當前打開的場景中創建相應的必要遊戲對象,此時需要把場景中的 Main Camera 和 Directional Light 刪除。
- 本示例僅修復 UIOrientation.LandscapeLeft 一項,其餘均手動創建。
設置 Keystore
PICO 開發必須設置 Keystore。進入 Player → Android 選項卡 → Publishing Settings → Keystore Manager,新建 Keystore 並完成設置,如下圖所示:

在 Keystore Manager 中新建 Keystore
設置公司名與產品名
PICO 開發不允許使用默認的 defaultCompany。在 Player 選項卡中,設置正確的 Company Name 和 Product Name,如下圖所示:

設置 Company Name 與 Product Name
設置質量選項
在 Project Settings 中選擇 Quality 選項卡,設置 Anti Aliasing = Disabled、Resolution Scaling Fixed DPI Factor = 0.7、VSync Count = Don't Sync,如下圖所示:

在 Quality 選項卡中關閉抗鋸齒、設置 DPI Factor 與垂直同步
填寫 AppID
在 Unity 菜單中選擇 PICO → Platform → Platform Setting 打開設置面板,在 Paste your App ID here 中填入在 PICO 開發者平台申請的 AppID,詳見 創建開發者賬號、組織與應用。

在 PICO Platform Setting 中填入 AppID
設置 Graphics
在 Project Settings 中選擇 Graphics 選項卡,選擇 Android 平台,按下圖設置:

在 Graphics 選項卡中配置 Android 平台
設置 Player
在 Project Settings 中選擇 Player 選項卡,選擇 Android 平台,設置 Color Space = Gamma,取消勾選 Auto Graphics API,僅保留 Vulkan,其他設置如下圖所示:

設置 Color Space 為 Gamma,圖形 API 僅保留 Vulkan
在當前選項卡向下滑動,設置 Minimum API Level = Android 10.0、Scripting Backend = IL2CPP、API Compatibility Level = .NET Standard 2.1、Target Architectures = ARM64,其他設置如下圖所示:

設置 Minimum API Level、Scripting Backend、API Compatibility Level 與 Target Architectures

刪除 LCC SDK Editor 目錄下的 RewriteWebpDllImport.cs
在當前選項卡繼續向下滑動,設置 Active Input Handling = Input System Package (New),其他設置如下圖所示:

將 Active Input Handling 設為 Input System Package (New)
步驟 6:創建場景
在 Unity 中創建一個全新的場景,刪除 Main Camera 和 Directional Light。在層級窗口(Hierarchy)空白處單擊鼠標右鍵,在彈出菜單中選擇 XR → XR Origin (VR),創建必要的 XR 對象。
選中 XR Origin (VR) 對象,在屬性窗口(Inspector)中通過 Add Component 添加 PXR_Manager 組件,並設置其相關屬性如下圖所示:

為 XR Origin (VR) 添加並配置 PXR_Manager 組件
選中 XR Origin (VR) 對象,在屬性窗口(Inspector)的 XR Origin 組件中,將 Tracking Origin Mode 設為 Floor,其他屬性如下圖所示:

將 XR Origin 組件的 Tracking Origin Mode 設為 Floor
選中 XR Origin (VR) 對象的二級子對象 Main Camera,在屬性窗口(Inspector)中設置 Camera 組件的相關屬性,如下圖所示:

設置 XR Origin (VR) 下 Main Camera 的 Camera 組件屬性
在層級窗口(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;
using UnityEngine.XR;
public class LCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
private void Awake()
{
XRSettings.eyeTextureResolutionScale = 0.8f; // 降低紋理分辨率,提高性能
}
void Start()
{
#if UNITY_EDITOR
m_manager.SetPlatformType(PlatformType.PC);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load(m_FilePath, onProgress, onLoaded);
#else
m_manager.SetPlatformType(PlatformType.Pico);
m_renderer = m_manager.GetRender(this.gameObject.transform);
m_renderer.Load($"{Application.persistentDataPath}/LccData/meta.lcc2", onProgress, onLoaded);
#endif
}
private void onProgress(float v)
{
Debug.Log("progress:" + v);
}
private void onLoaded()
{
m_manager.SetStartLod(2);
m_renderer.SetEnvironment(false);
Debug.Log("Data loaded");
}
}
將該腳本掛載到層級窗口(Hierarchy)中的 LCCRenderer 遊戲對象上,然後在屬性窗口(Inspector)中將 LCCManager 遊戲對象拖到腳本的 Manager 屬性上,最後填寫 LCC 文件的路徑地址。

將 LCCRenderer 腳本掛載到對象,綁定 Manager 與文件路徑
為方便在 Unity Editor 中調試、並直接打包到 Android 真機,代碼使用編譯宏區分運行環境:在 Editor 中直接使用 m_FilePath 指定的地址;在 Android 設備上則使用設備本地的數據源。設備端數據的放置方式為:
- 先將打包好的應用在 PICO 設備上運行一次。
- 應用安裝後,進入其數據目錄(一般為 PICO 設備存儲盤 → Android → data → 應用 BundleID → Files,具體目錄可查閱 Android 應用安裝路徑),在 Files 子目錄下創建
LccData文件夾。 - 將 LCC 數據源全部拷貝到
LccData文件夾下。
注意:
- 實際使用中,建議將 PICO 應用的數據源放在服務器上,而不是直接打包進應用。
- Pico 4 Ultra 設備的 3DGS 同屏渲染能力約為 70 萬高斯基元,相比 PC 端約 2500 萬的渲染能力有約兩個數量級的差異,建議主要用於小場景、單物體的渲染展示;大場景使用 PC 串流會更流暢。
- 渲染 LCC 大場景時,建議將 StartLOD 設為
2並關閉環境數據顯示(如示例代碼所示)。
相關參考
- 工程項目與性能優化,請參見工程設置優化指南 、渲染性能參數設置指南 章節。
- PICO 開發的其它流程,請參考其官方文檔:PICO 開發者文檔。