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

編輯器模式開發指南

LCC Unity SDK 支持在編輯器狀態下渲染場景,即 LCC 模型可以像 Unity 中其他遊戲對象(GameObject)一樣,在編輯狀態下進行平移、旋轉、縮放。你無需點擊 Play 按鈕進入運行模式,就能在 Scene 窗口中實時查看和調整 3DGS 場景。

在使用 Samples 場景時,你可以通過非代碼操作完成場景渲染;在使用自定義腳本時,也可以通過代碼操作實現相同效果。

注意:

LCC Unity SDK 支持全量和分塊渲染兩種模式,在全量渲染模式下,Scene 場景可以完整渲染整個模型;在分塊渲染模式下,由於 Scene Camera 與 Game Camera 位置和朝向並不一致,會導致 Scene 窗口中模型顯示不全,此時需要同步 Scene Camera 和 Game Camera 。

非代碼操作

在使用 SDK Samples 場景時,如果正確填寫了數據文件路徑(File Path),Unity 啟動後會在編輯器狀態下自動渲染場景,如下圖所示。

編輯器狀態下自動渲染場景

正確填寫 File Path 後,Unity 啟動即在編輯器狀態下自動渲染場景

切換場景

當需要修改渲染場景時,按以下步驟操作:

  1. 在 Hierarchy 窗口中選擇 LCCRenderer 遊戲對象。
  2. 在 Inspector 窗口的 File Path 中正確填寫新場景的數據路徑。
  3. 在 LCCRenderer (Script) 組件右側的三個點(⋮)處點擊,在彈出的菜單中選擇 Render,如下圖所示。
在 LCCRenderer 組件菜單中點擊 Render 渲染新場景

在 LCCRenderer (Script) 組件右側的三個點菜單中點擊 Render

注意:

由於卸載原場景數據並加載新場景數據需要一些時間,點擊 Render 後請耐心等待一會兒,新的場景即會加載完成。

停止場景渲染

當不需要在編輯器狀態下繼續渲染場景時,按以下步驟停止渲染:

  1. 在 Hierarchy 窗口中選擇 LCCRenderer 遊戲對象。
  2. 在 Inspector 窗口的 File Path 中正確填寫數據路徑。
  3. 在 LCCRenderer (Script) 組件右側的三個點(⋮)處點擊,在彈出的菜單中選擇 unRender,如下圖所示。這將停止當前場景的渲染。
在 LCCRenderer 組件菜單中點擊 unRender 停止渲染

在 LCCRenderer (Script) 組件右側的三個點菜單中點擊 unRender

進入運行模式

當你在 Unity 中點擊 Play 按鈕進入正常運行模式時,場景會以運行時狀態重新渲染。由於 SDK 內部使用了多線程機制,進入運行模式會強制退出編輯狀態下的渲染線程,表現為 Console 控制台打印出一條錯誤信息。

你可以完全忽略這條錯誤,它不會產生任何不利影響,也不會影響後續的正常運行。

如果你確實不希望看到這條錯誤,可以在點擊 Play 按鈕之前,先執行上文的停止場景渲染(unRender),然後再點擊 Play 按鈕進入運行時狀態。

代碼操作

如果你使用自定義腳本來渲染場景,只需在自定義的渲染類前添加 [ExecuteInEditMode] 標籤,即可讓腳本在編輯器狀態下運行,從而在編輯模式渲染場景。其它操作邏輯可參考 Samples 中的 LCCRenderer.cs 腳本。

using LCCCore;
using UnityEngine;

[ExecuteInEditMode]
public class MyLCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;
    private LCCCore.Renderer m_renderer;

    void Start()
    {
        m_manager.SetPlatformType(PlatformType.PC);
        m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
        // 開啟編輯器模式
        m_manager.SetEditorMode(true);

        m_renderer = m_manager.GetRender(this.transform);
        m_renderer.Load(m_FilePath, onProgress, onComplete);
    }

    private void onProgress(float _progress)
    {
        Debug.Log($"[MyLCCRenderer] file load progress: {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[MyLCCRenderer] file loaded");
    }
}

注意:

  • [ExecuteInEditMode] 標籤使 Start、Update 等生命週期方法在編輯器非運行狀態下也會被調用,這是實現編輯器模式渲染的關鍵。
  • 編輯器模式僅 PC/Mac 平台支持。
  • 完整的渲染流程(平台設置、渲染模式、數據加載)請參考 Samples 中的 LCCRenderer.cs 腳本。

同步 Scene 與 Game 窗口中的相機

SDK 提供的 Samples 中包含 SceneGameCameraSync 腳本,用於將 Scene 窗口的相機操作同步到 Game 窗口,方便你在編輯器中一邊操作視角一邊預覽運行時畫面。使用步驟如下:

  1. 將 Samples 中的 SceneGameCameraSync 腳本掛載到場景中的相機(Camera)遊戲對象上。
  2. 禁用相機操作腳本(默認為 CameraOperate)。
  3. 點擊 Play 按鈕進入運行模式。

此時,操作 Scene 窗口的相機,Game 窗口的相機會隨之同步。

將 SceneGameCameraSync 腳本掛載到相機對象上

將 SceneGameCameraSync 腳本掛載到相機對象,並禁用 CameraOperate 腳本

注意:

相機同步只支持將 Scene 窗口中的相機同步到 Game 窗口,不支持將 Game 窗口中的相機操作同步到 Scene 窗口。