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

      • 入门
      • 版本与更新
      • 下载与安装
      • 界面概览与导航
      • 重建前工作
      • 模型重建
      • 单模型重建
      • 地图融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 设置与账号
      • 转换工具
      • 视频重建
      • 常见问题 / FAQ
    • 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
    • X-Brain

      • 产品概述
      • 硬件接口
      • 快速开始
      • 核心概念
      • 集成指南
      • API 参考
      • 数据类型
      • ROS2 桥接
      • 示例程序
      • 部署与网络
      • 排障与 FAQ
      • 版本与发布
    • 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
    • Lixel OpenAPI

      • 概述
      • 连接与鉴权
      • 消息模型与编解码
      • 接口清单
      • 实时数据
      • 项目文件访问
      • 错误码
      • Python

        • 快速开始
        • 客户端封装与工具
        • 常见问题
      • C++

        • 快速开始
        • 客户端与示例
        • 常见问题

渲染性能参数设置指南

概述

为适配不同性能的设备硬件,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 属性查询当前状态。