So erstellst du LOD (Level of Detail) für deinen Splat
Diese Anleitung erklärt, wie du mit der One-Click-Funktion in Arrival.Space ein LOD für deinen Splat erstellst.
Wenn du einzelne .ply-Dateien hast oder mehr Kontrolle über LOD-Einstellungen brauchst, nutze die Manuelle LOD-Erstellungsanleitung (CLI). Dort findest du einen alternativen Workflow mit dem splat-transform CLI-Tool.
Diese Optimierung ist für LCC2 nicht erforderlich, weil LCC2 bereits optimiert ist. Die in Abschnitt Streaming-Einstellungen beschriebenen Settings kannst du aber trotzdem auch für LCC2 verwenden.
TL;DR
- Lade deine Splat-Datei hoch (
.ply,.compressed.ply,.sogoder.lccals zip) - Klicke in der Content List Detail View auf Generate LOD
- Passe deine LOD-Settings an (Presets, Distanzen/Multipliers)
- Erzeuge eine Collision
1. Lade deine Splat-Datei hoch
Bevor du LOD generierst, musst du dein Splat-Asset in Arrival.Space hochladen. Unterstützte Formate:
| Format | Upload-Methode |
|---|---|
.ply | Direkt hochladen |
.compressed.ply | Direkt hochladen |
.sog | Direkt hochladen |
.lcc / .zip | Muss zusammen mit den zugehörigen Dateien (.lci, .bin Dateien) als zip hochgeladen werden. Details findest du in Upload LCC to Arrival.Space. |
meta.json / .zip | Wenn du LOD manuell per CLI erstellt hast (siehe Manuelle LOD-Erstellungsanleitung), lade den kompletten LOD-Output-Ordner als zip hoch, inklusive lod-meta.json und aller Chunk-Dateien. |
Für gültige Beispiel-Dateien siehe XGRIDS Sample Data. Alle Samples sind als upload-fertige zip-Dateien verfügbar.
2. LOD generieren
Sobald dein Asset hochgeladen ist und du eine Collision erstellt hast, findest du unter den Asset-Informationen den Button Optimize for Streaming 1. Beim Klick öffnet sich ein Submenü 2, in dem du folgende Einstellungen konfigurieren kannst:
- Detail Levels:
Definiert, wie viele Level of Detail erzeugt werden sollen. Für LCC Splats wird die Anzahl automatisch gesetzt. - Gaussians per File:
Gibt die ungefähre Anzahl an Gaussians pro Chunk an. Der Wert ist ein Richtwert und kann leicht abweichen. - Chunk Extent:
Definiert die räumliche Größe eines Chunks (in Metern). Passe diesen Wert an die Größe deiner gescannten Umgebung an. - LOD Engine:
Wähle zwischen SplatLOD und NanoGS.- SplatLOD nutzt einen gleichmäßigen LOD-Ansatz, bei dem Splats über mehrere Detailstufen verteilt werden. Die schnelle C++-Pipeline eignet sich besonders für große Szenen und Datensätze mit hoher Transparenz. Das sorgt für effizientes Streaming und stabile Render-Performance bei guter visueller Qualität. SplatLOD ist in der Regel schneller als NanoGS.
- NanoGS nutzt einen adaptiven Ansatz, bei dem sich die Anzahl der Splats pro Stufe verändert, um in niedrigeren LOD-Stufen mehr Details zu erhalten. Das verbessert vor allem die Nahansicht und eignet sich besonders für kleinere Szenen mit hohem Detailanspruch und geringerer Transparenz. Die visuelle Qualität kann höher sein, die Berechnung dauert aber typischerweise länger als bei SplatLOD.
Nachdem du diese Settings gesetzt hast, klicke auf Start Generation, um LOD zu generieren. Je nach Größe deines Splats kann das etwas dauern. Ein kleiner Splat mit etwa 1 Million Gaussians braucht typischerweise 10-15 Minuten.
Du kannst den Space währenddessen jederzeit verlassen. Der Prozess läuft im Hintergrund weiter.
2.1 Fortschritt der LOD-Generierung
Sobald die Generierung gestartet ist, kannst du sie über das Symbol abbrechen. Außerdem siehst du hier den aktuellen Fortschritt der LOD-Generierung 3.
3. Streaming-Einstellungen
Wenn dein LOD erfolgreich erstellt wurde, ersetzt es dein vorheriges Asset. Du erkennst den Abschluss daran, dass die Datei zu .lod wird und der
Generate LOD Button in Streaming Settings wechselt 4.
Beim Klick auf diesen Button öffnet sich ein Submenü mit folgenden Informationen und Einstellungen:
5 LOD Settings (X LOD Levels):
Zeigt die Anzahl der erzeugten LOD-Stufen - in diesem Beispiel 5 -, die sichtbaren Splats und den Video-Memory-Verbrauch.
- Default Desktop Preset: Definiert das Preset für Besucher auf Desktop-Geräten.
- Default Mobile Preset: Definiert das Preset für Besucher auf Mobile-Geräten. Dieses Preset gilt auch für VR-Geräte, wenn Meta Quest 3 oder Apple Vision Pro nicht aktiviert ist.
- Enable Preset Selection UI: Zeigt oder versteckt die Preset-Auswahl für Besucher.
- Colorize LOD Levels: Zeigt jede LOD-Stufe farbig an. Das ist besonders hilfreich beim Abstimmen von Distanz- und Bereichsübergängen.
6 Quality Presets
Presets helfen dir, dein LOD für unterschiedliche Endgeräte zu optimieren. Für Mobile-Geräte wird empfohlen, unter 3M sichtbaren Splats und unter 400mb genutztem Memory zu bleiben, um auf iOS gute Performance zu erreichen.
Preset bearbeiten
Wähle das Preset, das du bearbeiten willst. Verfügbar sind Desktop Max, Desktop, Mobile Max, Mobile sowie Meta Quest 3 und Apple Vision Pro, falls aktiviert.
Minimum LOD Level
Definiert die Startstufe für dein Preset. Level 0 ist die detaillierteste Stufe. Im gezeigten Beispiel reichen die Levels von 0 bis 4.
LOD Base Distances & LOD Distance Multiplier
LOD Base Distance und Distance Multiplier wirken zusammen. Die Base Distance definiert die Distanz in Metern für eine Stufe. Der Distance Multiplier erzeugt daraus die weiteren Stufen. Beispiel:
- Base Distance: 5m
- Distance Multiplier: 2
Das bedeutet:
- Level 0 (höchste Details): 0 bis 5 Meter
- Level 1: 5m bis 10m
- Level 2: 10m bis 20m
- Level 3: 20m bis 40m
- Level 4: 40m bis unendlich
Splat Budget
Der hier eingetragene Wert ist ein harter Grenzwert. Er berücksichtigt die Splats selbst und reduziert sie bei Bedarf.
Cull Distance
Besonders nützlich für kleine Spaces oder Spaces, in denen nicht alles gleichzeitig sichtbar ist. Dieser Wert definiert die Distanz, ab der Splats nicht mehr angezeigt werden. Bei einem Wert von 5 wären also alle Bereiche hinter 5 Metern in der Szene nicht sichtbar.
Behind Penalty
Chunks hinter der Kamera erhalten eine zusätzliche Distanzstrafe. Dadurch werden sie früher entladen als Chunks vor der Kamera. Das reduziert den Memory-Verbrauch und verbessert die Performance. Höhere Werte verstärken diesen Effekt für nicht sichtbare Bereiche hinter der Kamera.
3.1 Preset Selection UI verwenden
Wenn diese Option aktiv ist und du das UI schließt, erscheint Enable Preset Selection UI unter dem Owner Badge 7.
3.2 VR Presets
Wenn du VR headsets nutzen willst, musst du diese Option explizit aktivieren. Ist sie deaktiviert, wird stattdessen das Mobile preset verwendet (also Mobile oder Mobile Max, je nach Einstellung).
Aktiviere den Enabled Button, um VR-Support einzuschalten. Danach werden alle Felder wie Minimum LOD Level verfügbar. Anschließend kannst du die Werte an deine Anforderungen anpassen.
4. Collision generieren
Nachdem du deine LOD-Settings abgestimmt hast, generiere eine Collision-Mesh für deinen Splat. So können Besucher auf der 3D-Umgebung laufen und mit ihr interagieren.
Für Splats, die als .lcc, .ply, .compressed.ply oder .sog hochgeladen wurden, kannst du direkt den Button Generate Collision verwenden. Siehe Collision Generation Guide für die Schritte.
Wenn du ein manuell erzeugtes LOD (über CLI) hochgeladen hast, kann die Collision nicht direkt aus der LOD-Struktur erzeugt werden.
Workaround:
- Erzeuge eine niedrig aufgelöste Version deines Splats (ca. 1-2 Millionen Gaussians).
- Lade diesen Low-Res-Splat als eigene Entity hoch (am besten in einem separaten Space).
- Verwende auf dieser Entity den Button Generate Collision, um die Collision-Mesh zu erzeugen.
- Lade die erzeugte Collision-Datei herunter oder finde sie im Projekt.
- Lade diese Collision-Datei zu deiner LOD-Entity hoch.
Weitere Ressourcen
- Manuelle LOD-Erstellungsanleitung (CLI) - Für Advanced User, die mehr Kontrolle brauchen oder einzelne PLY-Dateien haben
- Splat Transform Guide - Installation und Nutzung des splat-transform CLI-Tools
- SplatTransform CLI Tool documentation - Offizielle PlayCanvas-Dokumentation