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

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

    • Version and Copyright
    • Installation and Activation
    • Software Interface
    • File Operations
    • Project Processing
    • Tools
    • 2D Drawing
    • Applications
    • Settings
    • Device Connection
  • 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
    • Version History
  • Plugin & SDK

    • Unreal

      • Introduction
      • Quick Start - Windows
      • Quick Start - Linux
      • Quick Start - Quest3
      • Editions and Licensing
      • Rendering
      • 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
      • API Reference

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

        • 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

3DGS Image Parameter Tuning

This document has three parts: the common parameters work on both pipelines, and the parameters unique to each pipeline follow. Pipeline-specific parameters are not shown in the Details panel of the other pipeline.

Common Parameters

Render Mode

3D Gaussian Splatting (default)

Renders as 2D Gaussian ellipses with full color and transparency.

LCCComponent->SetRenderMode(ERenderMode::Splatting);

Point Cloud

Renders every splat as a single colored point, suited to overviews or performance-constrained scenes.

LCCComponent->SetRenderMode(ERenderMode::PointCloud);
Switching between 3DGS and point cloud render modes

Switching between the 3DGS and point cloud render modes

Point cloud mode supports elevation coloring:

  • ElevationColorBottom — color at the lowest elevation
  • ElevationColorTop — color at the highest elevation
Elevation coloring in point cloud mode

Elevation coloring in point cloud mode

Load Mode

The data is split into a main part and an environment part, and LoadMode controls which part is rendered:

ModeDescription
BothRenders the main part and the environment (default)
OnlyMainRenders the main part only
OnlyEnvironmentRenders the environment only
NoneRenders nothing, data stays loaded
Switching the LoadMode main and environment render modes

Switching the main and environment render scope with LoadMode

Note: None only stops rendering, and the data still occupies video memory. Call UnLoad() to release the resources.

Light Mode

Unlit (default)

Uses only the color of the Gaussians themselves, with no interaction with scene lights.

Lit

Enables deferred lighting so the 3DGS scene can be affected by directional lights, point lights, and others. Requires depth and normal information.

LCCComponent->SetLightMode(ELightMode::Lit);
Switching between the Unlit and Lit light modes

Switching between the Unlit and Lit light modes

Mip Filter

When enabled, applies a 2D low-pass filter together with opacity compensation to reduce flickering at different scales.

The default value depends on the data format:

FormatDefault
.lcc2 / .lccEnabled
.ply / .spz / .sogDisabled

Single-file formats disable it by default to preserve the original sharp look of the data. Enable it manually when flickering appears:

LCCComponent->SetUseMipFilter(true);

Spherical Harmonics (SH)

Provides view-dependent color variation and improves lighting fidelity.

LCCComponent->SetUseShcoef(true);

Requirements:

  • The render mode is 3DGS
  • The data itself contains SH coefficients

Whether the data contains SH coefficients depends on the format:

FormatHow it is determined
.lcc2 / .lccDetermined by the file type of the data: the Quality type contains SH, the Portable type does not
.ply / .spz / .sogNo file type marker, so it depends on whether SH coefficients were actually written into the file

When the data contains no SH coefficients, this switch is disabled in the Details panel.

SplatScale

Controls the size of each splat quad, from 0.001 to 1.0.

Lowering it reduces the screen area a single splat covers, which reduces semi-transparent overlap and lowers the pixel fill cost. Lowering it too far makes surfaces show holes or look noticeably thin. It is also one of the performance tuning options; see Performance Guide.

LCCComponent->SetSplatScale(1.0f);
SplatScale and GlobalAlpha settings

Setting the splat scale and the 3DGS global alpha

Global Alpha

Each render mode has its own global alpha property, both from 0.0 to 1.0:

PropertyApplies to
GlobalAlpha3DGS
GlobalAlpha_PointCloudPoint cloud
LCCComponent->SetGlobalAlpha(1.0f);
LCCComponent->SetGlobalAlpha_PointCloud(1.0f);
Alpha setting in point cloud mode

Setting the global alpha of point cloud mode

Color Adjustment

LCC color adjustment parameters

Configuring the LCC saturation, contrast, and tint parameters

Runtime changes are supported:

PropertyRangeDescription
Saturation0.0~2.0Per-channel saturation
Contrast0.0~2.0Per-channel contrast
Gamma0.0~2.0Per-channel gamma correction
Offset-1.0~1.0Additive color offset
ColorTintLinearColorMultiplicative tint
LCCComponent->SetSaturation(FVector4(1.2, 1.2, 1.2, 1.0));
LCCComponent->SetColorTint(FLinearColor::White);
Dynamic color adjustment result

The image after adjusting the color parameters dynamically

Anti-aliasing

With bAffectAntiAliasingMethod enabled, the plugin manages the anti-aliasing method automatically:

ConfigurationDefault method
LCC1 SplatFXAA
LCC2 SplatTSR
LCC1 Point CloudMSAA
LCC2 Point CloudTSR

The defaults can be changed in ProjectSettings > Plugins > LCC4Unreal.

Note: the anti-aliasing method is a view-level global setting. When Actors from both the LCC pipeline and the LCC2 pipeline exist in the same scene, each sets the anti-aliasing method according to its own configuration, so which one takes effect depends on execution order and the result is undetermined. In such scenes, configure the anti-aliasing method of both pipelines to the same value manually.

LCC4Unreal anti-aliasing settings

Configuring the default anti-aliasing method of each LCC pipeline

Post-processing

LCC4Unreal post-processing settings

Configuring the LCC4Unreal post-processing and tone mapping options

SettingDefaultDescription
Enable Post ProcessEnabledWhether LCC pixels take part in the engine post-processing pipeline
Apply Tonemap InverseDisabledApplies FilmToneMapInverse during the color space conversion so the original look of the data is restored after engine tone mapping

These are global settings under ProjectSettings > Plugins > LCC4Unreal > Rendering and apply to both pipelines. All LCC components in a scene share the same mode, and it cannot be set per Actor.

Result of Disabling Enable Post Process

The two states are processed differently:

StateProcessingResult
EnabledApplies InverseACES to LCC pixels so they enter the engine post-processing pipeline3DGS receives tone mapping, Bloom, exposure, color grading, and other post-processing along with the regular objects in the scene
DisabledSaves a snapshot before tone mapping and blends it back into the image by alpha after tone mapping completes3DGS keeps its original colors and is unaffected by tone mapping and every post-processing stage after it

Disabling it suits cases that require a strict reproduction of the original data colors, such as color verification or comparison against a reference image. The cost is that 3DGS and the regular objects in the scene no longer look consistent, and overall post-processing effects such as Bloom and exposure do not apply to the 3DGS part.

Note: disabling Enable Post Process requires alpha channel output in the engine, otherwise the composite result is incorrect. Enable Alpha Output in ProjectSettings > Engine > Rendering (in UE 5.4 and earlier this corresponds to "Enable alpha channel support in post processing", which must be set to Linear color space only followed by an editor restart). The plugin shows a prompt when it detects that this option is off.

What Apply Tonemap Inverse Does

The colors of 3DGS data are finished colors that already went through tone mapping at capture time. Running such colors through engine tone mapping again compresses them a second time, usually showing up as lower contrast and grayish highlights.

With this option enabled, the plugin applies FilmToneMapInverse to LCC colors during the color space conversion stage to cancel the engine tone mapping that follows, so the final image restores the original look of the data.

StateUse case
Disabled (default)3DGS and the regular objects in the scene share the same tone mapping for a consistent overall look
Enabled3DGS must show the original colors and contrast of the data

This option applies to both pipelines and is only meaningful while Enable Post Process is enabled: once it is off, 3DGS no longer takes part in tone mapping, so there is nothing to cancel.

Parameters Specific to the LCC2 Pipeline

Depth Threshold

AlphaThreshold decides which layer of depth 3DGS writes into the depth buffer. 3DGS is composed of many layers of semi-transparent splats, and the plugin accumulates opacity from near to far. When the accumulated value reaches this threshold, the current depth is recorded as the representative depth of that pixel.

ItemValue
Range0.01 ~ 0.99
Default0.5

Lowering it biases the depth toward the camera, raising it biases the depth away from the camera. This depth takes part in lighting, occlusion tests, and depth-dependent post-processing, so surface response in Lit mode and mutual occlusion with regular meshes change with it.

LCC2Component->AlphaThreshold = 0.5f;

A typical case for lowering it: the data contains thin structures with very low opacity, such as insect or bird wings, mesh netting, or leaf edges. The splats in these areas never reach the default accumulated opacity of 0.5, so no depth is written. If the scene also has a sky box, fog, or another non-black background, these areas get blended with the background color because they lack depth, showing up as faded structures and lost detail. Lowering the threshold lets such areas write depth earlier and restores the detail.

Lower it step by step and observe. Too low a value pulls the whole depth toward the camera and affects occlusion relationships and depth-dependent post-processing.

Note: this property lives in the Advanced collapsed area of the Details panel, and the default value suits most scenes.

Parameters Specific to the LCC Pipeline

Shadow Receiving

LCCComponent->bReceiveShadows = true;

Note: requires the 3DGS render mode. Enabling it has a significant performance impact.

3DGS receiving shadows

3DGS rendering with shadow receiving enabled

Seam Cutting

bEnableSeamCutting cuts the seams that chunked rendering produces at node boundaries. LCC data version 5.0 and above enables it automatically; enable it manually when visible seams appear in data from lower versions.

LCCComponent->bEnableSeamCutting = true;

Note: this property lives in the Advanced collapsed area of the Details panel.

Multi-Actor Translucency Sorting

The LCC pipeline outputs no depth, so several LCC Actors cannot get correct mutual occlusion through the depth test and can only approximate it through translucent draw order. bEnableMultipleLCCActorAutoSort (enabled by default) sets TranslucentSortPriority automatically by the distance from each Actor to the camera, so nearer Actors are drawn later, which gives a reasonable overlap result in most cases.

This sorting works at Actor granularity: each Actor takes part as a whole and is not subdivided down to splats. That brings inherent limitations:

  • When the bounding boxes of two LCC Actors cross or interpenetrate in space, no single overall order can express the correct front-to-back relationship, and occlusion in the crossing area is wrong
  • When a single Actor spans a large depth range internally, sorting by the distance to the Actor center may not match the actual front-to-back relationship

Switch to the LCC2 pipeline when several 3DGS datasets must occlude each other correctly. Disable this option when the overlap order must be specified manually, and set TranslucentSortPriority on each Actor instead.

The LCC2 pipeline does not offer this property: its data is merged into a single Buffer, sorted globally per splat, and outputs depth to take part in occlusion tests, so no intervention is needed.

Prev
Rendering
Next
Normals and Lighting