Enums:枚举类型参考
LCC4UnrealRuntime 模块对外公开的枚举类型。
| 模块 | LCC4UnrealRuntime |
| 头文件 | Core/LCCEnum.h |
#include "Core/LCCEnum.h"
标记 BlueprintType 的枚举在蓝图中可直接使用,可以接 Switch 节点、作为变量类型。
Rendering
ERenderMode
渲染模式。用于 ULCCComponentBase::RenderMode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Splatting | 3DGS | 渲染为 3D 高斯泼溅,画质高,开销大 |
PointCloud | Point Cloud | 渲染为点云,画质低,开销小 |
切到点云能大幅降低开销,适合俯瞰、小地图、远景这些不需要细节的场合。点云模式下 3DGS 专属参数(球谐、SplatScale、GlobalAlpha)不起作用。
相关接口:SetRenderMode、ToggleRenderMode
ELoadMode
加载过滤模式。用于 ULCCComponentBase::LoadMode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Both | Both | 渲染主体与环境 |
OnlyMain | OnlyMain | 只渲染主体 |
OnlyEnvironment | OnlyEnvironment | 只渲染环境 |
None | None | 不渲染任何内容 |
主体是采集的核心区域,环境是外围补充数据。None 相当于临时隐藏但保留内存数据,恢复比重新加载快得多。
相关接口:SetLoadMode
ELightMode
光照模式。用于 ULCCComponentBase::LightMode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Unlit | Unlit | 不受场景光照影响,显示采集时的原始颜色 |
Lit | Lit | 参与场景光照,可与动态光互动 |
采集数据已经烘进了现场光照,切 Lit 会再叠一层容易过曝。LCC2 需要配合 LightingScale 压低原始亮度。仅 3DGS 模式有效。
相关接口:SetLightMode、ToggleLightMode
EShadowMode
阴影模式。
| 值 | 面板显示 | 说明 |
|---|---|---|
None | None | 不接收阴影 |
Static | Static | 接收静态阴影 |
Dynamic | Dynamic | 接收动态阴影 |
EColorationMode
着色模式。
点云渲染模式下的着色方式。用于 ULCCComponentBase::ColorationMode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Elevation | Evelation | 按高程着色,覆盖原始颜色 |
Data | Data | 使用数据自带的 RGB |
Elevation 配合 ElevationColorBottom 与 ElevationColorTop 做地形高度可视化;Data 呈现真实地物颜色。仅在渲染模式为点云时生效,见画面调节 - 点云。
ELCC2NormalGenerationMode
LCC2 法线生成模式。用于 ULCC2Component::NormalMode。
3DGS 数据本身没有几何法线,而光照需要法线。前三种模式都是近似构造,只有 ProxyMesh 提供真实法线。
| 值 | 面板显示 | 真实明暗 | 说明 |
|---|---|---|---|
Fixed | Fixed | 否 | 整片 3DGS 共用一个用户指定的世界法线,默认朝上。整片亮度等于 dot(法线, 光照方向) |
ViewFacing | View Facing | 否 | 整片朝向摄像机,受光均匀 |
Hemispherical | Hemispherical | 否 | 与摄像机无关的法线,由屏幕位置映射到固定世界半球 |
ProxyMesh | Proxy Mesh | 是 | 由场景中的 ALCC2ProxyMesh 提供真实深度与法线,3DGS 只贡献颜色 |
各模式的取舍:
| 模式 | 优点 | 缺点 |
|---|---|---|
Fixed | 无对角光带,摄像机移动完全稳定,开销最低 | 完全没有形体明暗;光从法线背面来时整片变暗 |
ViewFacing | 无需配置,无对角光带 | 没有形体明暗;转动摄像机时整体亮度漂移 |
Hemispherical | 无对角光带,摄像机移动稳定,日光扫过时过渡最平滑 | 仍非真实明暗;需调 NormalPole 与 NormalHemiSpread |
ProxyMesh | 真实的几何法线与深度 | 需要制作并摆放匹配的代理网格;需授权,未授权时回退为 Fixed |
选择建议:默认 Fixed;要平滑日光推移用 Hemispherical;要真实形体明暗用 ProxyMesh;ViewFacing 只适合快速看效果。
相关页面:ULCC2Component、ALCC2ProxyMesh
Clipping and Section
EClipType
裁剪方向。用于 ALCCClippingVolume::Mode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Inside | Inside | 体积内部被裁掉 |
Outside | Outside | 体积外部被裁掉 |
Inside 用于挖洞、剖开外壳;Outside 用于只保留感兴趣区域。
EClipVolumeType
裁剪体形状。用于 ALCCClippingVolume::VolumeType。
| 值 | 说明 |
|---|---|
Box | 盒形体积 |
Sphere | 球形体积 |
ESectionType
剖切方向。用于 ALCCSectionPlane::Mode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Upside | Upside | 平面上方被切掉 |
Downside | Downside | 平面下方被切掉 |
上下是相对平面自身朝向的,不是世界坐标。旋转剖切面可以得到任意方向的剖切。
ELoadRegion
加载区域。用于 ALCCLoadVolume::Mode。
| 值 | 面板显示 | 说明 |
|---|---|---|
Inside | Inside | 只加载体积内部的数据 |
Outside | Outside | 只加载体积外部的数据 |
与 EClipType 的区别:这里选的是加载哪一部分,而不是裁掉哪一部分。落选区域完全不读取,因此能降低加载量与显存占用。判定以节点为单位,边界比裁剪体粗。
ELoadVolumeType
加载体积形状。用于 ALCCLoadVolume::VolumeType。
| 值 | 说明 |
|---|---|
Box | 盒形体积 |
Sphere | 球形体积 |
相关页面:ALCCClippingVolume、ALCCSectionPlane、加载体积框
Data and Format
ELCCVersion
数据版本。
| 值 | 说明 |
|---|---|
LCC | LCC1 格式 |
LCC2 | LCC2 格式 |
相关接口:ULCCComponentBase::GetLccVersion
EFileFormat
文件格式。ULCCUtilLibrary::DetermineFileFormat 的返回类型。
| 值 | 对应扩展名 |
|---|---|
None | 无法识别,或路径不存在 |
LCC | .lcc |
Splats | .splats |
LAS | .las |
PLY | .ply |
注意 DetermineFileFormat 的识别范围有限:.lcc2、.sog、.spz 都会返回 None。判断这几种格式请直接看扩展名,详见 DetermineFileFormat。
EDataSourceType
LCC2 树的数据源格式。用于 FLCC2MetaInfo::SplatType。
| 值 | 说明 |
|---|---|
SOG | .sog 数据源 |
SPZ | .spz 数据源 |
PLY | .ply 数据源 |
这是普通 C++ 枚举,没有 UENUM 标记,蓝图中不可见。
EFileType
数据内容类型。
| 值 | 面板显示 | 说明 |
|---|---|---|
Portable | Portable | 只含 RGB,无球谐 |
Quality | Quality | 同时含 RGB 与球谐 |
Portable 数据没有球谐可用,此时 bUseShcoef 不可编辑。CanSetShcoef() 实际就是判断类型是否为 Quality。
ELCCSourceType
数据来源。ULCCUtilLibrary::DetermineSourceType 的返回类型。
| 值 | 说明 |
|---|---|
Local | 本地文件 |
Http | 网络地址 |
ECollisionType
碰撞数据格式。ULCCUtilLibrary::DetermineCollisionType 的返回类型。
| 值 | 说明 |
|---|---|
None | 无碰撞数据 |
Bin | 旧版 .bin 格式 |
Lci | 新版 .lci 格式 |
Ply | 点云 .ply 碰撞 |
返回 None 时开启 bEnableCollision 不会有效果。
ELoadStatus
加载状态。
| 值 | 说明 |
|---|---|
Success | 成功 |
Failure | 失败 |
Progress | 进行中 |
States
用于 ULCCComponentBase 的状态查询与事件的状态枚举,定义在 Core/LCCEventTypes.h。
枚举值只增不改(蓝图按值存储),后续版本可能追加新值,回调应容忍自己不认识的取值。
ELCCLoadState
加载状态,从 Load() 到首屏。Loaded 之后数据仍在相机周围持续流入,状态不会为此回退。
| 值 | 说明 |
|---|---|
Unloaded | 没有加载模型 |
Loading | 已开始加载,可读 bounds 与元信息,视图所需数据正在流式加载,用 GetLoadProgress 看进度 |
Loaded | 当前视图加载完成。不代表每块数据都读对:部分数据读取失败时 OnLoadFailed 会上报,模型可能显示不全。模型释放前一直保持 Loaded |
Failed | 上次加载失败,无模型 |
ELCCCollisionState
碰撞状态,从开启碰撞到首个碰撞网格就位。碰撞按相机周围加载并随移动流入,Loaded 指相机附近碰撞就位,不代表整个模型都有碰撞。
| 值 | 说明 |
|---|---|
NoCollision | 碰撞关闭,或无模型 |
Generating | 仅单文件模型(PLY/SPZ/SOG):正在从高斯生成碰撞网格,耗时数秒到数分钟;已有缓存时跳过 |
Loading | 相机附近的碰撞网格正在加载与 cook;加载距离内暂无碰撞数据时保持 Loading |
Loaded | 相机附近碰撞首次就位,附近物体不再穿透;碰撞随相机移动继续流入时保持 Loaded |
Failed | 碰撞开启但无法提供:无碰撞数据、未授权生成、或生成失败。见 Output Log,关开一次重试 |
ELCCLoadAnimationState
加载动画状态(bEnableAnimation)。动画按加载时间计时,不等数据:Finished 指动画播完,不代表模型在屏上完整。
| 值 | 说明 |
|---|---|
NoAnimation | 动画关闭,或无模型 |
Playing | 加载动画播放中,Load / Refresh / SetEnableAnimation 会重新开始 |
Finished | 动画播完且环境已出现。正向为模型完整显示,反向为已消失。动画设置变化导致重播时回到 Playing |
ELCCLoadError
加载失败原因,用于 FLCCLoadFailure::Error。
| 值 | 说明 |
|---|---|
None | 无错误 |
FileNotFound | 传给 Load 的文件未找到(.lcc 模型还包括旁边的 data.bin / index.bin)。未加载任何内容,已加载的模型保留。检查路径 |
InvalidData | 文件找到但损坏、缺数据文件、或不是插件能读的模型。要么什么都没加载(GetLoadState 为 Failed),要么模型已加载但部分数据读取失败、显示不全(GetLoadState 为 Loading 或 Loaded)。详见 Message 与 Output Log |
Performance and Scheduling
ETraversalType
节点遍历方式。用于项目设置(Project Settings → Plugins → LCC4Unreal)的 Default Traversal Type。
| 值 | 面板显示 | 说明 |
|---|---|---|
Circle | Circle | 以摄像机为圆心、最大渲染距离为半径的圆形遍历 |
Sector | Frustum | 基于摄像机视锥体的遍历 |
Frustum 只处理视野内节点,通常更省,但快速转视角时视野外节点没有预加载,可能出现补齐延迟。
注意枚举名是 Sector,面板显示是 Frustum。
ESortMethod
半透明排序方式。用于项目设置的 Default Sort Method。
| 值 | 说明 |
|---|---|
GPU | 使用 GPU 排序 |
CPU | 使用 CPU 排序 |
一般用 GPU。
ESortMode
排序顺序。
| 值 | 说明 |
|---|---|
Ascending | 升序 |
Descending | 降序 |
EComputeType
计算管线类型。
| 值 | 说明 |
|---|---|
Compute | 使用图形管线上的 Compute |
AsyncCompute | 使用异步 Compute 管线 |
当前实现使用 Compute,AsyncCompute 存在渲染问题尚未启用。
Localization
ELocale
语言环境。ULCCUtilLibrary::GetLocale 的返回类型。
| 值 | 说明 |
|---|---|
EN_US | 英文 |
ZH_CN | 简体中文 |
ELanguagePreference
插件界面语言偏好。用于项目设置的 Language。
| 值 | 面板显示 | 说明 |
|---|---|---|
FollowEditor | Follow Editor | 跟随编辑器当前语言设置 |
AlwaysEnglish | Always English | 强制英文,不受编辑器语言影响 |
Using Enums in Blueprint
蓝图里可以用 Switch 节点对枚举分支:
[Get Render Mode]
Target = (LCC Component)
│ Return Value ──┐
▼ │
[Switch on ERenderMode] ◀┘
│ Splatting ──▶ (3DGS 分支逻辑)
│ Point Cloud ─▶ (点云分支逻辑)
也可以直接比较:
[Get Effective Normal Generation Mode]
│ Return Value ──┐
▼ │
[Equal (Enum)] ◀─────────┘
A = (Return Value)
B = Proxy Mesh
│
▼
[Branch]
See Also
- ULCCComponentBase:
ERenderMode、ELoadMode、ELightMode的使用 - ULCC2Component:
ELCC2NormalGenerationMode的使用 - ULCCUtilLibrary:返回格式类枚举的工具函数
- Structs:使用这些枚举的结构体