Anpassung der 3DGS-Bildparameter
Dieses Dokument hat drei Teile: Die gemeinsamen Parameter wirken in beiden Pipelines, danach folgen die Parameter, die jeweils nur einer Pipeline eigen sind. Pipeline-spezifische Parameter werden im Details-Panel der anderen Pipeline nicht angezeigt.
Gemeinsame Parameter
Render Mode
3D Gaussian Splatting (Standard)
Rendert als 2D-Gauß-Ellipsen mit vollständiger Farbe und Transparenz.
LCCComponent->SetRenderMode(ERenderMode::Splatting);
Point Cloud
Rendert jeden Splat als einzelnen farbigen Punkt, geeignet für Übersichten oder Szenen mit begrenzter Leistung.
LCCComponent->SetRenderMode(ERenderMode::PointCloud);

Umschalten zwischen den Rendering-Modi 3DGS und Punktwolke
Der Punktwolkenmodus unterstützt höhenbasierte Einfärbung:
ElevationColorBottom— Farbe auf der niedrigsten HöheElevationColorTop— Farbe auf der höchsten Höhe

Höhenbasierte Einfärbung im Punktwolkenmodus
Load Mode
Die Daten sind in einen Hauptteil und einen Umgebungsteil aufgeteilt, LoadMode steuert, welcher Teil gerendert wird:
| Modus | Beschreibung |
|---|---|
| Both | Rendert Hauptteil und Umgebung (Standard) |
| OnlyMain | Rendert nur den Hauptteil |
| OnlyEnvironment | Rendert nur die Umgebung |
| None | Rendert nichts, die Daten bleiben geladen |

Den Rendering-Umfang von Hauptteil und Umgebung über LoadMode umschalten
Hinweis:
Nonestoppt nur das Rendering, die Daten belegen weiterhin Grafikspeicher. Zum Freigeben der RessourcenUnLoad()aufrufen.
Light Mode
Unlit (Standard)
Nutzt nur die Farbe der Gaussians selbst, ohne Zusammenspiel mit den Lichtern der Szene.
Lit
Aktiviert Deferred Lighting, damit die 3DGS-Szene von Directional Lights, Point Lights und weiteren beeinflusst werden kann. Erfordert Tiefen- und Normaleninformationen.
LCCComponent->SetLightMode(ELightMode::Lit);

Umschalten zwischen den Lichtmodi Unlit und Lit
Mip Filter
Aktiviert wird ein 2D-Tiefpassfilter zusammen mit einer Kompensation der Deckkraft angewendet, um Flackern bei unterschiedlichen Maßstäben zu reduzieren.
Der Standardwert hängt vom Datenformat ab:
| Format | Standard |
|---|---|
.lcc2 / .lcc | Aktiviert |
.ply / .spz / .sog | Deaktiviert |
Einzeldateiformate deaktivieren ihn standardmäßig, um die ursprüngliche scharfe Anmutung der Daten zu erhalten. Bei auftretendem Flackern manuell aktivieren:
LCCComponent->SetUseMipFilter(true);
Kugelflächenfunktionen (SH)
Liefern blickwinkelabhängige Farbvariation und verbessern die Lichttreue.
LCCComponent->SetUseShcoef(true);
Voraussetzungen:
- Der Rendering-Modus ist 3DGS
- Die Daten selbst enthalten SH-Koeffizienten
Ob die Daten SH-Koeffizienten enthalten, hängt vom Format ab:
| Format | Wie es bestimmt wird |
|---|---|
.lcc2 / .lcc | Bestimmt durch den Dateityp der Daten: Der Typ Quality enthält SH, der Typ Portable nicht |
.ply / .spz / .sog | Keine Dateityp-Kennzeichnung, es hängt also davon ab, ob SH-Koeffizienten tatsächlich in die Datei geschrieben wurden |
Enthalten die Daten keine SH-Koeffizienten, ist dieser Schalter im Details-Panel deaktiviert.
SplatScale
Steuert die Größe jedes Splat-Quads, von 0.001 bis 1.0.
Ein niedrigerer Wert verkleinert die Bildschirmfläche, die ein einzelner Splat bedeckt, was halbtransparente Überlappung verringert und die Pixel-Füllkosten senkt. Zu weit gesenkt zeigen Oberflächen Löcher oder wirken deutlich zu dünn. Der Wert ist außerdem eine der Optionen zur Leistungsoptimierung, siehe Leitfaden zur Leistung.
LCCComponent->SetSplatScale(1.0f);

Splat-Skalierung und globales Alpha des 3DGS einstellen
Global Alpha
Jeder Rendering-Modus hat seine eigene Eigenschaft für globales Alpha, beide von 0.0 bis 1.0:
| Eigenschaft | Gilt für |
|---|---|
| GlobalAlpha | 3DGS |
| GlobalAlpha_PointCloud | Punktwolke |
LCCComponent->SetGlobalAlpha(1.0f);
LCCComponent->SetGlobalAlpha_PointCloud(1.0f);

Das globale Alpha des Punktwolkenmodus einstellen
Farbanpassung

Die LCC-Parameter für Sättigung, Kontrast und Farbton konfigurieren
Änderungen zur Laufzeit werden unterstützt:
| Eigenschaft | Bereich | Beschreibung |
|---|---|---|
| Saturation | 0.0~2.0 | Sättigung je Kanal |
| Contrast | 0.0~2.0 | Kontrast je Kanal |
| Gamma | 0.0~2.0 | Gammakorrektur je Kanal |
| Offset | -1.0~1.0 | Additiver Farb-Offset |
| ColorTint | LinearColor | Multiplikativer Farbton |
LCCComponent->SetSaturation(FVector4(1.2, 1.2, 1.2, 1.0));
LCCComponent->SetColorTint(FLinearColor::White);

Das Bild nach dynamischer Anpassung der Farbparameter
Antialiasing
Bei aktiviertem bAffectAntiAliasingMethod verwaltet das Plugin die Antialiasing-Methode automatisch:
| Konfiguration | Standardmethode |
|---|---|
| LCC1 Splat | FXAA |
| LCC2 Splat | TSR |
| LCC1 Point Cloud | MSAA |
| LCC2 Point Cloud | TSR |
Die Standardwerte lassen sich unter ProjectSettings > Plugins > LCC4Unreal ändern.
Hinweis: Die Antialiasing-Methode ist eine globale Einstellung auf Ebene der Ansicht. Existieren in derselben Szene Actors der LCC-Pipeline und der LCC2-Pipeline, setzt jeder die Antialiasing-Methode nach seiner eigenen Konfiguration; welche wirkt, hängt von der Ausführungsreihenfolge ab und das Ergebnis ist unbestimmt. In solchen Szenen die Antialiasing-Methode beider Pipelines manuell auf denselben Wert konfigurieren.

Die Standard-Antialiasing-Methode jeder LCC-Pipeline konfigurieren
Nachbearbeitung

Die Optionen für Nachbearbeitung und Tone Mapping von LCC4Unreal konfigurieren
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Enable Post Process | Aktiviert | Ob LCC-Pixel an der Nachbearbeitungs-Pipeline der Engine teilnehmen |
| Apply Tonemap Inverse | Deaktiviert | Wendet FilmToneMapInverse während der Farbraumkonvertierung an, damit die ursprüngliche Anmutung der Daten nach dem Tone Mapping der Engine wiederhergestellt wird |
Es handelt sich um globale Einstellungen unter ProjectSettings > Plugins > LCC4Unreal > Rendering, die für beide Pipelines gelten. Alle LCC-Komponenten einer Szene teilen denselben Modus, er lässt sich nicht je Actor setzen.
Ergebnis bei deaktiviertem Enable Post Process
Die beiden Zustände werden unterschiedlich verarbeitet:
| Zustand | Verarbeitung | Ergebnis |
|---|---|---|
| Aktiviert | Wendet InverseACES auf LCC-Pixel an, damit sie in die Nachbearbeitungs-Pipeline der Engine eintreten | 3DGS erhält Tone Mapping, Bloom, Belichtung, Color Grading und weitere Nachbearbeitung gemeinsam mit den übrigen Objekten der Szene |
| Deaktiviert | Speichert eine Momentaufnahme vor dem Tone Mapping und blendet sie nach Abschluss des Tone Mapping per Alpha zurück ins Bild | 3DGS behält seine ursprünglichen Farben und bleibt von Tone Mapping und jeder danach folgenden Nachbearbeitungsstufe unbeeinflusst |
Das Deaktivieren eignet sich für Fälle, die eine strenge Reproduktion der ursprünglichen Datenfarben erfordern, etwa Farbprüfung oder Vergleich mit einem Referenzbild. Der Preis: 3DGS und die übrigen Objekte der Szene wirken nicht mehr einheitlich, und Gesamteffekte der Nachbearbeitung wie Bloom und Belichtung gelten für den 3DGS-Teil nicht.
Hinweis: Das Deaktivieren von Enable Post Process erfordert die Ausgabe des Alphakanals in der Engine, sonst ist das Compositing-Ergebnis fehlerhaft. Alpha Output unter ProjectSettings > Engine > Rendering aktivieren (in UE 5.4 und früher entspricht das „Enable alpha channel support in post processing“, das auf Linear color space only gesetzt und danach mit einem Editor-Neustart übernommen werden muss). Das Plugin zeigt einen Hinweis, wenn es erkennt, dass diese Option aus ist.
Was Apply Tonemap Inverse bewirkt
Die Farben von 3DGS-Daten sind fertige Farben, die bereits bei der Aufnahme durch Tone Mapping gelaufen sind. Werden solche Farben erneut durch das Tone Mapping der Engine geführt, werden sie ein zweites Mal komprimiert, was sich meist als geringerer Kontrast und gräuliche Lichter zeigt.
Bei aktivierter Option wendet das Plugin in der Stufe der Farbraumkonvertierung FilmToneMapInverse auf LCC-Farben an, um das nachfolgende Tone Mapping der Engine zu neutralisieren, sodass das Endbild die ursprüngliche Anmutung der Daten wiederherstellt.
| Zustand | Anwendungsfall |
|---|---|
| Deaktiviert (Standard) | 3DGS und die übrigen Objekte der Szene teilen dasselbe Tone Mapping für eine einheitliche Gesamtanmutung |
| Aktiviert | 3DGS muss die ursprünglichen Farben und den ursprünglichen Kontrast der Daten zeigen |
Diese Option gilt für beide Pipelines und ist nur bei aktiviertem Enable Post Process sinnvoll: Ist es aus, nimmt 3DGS nicht mehr am Tone Mapping teil, es gibt also nichts zu neutralisieren.
Parameter der LCC2-Pipeline
Tiefenschwellwert
AlphaThreshold entscheidet, welche Tiefenschicht 3DGS in den Depth Buffer schreibt. 3DGS besteht aus vielen Schichten halbtransparenter Splats, und das Plugin akkumuliert die Deckkraft von nah nach fern. Erreicht der akkumulierte Wert diesen Schwellwert, wird die aktuelle Tiefe als repräsentative Tiefe dieses Pixels festgehalten.
| Punkt | Wert |
|---|---|
| Bereich | 0.01 ~ 0.99 |
| Standard | 0.5 |
Ein niedrigerer Wert verschiebt die Tiefe in Richtung Kamera, ein höherer Wert von der Kamera weg. Diese Tiefe nimmt an Beleuchtung, Occlusion-Tests und tiefenabhängiger Nachbearbeitung teil; das Verhalten von Oberflächen im Lit-Modus und die gegenseitige Occlusion mit regulären Meshes ändern sich also mit ihr.
LCC2Component->AlphaThreshold = 0.5f;
Ein typischer Fall für ein Absenken: Die Daten enthalten feine Strukturen mit sehr geringer Deckkraft, etwa Insekten- oder Vogelflügel, Maschengewebe oder Blattkanten. Die Splats in diesen Bereichen erreichen die standardmäßig akkumulierte Deckkraft von 0.5 nie, es wird also keine Tiefe geschrieben. Enthält die Szene zusätzlich eine Skybox, Nebel oder einen anderen nicht schwarzen Hintergrund, werden diese Bereiche wegen der fehlenden Tiefe mit der Hintergrundfarbe vermischt, was sich als verblasste Strukturen und verlorene Details zeigt. Ein niedrigerer Schwellwert lässt solche Bereiche früher Tiefe schreiben und stellt die Details wieder her.
Schrittweise senken und beobachten. Ein zu niedriger Wert zieht die gesamte Tiefe in Richtung Kamera und beeinflusst Occlusion-Verhältnisse und tiefenabhängige Nachbearbeitung.
Hinweis: Diese Eigenschaft liegt im eingeklappten Bereich Advanced des Details-Panels, und der Standardwert passt für die meisten Szenen.
Parameter der LCC-Pipeline
Empfangen von Schatten
LCCComponent->bReceiveShadows = true;
Hinweis: Erfordert den Rendering-Modus 3DGS. Die Aktivierung hat deutliche Auswirkungen auf die Leistung.

3DGS-Rendering mit aktiviertem Empfangen von Schatten
Nahtentfernung
bEnableSeamCutting entfernt die Nähte, die das Chunk-Rendering an Node-Grenzen erzeugt. LCC-Daten der Version 5.0 und höher aktivieren dies automatisch; bei sichtbaren Nähten in Daten niedrigerer Versionen manuell aktivieren.
LCCComponent->bEnableSeamCutting = true;
Hinweis: Diese Eigenschaft liegt im eingeklappten Bereich Advanced des Details-Panels.
Sortierung der Transluzenz bei mehreren Actors
Die LCC-Pipeline gibt keine Tiefe aus, mehrere LCC-Actors können daher keine korrekte gegenseitige Occlusion über den Tiefentest erreichen und sie nur über die Zeichenreihenfolge transluzenter Objekte annähern. bEnableMultipleLCCActorAutoSort (standardmäßig aktiviert) setzt TranslucentSortPriority automatisch anhand des Abstands jedes Actors zur Kamera, sodass nähere Actors später gezeichnet werden, was in den meisten Fällen ein sinnvolles Überlappungsergebnis liefert.
Diese Sortierung arbeitet auf Actor-Granularität: Jeder Actor nimmt als Ganzes teil und wird nicht bis auf Splats unterteilt. Daraus ergeben sich inhärente Einschränkungen:
- Kreuzen oder durchdringen sich die Bounding Boxes zweier LCC-Actors im Raum, kann keine einzelne Gesamtreihenfolge das korrekte Vorne-Hinten-Verhältnis ausdrücken, und die Occlusion im Kreuzungsbereich ist falsch
- Umfasst ein einzelner Actor intern einen großen Tiefenbereich, passt die Sortierung nach dem Abstand zum Actor-Mittelpunkt möglicherweise nicht zum tatsächlichen Vorne-Hinten-Verhältnis
Zur LCC2-Pipeline wechseln, wenn sich mehrere 3DGS-Datensätze korrekt gegenseitig verdecken müssen. Diese Option deaktivieren, wenn die Überlappungsreihenfolge manuell festgelegt werden soll, und stattdessen TranslucentSortPriority an jedem Actor setzen.
Die LCC2-Pipeline bietet diese Eigenschaft nicht: Ihre Daten werden in einem einzigen Buffer zusammengefasst, global je Splat sortiert und geben Tiefe aus, um an Occlusion-Tests teilzunehmen; ein Eingreifen ist daher nicht nötig.