Enums: Referenz der Enum-Typen
Enum-Typen, die das Modul LCC4UnrealRuntime bereitstellt.
| Modul | LCC4UnrealRuntime |
| Header | Core/LCCEnum.h |
#include "Core/LCCEnum.h"
Enums mit der Auszeichnung BlueprintType sind unmittelbar in Blueprint nutzbar, lassen sich an einen Switch-Node anschließen und können als Variablentyp dienen.
Rendering
ERenderMode
Rendering-Modus. Genutzt von ULCCComponentBase::RenderMode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Splatting | 3DGS | Rendert als 3D Gaussian Splatting, hohe Qualität, hohe Kosten |
PointCloud | Point Cloud | Rendert als Punktwolke, niedrige Qualität, niedrige Kosten |
Das Umschalten auf Punktwolke senkt die Kosten deutlich und passt zu Aufsichten, Minimaps und fernen Ansichten, in denen keine Details gebraucht werden. Im Punktwolken-Modus haben die 3DGS-eigenen Parameter (Kugelflächenfunktionen, SplatScale, GlobalAlpha) keine Wirkung.
Zugehörige Schnittstellen: SetRenderMode, ToggleRenderMode
ELoadMode
Filtermodus des Ladens. Genutzt von ULCCComponentBase::LoadMode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Both | Both | Rendert den Hauptteil und die Umgebung |
OnlyMain | OnlyMain | Rendert nur den Hauptteil |
OnlyEnvironment | OnlyEnvironment | Rendert nur die Umgebung |
None | None | Rendert nichts |
Der Hauptteil ist der zentrale erfasste Bereich, die Umgebung sind ergänzende Daten ringsherum. None entspricht einem vorübergehenden Ausblenden, während die Daten im Arbeitsspeicher bleiben, die Wiederherstellung ist daher weit schneller als ein erneutes Laden.
Zugehörige Schnittstelle: SetLoadMode
ELightMode
Lichtmodus. Genutzt von ULCCComponentBase::LightMode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Unlit | Unlit | Von der Szenenbeleuchtung unbeeinflusst, zeigt die ursprünglichen Farben wie erfasst |
Lit | Lit | Nimmt an der Szenenbeleuchtung teil und kann mit dynamischen Lichtern zusammenwirken |
Erfasste Daten haben die Beleuchtung vor Ort bereits eingebacken, das Umschalten auf Lit fügt daher eine weitere Schicht hinzu und überstrahlt leicht. LCC2 benötigt LightingScale, um die ursprüngliche Helligkeit zu senken. Nur im 3DGS-Modus wirksam.
Zugehörige Schnittstellen: SetLightMode, ToggleLightMode
EShadowMode
Schattenmodus.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
None | None | Empfängt keine Schatten |
Static | Static | Empfängt statische Schatten |
Dynamic | Dynamic | Empfängt dynamische Schatten |
EColorationMode
Einfärbungsart im Rendering-Modus Punktwolke. Genutzt von ULCCComponentBase::ColorationMode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Elevation | Evelation | Färbt nach Höhe und überschreibt die ursprünglichen Farben |
Data | Data | Nutzt das in den Daten gespeicherte RGB |
Elevation arbeitet mit ElevationColorBottom und ElevationColorTop zusammen, um die Höhe des Geländes zu veranschaulichen; Data zeigt die echten Farben der erfassten Szene. Es wirkt nur, solange der Rendering-Modus Punktwolke ist, siehe Bildeinstellungen - Point Cloud.
ELCC2NormalGenerationMode
Modus der Normalenerzeugung von LCC2. Genutzt von ULCC2Component::NormalMode.
3DGS-Daten selbst haben keine geometrischen Normalen, die Beleuchtung benötigt sie aber. Die ersten drei Modi sind Konstruktionen durch Annäherung, und nur ProxyMesh liefert echte Normalen.
| Wert | Anzeige im Panel | Echtes Shading | Beschreibung |
|---|---|---|---|
Fixed | Fixed | Nein | Das gesamte 3DGS teilt eine vom Nutzer angegebene Weltnormale, die standardmäßig nach oben zeigt. Die Helligkeit von allem entspricht dot(normal, light direction) |
ViewFacing | View Facing | Nein | Alles zeigt zur Kamera und wird gleichmäßig beleuchtet |
Hemispherical | Hemispherical | Nein | Von der Kamera unabhängige Normalen, aus der Bildschirmposition auf eine feste Weltraum-Halbkugel abgebildet |
ProxyMesh | Proxy Mesh | Ja | Echte Tiefe und Normalen kommen von einem ALCC2ProxyMesh in der Szene, und 3DGS trägt nur Farbe bei |
Abwägungen der einzelnen Modi:
| Modus | Vorteile | Nachteile |
|---|---|---|
Fixed | Kein diagonales Lichtband, bei Kamerabewegung vollständig stabil, geringste Kosten | Überhaupt kein formgebendes Shading; alles dunkelt ab, wenn das Licht von hinter der Normalen kommt |
ViewFacing | Keine Konfiguration nötig, kein diagonales Lichtband | Kein formgebendes Shading; die Gesamthelligkeit driftet, während sich die Kamera dreht |
Hemispherical | Kein diagonales Lichtband, bei Kamerabewegung stabil, sanftester Übergang, während das Sonnenlicht darüber streicht | Weiterhin kein echtes Shading; erfordert das Abstimmen von NormalPole und NormalHemiSpread |
ProxyMesh | Echte geometrische Normalen und Tiefe | Erfordert das Erstellen und Platzieren eines passenden Proxy Mesh; erfordert eine Lizenz und fällt ohne sie auf Fixed zurück |
Empfehlung: Fixed als Standard; Hemispherical für eine sanfte Bewegung des Sonnenlichts; ProxyMesh für echtes formgebendes Shading; ViewFacing nur für einen schnellen Blick auf das Ergebnis.
Zugehörige Seiten: ULCC2Component, ALCC2ProxyMesh
Clipping und Schnitt
EClipType
Richtung des Beschneidens. Genutzt von ALCCClippingVolume::Mode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Inside | Inside | Das Innere des Volumens wird weggeschnitten |
Outside | Outside | Das Äußere des Volumens wird weggeschnitten |
Inside dient dazu, Löcher zu schneiden und eine Hülle zu öffnen; Outside dient dazu, nur den interessierenden Bereich zu behalten.
EClipVolumeType
Form des Clipping-Volumens. Genutzt von ALCCClippingVolume::VolumeType.
| Wert | Beschreibung |
|---|---|
Box | Box-Volumen |
Sphere | Kugel-Volumen |
ESectionType
Richtung des Schneidens. Genutzt von ALCCSectionPlane::Mode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Upside | Upside | Was über der Ebene liegt, wird weggeschnitten |
Downside | Downside | Was unter der Ebene liegt, wird weggeschnitten |
Oben und unten beziehen sich auf die Ausrichtung der Ebene selbst, nicht auf die Weltkoordinaten. Das Drehen der Schnittebene ergibt einen Schnitt in beliebiger Richtung.
ELoadRegion
Ladebereich. Genutzt von ALCCLoadVolume::Mode.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Inside | Inside | Lädt nur die Daten innerhalb des Volumens |
Outside | Outside | Lädt nur die Daten außerhalb des Volumens |
Der Unterschied zu EClipType: Hier wird gewählt, welcher Teil geladen wird, nicht welcher weggeschnitten wird. Abgewiesene Bereiche werden nie gelesen, das senkt Ladevolumen und Grafikspeicherbedarf. Der Test arbeitet pro Node, die Grenze ist daher grober als bei einem Clipping-Volumen.
ELoadVolumeType
Form des Load-Volumens. Genutzt von ALCCLoadVolume::VolumeType.
| Wert | Beschreibung |
|---|---|
Box | Box-Volumen |
Sphere | Kugel-Volumen |
Zugehörige Seiten: ALCCClippingVolume, ALCCSectionPlane, Load-Volumen
Daten und Format
ELCCVersion
Datenversion.
| Wert | Beschreibung |
|---|---|
LCC | Format LCC1 |
LCC2 | Format LCC2 |
Zugehörige Schnittstelle: ULCCComponentBase::GetLccVersion
EFileFormat
Dateiformat. Rückgabetyp von ULCCUtilLibrary::DetermineFileFormat.
| Wert | Passende Erweiterung |
|---|---|
None | Nicht erkannt, oder der Pfad existiert nicht |
LCC | .lcc |
Splats | .splats |
LAS | .las |
PLY | .ply |
Zu beachten: Der Erkennungsumfang von DetermineFileFormat ist begrenzt: .lcc2, .sog und .spz geben alle None zurück. Für diese Formate die Erweiterung unmittelbar prüfen, Näheres unter DetermineFileFormat.
EDataSourceType
Format der Datenquelle eines LCC2-Baums. Genutzt von FLCC2MetaInfo::SplatType.
| Wert | Beschreibung |
|---|---|
SOG | Datenquelle .sog |
SPZ | Datenquelle .spz |
PLY | Datenquelle .ply |
Das ist ein einfaches C++-Enum ohne UENUM-Auszeichnung und in Blueprint nicht sichtbar.
EFileType
Typ des Dateninhalts.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Portable | Portable | Nur RGB, keine Kugelflächenfunktionen |
Quality | Quality | RGB und Kugelflächenfunktionen |
Daten des Typs Portable haben keine Kugelflächenfunktionen zur Verfügung, und bUseShcoef ist dann nicht bearbeitbar. CanSetShcoef() prüft tatsächlich nur, ob der Typ Quality ist.
ELCCSourceType
Datenquelle. Rückgabetyp von ULCCUtilLibrary::DetermineSourceType.
| Wert | Beschreibung |
|---|---|
Local | Lokale Datei |
Http | Netzwerkadresse |
ECollisionType
Format der Kollisionsdaten. Rückgabetyp von ULCCUtilLibrary::DetermineCollisionType.
| Wert | Beschreibung |
|---|---|
None | Keine Kollisionsdaten |
Bin | Altes Format .bin |
Lci | Neueres Format .lci |
Ply | Punktwolken-Kollision .ply |
Wird None zurückgegeben, hat das Aktivieren von bEnableCollision keine Wirkung.
ELoadStatus
Status des Ladens.
| Wert | Beschreibung |
|---|---|
Success | Erfolgreich |
Failure | Fehlgeschlagen |
Progress | Läuft |
States
Zustandsenums für die Statusabfrage und Ereignisse von ULCCComponentBase, definiert in Core/LCCEventTypes.h.
Enum-Werte werden nur hinzugefügt, nicht geändert (Blueprint speichert sie nach Wert); spätere Versionen können neue Werte anhängen, Callbacks sollten also Werte tolerieren, die sie nicht kennen.
ELCCLoadState
Ladezustand, von Load() bis zum ersten sichtbaren Bild. Nach Loaded strömen die Daten weiterhin um die Kamera herum ein, der Zustand geht dafür nicht zurück.
| Wert | Beschreibung |
|---|---|
Unloaded | Kein Modell geladen |
Loading | Das Laden hat begonnen, Bounds und Metadaten sind lesbar, die für die Ansicht benötigten Daten strömen gerade nach, Fortschritt mit GetLoadProgress ablesen |
Loaded | Die aktuelle Ansicht ist fertig geladen. Das bedeutet nicht, dass jeder Datenblock korrekt gelesen wurde: Schlägt ein Teil fehl, meldet es OnLoadFailed, und das Modell kann unvollständig dargestellt sein. Bleibt Loaded, bis das Modell freigegeben wird |
Failed | Das letzte Laden ist fehlgeschlagen, kein Modell |
ELCCCollisionState
Kollisionszustand, vom Aktivieren der Kollision bis zum Bereitstehen des ersten Kollisionsnetzes. Die Kollision wird um die Kamera herum geladen und strömt mit der Bewegung nach; Loaded bedeutet, dass die Kollision nahe der Kamera bereit ist, nicht dass das gesamte Modell Kollision hat.
| Wert | Beschreibung |
|---|---|
NoCollision | Kollision aus oder kein Modell |
Generating | Nur bei Einzeldateimodellen (PLY/SPZ/SOG): das Kollisionsnetz wird gerade aus den Gaussians erzeugt, das dauert Sekunden bis Minuten; mit vorhandenem Cache übersprungen |
Loading | Das Kollisionsnetz nahe der Kamera wird geladen und gecookt; liegt innerhalb der Ladedistanz noch keine Kollisionsdaten vor, bleibt es Loading |
Loaded | Die Kollision nahe der Kamera steht erstmals bereit, nahe Objekte fallen nicht mehr durch; bleibt Loaded, während die Kollision mit der Kamerabewegung weiter einströmt |
Failed | Kollision ist aktiviert, kann aber nicht bereitgestellt werden: keine Kollisionsdaten, keine Lizenz für die Generierung oder Generierung fehlgeschlagen. Siehe Output Log, einmal aus- und wieder einschalten, um es erneut zu versuchen |
ELCCLoadAnimationState
Zustand der Ladeanimation (bEnableAnimation). Die Animation läuft nach der Ladezeit, nicht nach den Daten: Finished bedeutet, dass die Animation abgespielt ist, nicht dass das Modell vollständig auf dem Bildschirm ist.
| Wert | Beschreibung |
|---|---|
NoAnimation | Animation aus oder kein Modell |
Playing | Die Ladeanimation läuft; Load / Refresh / SetEnableAnimation starten sie neu |
Finished | Die Animation ist abgespielt und die Umgebung erschienen. Vorwärts bedeutet, dass das Modell vollständig angezeigt ist, umgekehrt, dass es verschwunden ist. Löst eine Änderung der Animationseinstellungen ein erneutes Abspielen aus, geht es zurück auf Playing |
ELCCLoadError
Grund eines Ladefehlers, genutzt in FLCCLoadFailure::Error.
| Wert | Beschreibung |
|---|---|
None | Kein Fehler |
FileNotFound | Die an Load übergebene Datei wurde nicht gefunden (bei .lcc-Modellen zählen auch die daneben liegenden data.bin / index.bin dazu). Es wurde nichts geladen, ein bereits geladenes Modell bleibt erhalten. Den Pfad prüfen |
InvalidData | Die Datei wurde gefunden, ist aber beschädigt, es fehlen Datendateien oder es ist kein vom Plugin lesbares Modell. Entweder wurde nichts geladen (GetLoadState ist Failed), oder das Modell ist geladen, aber ein Teil der Daten ließ sich nicht lesen und es ist unvollständig (GetLoadState ist Loading oder Loaded). Näheres in Message und im Output Log |
Leistung und Scheduling
ETraversalType
Methode der Node-Traversierung. Genutzt von Default Traversal Type in den Projekteinstellungen (Project Settings → Plugins → LCC4Unreal).
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
Circle | Circle | Kreisförmige Traversierung um die Kamera als Mittelpunkt mit der maximalen Renderdistanz als Radius |
Sector | Frustum | Traversierung anhand des Kamera-Frustums |
Frustum verarbeitet nur Nodes innerhalb der Ansicht und ist meist günstiger, Nodes außerhalb der Ansicht werden aber nicht vorgeladen, sodass beim schnellen Drehen der Ansicht eine Verzögerung beim Auffüllen auftreten kann.
Zu beachten: Der Name des Enum-Werts ist Sector, während das Panel Frustum anzeigt.
ESortMethod
Methode der Transparenzsortierung. Genutzt von Default Sort Method in den Projekteinstellungen.
| Wert | Beschreibung |
|---|---|
GPU | Sortiert auf der GPU |
CPU | Sortiert auf der CPU |
GPU ist die reguläre Wahl.
ESortMode
Sortierreihenfolge.
| Wert | Beschreibung |
|---|---|
Ascending | Aufsteigend |
Descending | Absteigend |
EComputeType
Typ der Compute-Pipeline.
| Wert | Beschreibung |
|---|---|
Compute | Nutzt Compute auf der Grafik-Pipeline |
AsyncCompute | Nutzt die asynchrone Compute-Pipeline |
Die aktuelle Umsetzung nutzt Compute; AsyncCompute hat Rendering-Probleme und ist noch nicht aktiviert.
Lokalisierung
ELocale
Locale. Rückgabetyp von ULCCUtilLibrary::GetLocale.
| Wert | Beschreibung |
|---|---|
EN_US | Englisch |
ZH_CN | Vereinfachtes Chinesisch |
ELanguagePreference
Sprachvorgabe der Plugin-Oberfläche. Genutzt von Language in den Projekteinstellungen.
| Wert | Anzeige im Panel | Beschreibung |
|---|---|---|
FollowEditor | Follow Editor | Folgt der aktuellen Spracheinstellung des Editors |
AlwaysEnglish | Always English | Erzwingt Englisch unabhängig von der Editorsprache |
Enums in Blueprint nutzen
Ein Switch-Node kann in Blueprint anhand eines Enums verzweigen:
[Get Render Mode]
Target = (LCC Component)
│ Return Value ──┐
▼ │
[Switch on ERenderMode] ◀┘
│ Splatting ──▶ (Logik des 3DGS-Zweigs)
│ Point Cloud ─▶ (Logik des Punktwolken-Zweigs)
Ein unmittelbarer Vergleich funktioniert ebenfalls:
[Get Effective Normal Generation Mode]
│ Return Value ──┐
▼ │
[Equal (Enum)] ◀─────────┘
A = (Return Value)
B = Proxy Mesh
│
▼
[Branch]
Siehe auch
- ULCCComponentBase: Verwendung von
ERenderMode,ELoadModeundELightMode - ULCC2Component: Verwendung von
ELCC2NormalGenerationMode - ULCCUtilLibrary: Hilfsfunktionen, die die Format-Enums zurückgeben
- Structs: die Structs, die diese Enums nutzen