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

    • Produktübersicht
    • Grundlegende Bedienung
    • LCC Scan App verwenden
    • Wartung und Pflege
    • FAQ
  • Lixel K-Serie

    • Lixel K1

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
    • Lixel K2

      • Produktübersicht
      • Grundlegende Bedienung
      • Aktivierung und Verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Kartenfusion
      • Empfehlungen zur Routenplanung für typische Szenen
      • Hinweise
      • FAQ
  • Lixel L-Serie

    • Lixel L2 Pro

      • Produktübersicht
      • Grundlegende Bedienung
      • Geräteaktivierung und -verbindung
      • Scan-Workflow
      • Punktwolke mit absoluten Koordinaten erfassen
      • Messpunkt
      • Anhang
      • FAQ
  • Lixel Studio

    • Version und Copyright
    • Installation und Aktivierung
    • Softwareoberfläche
    • Dateioperationen
    • Projektverarbeitung
    • Werkzeuge
    • 2D-Zeichnung
    • Anwendungen
    • Einstellungen
    • Geräteverbindung
  • Lixel CyberColor

    • LCC Studio

      • Erste Schritte
      • Version und Updates
      • Download und Installation
      • Oberfläche und Navigation
      • Vor der Rekonstruktion
      • Modellrekonstruktion
      • Einzelmodell-Rekonstruktion
      • Kartenfusion
      • Boden-Luft-Fusion
      • Luftbild-Rekonstruktion
      • Meine Modelle
      • Weitere Funktionen
      • Einstellungen und Konto
      • Converter
      • Videorekonstruktion
      • Häufige Fragen / FAQ
    • LCC Scene Editor

      • Version und Updates
      • Konto und Anmeldung
      • Produktübersicht und Startseite
      • Editor-Oberfläche
      • Navigationsmodi
      • Datei
      • Einstellungen
      • Bearbeiten
      • Fenster
      • Globale Symbolleiste
      • Assets und Eigenschaften
      • Linke Symbolleiste
      • Ansichtspunkte
      • Portal
      • Skybox
      • Markierungen
      • Messung
      • Flythrough
      • Szenenbericht
      • 3D-Layout
      • Minikarte
      • Vorschaumodus (Viewer)
      • Hilfe
      • Häufige Fragen (FAQ)
      • Spawn-Point
    • LCC Model Editor

      • Version und Updates
      • Benutzerhandbuch
      • Übersicht und Oberfläche
      • Dateioperationen
      • Selektoren
      • Modelle bearbeiten
      • Messung
      • Farbkorrektur
      • Asset-Verwaltung
      • Einstellungen und Hilfe
      • Häufige Fragen
    • Capture Guide

      • Überblick
      • Überblick über die Aufnahmegeräte
      • Allgemeine Aufnahmeprinzipien
      • Aufnahme von Innenszenen
      • Aufnahme von Außenszenen
      • Großflächige Aufnahme (Map Fusion)
      • Aerial-Ground Map Fusion – Aufnahme
      • Objektaufnahme
      • Personenaufnahme
      • Video-Rekonstruktionsaufnahme
      • HD Enhancement
      • Kontrollpunkte (Lixel P1)
      • FAQ und Fehlerbehebung
    • Versionsgeschichte
  • Plugin & SDK

    • Unreal

      • Einführung
      • Schnellstart - Windows
      • Schnellstart - Linux
      • Schnellstart - Quest3
      • Editionen und Lizenzierung
      • Rendering
      • Bildeinstellungen
      • Normalen und Beleuchtung
      • Szenenbearbeitung
      • Leistungsparameter
      • Leitfaden zur Leistung
      • Integration von Drittanbieter- und Engine-Plugins
      • Proxy Mesh
      • Ladeanimation
      • Kollision
      • Unterstützung des Navigation System
      • Unterstützung von Single Layer Water
      • Lokalisierung
      • FAQ
      • Fehlerbehebung
      • Logs und Diagnose
      • Kontakt
      • API-Referenz

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

        • 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

In einer 3DGS-Szene gehen: Unterstützung von Kollision

LCC4Unreal unterstützt das dynamische Laden von Kollisionsdaten, damit sich Charaktere frei in der 3DGS-Welt bewegen und interagieren können.

Voraussetzungen

Kollision beruht auf der mit den Daten ausgelieferten Kollisionsdatei, die Anforderungen unterscheiden sich je Format:

FormatKollisionsdatenUnterstützung
.lcccollision.lci im Datenverzeichnis, in älteren Versionen collision.binUnterstützt
.lcc2.ply-Dateien in data/mesh/ unterhalb des DatenverzeichnissesUnterstützt
.sog / .spz / .plyKeineNicht unterstützt

Das Plugin prüft in der Reihenfolge collision.lci → collision.bin → data/mesh/*.ply und gibt eine Warnung aus und deaktiviert die Kollision, wenn keine davon existiert. Nach dem Laden der Daten mit HaveValidCollisionData() prüfen, ob die aktuellen Daten nutzbare Kollisionsdaten enthalten.

Hinweis: collision.lci erfordert einen Export aus LCC Studio v1.6.1 oder höher; von früheren Versionen exportierte Daten verwenden collision.bin.

Alternativen für Einzeldateiformate

.sog, .spz und .ply sind Einzeldateiformate, die keine Kollisionsdaten mitbringen, das Plugin kann für sie also keine Kollision erzeugen. Wenn Kollision benötigt wird, sie in der Szene aufbauen:

  • Blocking Volume: Blocking Volumes der Engine verwenden, um Boden, Wände und weitere blockierende Bereiche aufzubauen. Geeignet für regelmäßige Formen und die günstigste Option
  • Näherungs-Mesh: Ein Mesh platzieren, das zur 3DGS-Form passt, und dessen Kollision aktivieren. Geeignet für Szenen mit komplexen Formen. Dieses Mesh kann das Proxy Mesh weiterverwenden, indem dessen Collision Preset auf Blockieren geändert wird

Keiner der beiden Wege betrifft den LCC-Lademechanismus für Kollisionen, sie sind daher von CollisionLoadMaxDistance unbeeinflusst und werden bei Kamerabewegung nicht ein- und ausgelagert.

Lademechanismus

Kollisionsdaten sind wie die Renderdaten in räumliche Chunks gegliedert. Das Plugin lädt nicht alle Kollisionen auf einmal: Es lädt nur die Chunks innerhalb eines bestimmten Umkreises um die Kamera und lagert sie mit der Kamerabewegung dynamisch ein und aus.

Kameraposition ändert sich
      │
      ▼
Die Menge der Kollisions-Chunks berechnen, die im Umkreis geladen sein sollen
      │
      ▼
Mit der vorherigen Menge vergleichen ── gleich ──▶ überspringen, nichts tun
      │ unterschiedlich
      ▼
Neue Chunks laden → an das Physiksystem zum Backen übergeben → Kollisionskörper erzeugen

Einige Punkte zur Umsetzung:

  • Den Laderadius steuert Max Load Collision Distance(m), Bereiche jenseits dieser Distanz haben keine Kollision
  • Das erste Laden erfolgt synchron, was verhindert, dass der Charakter durch den Boden fällt, bevor die Kollision bereit ist; jede weitere Aktualisierung läuft asynchron und blockiert den Haupt-Thread nicht
  • Aktualisierungen sind gedrosselt, die Kollision wird also nicht in jedem Bild neu aufgebaut, während sich die Kamera fortlaufend bewegt
  • Aktualisierungen entfallen, wenn die sichtbare Chunk-Menge unverändert ist, kleine Bewegungen auf der Stelle lösen also keinen Neuaufbau aus
  • Nur die Hauptkamera geht in die Berechnung ein, SceneCapture nimmt am Laden der Kollision nicht teil

Vorteile

  • Der Arbeitsspeicherbedarf hängt nur vom Laderadius ab, nicht von der Gesamtgröße der Daten, Kollision funktioniert also auch bei großen Szenen
  • Die Anzahl der Kollisionskörper, die das Physiksystem verarbeiten muss, bleibt unter Kontrolle und bremst die Physik nicht, wenn die Szene wächst

Kosten und Gegenmaßnahmen

ProblemUrsacheGegenmaßnahme
Der Charakter fällt im Moment des Spielstarts durch den BodenDie Kollision ist noch nicht aufgebautPlayerStart etwas höher setzen oder die Charakterbewegung erst freigeben, wenn die Kollision bereit ist
Ruckler, wenn der Charakter von weit weg den Bereich der 3DGS-Szene betrittDer Spawnpunkt liegt außerhalb des Kollisions-Ladebereichs; beim ersten Betreten wird synchron geladenDen Spawnpunkt innerhalb des Kollisions-Ladebereichs platzieren oder alle Kollisionen auf einmal laden
Keine Kollision in der Ferne, Line Traces treffen daher nichtBereiche jenseits des Laderadius haben keine KollisionskörperMax Load Collision Distance(m) erhöhen oder auf eine Prüfung wechseln, die nicht auf Kollision beruht
Nach dem Teleportieren oder schneller Bewegung kurzzeitig keine KollisionDie Kollisions-Chunks des neuen Bereichs werden noch geladenAlle Kollisionen auf einmal laden
Ruckeln bei Bewegung mit hohen Kosten bei Update CollisionKollisions-Chunks werden häufig ein- und ausgelagert und neu gebackenDen Laderadius verringern oder prüfen, ob Kollision wirklich nötig ist
Das Navigation Mesh wird bei Verwendung mit Navigation fortlaufend neu aufgebautÄnderungen der Kollision lösen NavMesh-Aktualisierungen ausDen Laderadius erhöhen, damit der Zielbereich in einem Durchgang geladen wird, und Static-Backen verwenden, siehe Unterstützung des Navigation System

Alle Kollisionen auf einmal laden

Die meisten der obigen Kosten entstehen durch das Ein- und Auslagern von Chunks zur Laufzeit. Wenn die Szenengröße begrenzt ist und der Arbeitsspeicher es zulässt, Max Load Collision Distance(m) so weit erhöhen, dass der Radius die gesamte Szene abdeckt; dann wird die gesamte Kollision während des Ladens der Daten in einem Durchgang aufgebaut.

Das Ein- und Auslagern von Kollisions-Chunks zur Laufzeit entfällt damit, und keines der früher genannten Probleme tritt auf: Durchfallen durch den Boden, fehlende Kollision nach dem Teleportieren, Ruckeln bei Bewegung und wiederholte Neuaufbauten der Navigation. Bei Nutzung des Navigation System ist dies besonders empfohlen.

Der Preis sind eine längere Ladezeit beim Start und ein fester Arbeitsspeicherbedarf in Höhe der Kollision der gesamten Szene. Zur Beurteilung, ob das machbar ist, Collision Data Usage in stat xgrids prüfen und bestätigen, dass der Arbeitsspeicherbedarf nach vollständigem Laden akzeptabel ist.

Aktivieren

LCCComponent->SetLCCCollisionEnable(true);

Oder im Details-Panel bEnableCollision anhaken.

LCC-Kollision im Details-Panel aktivieren

LCC-Kollision im Details-Panel aktivieren

Vorführung der dynamischen LCC-Kollision

Dynamische Kollision eines Charakters in einer LCC-Szene

Prüfung

Über die Einstellungen des View Mode Player Collision oder Visibility Collision auswählen, um zu beobachten, ob die Kollision aktiv ist.

Kollisionskörper im View Mode anzeigen

Kollisionskörper über den Modus Player Collision oder Visibility Collision prüfen

Zugehörige Eigenschaften

EigenschaftBeschreibung
bEnableCollisionAktiviert die Kollision
CollisionLoadMaxDistanceMaximale Ladedistanz der Kollisionsdaten (standardmäßig 300 Meter)
Eigenschaften für Kollisionsaktivierung und maximale Ladedistanz

Den Aktivierungszustand der Kollision und die maximale Ladedistanz konfigurieren

Hinweise

  • Sobald die Kollision aktiv ist, lässt sich der LineTrace von Unreal Engine selbst für Strahlentests gegen Kollisionskörper nutzen, und der Prüfbereich ist ebenfalls durch den Laderadius begrenzt
  • Der von Kollisionsdaten belegte Arbeitsspeicher steht in Collision Data Usage von stat xgrids, die Kosten der Aktualisierung in Update Collision, und die Bedeutung der Einträge in Leistungsparameter
Zurück
Ladeanimation
Weiter
Unterstützung des Navigation System