Technical Features
Functional Features
As the LCC Unity SDK continues to improve, its features keep getting richer. It currently provides more than 90 APIs. The main functional features are listed below, and you can integrate them into your own project as needed.
| No. | Feature | Description | Notes |
|---|---|---|---|
| 1 | Basic rendering | Supports full LOD0 rendering Supports dynamic LOD chunked rendering for large scenes Supports rendering with / without spherical harmonics Supports separate rendering control of subject data and environment data | Automatically distinguishes full vs. chunked rendering Supports object-level to city-level 3DGS data scenes |
| 2 | Multi-graphics-API support | Supports DX12, DX11, Vulkan and Metal graphics APIs | Adapts to various hardware platforms |
| 3 | OpenXR | Supports the OpenXR standard for VR devices | Adapts to various hardware platforms |
| 4 | 3DGS / Point Cloud rendering | Supports both 3DGS and Point Cloud rendering modes | |
| 5 | Single-scene / multi-scene mixed rendering | Supports single LCC scene rendering Supports mixed rendering of multiple LCC scenes (up to 255 LCC scenes) Supports mixed rendering of SOG / SPZ format files | Unified CPU memory / GPU video memory management to completely eliminate memory / video memory leaks and explosions |
| 6 | Dynamic lighting | Supports real-time dynamic lighting with point lights and spot lights | Does not rely on a Proxy Mesh, more flexible to use |
| 7 | Real-time shadows | Supports Meshes casting real-time shadows onto 3DGS surfaces | Does not rely on a Proxy Mesh, low overhead and high performance |
| 8 | Corner snapping | Supports corner snapping on 3DGS surfaces, snap cursor display and snap raycasting | |
| 9 | Multi-camera rendering | Full rendering mode supports full-featured multi-camera rendering Chunked rendering mode supports multi-camera rendering at the same position and orientation | Allows multiple camera positions |
| 10 | Projected decals | Supports texture and dynamic video projected decals Supports projected decal depth occlusion | |
| 11 | Orthographic / perspective rendering | Supports dynamic switching between orthographic and perspective rendering | |
| 12 | HD video recording | Supports video recording at various resolutions (1080P, 2K, 4K, 8K) | Allows HD video recording at various sizes Not affected by monitor resolution |
| 13 | Real-time highlighting | Supports real-time selection highlighting (2D, 3D, Mix) | |
| 14 | Real-time clipping | Supports real-time selection clipping (2D, 3D, Mix) | |
| 15 | Real-time plane sectioning | Supports real-time horizontal and vertical plane sectioning | |
| 16 | Real-time color adjustment | Supports real-time selection color adjustment (brightness, saturation, contrast) | |
| 17 | Semantic coloring | Supports coloring by semantics of semantic data | Requires 3DGS primitives to carry semantic information |
| 18 | AI Box rendering | Supports visualization of lcb files recognized by AI | Mainly used for rendering AI detection boxes in the energy industry |
| 19 | Loading effects | Supports diffusion effects during data loading | |
| 20 | Raycasting | Supports raycasting without a Mesh Supports raycasting with a Mesh Supports sphere collision detection with a Mesh Supports capsule collision detection with a Mesh | Built-in high-performance collision detection system |
| 21 | Dynamic FOV setting | Supports dynamic FOV setting of the rendering camera at runtime | Mainly used when the rendering host and display device are separate, such as wearing stereoscopic glasses |
| 22 | Alpha adjustment | Supports real-time adjustment of the global 3DGS opacity Supports independent opacity adjustment for each scene in multi-LCC-scene rendering | |
| 23 | Data sources | Supports local disk data sources Supports network server data sources | |
| 24 | Frame rate lock | Supports dynamic switching between locked and unlocked frame rate | Locked by default to optimize performance |
| 25 | Depth write | Supports real-time depth write | Limitation: the write granularity is coarse and may produce ellipsoid shapes |
| 26 | Real-time Mip / Non-Mip switching | Supports real-time switching between Mip and Non-Mip rendering | |
| 27 | PCVR streaming | Supports Single Pass Instanced and Multi Pass PCVR streaming | |
| 28 | Retrieving scene Mesh | Supports retrieving scene Mesh data either all at once or partially on demand | |
| 29 | Small-point culling | Supports runtime dynamic adjustment of small-point culling to optimize performance | |
| 30 | Render parameter settings | Exposes various render parameter settings, including total render buffer, on-screen render count, StartLOD, SSE factor and other APIs | Allows runtime dynamic adjustment of rendering performance and quality |
Note:
- Some features are limited to the PC platform (including Windows, Mac and Ubuntu);
- Some features that depend on Render Features have differences in support across Built-in, URP and HDRP.
Performance
LCC rendering is a GPU-compute-intensive application. Rendering performance mainly depends on the following factors: screen resolution, CPU processing speed, GPU processing speed, and memory capacity and frequency. All splat counts in the table below refer to 3DGS splat counts.
PC
With an NVIDIA RTX 3060 GPU, an Intel i7-11700 CPU and 3200 MHz 32 GB of memory, at a resolution of 1800×1000, a rendering speed of 24 million splats @ 30 FPS can be achieved.
Mobile
| Platform | Rendering speed |
|---|---|
| Android (mid-to-high-end devices since 2020) | 2 million splats @ 30 FPS |
| iOS (iPhone 11 and later) | 3 million splats @ 30 FPS |
VR
| Device | Rendering speed |
|---|---|
| Pico 4 Ultra | 600,000 splats @ 30 FPS |
| Quest 3 | 600,000 splats @ 30 FPS |