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 提供了多個渲染性能設置參數。它們分佈在 LCCManager 類和 Renderer 類上,主要涉及以下方法:

類方法作用調用時機
LCCManagerSetMaxBufferSplat設置最大 Buffer 容量(GPU 一次性分配)必須在任何 Renderer.Load() 之前
LCCManagerSetFullRenderSplat設置全量/分塊渲染的分界 Splat 數必須在 Load() 之前
LCCManagerSetMaxRenderSplats設置分塊渲染時同屏渲染 Splat 總數分塊渲染的任何時機
LCCManagerSetStartLod設置起始 LOD 層級運行時生效,在 Load() 之後
LCCManagerSetDetailLevel設置渲染細節級別(微調渲染精度)運行時可動態調整
RendererSetRenderAll設置是否強制全量渲染必須在 Load() 之前

說明:

上述參數中,Splat 數相關的方法(SetMaxBufferSplat、SetFullRenderSplat、SetMaxRenderSplats)單位均為萬,即傳入值 × 10000 = 實際 Splat 數。

注意:

SetMaxBufferSplat 設置的是渲染可用的最大CPU內存和GPU顯存buffer空間,SetMaxRenderSplats設置的是分塊流式渲染時同屏渲染Splat基元數量,因此SetMaxRenderSplats設置值超過 SetMaxBufferSplat 設置值時會被截斷。

SDK 渲染模式

為適配各類數據和各類平台,SDK 共有 3 類主要渲染模式。理解渲染模式是正確設置性能參數的前提,因為不同參數只在特定模式下生效。

  • SingleRender 模式(默認模式):主要作用於 PC/Mac 端。該模式下不允許創建多個 Renderer,即只允許同時渲染一個 LCC 場景。當數據量較小且符合要求時,數據會全量渲染(全量加載 LOD0 數據,不使用動態 LOD 切換,渲染質量最好);當LOD0中Splat基元超過可全量渲染總量時,數據會分塊渲染,採用運行時動態 LOD 流式渲染機制,從而適應超大数据場景的渲染。
  • MultiRender 模式:主要作用於 PC/Mac 端。該模式下允許實時混合渲染多個 LCC 場景,所有場景數據都會分塊渲染,採用動態 LOD 機制。
  • 分塊渲染路徑:在 Mobile(iOS / Android)、VR(Pico 4 / Quest 3)平台,以及 PC/Mac 平台下的 HTTP 數據源,都會走分塊渲染路徑,採用動態 LOD 機制。
SDK 三類渲染模式與全量/分塊渲染路徑的關係

SDK 三類渲染模式與全量 / 分塊渲染路徑的關係

全量渲染 vs 分塊渲染:

  • 全量渲染:一次性加載並渲染 LOD0 全量數據,畫質最好,僅在 PC/Mac SingleRender 模式且LOD0數據量滿足條件時啟用。
  • 分塊渲染:根據渲染相機視錐體動態加載 LOD 層級數據,控制同屏 Splat 數量,適配顯存與性能受限的硬件環境。

SDK 默認設置值

各平台的默認值、最小允許值與最大允許值如下(單位:萬):

項目默認值最小允許值最大允許值備註
全局 BufferPC/Mac:3000
Mobile:300
VR:100
100PC/Mac:4450
Mobile:600
VR:200
通過 SetMaxBufferSplat() 控制
全量渲染分界線25001004450通過 SetFullRenderSplat() 控制;僅對 PC/Mac SingleRender 模式有效
分塊渲染同屏渲染數PC/Mac:2000
Mobile:200
VR:60
10——通過 SetMaxRenderSplats() 控制;最大值受全局 Buffer 量限制
是否強制全量否————只在 PC/Mac 平台有效,且只用於 SingleRender 模式

PC/Mac 端設置策略

針對 PC/Mac 端,建議按下表的畫質檔位配置參數(Splat 數單位:萬):

檔位全局 Buffer全量渲染分界線分塊同屏渲染數StartLOD是否強制全量
極低3003003002否
低1000100010001否
中3000190019001否
高3000250025000否
極高3000300030000否

運行時切換檔位的注意事項

  • 在中 / 高 / 極高檔位之間切換時,可以不修改全局 Buffer,處理邏輯非常簡單:只需設置全量渲染分界線、同屏渲染數、StartLOD 即可。
  • 在涉及極低 / 低檔位與其他檔位之間切換時,情況較複雜:因為全局 Buffer 可能已開啟,需要先銷毀原有的全局 Buffer 再創建新的 Buffer。這個操作要求將所有 Renderer Dispose() 掉、釋放 Buffer,再通過 GetRender() 重新獲取 Renderer。
  • 當前建議:默認檔位設為高,切換檔位時不修改全局 Buffer,但仍需處理全量 / 分塊渲染的切換。

注意事項

  1. SetMaxBufferSplat() 必須在最開始設置,最好在 GetRender() 之前調用。如果在運行後再設置該值,需要將所有 Renderer Dispose() 掉,再重新獲取 Renderer 才能生效。
  2. SetFullRenderSplat() 僅對 PC/Mac SingleRender 模式有效,必須在 Load() 之前設置。
  3. SetMaxRenderSplats() 適用於所有分塊渲染,可在任何時機設置,但必須晚於 SetMaxBufferSplat()(如果有調用該方法的話)。

渲染性能相關 API

SetMaxBufferSplat

// 返回值:void
public void SetMaxBufferSplat(int _count)

設置 GPU Buffer 最大容量(Splat 數量)。在 RenderCore 路徑(MultiRender / SingleRender chunk)下決定共享 Global Buffer 大小;在 SingleRender Full Load 模式下會按數據量實際分配,不參考此值。一次性分配,不可動態修改。

參數類型說明
_countint全局統一 Buffer 大小,按 3DGS Splat 數,單位:萬

調用示例:

lccManager.SetMaxBufferSplat(3000); // 3000 萬點(PC/Mac 默認值)
lccManager.SetMaxBufferSplat(4450); // 4450 萬點(PC/Mac 最大值)

說明:

  • 單位為「萬」,傳入值 × 10000 = 實際 Splat 數。
  • 必須在任何 Renderer.Load() 之前調用,否則報錯並 return。
  • 必須先調用 SetPlatformType。
  • 容量越大顯存佔用越高,按需設置。
  • 平台上限:PC/Mac 4450 萬,Android/iOS 600 萬,VR 200 萬;最小值 100 萬。
  • 默認值:PC/Mac 3000 萬,Android/iOS 300 萬,VR 100 萬。

SetFullRenderSplat

// 返回值:void
public void SetFullRenderSplat(int _count)

設置 PC/Mac SingleRender 模式下全量渲染與分塊渲染的分界 Splat 數。當數據 LOD0 的 Splat 數小於此值時走全量渲染路徑(獨立 GPU Buffer),否則走分塊渲染路徑。

參數類型說明
_countint3DGS Splat 數,單位:萬

調用示例:

lccManager.SetFullRenderSplat(2500); // 2500 萬點

說明:

  • 單位為「萬」。
  • 僅 PC/Mac 平台支持,其他平台調用直接報錯並 return。
  • 必須在任何 Renderer.Load() 之前調用。
  • 必須先調用 SetPlatformType。
  • 取值範圍 [100, 4450](即 100 萬 ~ 4450 萬)。

SetMaxRenderSplats

// 返回值:void
public void SetMaxRenderSplats(int _count)

設置分塊渲染時每幀最大同屏渲染 Splat 數量。可在 Load() 之後動態調用,受 SetMaxBufferSplat 設置的上限鉗制。SingleRender 全量渲染模式下調用無效(LogWarning 後直接 return)。

參數類型說明
_countint3DGS Splat 數,單位:萬;最小 10 萬,最大不超過 SetMaxBufferSplat() 設定的 Buffer 大小

調用示例:

lccManager.SetMaxRenderSplats(2000); // 2000 萬點

說明:

  • 單位為「萬」,傳入值 × 10000 = 實際 Splat 數。
  • 可在運行時動態調整。
  • 不能超過 SetMaxBufferSplat 設置的容量上限(超出自動鉗制並 LogWarning)。
  • SingleRender 全量渲染模式下不支持運行時調整。

SetStartLod

// 返回值:void
public void SetStartLod(int lod)

設置 LOD 展開起點(0-based)。0 表示最精細,數字越大層級越粗。該方法運行時生效,需要在 Load() 之後調用。

參數類型說明
lodint起始 LOD 層級,取值範圍 [0, 10],0 為最精細

調用示例:

lccManager.SetStartLod(0);

說明:

  • 僅對分塊渲染有效,取值範圍 [0, 10],超出自動鉗制。
  • 實際生效上限受數據 totalLevels 限制。
  • 調用後 SDK 會立即生效。

SetDetailLevel

// 返回值:void
public void SetDetailLevel(float sse)

設置渲染細節級別,用於微調渲染精度。值越大渲染越精細、性能消耗越高。

參數類型說明
ssefloat細分因子,取值範圍 [1, 100]。1 = 最粗糙(近距離也不細化),100 = 最精細(所有層級細化到最底層)

調用示例:

lccManager.SetDetailLevel(50f); // 中等精度

說明:

  • 該參數用於微調場景精細度,只作用於分塊渲染,默認為40,取值範圍 [1, 100],超出自動鉗制。
  • 採用對數映射:低值區間變化敏感,高值區間變化平緩。
  • 運行時可動態調整。

SetRenderAll

// 返回值:void
public void SetRenderAll(bool _renderAll)

Renderer 類方法。設置該 Renderer 是否強制全量渲染,必須在 Load() 之前調用。僅用於 PC/Mac SingleRender 模式:執行時比較 LOD0 數據量與 4450 萬上限,如果 LOD0 < 4450 萬,則直接使用 LOD0 全量數據渲染;如果 LOD0 > 4450 萬,該設置無效(受限於 Unity 最大 GBuffer),會走分塊渲染。

參數類型說明
_renderAllbool是否強制全量渲染

調用示例:

renderer.SetRenderAll(true);
renderer.Load(filePath, null, () => Debug.Log("Full loaded"));

說明:

  • 僅 PC/Mac 平台支持,移動端 / VR 調用會輸出 LogWarning 並 return。
  • 設置在下次 Load() 調用時生效,不影響當前已加載的數據集。
  • 可配合 IsRenderAll 屬性查詢當前狀態。