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

    • PortalCam P1

      • Productoverzicht
      • Basisbediening
      • De LCC Scan App gebruiken
      • Onderhoud en verzorging
      • Veelgestelde vragen
  • Lixel K-serie

    • Lixel K1

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
    • Lixel K2

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
  • Lixel L-serie

    • Lixel L2 Pro

      • Productoverzicht
      • Basisbediening
      • Apparaatactivering en -verbinding
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten opnemen
      • Meetpunt
      • Appendix
      • FAQ
    • Lixel L3

      • Productoverzicht
      • Basisfuncties van het apparaat
      • Apparaatactivering en -verbinding
      • Gegevensopname
      • Absolute coördinaten opnemen
      • Appendix
  • Lixel Studio

    • Versie en copyright
    • Installatie en activering
    • Software-interface
    • Bestandsbewerkingen
    • Projectverwerking
    • Gereedschappen
    • 2D-tekenen
    • Toepassingen
    • Instellingen
    • Apparaatverbinding
  • 07-plugin-sdk

    • Unity

      • LCC Unity SDK Introductie
      • Technische functies
      • Vereisten voor de ontwikkelomgeving
      • Snelstartgids voor pc
      • Optimalisatiegids voor projectinstellingen
      • Ontwikkelgids voor Pico 4 Ultra
      • Pc-streaminggids voor Pico 4 Ultra
      • Ontwikkelgids voor Quest 3
      • Pc-streaminggids voor Quest 3
      • Ontwikkelgids voor OpenXR
      • Business Streaming-gids voor Pico 4 Ultra
      • Woordenlijst
      • Veelgestelde vragen
      • Contact opnemen
      • Ontwikkelingshandleiding voor functies

        • Ontwikkelgids voor gemengde rendering van meerdere scènes
        • Ontwikkelgids voor het ontvangen van schaduwen
        • Ontwikkelgids voor realtime belichting
        • Ontwikkelgids voor multi-camera rendering
        • Ontwikkelgids voor het renderen van afbeeldingen met hoge resolutie
        • Ontwikkelgids voor compatibiliteit van de gegevensformaten LCC en LCC2
        • Ontwikkelgids voor laadeffecten
        • Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
        • Ontwikkelgids voor rand- en hoeksnapping
        • Ontwikkelgids voor geprojecteerde decal
        • Ontwikkelgids voor video-geprojecteerde decal
        • Ontwikkelgids voor markeren
        • Ontwikkelgids voor realtime knippen
        • Ontwikkelgids voor kleuraanpassing
        • Ontwikkelgids voor het ophalen van scène-Meshgegevens
        • Ontwikkelgids voor de Editor-modus
        • Configuratiegids voor renderprestatieparameters
        • Ontwikkelgids voor het samen verpakken van de applicatie en de gegevens
        • Ontwikkelgids voor het botsingssysteem
        • Gids voor macOS-ontwikkelingsmachtigingsproblemen
        • Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten
      • API-referentie

        • LCCManager
        • Renderer
        • Gegevenstypen
      • Wijzigingslogboek

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

Gegevenstypen: enums en structs

De enums en structs die door de LCC Unity SDK worden aangeboden en worden gebruikt door de methoden van LCCManager en Renderer.

Enums

PlatformType

Doel-runtimeplatform. Wordt gebruikt door SetPlatformType().

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

ActiveRenderMode

Globale renderingarchitectuurmodus. Wordt gebruikt door SwitchRenderPass().

public enum ActiveRenderMode { MultiRender, SingleRender }
WaardeBeschrijving
MultiRenderMaakt gebruik van een gedeelde GPU-buffer en kan tot 255 Renderers gelijktijdig renderen
SingleRenderDe SDK selecteert automatisch het renderingpad op basis van de gegevensgrootte

Alleen van toepassing op pc-/Mac-platformen; mobiele / VR-platformen hanteren automatisch een adaptieve strategie en het aanroepen van SwitchRenderPass() wordt geweigerd.

SourceType

Type gegevensbron. Geretourneerd door Renderer.GetSourceType().

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

DataType

Type gegevensindeling. Geretourneerd door Renderer.GetDataType().

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

MipMode

Mip-rendermodus. Wordt gebruikt door SetMipMode().

public enum MipMode { Mip, Non_Mip }
WaardeBeschrijving
MipMaakt gebruik van mipmap-sampling (standaard)
Non_MipSchakelt mipmap uit, met fijnere renderingdetails maar een hogere prestatie-overhead

SnapType

Snap-type. Wordt gebruikt door HitResult.snapType en SnapPreviewState.snapType.

public enum SnapType { None, Edge, Corner }

SelectionMode

Strategie voor knooppuntselectie. Wordt gebruikt door SetSelectionMode().

public enum SelectionMode { Auto, Normal, Large }
WaardeBeschrijving
AutoWordt automatisch bepaald op basis van het totale begrenzingskader van de scène (standaard)
NormalGeschikt voor kleine en middelgrote scènes
LargeGeschikt voor zeer grote scènes (meer dan 1000 meter)

RenderMode

Rendermodus voor puntenwolk / 3DGS. Wordt gebruikt door SwitchRenderMode().

public enum RenderMode { PointCloud, LCCGS }
WaardeBeschrijving
PointCloudRendering van de puntenwolk
LCCGS3DGS-rendering

SelectMode

Selectiemodus voor opnemen/uitsluiten. Wordt gebruikt door selectiegegevens zoals Data2D en Data3D.

public enum SelectMode { normal, invert, clip }

OperationMode

Booleaanse bewerkingsmodus voor meerdere geometrieën. Wordt gebruikt door selectiegegevens zoals Data3D en DataMix.

public enum OperationMode { normal = 0, erase = 1 }
WaardeBeschrijving
normalVereniging
eraseAftrekken

EditType

Vermeldingstype in een gemengde selectie. Wordt gebruikt door DataMix en ToneMix.

public enum EditType { Edit2D, Edit3D }

ShapeType

Type 3D-geometrie voor knippen / markeren. Wordt gebruikt door Data3D, DataMix en ToneMix.

public enum ShapeType { box, sphere }

Structs

HitResult

Hitresultaat van raycasting. Geretourneerd door Raycast(), RaycastMesh() en RaycastWithSnap().

public struct HitResult {
    public bool isHit;             // Of er een treffer is opgetreden
    public float distance;         // Afstand
    public Vector3 hitPos;         // Trefpunt in wereldcoördinaten
    public Vector3 normal;         // Treffernormaal
    public float hitAlpha;         // Alpha van de geraakte ellipsoïde
    public float dist2Origin;      // Afstand tot de straaloorsprong
    public float scale;            // Ellipsoïdeschaal
    public SnapType snapType;      // Snap-type (None / Edge / Corner)
    public Vector3 originalHitPos; // Oorspronkelijk trefpunt vóór het snappen
}

Het veld met de wereldcoördinaten van het trefpunt heet hitPos.

SnapPreviewState

Status van het snapvoorbeeld. Geretourneerd door GetSnapPreviewState().

public struct SnapPreviewState {
    public bool hasTarget;          // Of er een snapdoel is
    public SnapType snapType;       // None / Edge / Corner
    public Vector2 screenPos;       // Schermcoördinaten van het snapdoel
    public float distanceToMouse;   // Pixelafstand tot de muispositie
}

screenPos is in schermcoördinaten (pixels), niet in wereldcoördinaten. Gebruik wanneer wereldcoördinaten nodig zijn RaycastWithSnap() om HitResult.hitPos te verkrijgen.

Data2D

Selectie via 2D-textuurprojectie. Wordt gebruikt voor 2D-textuur knippen / markeren.

public struct Data2D {
    public Texture2D texture;  // R8 1024x1024 maskertextuur
    public Matrix4x4 mv;       // ModelView-matrix
    public Matrix4x4 mvp;      // ModelViewProjection-matrix
    public SelectMode mode;    // normal / invert
}

Data3D

Selectie via 3D-geometrie. Wordt gebruikt voor 3D-geometrie knippen / markeren.

public struct Data3D {
    public ShapeType type;          // box / sphere
    public Matrix4x4 invMat;        // Inverse transformatiematrix van de geometrie
    public OperationMode operation; // normal=vereniging, erase=aftrekken
    public SelectMode mode;         // normal / invert / clip
}

DataMix

Gemengde selectie van 2D + 3D. Wordt gebruikt voor knippen / markeren in de gemengde modus.

public struct DataMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Type 3D-geometrie
    public Matrix4x4 invMat;        // 3D inverse transformatiematrix
    public Texture2D texture;       // 2D-maskertextuur
    public Matrix4x4 mv;            // 2D ModelView
    public Matrix4x4 mvp;           // 2D MVP
    public OperationMode operation;
    public SelectMode mode;
}

ToneMix

Toonselectie, die toonparameters toevoegt bovenop DataMix. Wordt gebruikt door SetTone().

public struct ToneMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Type 3D-geometrie
    public Matrix4x4 invMat;        // 3D inverse transformatiematrix
    public Texture2D texture;       // 2D-maskertextuur
    public Matrix4x4 mv;            // 2D ModelView
    public Matrix4x4 mvp;           // 2D MVP
    public OperationMode operation;
    public SelectMode mode;
    public float brightness;        // Helderheid (standaard 1.0)
    public float saturation;        // Verzadiging (standaard 1.0)
    public float contrast;          // Contrast (standaard 1.0)
    public int lutid;               // LUT-filterindex (0 = niet gebruikt)
}

PointLightData

Gegevens voor aangepast puntlicht / spotlicht. Wordt gebruikt door SetLights().

public struct PointLightData {
    public float3 position;    // Wereldcoördinaten
    public int lightType;      // 0=puntlicht, 1=spotlicht
    public float3 color;       // RGB-kleur (geen alfacomponent)
    public float intensity;    // Lichtintensiteit
    public float3 direction;   // Richting van het spotlicht (genegeerd bij puntlicht)
    public float range;        // Lichtbereik
    public float spotAngle;    // Kegelhoek van het spotlicht (graden, genegeerd bij puntlicht)
    public float3 pad;         // Uitlijningsopvulling, geen toewijzing nodig
}

Het veldtype is Unity.Mathematics.float3, niet Vector4; color heeft geen alfacomponent. Wanneer lightType 0 is, is het een puntlicht (direction / spotAngle worden genegeerd) en wanneer deze 1 is, is het een spotlicht.

DecalOcclusionSettings

Kwaliteitsparameters voor decal-occlusieculling. Wordt gebruikt door SetDecalOcclusionSettings().

public struct DecalOcclusionSettings {
    public float opacityCutoff;   // Minimale opaciteit in [0,1] voor een splat om deel te nemen aan de dieptekaart, standaard 0 (iedereen neemt deel)
    public float depthBias;       // Relatieve dieptetolerantieverhouding, standaard 0.05
    public int   footprintMaxPx;  // Maximale vierkante footprintstraal (px), 0~16, standaard 2
    public int   resolution;      // Resolutie van de dieptekaart (px, macht van 2, 256~4096), standaard 1024

    public static DecalOcclusionSettings Default { get; } // cutoff=0, bias=0.05, footprint=2, resolution=1024
}
VeldBeschrijving
opacityCutoffAlleen splats met een opaciteit ≥ deze waarde nemen deel aan de dieptekaart, wat zwevende / mistachtige splats kan wegfilteren. Standaard 0 (iedereen neemt deel).
depthBiasRelatieve dieptetolerantieverhouding die de oppervlaktedikte van de puntenwolk evenredig aan de afstand absorbeert. Standaard 0.05. Te klein veroorzaakt zelfocclusieruis; te groot mist occlusies.
footprintMaxPxConservatieve maximale vierkante footprintstraal (in pixels), gebruikt om de omgeving te bedekken en penetratielekken te voorkomen. 0 is één enkele texel, bereik 0~16, standaard 2. Te groot veroorzaakt omtrekuitbreiding en overocclusie.
resolutionResolutie van de dieptekaart (pixels, macht van 2, 256~4096). Verlagen vult dunne gaten ten koste van iets ruwere occlusiegrenzen. Standaard 1024.

SplatMeta

Metadata van de 3DGS-gegevens. Uitgevoerd door Renderer.GetMeta(), met metadata zoals de gegevensbron (source) en de gegevensindeling (dataType), en kan worden gelezen zonder de gegevens volledig te laden.

LCCMeshBlockInfo

Metadata van een botsings-Mesh-blok. Geretourneerd door Renderer.GetMeshBlockInfos().

public struct LCCMeshBlockInfo {
    public string id;           // Knooppunt-id, overeenkomend met LCCMeshBlock.id
    public Bounds boundsWorld;  // AABB in wereldruimte, gebruikt om id's te selecteren
    public Bounds boundsLocal;  // AABB in lokale ruimte
    public int vertexCount;     // Aantal hoekpunten
    public int faceCount;       // Aantal vlakken
}
VeldTypeBeschrijving
idstringKnooppunt-id, overeenkomend met LCCMeshBlock.id
boundsWorldBoundsAABB in wereldruimte, gebruikt om id's te selecteren
boundsLocalBoundsAABB in lokale ruimte
vertexCountintAantal hoekpunten
faceCountintAantal vlakken

LCCMeshBlock

Geometriegegevens van een botsings-Mesh-blok. Geretourneerd door Renderer.GetMeshes().

public struct LCCMeshBlock {
    public string id;           // Knooppunt-id
    public Vector3[] vertices;  // Hoekpunten, in lokale coördinaten
    public int[] triangles;     // Driehoeksindices, drie per groep
    public Bounds boundsLocal;  // Begrenzingskader in dezelfde ruimte als de hoekpunten
}
VeldTypeBeschrijving
idstringKnooppunt-id
verticesVector3[]Hoekpuntarray, in het lokale coördinatensysteem van het object
trianglesint[]Driehoeksindices, drie per groep
boundsLocalBoundsBegrenzingskader in dezelfde ruimte als de hoekpunten

vertices / boundsLocal bevinden zich beide in het lokale coördinatensysteem van het object; door het GameObject dat de Mesh draagt onder Renderer.Transform te plaatsen, worden ze automatisch uitgelijnd. Een enkel blok kan meer dan 65535 hoekpunten hebben, dus mesh.indexFormat = IndexFormat.UInt32 moet worden ingesteld vóór het bouwen van de Mesh.