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
  • Zubehör

    • Stick Light

      • Installationsanleitung
      • Grundlegende Bedienung
      • Häufige Fragen
  • 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
      • Tiled-Rasterisierung (experimentell)
      • 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
      • Bewährte Vorgehensweisen

        • 3DGS mit einem LixelStudio-Mesh neu beleuchten
      • API-Referenz

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

        • v3.4.0
        • 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
    • Web

      • Einführung
      • Leitfaden zur Rendering-Leistungsoptimierung
      • Grafikkonfiguration
      • Häufige Fragen
      • API-Referenz

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • Änderungsprotokoll

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

ALCCLoadVolume: Load-Volumen

Leitet von AVolume ab, im Panel angezeigt als LCC Load Volume.

Der entscheidende Unterschied zu einem Clipping-Volumen oder einer Schnittebene ist die Phase, in der es greift: Clipping und Schneiden ändern nur das Endergebnis des Renderings, während die Daten wie üblich geladen und in den Grafikspeicher hochgeladen werden; ein Load-Volumen greift während der Node-Traversierung, und abgewiesene Nodes werden gar nicht gelesen. Es ist damit das einzige der drei, das Ladevolumen und Grafikspeicherbedarf senkt.

HeaderTools/LCCLoadVolume.h
BasisklasseAVolume
BlueprintBlueprintable / BlueprintType
LizenzFunktion der Pro Edition; ohne Lizenz ohne Wirkung

Ein Load-Volumen kann gleichzeitig auf mehrere LCC-Actors in der Szene wirken.

Properties

EigenschaftTypBeschreibung
bEnabledboolOb es aktiviert ist
ModeELoadRegionInside (nur laden, was innen liegt) oder Outside (ausschließen, was innen liegt)
VolumeTypeELoadVolumeTypeBox oder Sphere

Zur Bedeutung der Werte siehe ELoadRegion und ELoadVolumeType.

Keine der drei Eigenschaften hat einen Setter; sie werden direkt zugewiesen. Das Filtern greift beim Laden, nach einer Änderung müssen die Daten daher neu geladen werden.

Genauigkeit der Grenze

Der Test arbeitet pro Node und nicht pro Splat, die Grenze ist daher grober als bei einem Clipping-Volumen: Ein Randnode fällt vollständig weg, sobald er die Bedingung nicht erfüllt.

Die beiden Modi verwenden unterschiedliche Tests:

ModusBedingungVerhalten an der Grenze
InsideEin Node wird nur geladen, wenn er vollständig im Volumen liegtDer behaltene Bereich ist etwas kleiner als das Volumen
OutsideEin Node wird ausgeschlossen, sobald er das Volumen überlapptDer ausgeschlossene Bereich ist etwas größer als das Volumen

Beide Seiten sind bewusst konservativ, um das LOD-Umschalten stabil zu halten. In einem Octree liegen die Bounds eines Kind-Nodes immer innerhalb der des Elternteils, und die LOD wechselt vom Kind zum Elternteil, wenn sich die Kamera entfernt. Würde Inside einen Schnittmengentest verwenden, würde der Elternteil wegen der teilweisen Überlappung geladen und brächte Regionen zurück, die die Kinder bereits ausgeschlossen hatten — sichtbar als ein Block Inhalt, der beim Herauszoomen plötzlich auftaucht. Outside hätte mit einem Enthaltenseinstest das symmetrische Problem.

Wird eine exakte Grenze gebraucht, ein Clipping-Volumen mit derselben Transformation darüberlegen: Das Load-Volumen senkt das Ladevolumen, das Clipping-Volumen trimmt den Rand.

Erstellen zur Laufzeit

ALCCLoadVolume* Volume = GetWorld()->SpawnActor<ALCCLoadVolume>(
    ALCCLoadVolume::StaticClass(), Location, FRotator::ZeroRotator);

Volume->VolumeType = ELoadVolumeType::Box;
Volume->Mode = ELoadRegion::Inside;
Volume->bEnabled = true;
Volume->SetActorScale3D(FVector(20.0f, 20.0f, 10.0f));

Component->AddLoadVolume(Volume);
Component->Load(Path);   // muss vor dem Laden konfiguriert sein

Die Reihenfolge ist wichtig: Das Filtern geschieht während des Ladens, ein Hinzufügen oder Entfernen eines Load-Volumens oder eine Eigenschaftsänderung nach Load() verändert die bereits geladenen Daten nicht; ein erneutes Laden ist nötig.

// Nach Änderung des gefilterten Bereichs neu laden
Volume->SetActorLocation(NewLocation);
Component->Refresh();   // intern UnLoad, dann Load

Refresh() kostet so viel wie ein vollständiges erneutes Laden, siehe ALCCActorBase::Refresh.

Wahl zwischen diesem und einem Clipping-Volumen

BedarfWas verwenden
Nur einen kleinen Teil einer großen Szene nutzen und Grafikspeicher sowie Ladezeit sparenLoad-Volumen
Löcher schneiden oder eine Hülle öffnen, wo eine exakte Grenze zähltClipping-Volumen
Grafikspeicher sparen und exakte GrenzeBeide mit derselben Transformation übereinanderlegen
Den Effekt zur Laufzeit häufig umschaltenClipping-Volumen (bEnabled wirkt im nächsten Frame, ohne erneutes Laden)

See Also

  • ALCCClippingVolume: Clipping-Volumen
  • ALCCSectionPlane: Schnittebene
  • AddLoadVolume: die Hinzufügen- und Entfernen-Schnittstellen auf Component-Seite
  • Szenenbearbeitung - Load-Volumen: Schritte und Abbildungen
  • Editionen und Lizenzierung: Lizenzumfang
Zurück
ALCCSectionPlane
Weiter
ULCCUtilLibrary