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

    • Descripción del producto
    • Operaciones básicas
    • Uso de la LCC Scan App
    • Mantenimiento y cuidado
    • FAQ
  • Serie Lixel K

    • Lixel K1

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
    • Lixel K2

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Fusión de mapas
      • Recomendaciones de planificación de rutas para escenas típicas
      • Precauciones
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Descripción del producto
      • Operaciones básicas
      • Activación y conexión del dispositivo
      • Flujo de escaneo
      • Obtener nube de puntos con coordenadas absolutas
      • Punto de medición
      • Apéndice
      • FAQ
  • Accesorios

    • Stick Light

      • Guía de instalación
      • Operaciones básicas
      • Preguntas frecuentes
  • Lixel Studio

    • Versión y derechos de autor
    • Instalación y activación
    • Interfaz del software
    • Operaciones de archivo
    • Procesamiento de proyectos
    • Herramientas
    • Dibujo 2D
    • Aplicaciones
    • Ajustes
    • Conexión de dispositivo
  • Lixel CyberColor

    • LCC Studio

      • Primeros pasos
      • Versión y actualizaciones
      • Descarga e instalación
      • Descripción general de la interfaz y navegación
      • Antes de la reconstrucción
      • Reconstrucción de modelos
      • Reconstrucción de modelo único
      • Fusión de mapas
      • Fusión aire-tierra
      • Reconstrucción aérea
      • Mis modelos
      • Otras funciones
      • Ajustes y cuenta
      • Converter
      • Reconstrucción por vídeo
      • Preguntas frecuentes
    • LCC Scene Editor

      • Versión y actualizaciones
      • Cuenta e inicio de sesión
      • Descripción general del producto y página de inicio
      • Interfaz del editor
      • Modos de navegación
      • Archivo
      • Configuración
      • Editar
      • Ventana
      • Barra de herramientas global
      • Activos y propiedades
      • Barra de herramientas izquierda
      • Puntos de vista
      • Portal
      • Skybox
      • Anotaciones
      • Medición
      • Flythrough
      • Informe de escena
      • 3D Layout
      • Minimapa
      • Modo Vista previa (Viewer)
      • Ayuda
      • Preguntas frecuentes (FAQ)
      • Punto de inicio
    • LCC Model Editor

      • Versión y actualizaciones
      • Guía del usuario
      • Visión general e interfaz
      • Operaciones de archivo
      • Selectores
      • Edición de modelos
      • Medición
      • Corrección de color
      • Gestión de activos
      • Configuración y ayuda
      • Preguntas frecuentes
    • Capture Guide

      • Descripción general
      • Descripción general de los dispositivos de captura
      • Principios generales de captura
      • Captura de escenas interiores
      • Captura de escenas exteriores
      • Captura a gran escala (Map Fusion)
      • Captura con aerial-ground map fusion
      • Captura de objetos
      • Captura de personas
      • Captura para reconstrucción a partir de vídeo
      • HD Enhancement
      • Puntos de control (Lixel P1)
      • Preguntas frecuentes y resolución de problemas
    • Historial de versiones
  • Plugins y SDK

    • Unreal

      • Introducción
      • Inicio rápido - Windows
      • Inicio rápido - Linux
      • Inicio rápido - Quest3
      • Ediciones y licencias
      • Renderizado
      • Rasterización Tiled (experimental)
      • Ajustes visuales
      • Normales e iluminación
      • Edición de escenas
      • Parámetros de rendimiento
      • Guía de rendimiento
      • Integración con plugins de terceros y del motor
      • Proxy Mesh
      • Animación de carga
      • Colisión
      • Compatibilidad con Navigation System
      • Compatibilidad con Single Layer Water
      • Localización
      • Preguntas frecuentes
      • Resolución de problemas
      • Logs y diagnóstico
      • Contacto
      • Buenas prácticas

        • Reiluminar 3DGS con una malla de LixelStudio
      • Referencia de API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enumeraciones
        • Structs
      • Registro de cambios

        • 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

      • Introducción
      • Guía de optimización del rendimiento de renderizado
      • Configuración de gráficos
      • Preguntas frecuentes
      • Referencia de API

        • 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
      • Registro de cambios

        • 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: plano de sección del 3DGS

Actor de plano de sección que corta una escena LCC con un plano y conserva uno de sus lados.

MóduloLCC4UnrealRuntime
CabeceraTools/LCCSectionPlane.h
Clase padreAVolume
Nombre mostrado en el panelLCC Section Plane
#include "Tools/LCCSectionPlane.h"

Para los pasos de uso, una demostración y la descripción del panel de propiedades, consultar Edición de escenas - Planos de sección. Esta página solo enumera las interfaces.

El editor muestra un componente de flecha que indica la orientación del plano, y el lado hacia el que apunta la flecha es Upside.

Propiedades

PropiedadTipoDescripción
bEnabledboolSi participa en el seccionado
ModeESectionTypeUpside recorta lo que queda por encima del plano, Downside recorta lo que queda por debajo

Arriba y abajo son relativos a la orientación del propio plano, no a las coordenadas del mundo. Rotar el plano de sección permite obtener una sección en cualquier dirección. Para el significado de los valores, consultar ESectionType.

Ninguna de las dos propiedades tiene Setter; se asignan directamente. Un cambio de propiedad o de transform en tiempo de ejecución surte efecto en el fotograma siguiente, sin necesidad de notificar manualmente al lado del renderizado.

Métodos

SetUpdateComponent / Refresh (obsoletos)

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

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

Ambos métodos están obsoletos e implementados como operaciones vacías; llamarlos no tiene efecto ni genera error.

Los datos de sección se leen ahora en cada fotograma, así que los cambios de propiedades y de transform se reflejan en la imagen en el fotograma siguiente. El flujo anterior de vincular primero con SetUpdateComponent y llamar a Refresh() después de cada cambio ya no es necesario.

Las llamadas existentes se pueden eliminar sin más. En Blueprint estos dos nodos muestran un aviso de obsolescencia, y la sustitución consiste en eliminar el nodo.

Creación en tiempo de ejecución

#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;   // recortar lo que queda por encima del plano
    Plane->bEnabled = true;

    Component->AddSectionPlane(Plane);

    return Plane;
}

Algunas configuraciones habituales:

EfectoPosición y rotaciónMode
Vista superior del interior de un edificioUna altura dada, FRotator::ZeroRotatorUpside
Sección vertical para ver una fachadaFRotator(0, 0, 90) para poner el plano en verticalUpside
Conservar solo la capa intermediaUn plano por encima y otro por debajoDownside para el límite inferior, Upside para el límite superior

Mover el plano de sección produce una animación de descubrimiento capa por capa; basta con cambiar la posición en cada fotograma:

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

Los cambios de propiedades son igual de directos:

SectionPlane->bEnabled = false;

Para los nodos de Blueprint, consultar Edición de escenas - Métodos de Blueprint.

Notas

  • El seccionado solo afecta al renderizado, no a la colisión. Una parte seccionada puede seguir siendo impactada por un rayo y sigue bloqueando a un personaje.
  • Upside y Downside son relativos a la orientación del propio plano. Después de una rotación, confirmar de nuevo qué lado es "arriba"; mirar la flecha en el editor es la forma más directa.
  • La escala Z se establece en 0.01 durante la construcción (una lámina fina), y cambiar la escala en el editor se fuerza de vuelta a ese valor. Un cambio de escala en tiempo de ejecución no está sujeto a esta restricción, pero normalmente no necesita cambiarse.
  • El número de planos de sección activos a la vez está limitado, a 50 sin licencia; los excedentes no participan en el renderizado y se registra una advertencia. Los planos de sección y los volúmenes de recorte comparten esta cuota. Para las licencias, consultar Ediciones y licencias.
  • Destruir un plano de sección solo provoca una actualización del renderizado y no elimina el elemento del array SectionPlanes del Component, lo que deja un puntero obsoleto en el array (se omite automáticamente durante el renderizado). Para mantener el array limpio, llamar a RemoveSectionPlane antes de destruirlo.

Véase también

  • Edición de escenas: descripción completa de uso
  • ALCCClippingVolume: recorte con un volumen delimitado
  • ULCCComponentBase: AddSectionPlane y RemoveSectionPlane
Anterior
ALCCClippingVolume
Siguiente
ALCCLoadVolume