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

    • PortalCam P1

      • Panoramica del prodotto
      • Operazioni di base
      • Uso della LCC Scan App
      • Manutenzione e cura
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Fusione delle mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
    • Lixel K2

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione
      • Flusso di scansione
      • Acquisire una nuvola di punti con coordinate assolute
      • Fusione mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Punto di misura
      • Appendice
      • FAQ
    • Lixel L3

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Acquisizione dei dati
      • Acquisizione di coordinate assolute
      • Appendice
  • Lixel Studio

    • Versione e copyright
    • Installazione e attivazione
    • Interfaccia del software
    • Operazioni sui file
    • Elaborazione del progetto
    • Strumenti
    • Disegno 2D
    • Applicazioni di settore
    • Impostazioni
    • Connessione del dispositivo
    • Domande Frequenti
  • Lixel CyberColor

    • LCC Studio

      • Introduzione
      • Versione e aggiornamenti
      • Download e installazione
      • Panoramica dell'interfaccia e navigazione
      • Operazioni preliminari alla ricostruzione
      • Prima della ricostruzione
      • Ricostruzione del modello
      • Ricostruzione modello singolo
      • Fusione delle mappe
      • Fusione aria-terra
      • Ricostruzione aerea
      • I miei modelli
      • Altre funzioni
      • Impostazioni e account
      • Convertitore
      • Ricostruzione video
      • Domande Frequenti / FAQ
    • LCC Scene Editor

      • Versione e aggiornamenti
      • Account e accesso
      • Panoramica del prodotto e home page
      • Interfaccia dell'editor
      • Modalità di navigazione
      • File
      • Impostazioni
      • Modifica
      • Finestra
      • Barra degli strumenti globale
      • Asset e proprietà
      • Barra degli strumenti sinistra
      • Punti di vista
      • Portale
      • Skybox
      • Annotazioni
      • Misurazione
      • Flythrough
      • Rapporto scena
      • 3D Layout
      • Mini-mappa
      • Modalità Anteprima (Viewer)
      • Aiuto
      • Domande frequenti (FAQ)
      • Punto di spawn
    • LCC Model Editor

      • Versione e aggiornamenti
      • Guida utente
      • Panoramica e interfaccia
      • Operazioni sui file
      • Selettori
      • Modifica dei modelli
      • Misurazione
      • Correzione colore
      • Gestione degli asset
      • Impostazioni e Aiuto
      • Domande frequenti
    • Capture Guide

      • Panoramica
      • Panoramica dei dispositivi di acquisizione
      • Principi generali di acquisizione
      • Acquisizione di scene interne
      • Acquisizione di scene esterne
      • Acquisizione su larga scala (map fusion)
      • Acquisizione per aerial-ground map fusion
      • Acquisizione di oggetti
      • Acquisizione di persone
      • Acquisizione per ricostruzione da video
      • HD Enhancement
      • Control points (Lixel P1)
      • FAQ e risoluzione dei problemi
    • Buone Pratiche

      • Unione di più modelli 3DGS di grandi dimensioni
    • Cronologia versioni
  • Plugin e SDK

    • Unreal

      • Introduzione
      • Avvio rapido - Windows
      • Avvio rapido - Linux
      • Avvio rapido - Quest3
      • Edizioni e licenze
      • Rendering
      • Rasterizzazione Tiled (sperimentale)
      • Impostazioni visive
      • Normali e illuminazione
      • Modifica della scena
      • Parametri di prestazione
      • Guida alle prestazioni
      • Integrazione con plugin di terze parti e del motore
      • Proxy Mesh
      • Animazione di caricamento
      • Collisioni
      • Supporto del Navigation System
      • Supporto di Single Layer Water
      • Localizzazione
      • FAQ
      • Risoluzione dei problemi
      • Log e diagnostica
      • Contattaci
      • Buone pratiche

        • Rilluminare il 3DGS con una mesh di LixelStudio
      • Riferimento API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enum
        • Struct
      • Registro delle modifiche

        • 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
    • Unity

      • Introduzione all'Unity SDK
      • Caratteristiche tecniche
      • Requisiti dell'ambiente di sviluppo
      • Guida rapida per PC
      • Guida all'ottimizzazione delle impostazioni di progetto
      • Guida allo sviluppo per Pico 4 Ultra
      • Guida allo streaming PC per Pico 4 Ultra
      • Guida allo sviluppo per Quest 3
      • Guida allo streaming PC per Quest 3
      • Guida allo sviluppo OpenXR
      • Guida allo streaming Business per Pico 4 Ultra
      • Glossario
      • FAQ
      • Contattaci
      • Guida allo sviluppo delle funzionalità

        • Guida allo sviluppo del rendering misto multi-scena
        • Guida allo sviluppo della ricezione delle ombre
        • Guida allo sviluppo dell'illuminazione in tempo reale
        • Guida allo sviluppo del rendering multi-camera
        • Guida allo sviluppo del rendering di immagini ad alta risoluzione
        • Guida allo sviluppo della compatibilità dei formati dati LCC e LCC2
        • Guida allo sviluppo dell'effetto di caricamento
        • Guida allo sviluppo del cambio di modalità di rendering Mip
        • Guida allo sviluppo dello snap a bordi e angoli
        • Guida allo sviluppo della decal proiettata
        • Guida allo sviluppo della decal proiettata video
        • Guida allo sviluppo dell'evidenziazione
        • Guida allo sviluppo del ritaglio in tempo reale
        • Guida allo sviluppo della regolazione del tono
        • Guida allo sviluppo dell'ottenimento dei dati Mesh della scena
        • Guida allo sviluppo della modalità Editor
        • Guida alla configurazione dei parametri di prestazioni di rendering
        • Guida allo sviluppo del co-impacchettamento di applicazione e dati
        • Guida allo sviluppo del sistema di collisione
        • Guida ai problemi di autorizzazione nello sviluppo su macOS
        • Guida allo sviluppo di compilazione e packaging per dispositivi iOS
      • Riferimento API

        • LCCManager
        • Renderer
        • Tipi di dati
      • Registro delle modifiche

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Introduzione
      • Guida all'ottimizzazione delle prestazioni di rendering
      • Configurazione grafica
      • Domande frequenti
      • Riferimento 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 delle modifiche

        • 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

Tipi di dati: enum e struct

Gli enum e gli struct esposti dall'LCC Unity SDK, usati dai metodi di LCCManager e Renderer.

Enum

PlatformType

Piattaforma di runtime di destinazione. Usata da SetPlatformType().

public enum PlatformType { PC, Mac, Android, iOS, Pico, Quest, AVP, PicoSwan, OpenXR, PCVR }

ActiveRenderMode

Modalità di architettura di rendering globale. Usata da SwitchRenderPass().

public enum ActiveRenderMode { MultiRender, SingleRender }
ValoreDescrizione
MultiRenderUsa un buffer GPU condiviso e può renderizzare fino a 255 Renderer contemporaneamente
SingleRenderL'SDK seleziona automaticamente il percorso di rendering in base alle dimensioni dei dati

Applicabile solo alle piattaforme PC / Mac; le piattaforme mobile / VR adottano automaticamente una strategia adattiva e la chiamata di SwitchRenderPass() viene rifiutata.

SourceType

Tipo di origine dati. Restituito da Renderer.GetSourceType().

public enum SourceType { LCC, PLY, SPLAT, TYY, None, SOG, SPZ, KSPLAT }

DataType

Tipo di formato dei dati. Restituito da Renderer.GetDataType().

public enum DataType { L1, L2, L2Pro, K1, K2, Drone, Drone_L2, PortalCam, None }

MipMode

Modalità di rendering Mip. Usata da SetMipMode().

public enum MipMode { Mip, Non_Mip }
ValoreDescrizione
MipUsa il campionamento mipmap (predefinito)
Non_MipDisattiva la mipmap, con dettagli di rendering più fini ma un maggiore costo in termini di prestazioni

SnapType

Tipo di snap. Usato da HitResult.snapType e SnapPreviewState.snapType.

public enum SnapType { None, Edge, Corner }

SelectionMode

Strategia di selezione dei nodi. Usata da SetSelectionMode().

public enum SelectionMode { Auto, Normal, Large }
ValoreDescrizione
AutoDeciso automaticamente in base al box di delimitazione complessivo della scena (predefinito)
NormalAdatto a scene piccole e medie
LargeAdatto a scene molto grandi (oltre 1000 metri)

RenderMode

Modalità di rendering nuvola di punti / 3DGS. Usata da SwitchRenderMode().

public enum RenderMode { PointCloud, LCCGS }
ValoreDescrizione
PointCloudRendering della nuvola di punti
LCCGSRendering 3DGS

SelectMode

Modalità di selezione includi/escludi. Usata da dati di selezione come Data2D e Data3D.

public enum SelectMode { normal, invert, clip }

OperationMode

Modalità di operazione booleana multi-geometria. Usata da dati di selezione come Data3D e DataMix.

public enum OperationMode { normal = 0, erase = 1 }
ValoreDescrizione
normalUnione
eraseSottrazione

EditType

Tipo di voce in una selezione mista. Usato da DataMix e ToneMix.

public enum EditType { Edit2D, Edit3D }

ShapeType

Tipo di geometria per ritaglio / evidenziazione 3D. Usato da Data3D, DataMix e ToneMix.

public enum ShapeType { box, sphere }

Struct

HitResult

Risultato del colpo del raycast. Restituito da Raycast(), RaycastMesh() e RaycastWithSnap().

public struct HitResult {
    public bool isHit;             // Indica se si è verificato un colpo
    public float distance;         // Distanza
    public Vector3 hitPos;         // Punto di impatto in coordinate mondo
    public Vector3 normal;         // Normale del punto di impatto
    public float hitAlpha;         // Alpha dell'ellissoide colpito
    public float dist2Origin;      // Distanza dall'origine del raggio
    public float scale;            // Scala dell'ellissoide
    public SnapType snapType;      // Tipo di snap (None / Edge / Corner)
    public Vector3 originalHitPos; // Punto di impatto originale prima dello snap
}

Il campo della coordinata mondo del punto di impatto si chiama hitPos.

SnapPreviewState

Stato dell'anteprima di snap. Restituito da GetSnapPreviewState().

public struct SnapPreviewState {
    public bool hasTarget;          // Indica se esiste una destinazione di snap
    public SnapType snapType;       // None / Edge / Corner
    public Vector2 screenPos;       // Coordinate schermo della destinazione di snap
    public float distanceToMouse;   // Distanza in pixel dalla posizione del mouse
}

screenPos è in coordinate schermo (pixel), non in coordinate mondo. Quando servono le coordinate mondo, usa RaycastWithSnap() per ottenere HitResult.hitPos.

Data2D

Selezione con proiezione di texture 2D. Usata per il ritaglio / l'evidenziazione tramite texture 2D.

public struct Data2D {
    public Texture2D texture;  // Texture maschera R8 1024x1024
    public Matrix4x4 mv;       // Matrice ModelView
    public Matrix4x4 mvp;      // Matrice ModelViewProjection
    public SelectMode mode;    // normal / invert
}

Data3D

Selezione con geometria 3D. Usata per il ritaglio / l'evidenziazione tramite geometria 3D.

public struct Data3D {
    public ShapeType type;          // box / sphere
    public Matrix4x4 invMat;        // Matrice di trasformazione inversa della geometria
    public OperationMode operation; // normal=unione, erase=sottrazione
    public SelectMode mode;         // normal / invert / clip
}

DataMix

Selezione mista 2D + 3D. Usata per il ritaglio / l'evidenziazione in modalità mista.

public struct DataMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Tipo di geometria 3D
    public Matrix4x4 invMat;        // Matrice di trasformazione inversa 3D
    public Texture2D texture;       // Texture maschera 2D
    public Matrix4x4 mv;            // ModelView 2D
    public Matrix4x4 mvp;           // MVP 2D
    public OperationMode operation;
    public SelectMode mode;
}

ToneMix

Selezione del tono, che aggiunge i parametri del tono sopra DataMix. Usata da SetTone().

public struct ToneMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Tipo di geometria 3D
    public Matrix4x4 invMat;        // Matrice di trasformazione inversa 3D
    public Texture2D texture;       // Texture maschera 2D
    public Matrix4x4 mv;            // ModelView 2D
    public Matrix4x4 mvp;           // MVP 2D
    public OperationMode operation;
    public SelectMode mode;
    public float brightness;        // Luminosità (predefinito 1.0)
    public float saturation;        // Saturazione (predefinito 1.0)
    public float contrast;          // Contrasto (predefinito 1.0)
    public int lutid;               // Indice del filtro LUT (0 = non usato)
}

PointLightData

Dati personalizzati di luce puntiforme / luce spot. Usati da SetLights().

public struct PointLightData {
    public float3 position;    // Coordinate mondo
    public int lightType;      // 0=luce puntiforme, 1=luce spot
    public float3 color;       // Colore RGB (senza componente alpha)
    public float intensity;    // Intensità della luce
    public float3 direction;   // Direzione della luce spot (ignorata per la luce puntiforme)
    public float range;        // Portata della luce
    public float spotAngle;    // Angolo del cono della luce spot (gradi, ignorato per la luce puntiforme)
    public float3 pad;         // Padding di allineamento, nessuna assegnazione necessaria
}

Il tipo del campo è Unity.Mathematics.float3, non Vector4; color non ha la componente alpha. Quando lightType è 0 si tratta di una luce puntiforme (direction / spotAngle vengono ignorati), mentre quando è 1 si tratta di una luce spot.

DecalOcclusionSettings

Parametri di qualità del culling di occlusione delle decal. Usati da SetDecalOcclusionSettings().

public struct DecalOcclusionSettings {
    public float opacityCutoff;   // Opacità minima in [0,1] affinché uno splat partecipi alla depth map, predefinito 0 (partecipano tutti)
    public float depthBias;       // Rapporto di tolleranza di profondità relativa, predefinito 0.05
    public int   footprintMaxPx;  // Raggio massimo dell'impronta quadrata (px), 0~16, predefinito 2
    public int   resolution;      // Risoluzione della depth map (px, potenza di 2, 256~4096), predefinito 1024

    public static DecalOcclusionSettings Default { get; } // cutoff=0, bias=0.05, footprint=2, resolution=1024
}
CampoDescrizione
opacityCutoffSolo gli splat con opacità ≥ questo valore partecipano alla depth map, il che può filtrare gli splat fluttuanti o simili a nebbia. Predefinito 0 (partecipano tutti).
depthBiasRapporto di tolleranza di profondità relativa che assorbe lo spessore della superficie della nuvola di punti in modo proporzionale alla distanza. Predefinito 0.05. Un valore troppo piccolo provoca rumore di auto-occlusione; troppo grande fa perdere le occlusioni.
footprintMaxPxRaggio massimo conservativo dell'impronta quadrata (in pixel), usato per coprire l'intorno ed evitare perdite di penetrazione. 0 è un singolo texel, intervallo 0~16, predefinito 2. Un valore troppo grande provoca l'espansione del contorno e una sovra-occlusione.
resolutionRisoluzione della depth map (pixel, potenza di 2, 256~4096). Abbassandola si riempiono i fori sparsi a costo di confini di occlusione leggermente più grezzi. Predefinito 1024.

SplatMeta

Metadati dei dati 3DGS. Restituiti da Renderer.GetMeta(), contengono metadati come l'origine dei dati (source) e il formato dei dati (dataType), e possono essere letti senza caricare completamente i dati.

LCCMeshBlockInfo

Metadati dei blocchi Mesh di collisione. Restituiti da Renderer.GetMeshBlockInfos().

public struct LCCMeshBlockInfo {
    public string id;           // Id del nodo, corrispondente a LCCMeshBlock.id
    public Bounds boundsWorld;  // AABB nello spazio mondo, usato per selezionare gli id
    public Bounds boundsLocal;  // AABB nello spazio locale
    public int vertexCount;     // Numero di vertici
    public int faceCount;       // Numero di facce
}
CampoTipoDescrizione
idstringId del nodo, corrispondente a LCCMeshBlock.id
boundsWorldBoundsAABB nello spazio mondo, usato per selezionare gli id
boundsLocalBoundsAABB nello spazio locale
vertexCountintNumero di vertici
faceCountintNumero di facce

LCCMeshBlock

Dati geometrici dei blocchi Mesh di collisione. Restituiti da Renderer.GetMeshes().

public struct LCCMeshBlock {
    public string id;           // Id del nodo
    public Vector3[] vertices;  // Vertici, in coordinate locali
    public int[] triangles;     // Indici dei triangoli, tre per gruppo
    public Bounds boundsLocal;  // Box di delimitazione nello stesso spazio dei vertici
}
CampoTipoDescrizione
idstringId del nodo
verticesVector3[]Array di vertici, nel sistema di coordinate locale dell'oggetto
trianglesint[]Indici dei triangoli, tre per gruppo
boundsLocalBoundsBox di delimitazione nello stesso spazio dei vertici

vertices / boundsLocal sono entrambi nel sistema di coordinate locale dell'oggetto; posizionare il GameObject che porta la Mesh sotto Renderer.Transform li allinea automaticamente. Un singolo blocco può avere più di 65535 vertici, quindi prima di costruire la Mesh bisogna impostare mesh.indexFormat = IndexFormat.UInt32.