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 }
| Valeur | Description |
|---|---|
MultiRender | Utilise un buffer GPU partagé et peut rendre jusqu'à 255 Renderers simultanément |
SingleRender | Le 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 }
| Valeur | Description |
|---|---|
Mip | Utilise l'échantillonnage mipmap (défaut) |
Non_Mip | Dé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 }
| Valeur | Description |
|---|---|
Auto | Décidé automatiquement en fonction de la boîte englobante globale de la scène (défaut) |
Normal | Convient aux petites et moyennes scènes |
Large | Convient 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 }
| Valeur | Description |
|---|---|
PointCloud | Rendu du nuage de points |
LCCGS | Rendu 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 }
| Valeur | Description |
|---|---|
normal | Union |
erase | Soustraction |
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
}
screenPosest en coordonnées écran (pixels), pas en coordonnées mondiales. Lorsque des coordonnées mondiales sont nécessaires, utilisez RaycastWithSnap() pour obtenirHitResult.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, pasVector4;colorn'a pas de composante alpha. LorsquelightTypeest0, c'est un éclairage ponctuel (direction/spotAnglesont ignorés), et lorsqu'il est1, 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
}
| Champ | Description |
|---|---|
opacityCutoff | Seuls 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). |
depthBias | Ratio 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. |
footprintMaxPx | Rayon 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. |
resolution | Ré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
}
| Champ | Type | Description |
|---|---|---|
id | string | Id de nœud, correspondant à LCCMeshBlock.id |
boundsWorld | Bounds | AABB en espace mondial, utilisée pour sélectionner les ids |
boundsLocal | Bounds | AABB en espace local |
vertexCount | int | Nombre de sommets |
faceCount | int | Nombre 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
}
| Champ | Type | Description |
|---|---|---|
id | string | Id de nœud |
vertices | Vector3[] | Tableau de sommets, dans le système de coordonnées local de l'objet |
triangles | int[] | Indices de triangles, trois par groupe |
boundsLocal | Bounds | Boîte englobante dans le même espace que les sommets |
vertices/boundsLocalsont tous deux dans le système de coordonnées local de l'objet ; placer le GameObject qui porte le Mesh sousRenderer.Transformles aligne automatiquement. Un seul bloc peut avoir plus de 65535 sommets, doncmesh.indexFormat = IndexFormat.UInt32doit être défini avant de construire le Mesh.