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

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

    • 靈光 K1

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

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

    • 靈光 L2 Pro

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

    • 補光燈

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

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

    • LCC Studio

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

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

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

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

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

    • Unreal

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

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

        • 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
    • 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

渲染性能優化指南

本指南幫助在不同性能等級的設備上調優 SDK,獲得流暢的 3DGS(3D Gaussian Splatting)渲染體驗。

1. 關閉抗鋸齒

Three.js 的 WebGLRenderer 默認不啟用抗鋸齒。如果你的項目中開啟了 antialias: true,在性能敏感場景建議關閉:

const renderer = new THREE.WebGLRenderer({ antialias: false });

為什麼可以關閉? 3DGS 的每個高斯點本身就是一個平滑衰減的半透明橢圓,大量橢圓疊加後邊緣天然平滑,不需要額外的多重採樣抗鋸齒(MSAA)。關閉 MSAA 可減少 GPU 對每個像素的採樣次數(通常從 4 次降為 1 次),提升渲染幀率。

Cesium 用户:Cesium 的 Viewer 默認不開啟 MSAA,無需額外操作。

2. 降低渲染分辨率

通過降低設備像素比,可以成比例減少 GPU 需要處理的像素總數。這是對 GPU 填充率瓶頸最有效的手段。

Three.js:

// High-performance device: use native pixel ratio
renderer.setPixelRatio(window.devicePixelRatio);

// Mid-range device: cap pixel ratio
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 1.5));

// Low-end device / mobile: fixed 1x rendering
renderer.setPixelRatio(1.0);

Cesium:

const viewer = new Cesium.Viewer('container', {
    // Control rendering resolution via resolutionScale
    resolutionScale: 1.0 // Use 1.0 for low-end devices; use window.devicePixelRatio for high-end
});

性能差異參考(以 1080p 邏輯分辨率為例):

像素比實際渲染像素相對開銷
1.01920×1080 ≈ 207 萬1×
1.52880×1620 ≈ 466 萬2.25×
2.03840×2160 ≈ 829 萬4×
3.05760×3240 ≈ 1866 萬9×

高 DPI 屏幕(如 Retina)的 devicePixelRatio 通常為 2 或 3,降低到 1.0 可獲得 4~9 倍的片元處理性能提升,代價是渲染畫面變模糊。

3. 限制最大渲染點數 — setMaxSplats

這是最重要的性能調節參數。 它控制每幀參與渲染的高斯點總數上限。

lccObj.setMaxSplats(3000000); // Max 3 million splats per frame

SDK 的 LOD 調度器在每幀遍歷場景的空間索引,按距離和視錐選出需要渲染的節點。當總點數超過此限制時,調度器會從遠處或低優先級的節點開始丟棄,直到總點數滿足限制。

取值參考:PC 端 90 萬 ~ 1000 萬,移動端 50 萬 ~ 260 萬,根據設備性能選擇。詳見文末設備分檔推薦配置。

4. 限制單節點最大點數 — setMaxNodeSplats

控制單個空間節點的最大渲染點數。超過此閾值的節點會被自動降級到更粗糙的 LOD 等級。

lccObj.setMaxNodeSplats(1500000); // Max 1.5 million splats per node

為什麼需要這個參數? 在大型場景中,建築密集區等高密度區域的單個節點在最高 LOD 下可能包含數百萬個高斯點。如果不限制,相機靠近時一個節點就會佔滿整個渲染預算,導致其它區域沒有預算可用。這個參數讓渲染預算的分配更均勻。

取值建議:通常設為 setMaxSplats 值的 1/3 ~ 2/3,具體取決於場景密度和檔位。詳見文末設備分檔推薦配置。

5. 限制渲染起始 LOD — setStartLod

控制最高精度等級。LOD 0 為最精細,數值越大精度越低。

lccObj.setStartLod(0); // Finest quality (desktop default)
lccObj.setStartLod(1); // Skip finest level (mobile default)
lccObj.setStartLod(2); // Skip first two levels (very low-end devices)

SDK 對場景數據進行了多級 LOD 構建。LOD 0 包含完整精度數據,LOD 1 約為 LOD 0 的 1/2 點數,以此類推逐級遞減。setStartLod 限制調度器可選擇的最低 LOD 等級:設為 1 表示即使相機貼近物體,也不會加載 LOD 0 數據。

性能影響:

設置近處精度渲染點數減少適用場景
setStartLod(0)最高—PC 高端
setStartLod(1)中等約 50%PC 中端及以下、移動端全檔位
setStartLod(2)較低約 75%PC / 移動端低端

6. 限制最大渲染距離 — setMaxDistance

控制從相機出發的最大渲染距離,單位為米。超出此距離的內容不會被下載、解壓和渲染。

lccObj.setMaxDistance(200); // Desktop default
lccObj.setMaxDistance(100); // Mobile default

減小最大距離可以減少可見節點數量,降低網絡下載、CPU 排序和 GPU 渲染的全鏈路開銷。適合室內或近距離瀏覽場景。

注意:SDK 內置了高度自適應機制——當相機升至高空(> 20 米)後,會自動放寬距離限制,使俯瞰視角能看到更遠的範圍。

取值參考:

平台範圍
PC100 ~ 240
移動端80 ~ 110

詳見文末設備分檔推薦配置。

7. LOD 自動優化 — setLodAutoLevelUp

啟用後,SDK 會在渲染預算有餘裕時自動提升部分節點的精度。

lccObj.setLodAutoLevelUp(true); // Enable (recommended for mid-to-high-end devices)
lccObj.setLodAutoLevelUp(false); // Disable (recommended for low-end devices or stable frame rate)

當實際渲染點數低於 setMaxSplats 的限制時(比如相機看向空曠區域),自動優化機制會把剩餘預算分配給近處節點,自動加載更高精度的 LOD 數據來補充細節。

權衡:開啟後畫質更好,但可能觸發額外的數據下載和解壓,在低端設備上有可能導致偶爾的幀率波動。

8. 球諧光照 — useShcoef

球諧光照(Spherical Harmonics,SH)讓高斯點的顏色能夠隨觀察角度變化,呈現更真實的反光和光澤效果。SDK 默認關閉。

// Check if data contains SH coefficients before enabling
if (lccObj.hasShcoef()) {
    lccObj.useShcoef(true, (percent) => {
        console.log('SH loading: ' + (percent * 100).toFixed(1) + '%');
    });
}

// Disable
lccObj.useShcoef(false, () => {});

開啟效果:

  • 物體表面的反光、光澤隨視角自然變化
  • 渲染品質顯著提升,尤其是對金屬、玻璃、漆面等高光材質

性能代價:

  • GPU 顯存增加,需要額外存儲 RGB 球諧係數
  • GPU 頂點着色計算量增加,需要額外計算 15 個球諧基函數
  • 對於LCC格式,需要額外下載 SH 數據文件

建議:僅在高端桌面設備上開啟。移動端不建議使用。

9. 其它優化選項

本地緩存(IndexedDB)

通過 useIndexDB: true(默認開啟)啟用本地數據緩存。二次訪問同一場景時直接從本地讀取,大幅減少加載時間。

LOD 平滑過渡

LCC2 支持 LOD 平滑過渡(默認開啟),減少 LOD 切換時的視覺跳變:

lccObj.setSmooth(true); // Enable (default)
lccObj.setSmooth(false); // Disable

該功能通過約束相鄰空間節點的 LOD 差異,消除精度斷層。CPU 開銷極小,建議保持開啟。


設備分檔推薦配置

PC

檔位splatCountnodeSplatCountdistancestartLoddevicePixelRatio
High10,000,0006,000,0002400原生 dpr
MidHigh4,200,0001,500,0002201原生 dpr
Balance2,200,0001,000,0002001dpr > 1 ? 1.4 : dpr
MidLow1,800,000700,00015021
Low900,000400,0001002dpr > 1 ? 0.8 : 0.5

Mobile

檔位splatCountnodeSplatCountdistancestartLoddevicePixelRatio
High2,600,0001,000,0001101原生 dpr
MidHigh1,800,000800,0001001原生 dpr
Balance1,000,000600,000901dpr > 1 ? 1.2 : dpr
MidLow800,000400,0008021
Low500,000300,0008020.8
上一頁
介紹
下一頁
顯卡配置