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 }
| Waarde | Beschrijving |
|---|---|
MultiRender | Maakt gebruik van een gedeelde GPU-buffer en kan tot 255 Renderers gelijktijdig renderen |
SingleRender | De 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 }
| Waarde | Beschrijving |
|---|---|
Mip | Maakt gebruik van mipmap-sampling (standaard) |
Non_Mip | Schakelt 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 }
| Waarde | Beschrijving |
|---|---|
Auto | Wordt automatisch bepaald op basis van het totale begrenzingskader van de scène (standaard) |
Normal | Geschikt voor kleine en middelgrote scènes |
Large | Geschikt voor zeer grote scènes (meer dan 1000 meter) |
RenderMode
Rendermodus voor puntenwolk / 3DGS. Wordt gebruikt door SwitchRenderMode().
public enum RenderMode { PointCloud, LCCGS }
| Waarde | Beschrijving |
|---|---|
PointCloud | Rendering van de puntenwolk |
LCCGS | 3DGS-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 }
| Waarde | Beschrijving |
|---|---|
normal | Vereniging |
erase | Aftrekken |
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
}
screenPosis in schermcoördinaten (pixels), niet in wereldcoördinaten. Gebruik wanneer wereldcoördinaten nodig zijn RaycastWithSnap() omHitResult.hitPoste 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, nietVector4;colorheeft geen alfacomponent. WanneerlightType0is, is het een puntlicht (direction/spotAngleworden genegeerd) en wanneer deze1is, 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
}
| Veld | Beschrijving |
|---|---|
opacityCutoff | Alleen splats met een opaciteit ≥ deze waarde nemen deel aan de dieptekaart, wat zwevende / mistachtige splats kan wegfilteren. Standaard 0 (iedereen neemt deel). |
depthBias | Relatieve dieptetolerantieverhouding die de oppervlaktedikte van de puntenwolk evenredig aan de afstand absorbeert. Standaard 0.05. Te klein veroorzaakt zelfocclusieruis; te groot mist occlusies. |
footprintMaxPx | Conservatieve 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. |
resolution | Resolutie 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
}
| Veld | Type | Beschrijving |
|---|---|---|
id | string | Knooppunt-id, overeenkomend met LCCMeshBlock.id |
boundsWorld | Bounds | AABB in wereldruimte, gebruikt om id's te selecteren |
boundsLocal | Bounds | AABB in lokale ruimte |
vertexCount | int | Aantal hoekpunten |
faceCount | int | Aantal 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
}
| Veld | Type | Beschrijving |
|---|---|---|
id | string | Knooppunt-id |
vertices | Vector3[] | Hoekpuntarray, in het lokale coördinatensysteem van het object |
triangles | int[] | Driehoeksindices, drie per groep |
boundsLocal | Bounds | Begrenzingskader in dezelfde ruimte als de hoekpunten |
vertices/boundsLocalbevinden zich beide in het lokale coördinatensysteem van het object; door het GameObject dat de Mesh draagt onderRenderer.Transformte plaatsen, worden ze automatisch uitgelijnd. Een enkel blok kan meer dan 65535 hoekpunten hebben, dusmesh.indexFormat = IndexFormat.UInt32moet worden ingesteld vóór het bouwen van de Mesh.