XGRIDS文檔
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 靈視 P 系列

    • 靈視 P1

      • 產品概述
      • 設備基本操作
      • 使用 LCC Scan App
      • 維護及保養
      • 常見問題
  • 靈光 K 系列

    • 靈光 K1

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 地圖融合
      • 典型場景路線規劃建議
      • 注意事項
      • 常見問題
    • 靈光 K2

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 地圖融合
      • 典型場景路線規劃建議
      • 注意事項
      • 常見問題
  • 靈光 L 系列

    • 靈光 L2 Pro

      • 產品概述
      • 設備基本操作
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據
      • 實時測量功能
      • 附錄
      • 常見問題
    • 靈光 L3

      • 產品概述
      • 設備基本功能
      • 設備激活與連接
      • 設備採集
      • 獲取絕對座標點雲數據操作流程
      • 附錄
  • 配件

    • 補光燈

      • 安裝指導
      • 基本操作
      • 常見問題
  • Lixel Studio

    • 版權
    • 安裝與激活
    • 界面說明
    • 文件
    • 工程處理
    • 工具
    • 平面繪製
    • 行業應用
    • 設置
    • 設備感知
    • 常見問題 / FAQ
  • Lixel CyberColor

    • LCC Studio

      • 入門
      • 版本與更新
      • 下載及安裝
      • 介面概覽及導覽
      • 重建前準備
      • 模型重建
      • 單模型重建
      • 地圖融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 設定與帳戶
      • 設置與賬號
      • Converter
      • 影片重建
      • 視頻重建
      • 常見問題
    • LCC Scene Editor

      • 版本與更新
      • 賬號與登錄
      • 產品概覽與主頁
      • 編輯器界面介紹
      • 三種場景漫游快捷操作
      • 文件
      • 設置
      • 編輯操作
      • 窗口
      • 全局工具欄
      • 資產與屬性
      • 左側工具欄
      • 視點
      • 跳轉點
      • 天空盒
      • 標注
      • 測量
      • 場景漫游
      • 場景報告
      • 智能戶型圖(3D Layout)
      • 小地圖
      • 預覽模式(Viewer)
      • 幫助
      • 常見問題 / FAQ
      • 出生點
    • LCC Model Editor

      • 版本與更新
      • 新手指引
      • 概覽與界面
      • 文件操作
      • 選擇器
      • 編輯操作
      • 測量
      • 調色
      • 資產管理
      • 設置與幫助
      • 常見問題 / FAQ
    • 採集指南

      • 概述
      • 採集設備總覽
      • 通用採集原則
      • 室內場景採集
      • 室外場景採集
      • 大場景採集(地圖融合)
      • 空地融合採集
      • 物體採集
      • 人物採集
      • 影片重建採集
      • 高清補拍
      • 控制點(靈視 P1)
      • 常見問題與排查
    • LCC Studio Linux

      • 產品概要說明
      • 基本架構說明書
      • 安裝部署說明書
      • 容器啟動參數說明書
      • CodeMeter離線授權部署說明書
      • API指令集說明書
      • 附錄-開發者數據說明書
      • 附錄-錯誤碼列表
      • 單機多卡集群部署QuickStart
    • 使用技巧

      • 多個大型 3DGS 模型融合工作流
    • 歷史版本
  • Plugin & SDK

    • Unreal

      • 介紹
      • 快速入門 - Windows
      • 快速入門 - Linux
      • 快速入門 - Quest3
      • 版本與授權
      • 渲染
      • Tiled 光柵化(實驗性)
      • 畫面調節
      • 法線與光照
      • 場景編輯
      • 性能參數說明
      • 性能優化指南
      • 第三方與引擎插件集成
      • 代理網格
      • 加載動畫
      • 碰撞
      • 尋路系統支持
      • 單層水支持
      • 本地化
      • 常見問題
      • 故障排查
      • 日誌與診斷
      • 聯繫我們
      • 最佳實踐

        • 用 LixelStudio 網格為 3DGS 重打光
      • API 參考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日誌

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Unity SDK 簡介
      • 技術特性
      • 開發環境要求
      • PC 快速開發入門指南
      • 工程設置優化指南
      • Pico 4 Ultra 開發指南
      • Pico 4 Ultra PC 串流指南
      • Quest 3 開發指南
      • Quest 3 PC 串流指南
      • OpenXR 開發指南
      • Pico 4 Ultra 企業串流指南
      • 術語表
      • 常見問題
      • 聯絡我們
      • 功能開發指南

        • 多場景混合渲染開發指南
        • 陰影接收開發指南
        • 實時光照開發指南
        • 多相機渲染開發指南
        • 高清圖像渲染開發指南
        • LCC 與 LCC2 數據格式兼容開發指南
        • 加載特效開發指南
        • Mip 渲染模式切換開發指南
        • 邊角點吸附開發指南
        • 投影貼花開發指南
        • 視頻流投影開發指南
        • 高亮顯示開發指南
        • 實時裁剪開發指南
        • 調色開發指南
        • 獲取場景 Mesh 數據開發指南
        • 編輯器模式開發指南
        • 渲染性能參數設置指南
        • 應用與數據協同打包開發指南
        • 碰撞系統開發指南
        • macOS 開發權限問題操作指南
        • iOS 設備編譯打包開發指南
      • API 參考

        • LCCManager
        • Renderer
        • 數據類型
      • 更新日誌

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • 介紹
      • 渲染性能優化指南
      • 顯卡配置
      • 常見開發問題
      • API參考

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新日誌

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

Pico 4 Ultra 企業串流指南

Pico 4 Ultra 的企業串流通過 PICO 官方提供的 Business Streaming 工具,將 Unity 項目在 PC 端渲染並串流到設備上進行瀏覽和交互,從而藉助 PC 端的算力獲得比端側渲染更高的性能。本指南說明如何接入 LCC Unity SDK,配合 Business Streaming 完成串流開發。

版本要求

本指南使用的軟件及插件版本如下,建議使用相同版本開發,其他未經測試的版本可能存在兼容問題:

軟件 / 插件版本說明
Unityv6000.0.69f1 及以上使用 Unity 6
OpenXR1.61.1 及以上Unity OpenXR Plugin,從 Unity Registry 安裝
LCC Unity SDKv2.3.0 及以上從 LCC Unity SDK 下載頁 獲取
Business Streamingv2.2.0 及以上從 PICO 官方 獲取

注意:

  1. 企業串流通過 OpenXR 接入,與使用 PICO Unity Integration SDK 的 Pico 4 Ultra 開發指南 接入方式不同,請勿混用。
  2. Unity 版本、OpenXR 版本、LCC SDK 版本均會影響渲染與性能,請盡量保持各軟件版本與本指南一致。

開發流程

步驟 1:前置準備

在需要串流的計算機上 和 Pico4 Ultra 設備上下載並安裝 Business Streaming v2.2.0 及以上版本,建議安裝完成後重啟一次計算機。

步驟 2:創建 URP 工程

在工程模板中選擇 Universal 3D(URP 渲染管線)類型,如下圖所示:

創建 Universal 3D 工程

創建 Universal 3D 工程

步驟 3:導入 Unity OpenXR

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

從 Unity Registry 安裝 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

通過 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

在 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

將 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

將 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 組件屬性

設置 XR Rig 下 Main Camera 的 Camera 組件屬性

步驟 8:編寫代碼,加載場景

在層級窗口(Hierarchy)中右鍵 Create Empty 創建一個空對象,命名為 LCCManager,將其 Transform 歸一,並通過 Add Component 為其掛載 LCCManager 腳本,如下圖所示:

創建 LCCManager 空對象並掛載 LCCManager 腳本

創建 LCCManager 空對象並掛載 LCCManager 腳本

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

創建 LCCRenderer 空對象並設置座標系對齊的 Transform

創建 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

將 Business Streaming 的 Default Streaming Type 設為 OpenXR Streaming

步驟 10:開始串流

  1. 將 Pico 4 Ultra 通過 USB 3.0 或高速 WiFi 連接計算機。
  2. 在 Pico 4 Ultra 設備上打開 Business Streaming,並連接到計算機。
  3. 在 Unity Editor 中點擊 Play 按鈕運行,或打開發佈好的應用程序,即可開始串流。

注意:

  1. Business Streaming 軟件使用請參考 PICO 官方文檔:https://business.picoxr.com/cn/doc/Business-Streamingv2。
  2. 工程設置請參考工程設置優化指南。
  3. 串流對 PC 計算機硬件設備(特別是顯卡)要求較高,請使用高性能計算機串流,並使用 USB 3.0 或高速 WiFi。
  4. PCVR 串流會渲染兩次(SPI 模式也有頂點翻倍開銷),因此可通過設置全量/分塊渲染、最大同屏渲染總量、起始 LOD 層級等方式提升性能和幀率,參數設置請參考 渲染性能參數設置指南。

相關參考

  • 工程項目與性能優化,請參見工程設置優化指南、渲染性能參數設置指南 章節。
  • 使用 PICO Unity Integration SDK 的端側渲染流程,請參見 Pico 4 Ultra 開發指南。
  • Business Streaming 的其它使用說明,請參考 PICO 官方文檔:Business Streaming 企業串流。