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

Quest 3 開發指南

Quest 3 的 LCC 開發流程與 Meta 官方創建 VR 項目略有不同:Meta 官方對 Unity 配置的修改會導致 LCC 渲染無法與其開發文檔中的推薦流程兼容。Meta 官方流程見 Set up Unity for XR development。本指南在其基礎上,說明如何接入 LCC Unity SDK 渲染 3DGS 場景。

版本要求

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

軟件 / 插件版本
Unityv6000.0.69f1
Meta XR All-in-One SDKv205.0.0
LCC Unity SDKv2.1.35 及以上

注意:

  1. Meta SDK 只支持 URP 的 Linear 線性顏色空間,LCC 場景在此顏色空間下渲染顏色會略微發白。
  2. Unity 版本、Meta SDK 版本、LCC SDK 版本均會影響渲染與性能,請盡量保持各軟件版本與本指南一致。

開發流程

步驟 1:創建 URP 工程

在工程模板中選擇 Universal 3D,如下圖所示:

創建 Universal 3D(URP)工程

創建 Universal 3D(URP)工程

步驟 2:切換平台

工程創建完成後,在 Unity 菜單中選擇 File → Build Profiles 打開應用構建窗口,將平台切換為 Android,如下圖所示:

在 Build Profiles 中將平台切換為 Android

在 Build Profiles 中將平台切換為 Android

步驟 3:導入 Unity OpenXR

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

從 Unity Registry 安裝 OpenXR Plugin

從 Unity Registry 安裝 OpenXR Plugin

步驟 4:導入 XR Interaction Toolkit

在左側列表中選擇 Unity Registry,在搜索框中輸入 XR,從檢索列表中選擇 XR Interaction Toolkit 並安裝,如下圖所示:

從 Unity Registry 安裝 XR Interaction Toolkit

從 Unity Registry 安裝 XR Interaction Toolkit

步驟 5:導入 Meta XR All-in-One SDK

Meta XR All-in-One SDK 是 Meta 的 XR 開發工具包,詳見 Meta XR All-in-One SDK (UPM)。

使用該 SDK 前,需先在 Unity Asset Store 將其添加到個人資產:https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657。然後通過 Window → Package Manager 打開 UPM,選擇左側 My Assets,在檢索框中輸入 Meta XR,安裝 Meta XR All-in-One SDK,如下圖所示:

從 My Assets 安裝 Meta XR All-in-One SDK

從 My Assets 安裝 Meta XR All-in-One SDK

步驟 6:導入 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,再進行後續設置操作。

步驟 7:設置 Unity 環境

配置 XR Plug-in Management

在 Unity 菜單欄中選擇 File → Project Settings,在左側選擇 XR Plug-in Management,在 Desktop 平台和 Android 平台下均勾選 Initialize XR on Startup,如下圖所示:

在 Desktop 平台勾選 Initialize XR on Startup

在 Desktop 平台勾選 Initialize XR on Startup

在 Android 平台勾選 Initialize XR on Startup

在 Android 平台勾選 Initialize XR on Startup

選擇 XR Plug-in Management 下的 OpenXR 項,將 Desktop 和 Android 平台的 Render Mode 均設為 Multi-pass,如下圖所示:

將 OpenXR 的 Render Mode 設為 Multi-pass

將 OpenXR 的 Render Mode 設為 Multi-pass

注意:Meta XR All-in-One SDK 會修改 Render Mode 的值,請在打包前確保該值為 Multi-pass。

設置 Player(Desktop 平台)

在 Project Settings 左側選中 Player,切換到 Desktop 平台,展開 Other Settings 卷展欄,取消勾選 Auto Graphics API,將 Graphics APIs 設為 Vulkan、Direct3D12、Direct3D11,並移除其它圖形 API;將 Color Space 設為 Linear,如下圖所示:

Desktop 平台設置圖形 API 與 Linear 顏色空間

Desktop 平台設置圖形 API 與 Linear 顏色空間

設置 Player(Android 平台)

在 Project Settings 左側選中 Player,切換到 Android 平台,展開 Other Settings 卷展欄,取消勾選 Auto Graphics API,將 Graphics APIs 設為 Vulkan,並移除其它圖形 API;將 Color Space 設為 Linear(Meta SDK 只支持 Linear 線性顏色空間),如下圖所示:

Android 平台設置圖形 API 為 Vulkan 與 Linear 顏色空間

Android 平台設置圖形 API 為 Vulkan 與 Linear 顏色空間

設置公司名與產品名

在 Player 選項卡中,正確設置 Company Name 和 Product Name,如下圖所示:

設置 Company Name 與 Product Name

設置 Company Name 與 Product Name

設置 Android 平台腳本後端與輸入

在 Android 平台的 Other Settings 選項卡中向下滑動,設置 Minimum API Level = Android 12L (API Level 32) 及以上、Scripting Backend = IL2CPP、Target Architectures = ARM64、Active Input Handling = Input System Package (New),如下圖所示:

設置 Minimum API Level、Scripting Backend、Target Architectures 與 Active Input Handling

設置 Minimum API Level、Scripting Backend、Target Architectures 與 Active Input Handling

檢查 Graphics 與 Quality

在 Project Settings 左側選中 Graphics 項,查看 Mobile 平台所使用的 Default Render Pipeline 對應的 Render Asset,本示例中為 Mobile_RPAsset,如下圖所示:

查看 Mobile 平台的 Default Render Pipeline Render Asset

查看 Mobile 平台的 Default Render Pipeline Render Asset

在 Project Settings 左側選中 Quality 項,查看 Mobile 平台所使用的 Default Render Pipeline 對應的 Render Asset(本示例中為 Mobile_RPAsset),設置 Resolution Scaling Fixed DPI Factor = 0.7、VSync Count = Don't Sync,如下圖所示:

在 Quality 中設置 DPI Factor 與垂直同步

在 Quality 中設置 DPI Factor 與垂直同步

配置 Render Asset

找到 Mobile 平台所使用的 Default Render Pipeline 對應的 Render Asset(本示例中為 Mobile_RPAsset),點擊後在工程窗口(Project)會定位到該 Asset,選中該 Asset,然後在屬性窗口(Inspector)中:取消勾選 Depth Texture、Opaque Texture、HDR,設置 Anti Aliasing (MSAA) = Disabled、Render Scale = 0.7、Upscaling Filter = Automatic,如下圖所示:

在 Render Asset 中關閉 Depth/Opaque Texture、HDR、MSAA 並設置超分

在 Render Asset 中關閉 Depth/Opaque Texture、HDR、MSAA 並設置 Render Scale = 0.7

找到該 Render Asset 的配套 Renderer,本示例中為 Mobile_Renderer(Universal Renderer Data),在屬性窗口(Inspector)中設置其相關屬性,如下圖所示:

配置 Mobile_Renderer(Universal Renderer Data)屬性

配置 Mobile_Renderer(Universal Renderer Data)屬性

Project Validation

在 Project Settings 左側選中 XR Plug-in Management,選擇 Project Validation。需要修復標紅的驗證項——點擊每個標紅項右側的 Fix 按鈕進行修復;標黃的 warning 項可按需修復,也可暫不處理。處理前如下圖所示:

Project Validation 處理前(存在標紅驗證項)

Project Validation 處理前(存在標紅驗證項)

處理後如下圖所示:

Project Validation 處理後(標紅項已修復)

Project Validation 處理後(標紅項已修復)

步驟 8:創建場景

本示例從一個全新的場景(Scene)開始。創建 Unity 場景後,在層級窗口(Hierarchy)中刪除 Main Camera 遊戲對象,然後在窗口空白處單擊鼠標右鍵,在彈出菜單中選擇 XR → XR Origin (VR),如下圖所示:

通過右鍵菜單創建 XR Origin (VR)

通過右鍵菜單創建 XR Origin (VR)

步驟 9:配置場景

在層級窗口(Hierarchy)中選中 XR Origin (VR) 遊戲對象,在屬性窗口(Inspector)的 XR Origin 組件中,將 Tracking Origin Mode 設為 Floor,如下圖所示:

將 XR Origin 的 Tracking Origin Mode 設為 Floor

將 XR Origin 的 Tracking Origin Mode 設為 Floor

在層級窗口(Hierarchy)中選中 XR Origin (VR) 下的 Main Camera 遊戲對象,在屬性窗口(Inspector)中設置 Camera 各屬性:

屬性推薦值說明
Field of View60FOV
Clipping Planes → Near0.2 ~ 0.3近裁剪面
Clipping Planes → Far3000 ~ 5000遠裁剪面,覆蓋大範圍場景
Anti-aliasingNo Anti-aliasing默認關閉抗鋸齒
Opaque TextureOff默認關閉
Depth TextureOff默認關閉
Background TypeSolid Color建議設為純色
Background黑色默認背景色建議設為黑色
HDR RenderingOff默認關閉
MSAAOff默認關閉
URP Dynamic ResolutionOff默認關閉

其他屬性如下圖所示:

設置 XR Origin (VR) 下 Main Camera 的 Camera 組件屬性

設置 XR Origin (VR) 下 Main Camera 的 Camera 組件屬性

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

在層級窗口(Hierarchy)中右鍵 Create Empty 創建一個空對象,命名為 LCCManager,將其 Transform 歸一,並為其掛載 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;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;

    private LCCCore.Renderer m_renderer;

    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.Quest);
        m_renderer = m_manager.GetRender(this.gameObject.transform);
        m_renderer.Load(m_FilePath, onProgress, onLoaded);
        //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 與文件路徑

將 LCCRenderer 腳本掛載到對象,綁定 Manager 與文件路徑

為方便在 Unity Editor 中調試並直接打包到 Android 真機,代碼使用編譯宏區分運行環境:在 Unity Editor 中使用 PC 平台,在 Quest 真機設備上使用 Quest 平台。

對 Quest 設備,推薦將數據源放置在服務器上;測試時也可以直接使用設備上的數據源,具體操作為:

  1. 先將打包好的應用在 Quest 設備上運行一次。
  2. 應用安裝後,進入其數據目錄(一般為 Quest 設備存儲盤 → Android → data → 應用 BundleID → Files,具體目錄可查閱 Android 應用安裝路徑),在 Files 子目錄下創建 LccData 文件夾。
  3. 將 LCC 數據源全部拷貝到 LccData 文件夾下。

注意:

  1. 實際使用中,建議將 Quest 應用的數據源放在服務器上,而不是直接打包進應用。
  2. Quest 3 設備的 3DGS 同屏渲染能力約為 70 萬高斯基元,相比 PC 端約 2500 萬的渲染能力有約兩個數量級的差異,建議主要用於小場景、單物體的渲染展示;大場景使用 PC 串流會更流暢。
  3. 渲染 LCC 大場景時,建議將 StartLOD 設為 2 並關閉環境數據顯示(如示例代碼所示)。

相關參考

  • 工程項目與性能優化,請參見工程設置優化指南 、渲染性能參數設置指南 章節。
  • Meta 開發的其它流程,請參考其官方文檔:Meta 開發者文檔。
  • 開發 Quest 過程中,需要在 Project Settings → OpenXR 中將 Desktop 平台的 Render Mode 設為 Multi-pass,否則無法在 Unity 中正常渲染 LCC 場景(包括 Editor 與 Runtime)。