XGRIDSDocs
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Lixel PortalCam Series

    • PortalCam P1

      • Product Overview
      • Basic Operation
      • Using the LCC Scan App
      • Maintenance and Care
      • FAQ
  • Lixel K Series

    • Lixel K1

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Map Fusion
      • Route Planning Suggestions for Typical Scenes
      • Precautions
      • FAQ
    • Lixel K2

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Map Fusion
      • Route Planning Suggestions for Typical Scenes
      • Precautions
      • FAQ
  • Lixel L Series

    • Lixel L2 Pro

      • Product Overview
      • Basic Operation
      • Device Activation and Connection
      • Scanning Workflow
      • Acquire Point Cloud Data with Absolute Coordinate
      • Measure Point
      • Appendix
      • FAQ
    • Lixel L3

      • Product Overview
      • Basic Device Functions
      • Device Activation and Connection
      • Data Capture
      • Capturing Absolute Coordinates
      • Appendix
  • Lixel Studio

    • Version and Copyright
    • Installation and Activation
    • Software Interface
    • File Operations
    • Project Processing
    • Tools
    • 2D Drawing
    • Applications
    • Settings
    • Device Connection
    • FAQ
  • Lixel CyberColor

    • LCC Studio

      • Getting Started
      • Version and Updates
      • Download and Installation
      • Interface Overview and Navigation
      • Before Reconstruction
      • Model Reconstruction
      • Single Model Reconstruction
      • Map Fusion
      • Aerial-Ground Fusion
      • Aerial Reconstruction
      • My Models
      • Other Features
      • Settings and Account
      • Converter
      • Video Reconstruction
      • FAQ
    • LCC Scene Editor

      • Version & Updates
      • Account & Login
      • Product Overview & Home
      • Editor Interface
      • Scene Navigation Modes
      • File
      • Settings
      • Edit Operations
      • Window
      • Global Toolbar
      • Assets & Properties
      • Left Toolbar
      • Viewpoints
      • Portal
      • Skybox
      • Annotations
      • Measurement
      • Flythrough
      • Scene Report
      • 3D Layout
      • Mini-Map
      • Preview Mode (Viewer)
      • Help
      • FAQ
      • Spawn Point
    • LCC Model Editor

      • Version and Updates
      • User Guide
      • Overview and Interface
      • File Operations
      • Selectors
      • Editing Models
      • Measurement
      • Color Grading
      • Asset Management
      • Settings and Help
      • FAQ
    • Capture Guide

      • Overview
      • Capture Devices Overview
      • General Capture Principles
      • Indoor Scene Capture
      • Outdoor Scene Capture
      • Large-Scale Capture (Map Fusion)
      • Aerial-Ground Map Fusion Capture
      • Object Capture
      • People Capture
      • Video Reconstruction Capture
      • HD Enhancement
      • Control Points (Lixel P1)
      • FAQ and Troubleshooting
    • LCC Studio Linux

      • Product Overview
      • Architecture Guide
      • Installation and Deployment Guide
      • Container Startup Parameters Guide
      • CodeMeter Offline Licensing Deployment Guide
      • API Reference
      • Appendix - Developer Data Guide
      • Appendix - Error Code List
      • Single-Machine Multi-GPU Cluster Deployment QuickStart
    • Best Practices

      • Merging Multiple Large 3DGS Models
    • Version History
  • Plugin & SDK

    • Unreal

      • Introduction
      • Quick Start - Windows
      • Quick Start - Linux
      • Quick Start - Quest3
      • Editions and Licensing
      • Rendering
      • Tiled Rasterization (Experimental)
      • Visual Settings
      • Normals and Lighting
      • Scene Editing
      • Performance Parameters
      • Performance Guide
      • Third-party and Engine Plugin Integration
      • Proxy Mesh
      • Loading Animation
      • Collision
      • Navigation System Support
      • Single Layer Water Support
      • Localization
      • FAQ
      • Troubleshooting
      • Logging and Diagnostics
      • Contact Us
      • Best Practices

        • Relighting 3DGS with a LixelStudio Mesh
        • Per-camera Independent Rendering
      • API Reference

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Changelog

        • v3.5.0
        • 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 Introduction
      • Technical Features
      • Development Environment Requirements
      • PC Quick Start Guide
      • Project Settings Optimization Guide
      • Pico 4 Ultra Development Guide
      • Pico 4 Ultra PC Streaming Guide
      • Quest 3 Development Guide
      • Quest 3 PC Streaming Guide
      • OpenXR Development Guide
      • Pico 4 Ultra Business Streaming Guide
      • Glossary
      • FAQ
      • Contact Us
      • Feature Development Guide

        • Multi-Scene Mixed Rendering Development Guide
        • Shadow Receiving Development Guide
        • Real-Time Lighting Development Guide
        • Multi-Camera Rendering Development Guide
        • High-Resolution Image Rendering Development Guide
        • LCC and LCC2 Data Format Compatibility Development Guide
        • Loading Effect Development Guide
        • Mip Rendering Mode Switching Development Guide
        • Edge and Corner Snapping Development Guide
        • Projected Decal Development Guide
        • Video Projected Decal Development Guide
        • Highlight Development Guide
        • Real-Time Clipping Development Guide
        • Color Adjustment Development Guide
        • Getting Scene Mesh Data Development Guide
        • Editor Mode Development Guide
        • Render Performance Parameter Configuration Guide
        • Application and Data Co-packaging Development Guide
        • Collision System Development Guide
        • macOS Development Permission Issue Guide
        • iOS Device Compilation and Packaging Development Guide
      • API Reference

        • LCCManager
        • Renderer
        • Data Types
      • Changelog

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Introduction
      • Rendering Performance Optimization Guide
      • Graphics Configuration
      • WebGPU Development Guide
      • FAQ
      • API Reference

        • 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::setClipPrism
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setMipFilter
        • 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
        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
      • Changelog

        • v0.6.4
        • 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

      • Overview
      • Connection & Authentication
      • Message Model & Codec
      • Interface Catalog
      • Real-time Data
      • Project File Access
      • Error Codes
      • Python

        • Quick Start
        • Client Wrapper & Tools
        • FAQ
      • C++

        • Quick Start
        • Client & Examples
        • FAQ
  • API

    • Structured Spatial Modeling

      • Access Guide
      • Modeling Workflow
      • API Reference
      • Temporary Upload Credentials
      • Error Codes

Enums: Enum Type Reference

Enum types the LCC4UnrealRuntime module exposes.

ModuleLCC4UnrealRuntime
HeaderCore/LCCEnum.h
#include "Core/LCCEnum.h"

Enums marked BlueprintType are usable directly in Blueprint, can be wired to a Switch node, and can serve as a variable type.

Rendering

ERenderMode

Render mode. Used by ULCCComponentBase::RenderMode.

ValuePanel displayDescription
Splatting3DGSRenders as 3D Gaussian Splatting, high quality, high cost
PointCloudPoint CloudRenders as a point cloud, low quality, low cost

Switching to point cloud lowers the cost substantially and suits top-down views, minimaps, and distant views where detail is not needed. In point cloud mode the 3DGS-specific parameters (spherical harmonics, SplatScale, GlobalAlpha) have no effect.

Related interfaces: SetRenderMode, ToggleRenderMode

ELoadMode

Load filter mode. Used by ULCCComponentBase::LoadMode.

ValuePanel displayDescription
BothBothRenders the main part and the environment
OnlyMainOnlyMainRenders the main part only
OnlyEnvironmentOnlyEnvironmentRenders the environment only
NoneNoneRenders nothing

The main part is the core captured area, and the environment is supplementary surrounding data. None amounts to a temporary hide while the data stays in memory, so recovery is far faster than a reload.

Related interface: SetLoadMode

ELightMode

Light mode. Used by ULCCComponentBase::LightMode.

ValuePanel displayDescription
UnlitUnlitUnaffected by scene lighting, shows the original colors as captured
LitLitTakes part in scene lighting and can interact with dynamic lights

Captured data already has the on-site lighting baked in, so switching to Lit adds another layer and easily overexposes. LCC2 needs LightingScale to lower the original brightness. Only effective in 3DGS mode.

Related interfaces: SetLightMode, ToggleLightMode

EShadowMode

Shadow mode.

ValuePanel displayDescription
NoneNoneReceives no shadows
StaticStaticReceives static shadows
DynamicDynamicReceives dynamic shadows

EColorationMode

Coloration method in point cloud render mode. Used by ULCCComponentBase::ColorationMode.

ValuePanel displayDescription
ElevationEvelationColors by elevation, overriding the original colors
DataDataUses the RGB stored in the data

Elevation works with ElevationColorBottom and ElevationColorTop for terrain height visualization; Data shows the true colors of the captured scene. It only applies while the render mode is point cloud, see Visual Settings - Point Cloud.

ELCC2NormalGenerationMode

LCC2 normal generation mode. Used by ULCC2Component::NormalMode.

3DGS data itself has no geometric normals, while lighting needs them. The first three modes are approximate constructions, and only ProxyMesh provides real normals.

ValuePanel displayReal shadingDescription
FixedFixedNoThe whole 3DGS shares one user-specified world normal, pointing up by default. The brightness of everything equals dot(normal, light direction)
ViewFacingView FacingNoEverything faces the camera and is lit evenly
HemisphericalHemisphericalNoCamera-independent normals, mapped from screen position onto a fixed world hemisphere
ProxyMeshProxy MeshYesReal depth and normals come from an ALCC2ProxyMesh in the scene, and 3DGS contributes color only

Trade-offs of each mode:

ModeAdvantagesDisadvantages
FixedNo diagonal light band, fully stable as the camera moves, lowest costNo shape shading at all; everything darkens when light comes from behind the normal
ViewFacingNo configuration needed, no diagonal light bandNo shape shading; overall brightness drifts as the camera turns
HemisphericalNo diagonal light band, stable as the camera moves, smoothest transition as sunlight sweeps acrossStill not real shading; requires tuning NormalPole and NormalHemiSpread
ProxyMeshReal geometric normals and depthRequires authoring and placing a matching proxy mesh; requires a license and falls back to Fixed without one

Recommendation: Fixed by default; Hemispherical for smooth sunlight movement; ProxyMesh for real shape shading; ViewFacing only for a quick look at the result.

Related pages: ULCC2Component, ALCC2ProxyMesh

Clipping and Section

EClipType

Clipping direction. Used by ALCCClippingVolume::Mode.

ValuePanel displayDescription
InsideInsideThe inside of the volume is clipped away
OutsideOutsideThe outside of the volume is clipped away

Inside is for cutting holes and opening up a shell; Outside is for keeping only the area of interest.

EClipVolumeType

Clipping volume shape. Used by ALCCClippingVolume::VolumeType.

ValueDescription
BoxBox volume
SphereSphere volume

ESectionType

Section direction. Used by ALCCSectionPlane::Mode.

ValuePanel displayDescription
UpsideUpsideWhat is above the plane is cut away
DownsideDownsideWhat is below the plane is cut away

Up and down are relative to the orientation of the plane itself, not to world coordinates. Rotating the section plane gives a section in any direction.

ELoadRegion

Load region. Used by ALCCLoadVolume::Mode.

ValuePanel displayDescription
InsideInsideLoads only the data inside the volume
OutsideOutsideLoads only the data outside the volume

The difference from EClipType: this selects which part gets loaded, not which part gets cut away. Rejected areas are never read, so it lowers the load amount and video memory usage. The test works per node, so the border is coarser than a clipping volume's.

ELoadVolumeType

Load volume shape. Used by ALCCLoadVolume::VolumeType.

ValueDescription
BoxBox volume
SphereSphere volume

Related pages: ALCCClippingVolume, ALCCSectionPlane, Load Volumes

Data and Format

ELCCVersion

Data version.

ValueDescription
LCCLCC1 format
LCC2LCC2 format

Related interface: ULCCComponentBase::GetLccVersion

EFileFormat

File format. Return type of ULCCUtilLibrary::DetermineFileFormat.

ValueMatching extension
NoneUnrecognized, or the path does not exist
LCC.lcc
Splats.splats
LAS.las
PLY.ply

Note that the detection scope of DetermineFileFormat is limited: .lcc2, .sog, and .spz all return None. Check the extension directly for those formats, see DetermineFileFormat for details.

EDataSourceType

Data source format of an LCC2 tree. Used by FLCC2MetaInfo::SplatType.

ValueDescription
SOG.sog data source
SPZ.spz data source
PLY.ply data source

This is a plain C++ enum without UENUM markup and is not visible in Blueprint.

EFileType

Data content type.

ValuePanel displayDescription
PortablePortableRGB only, no spherical harmonics
QualityQualityBoth RGB and spherical harmonics

Portable data has no spherical harmonics available, and bUseShcoef is not editable then. CanSetShcoef() actually just checks whether the type is Quality.

ELCCSourceType

Data source. Return type of ULCCUtilLibrary::DetermineSourceType.

ValueDescription
LocalLocal file
HttpNetwork address

ECollisionType

Collision data format. Return type of ULCCUtilLibrary::DetermineCollisionType.

ValueDescription
NoneNo collision data
BinLegacy .bin format
LciNewer .lci format
PlyPoint cloud .ply collision

When None is returned, enabling bEnableCollision has no effect.

ELoadStatus

Load status.

ValueDescription
SuccessSucceeded
FailureFailed
ProgressIn progress

States

The state enums used by the state query and events of ULCCComponentBase, defined in Core/LCCEventTypes.h.

Enum values are only added, never changed (Blueprints store them by value), and later versions may append new values, so callbacks should tolerate a value they do not recognize.

ELCCLoadState

Load state, from Load() to the first frame. After Loaded, data keeps streaming in around the camera, and the state does not revert for that.

ValueDescription
UnloadedNo model is loaded
LoadingLoading has started, bounds and meta info can be read, the data needed for the view is streaming in; use GetLoadProgress for the progress
LoadedThe current view finished loading. This does not mean every chunk read correctly: when some data fails to read, OnLoadFailed reports it and the model may be incomplete. Stays Loaded until the model is released
FailedThe last load failed, no model

ELCCCollisionState

Collision state, from enabling collision to the first collision mesh being in place. Collision loads around the camera and streams in as it moves, so Loaded means collision near the camera is in place, not that the whole model has collision.

ValueDescription
NoCollisionCollision is off, or there is no model
GeneratingSingle-file models only (PLY/SPZ/SOG): generating the collision mesh from the Gaussians, taking from a few seconds to a few minutes; skipped when a cache exists
LoadingThe collision mesh near the camera is loading and cooking; stays Loading while there is no collision data within the load distance yet
LoadedCollision near the camera is in place for the first time and nearby objects no longer clip through; stays Loaded while collision keeps streaming in as the camera moves
FailedCollision is on but cannot be provided: no collision data, generation not licensed, or generation failed. See the Output Log; toggle off and on to retry

ELCCLoadAnimationState

Load animation state (bEnableAnimation). The animation is timed by load time and does not wait for data: Finished means the animation finished playing, not that the model is complete on screen.

ValueDescription
NoAnimationAnimation is off, or there is no model
PlayingThe loading animation is playing; Load / Refresh / SetEnableAnimation restart it
FinishedThe animation finished and the environment has appeared. Forward means the model is fully displayed, inverse means it has disappeared. Returns to Playing when an animation setting change causes a replay

ELCCLoadError

Load failure reason, used by FLCCLoadFailure::Error.

ValueDescription
NoneNo error
FileNotFoundThe file passed to Load was not found (for an .lcc model this also includes the neighboring data.bin / index.bin). Nothing was loaded and an already loaded model is kept. Check the path
InvalidDataThe file was found but is corrupt, missing data files, or not a model the plugin can read. Either nothing was loaded (GetLoadState is Failed), or the model was loaded but some data failed to read and it is incomplete (GetLoadState is Loading or Loaded). See Message and the Output Log

Performance and Scheduling

ETraversalType

Node traversal method. Used by Default Traversal Type in the project settings (Project Settings → Plugins → LCC4Unreal).

ValuePanel displayDescription
CircleCircleCircular traversal centered on the camera with the maximum render distance as the radius
SectorFrustumTraversal based on the camera frustum

Frustum only processes nodes inside the view and is usually cheaper, but nodes outside the view are not preloaded, so a fill-in delay can appear while turning the view quickly.

Note that the enum name is Sector while the panel shows Frustum.

ESortMethod

Translucency sorting method. Used by Default Sort Method in the project settings.

ValueDescription
GPUSorts on the GPU
CPUSorts on the CPU

GPU is the normal choice.

ESortMode

Sort order.

ValueDescription
AscendingAscending
DescendingDescending

EComputeType

Compute pipeline type.

ValueDescription
ComputeUses Compute on the graphics pipeline
AsyncComputeUses the async Compute pipeline

The current implementation uses Compute; AsyncCompute has rendering issues and is not enabled yet.

Localization

ELocale

Locale. Return type of ULCCUtilLibrary::GetLocale.

ValueDescription
EN_USEnglish
ZH_CNSimplified Chinese

ELanguagePreference

Language preference of the plugin interface. Used by Language in the project settings.

ValuePanel displayDescription
FollowEditorFollow EditorFollows the current editor language setting
AlwaysEnglishAlways EnglishForces English regardless of the editor language

Using Enums in Blueprint

A Switch node can branch on an enum in Blueprint:

[Get Render Mode]
        Target = (LCC Component)
        │ Return Value ──┐
        ▼                │
[Switch on ERenderMode] ◀┘
        │ Splatting  ──▶ (3DGS branch logic)
        │ Point Cloud ─▶ (point cloud branch logic)

A direct comparison works as well:

[Get Effective Normal Generation Mode]
        │ Return Value ──┐
        ▼                │
[Equal (Enum)] ◀─────────┘
        A = (Return Value)
        B = Proxy Mesh
        │
        ▼
[Branch]

See Also

  • ULCCComponentBase: usage of ERenderMode, ELoadMode, and ELightMode
  • ULCC2Component: usage of ELCC2NormalGenerationMode
  • ULCCUtilLibrary: utility functions returning the format enums
  • Structs: the structs that use these enums