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

ALCCSectionPlane: 3DGS-Schnittebene

Schnittebenen-Actor, der eine LCC-Szene mit einer Ebene schneidet und eine Seite davon behält.

ModulLCC4UnrealRuntime
HeaderTools/LCCSectionPlane.h
BasisklasseAVolume
Angezeigter Name im PanelLCC Section Plane
#include "Tools/LCCSectionPlane.h"

Zu den Schritten der Verwendung, einer Vorführung und der Beschreibung des Eigenschaften-Panels siehe Szenenbearbeitung - Schnittebenen. Diese Seite nennt nur die Schnittstellen.

Der Editor zeigt eine Arrow-Component, die die Ausrichtung der Ebene angibt; die Seite, auf die der Pfeil zeigt, ist Upside.

Eigenschaften

EigenschaftTypBeschreibung
bEnabledboolOb sie am Schneiden teilnimmt
ModeESectionTypeUpside schneidet weg, was über der Ebene liegt, Downside schneidet weg, was darunter liegt

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. Zur Bedeutung der Werte siehe ESectionType.

Keine der beiden Eigenschaften hat einen Setter; sie werden direkt zugewiesen. Eine Änderung einer Eigenschaft oder des Transforms zur Laufzeit wird im nächsten Frame wirksam, ohne die Rendering-Seite von Hand benachrichtigen zu müssen.

Methoden

SetUpdateComponent / Refresh (veraltet)

UFUNCTION(BlueprintCallable, Category = "XGrids", meta = (DeprecatedFunction))
void SetUpdateComponent(ULCCComponentBase* Component);

UFUNCTION(BlueprintCallable, Category = "XGrids", meta = (DeprecatedFunction))
void Refresh();

Beide Methoden sind veraltet und als No-Ops implementiert; ein Aufruf hat keine Wirkung und erzeugt keinen Fehler.

Die Schnittdaten werden inzwischen jeden Frame gelesen, sodass Änderungen an Eigenschaften und Transform im nächsten Frame im Bild erscheinen. Der ältere Ablauf, zuerst mit SetUpdateComponent zu binden und nach jeder Änderung Refresh() aufzurufen, ist nicht mehr nötig.

Bestehende Aufrufe können einfach entfernt werden. In Blueprint zeigen diese beiden Nodes eine Veraltet-Warnung; der Ersatz besteht darin, den Node zu löschen.

Erzeugen zur Laufzeit

#include "Tools/LCCSectionPlane.h"
#include "LCCComponentBase.h"

ALCCSectionPlane* AMyTool::CreateSectionPlane(
    ULCCComponentBase* Component, const FVector& Location, const FRotator& Rotation)
{
    ALCCSectionPlane* Plane = GetWorld()->SpawnActor<ALCCSectionPlane>(
        ALCCSectionPlane::StaticClass(), Location, Rotation);
    if (!Plane)
    {
        return nullptr;
    }

    Plane->Mode = ESectionType::Upside;   // wegschneiden, was über der Ebene liegt
    Plane->bEnabled = true;

    Component->AddSectionPlane(Plane);

    return Plane;
}

Einige gängige Konfigurationen:

WirkungPosition und RotationMode
Aufsicht in das Innere eines GebäudesEine bestimmte Höhe, FRotator::ZeroRotatorUpside
Senkrechter Schnitt zum Betrachten einer FassadeFRotator(0, 0, 90), damit die Ebene senkrecht stehtUpside
Nur die mittlere Schicht behaltenEine Ebene darüber und eine darunterDownside für die untere Grenze, Upside für die obere Grenze

Das Bewegen der Schnittebene ergibt eine Animation, die Schicht für Schicht freilegt; dazu einfach jeden Frame die Position ändern:

FVector Loc = SectionPlane->GetActorLocation();
Loc.Z = FMath::FInterpTo(Loc.Z, TargetHeight, DeltaTime, 1.0f);
SectionPlane->SetActorLocation(Loc);

Änderungen von Eigenschaften sind genauso unmittelbar:

SectionPlane->bEnabled = false;

Zu den Blueprint-Nodes siehe Szenenbearbeitung - Blueprint-Methoden.

Hinweise

  • Das Schneiden wirkt nur auf das Rendering, nicht auf die Kollision. Ein weggeschnittener Teil kann weiterhin von einem Strahl getroffen werden und blockiert weiterhin einen Charakter.
  • Upside und Downside beziehen sich auf die Ausrichtung der Ebene selbst. Nach einer Rotation erneut bestätigen, welche Seite „oben“ ist; der Pfeil im Editor ist dafür der unmittelbarste Weg.
  • Die Z-Skalierung wird beim Konstruieren auf 0.01 gesetzt (eine dünne Scheibe), und eine Änderung der Skalierung im Editor wird auf diesen Wert zurückgesetzt. Eine Änderung der Skalierung zur Laufzeit unterliegt dieser Einschränkung nicht, ist aber normalerweise nicht nötig.
  • Die Anzahl der gleichzeitig wirksamen Schnittebenen ist begrenzt, ohne Lizenz auf 50; die überzähligen nehmen nicht am Rendering teil und es wird eine Warnung protokolliert. Schnittebenen und Clipping-Volumen teilen sich dieses Kontingent. Zur Lizenzierung siehe Editionen und Lizenzierung.
  • Das Zerstören einer Schnittebene löst nur eine Aktualisierung des Renderings aus und entfernt das Element nicht aus dem Array SectionPlanes der Component, sodass ein veralteter Zeiger im Array bleibt (beim Rendering automatisch übersprungen). Um das Array sauber zu halten, vor dem Zerstören RemoveSectionPlane aufrufen.

Siehe auch

  • Szenenbearbeitung: vollständige Beschreibung der Verwendung
  • ALCCClippingVolume: Beschneiden mit einem begrenzten Volumen
  • ULCCComponentBase: AddSectionPlane und RemoveSectionPlane
Zurück
ALCCClippingVolume
Weiter
ALCCLoadVolume