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

    • LCC Studio

      • Prise en main
      • Version et mises à jour
      • Téléchargement et installation
      • Aperçu de l’interface et navigation
      • Avant la reconstruction
      • Reconstruction du modèle
      • Reconstruction d’un modèle unique
      • Fusion cartographique
      • Fusion aérienne-terrestre
      • Reconstruction aérienne
      • Mes modèles
      • Autres fonctionnalités
      • Paramètres et compte
      • Convertisseur
      • Reconstruction vidéo
      • Questions fréquentes
    • LCC Scene Editor

      • Version et mises à jour
      • Compte et connexion
      • Présentation du produit et accueil
      • Interface de l’éditeur
      • Modes de navigation de scène
      • Fichier
      • Paramètres
      • Opérations d’édition
      • Fenêtre
      • Barre d’outils globale
      • Ressources et propriétés
      • Barre d’outils gauche
      • Points de vue
      • Portail
      • Skybox
      • Annotations
      • Mesure
      • Parcours
      • Rapport de scène
      • 3D Layout
      • Mini-carte
      • Mode Prévisualisation, Viewer
      • Aide
      • FAQ
      • Point d’apparition
    • LCC Model Editor

      • Version et mises à jour
      • Guide de l’utilisateur
      • Aperçu et interface
      • Opérations sur les fichiers
      • Sélecteurs
      • Modification des modèles
      • Mesure
      • Réglage des couleurs
      • Gestion des ressources
      • Paramètres et aide
      • Questions fréquentes
    • Bonnes Pratiques

      • Fusion de plusieurs modèles 3DGS de grande taille
  • Plugin & SDK

    • Unreal

      • Introduction
      • Démarrage rapide - Windows
      • Démarrage rapide - Linux
      • Démarrage rapide - Quest3
      • Éditions et licences
      • Rendu
      • Rastérisation Tiled (expérimental)
      • Réglages visuels
      • Normales et éclairage
      • Édition de scène
      • Paramètres de performance
      • Guide d'optimisation des performances
      • Intégration avec les plugins tiers et moteur
      • Maillage proxy
      • Animation de chargement
      • Collision
      • Prise en charge du système de navigation
      • Prise en charge de l'eau à couche unique
      • Localisation
      • Questions fréquentes
      • Dépannage
      • Journaux et diagnostics
      • Nous contacter
      • Bonnes pratiques

        • Rééclairer un 3DGS avec un maillage LixelStudio
      • Référence API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Journal des modifications

        • 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

      • Introduction au SDK Unity
      • Fonctionnalités techniques
      • Exigences de l'environnement de développement
      • Guide de démarrage rapide PC
      • Guide d'optimisation des paramètres de projet
      • Guide de développement Pico 4 Ultra
      • Guide de streaming PC du Pico 4 Ultra
      • Guide de développement Quest 3
      • Guide de streaming PC du Quest 3
      • Guide de développement OpenXR
      • Guide Business Streaming du Pico 4 Ultra
      • Glossaire
      • FAQ
      • Nous contacter
      • Guide de développement des fonctionnalités

        • Guide de développement du rendu mixte multi-scènes
        • Guide de développement de la réception des ombres
        • Guide de développement de l'éclairage en temps réel
        • Guide de développement du rendu multi-caméras
        • Guide de développement du rendu d'images haute résolution
        • Guide de développement de la compatibilité des formats de données LCC et LCC2
        • Guide de développement de l'effet de chargement
        • Guide de développement du basculement du mode de rendu Mip
        • Guide de développement de l'accrochage aux arêtes et aux coins
        • Guide de développement du décalque projeté
        • Guide de développement du décalque projeté vidéo
        • Guide de développement du surlignage
        • Guide de développement de la découpe en temps réel
        • Guide de développement du réglage des couleurs
        • Guide de développement de l'obtention des données Mesh de la scène
        • Guide de développement du mode éditeur
        • Guide de configuration des paramètres de performance de rendu
        • Guide de développement du co-packageage de l'application et des données
        • Guide de développement du système de collision
        • Guide des problèmes d'autorisation de développement macOS
        • Guide de développement de la compilation et du packageage sur appareil iOS
      • Référence de l'API

        • LCCManager
        • Renderer
        • Types de données
      • Journal des modifications

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

Types de données : enums et structs

Les enums et structs exposés par le LCC Unity SDK, utilisés par les méthodes de LCCManager et de Renderer.

Enums

PlatformType

Plateforme d'exécution cible. Utilisé par SetPlatformType().

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

ActiveRenderMode

Mode d'architecture de rendu global. Utilisé par SwitchRenderPass().

public enum ActiveRenderMode { MultiRender, SingleRender }
ValeurDescription
MultiRenderUtilise un buffer GPU partagé et peut rendre jusqu'à 255 Renderers simultanément
SingleRenderLe SDK sélectionne automatiquement le chemin de rendu en fonction de la taille des données

Applicable uniquement aux plateformes PC / Mac ; les plateformes mobiles / VR adoptent automatiquement une stratégie adaptative, et l'appel de SwitchRenderPass() est rejeté.

SourceType

Type de source de données. Retourné par Renderer.GetSourceType().

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

DataType

Type de format de données. Retourné par Renderer.GetDataType().

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

MipMode

Mode de rendu Mip. Utilisé par SetMipMode().

public enum MipMode { Mip, Non_Mip }
ValeurDescription
MipUtilise l'échantillonnage mipmap (défaut)
Non_MipDésactive le mipmap, avec des détails de rendu plus fins mais un surcoût de performance plus élevé

SnapType

Type d'accrochage. Utilisé par HitResult.snapType et SnapPreviewState.snapType.

public enum SnapType { None, Edge, Corner }

SelectionMode

Stratégie de sélection des nœuds. Utilisé par SetSelectionMode().

public enum SelectionMode { Auto, Normal, Large }
ValeurDescription
AutoDécidé automatiquement en fonction de la boîte englobante globale de la scène (défaut)
NormalConvient aux petites et moyennes scènes
LargeConvient aux très grandes scènes (plus de 1000 mètres)

RenderMode

Mode de rendu nuage de points / 3DGS. Utilisé par SwitchRenderMode().

public enum RenderMode { PointCloud, LCCGS }
ValeurDescription
PointCloudRendu du nuage de points
LCCGSRendu 3DGS

SelectMode

Mode de prise/exclusion de sélection. Utilisé par les données de sélection telles que Data2D et Data3D.

public enum SelectMode { normal, invert, clip }

OperationMode

Mode d'opération booléenne multi-géométries. Utilisé par les données de sélection telles que Data3D et DataMix.

public enum OperationMode { normal = 0, erase = 1 }
ValeurDescription
normalUnion
eraseSoustraction

EditType

Type d'entrée dans une sélection mixte. Utilisé par DataMix et ToneMix.

public enum EditType { Edit2D, Edit3D }

ShapeType

Type de géométrie de découpe / surlignage 3D. Utilisé par Data3D, DataMix et ToneMix.

public enum ShapeType { box, sphere }

Structs

HitResult

Résultat d'impact du raycast. Retourné par Raycast(), RaycastMesh() et RaycastWithSnap().

public struct HitResult {
    public bool isHit;             // S'il y a eu impact
    public float distance;         // Distance
    public Vector3 hitPos;         // Point d'impact en coordonnées mondiales
    public Vector3 normal;         // Normale d'impact
    public float hitAlpha;         // Alpha de l'ellipsoïde impacté
    public float dist2Origin;      // Distance par rapport à l'origine du rayon
    public float scale;            // Échelle de l'ellipsoïde
    public SnapType snapType;      // Type d'accrochage (None / Edge / Corner)
    public Vector3 originalHitPos; // Point d'impact d'origine avant accrochage
}

Le champ de coordonnée mondiale du point d'impact est nommé hitPos.

SnapPreviewState

État de l'aperçu d'accrochage. Retourné par GetSnapPreviewState().

public struct SnapPreviewState {
    public bool hasTarget;          // S'il existe une cible d'accrochage
    public SnapType snapType;       // None / Edge / Corner
    public Vector2 screenPos;       // Coordonnées écran de la cible d'accrochage
    public float distanceToMouse;   // Distance en pixels par rapport à la position de la souris
}

screenPos est en coordonnées écran (pixels), pas en coordonnées mondiales. Lorsque des coordonnées mondiales sont nécessaires, utilisez RaycastWithSnap() pour obtenir HitResult.hitPos.

Data2D

Sélection par projection de texture 2D. Utilisé pour la découpe / le surlignage par texture 2D.

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

Data3D

Sélection par géométrie 3D. Utilisé pour la découpe / le surlignage par géométrie 3D.

public struct Data3D {
    public ShapeType type;          // box / sphere
    public Matrix4x4 invMat;        // Matrice de transformation inverse de la géométrie
    public OperationMode operation; // normal=union, erase=soustraction
    public SelectMode mode;         // normal / invert / clip
}

DataMix

Sélection mixte 2D + 3D. Utilisé pour la découpe / le surlignage en mode mixte.

public struct DataMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Type de géométrie 3D
    public Matrix4x4 invMat;        // Matrice de transformation inverse 3D
    public Texture2D texture;       // Texture de masque 2D
    public Matrix4x4 mv;            // ModelView 2D
    public Matrix4x4 mvp;           // MVP 2D
    public OperationMode operation;
    public SelectMode mode;
}

ToneMix

Sélection de tons, qui ajoute des paramètres de tons au-dessus de DataMix. Utilisé par SetTone().

public struct ToneMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // Type de géométrie 3D
    public Matrix4x4 invMat;        // Matrice de transformation inverse 3D
    public Texture2D texture;       // Texture de masque 2D
    public Matrix4x4 mv;            // ModelView 2D
    public Matrix4x4 mvp;           // MVP 2D
    public OperationMode operation;
    public SelectMode mode;
    public float brightness;        // Luminosité (défaut 1.0)
    public float saturation;        // Saturation (défaut 1.0)
    public float contrast;          // Contraste (défaut 1.0)
    public int lutid;               // Index du filtre LUT (0 = non utilisé)
}

PointLightData

Données d'éclairage ponctuel / spot personnalisées. Utilisé par SetLights().

public struct PointLightData {
    public float3 position;    // Coordonnées mondiales
    public int lightType;      // 0=éclairage ponctuel, 1=spot
    public float3 color;       // Couleur RGB (sans composante alpha)
    public float intensity;    // Intensité lumineuse
    public float3 direction;   // Direction du spot (ignorée pour l'éclairage ponctuel)
    public float range;        // Portée de la lumière
    public float spotAngle;    // Angle du cône du spot (degrés, ignoré pour l'éclairage ponctuel)
    public float3 pad;         // Remplissage d'alignement, aucune assignation nécessaire
}

Le type de champ est Unity.Mathematics.float3, pas Vector4 ; color n'a pas de composante alpha. Lorsque lightType est 0, c'est un éclairage ponctuel (direction / spotAngle sont ignorés), et lorsqu'il est 1, c'est un spot.

DecalOcclusionSettings

Paramètres de qualité de l'occlusion culling du décalque. Utilisé par SetDecalOcclusionSettings().

public struct DecalOcclusionSettings {
    public float opacityCutoff;   // Opacité minimale dans [0,1] pour qu'un splat participe à la carte de profondeur, défaut 0 (tous participent)
    public float depthBias;       // Ratio de tolérance de profondeur relative, défaut 0.05
    public int   footprintMaxPx;  // Rayon maximal d'empreinte carrée (px), 0~16, défaut 2
    public int   resolution;      // Résolution de la carte de profondeur (px, puissance de 2, 256~4096), défaut 1024

    public static DecalOcclusionSettings Default { get; } // cutoff=0, bias=0.05, footprint=2, resolution=1024
}
ChampDescription
opacityCutoffSeuls les splats dont l'opacité ≥ cette valeur participent à la carte de profondeur, ce qui peut filtrer les splats flottants / brumeux. Défaut 0 (tous participent).
depthBiasRatio de tolérance de profondeur relative qui absorbe l'épaisseur de la surface du nuage de points proportionnellement à la distance. Défaut 0.05. Trop petit provoque du bruit d'auto-occlusion ; trop grand manque des occlusions.
footprintMaxPxRayon maximal d'empreinte carrée conservateur (en pixels), utilisé pour couvrir le voisinage et éviter les fuites de pénétration. 0 est un seul texel, plage 0~16, défaut 2. Trop grand provoque une expansion des contours et une sur-occlusion.
resolutionRésolution de la carte de profondeur (pixels, puissance de 2, 256~4096). La réduire comble les trous clairsemés au prix de limites d'occlusion légèrement plus grossières. Défaut 1024.

SplatMeta

Métadonnées des données 3DGS. Sorties par Renderer.GetMeta(), contenant des métadonnées telles que la source de données (source) et le format de données (dataType), et peuvent être lues sans charger entièrement les données.

LCCMeshBlockInfo

Métadonnées de bloc Mesh de collision. Retournées par Renderer.GetMeshBlockInfos().

public struct LCCMeshBlockInfo {
    public string id;           // Id de nœud, correspondant à LCCMeshBlock.id
    public Bounds boundsWorld;  // AABB en espace mondial, utilisée pour sélectionner les ids
    public Bounds boundsLocal;  // AABB en espace local
    public int vertexCount;     // Nombre de sommets
    public int faceCount;       // Nombre de faces
}
ChampTypeDescription
idstringId de nœud, correspondant à LCCMeshBlock.id
boundsWorldBoundsAABB en espace mondial, utilisée pour sélectionner les ids
boundsLocalBoundsAABB en espace local
vertexCountintNombre de sommets
faceCountintNombre de faces

LCCMeshBlock

Données géométriques de bloc Mesh de collision. Retournées par Renderer.GetMeshes().

public struct LCCMeshBlock {
    public string id;           // Id de nœud
    public Vector3[] vertices;  // Sommets, en coordonnées locales
    public int[] triangles;     // Indices de triangles, trois par groupe
    public Bounds boundsLocal;  // Boîte englobante dans le même espace que les sommets
}
ChampTypeDescription
idstringId de nœud
verticesVector3[]Tableau de sommets, dans le système de coordonnées local de l'objet
trianglesint[]Indices de triangles, trois par groupe
boundsLocalBoundsBoîte englobante dans le même espace que les sommets

vertices / boundsLocal sont tous deux dans le système de coordonnées local de l'objet ; placer le GameObject qui porte le Mesh sous Renderer.Transform les aligne automatiquement. Un seul bloc peut avoir plus de 65535 sommets, donc mesh.indexFormat = IndexFormat.UInt32 doit être défini avant de construire le Mesh.