İçeriğe geç
TREN
Atlıhan Harita

LCC for Unity Kullanım Kılavuzu · API Başvurusu

Veri Türleri: Enum ve Struct Yapıları

Bölüm 16.3 / 17Kılavuz sürümü v2.3.0Türkçe

LCC Unity SDK tarafından sunulan ve LCCManager ile Görüntüleme Motoru metotlarında kullanılan enum ve struct yapıları.

Enum'lar

PlatformType

Hedef çalışma zamanı platformu. SetPlatformType() tarafından kullanılır.

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

ActiveRenderMode

Genel görüntüleme mimarisi modu. SwitchRenderPass() tarafından kullanılır.

public enum ActiveRenderMode { MultiRender, SingleRender }
DeğerAçıklama
MultiRenderPaylaşımlı bir GPU arabelleği kullanır ve aynı anda en fazla 255 Renderer görüntüleyebilir
SingleRenderSDK, görüntüleme yolunu veri boyutuna göre otomatik olarak seçer

Yalnızca PC / Mac platformları için geçerlidir; mobil / VR platformları otomatik olarak uyarlanabilir bir strateji benimser ve SwitchRenderPass() çağrısı reddedilir.

SourceType

Veri kaynağı türü. Görüntüleme Motoru.GetSourceType() tarafından döndürülür.

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

DataType

Veri biçimi türü. Görüntüleme Motoru.GetDataType() tarafından döndürülür.

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

MipMode

Mip görüntüleme modu. SetMipMode() tarafından kullanılır.

public enum MipMode { Mip, Non_Mip }
DeğerAçıklama
MipMipmap örneklemesi kullanır (varsayılan)
Non_MipMipmap'i devre dışı bırakır; görüntüleme ayrıntıları daha incedir ancak performans yükü daha yüksektir

SnapType

Yakalama türü. HitResult.snapType ve SnapPreviewState.snapType tarafından kullanılır.

public enum SnapType { None, Edge, Corner }

SelectionMode

Düğüm seçim stratejisi. SetSelectionMode() tarafından kullanılır.

public enum SelectionMode { Auto, Normal, Large }
DeğerAçıklama
AutoSahnenin genel sınır kutusuna göre otomatik olarak belirlenir (varsayılan)
NormalKüçük ve orta ölçekli sahnelere uygundur
LargeÇok büyük sahnelere uygundur (1000 metreden fazla)

RenderMode

Nokta bulutu / 3DGS görüntüleme modu. SwitchRenderMode() tarafından kullanılır.

public enum RenderMode { PointCloud, LCCGS }
DeğerAçıklama
PointCloudNokta bulutu görüntüleme
LCCGS3DGS görüntüleme

SelectMode

Seçimi alma/hariç tutma modu. Data2D ve Data3D gibi seçim verileri tarafından kullanılır.

public enum SelectMode { normal, invert, clip }

OperationMode

Çoklu geometri için boolean işlem modu. Data3D ve DataMix gibi seçim verileri tarafından kullanılır.

public enum OperationMode { normal = 0, erase = 1 }
DeğerAçıklama
normalBirleşim
eraseÇıkarma

EditType

Karma seçimdeki girdi türü. DataMix ve ToneMix tarafından kullanılır.

public enum EditType { Edit2D, Edit3D }

ShapeType

3B kırpma / vurgulama geometri türü. Data3D, DataMix ve ToneMix tarafından kullanılır.

public enum ShapeType { box, sphere }

Struct'lar

HitResult

Raycast isabet sonucu. Raycast(), RaycastMesh() ve RaycastWithSnap() tarafından döndürülür.

public struct HitResult {
    public bool isHit;             // Whether a hit occurred
    public float distance;         // Distance
    public Vector3 hitPos;         // Hit point in world coordinates
    public Vector3 normal;         // Hit normal
    public float hitAlpha;         // Alpha of the hit ellipsoid
    public float dist2Origin;      // Distance to the ray origin
    public float scale;            // Ellipsoid scale
    public SnapType snapType;      // Snap type (None / Edge / Corner)
    public Vector3 originalHitPos; // Original hit point before snapping
}

İsabet noktasının dünya koordinatı alanı hitPos olarak adlandırılır.

SnapPreviewState

Yakalama önizleme durumu. GetSnapPreviewState() tarafından döndürülür.

public struct SnapPreviewState {
    public bool hasTarget;          // Whether there is a snap target
    public SnapType snapType;       // None / Edge / Corner
    public Vector2 screenPos;       // Screen coordinates of the snap target
    public float distanceToMouse;   // Pixel distance to the mouse position
}

screenPos ekran koordinatlarındadır (piksel), dünya koordinatlarında değildir. Dünya koordinatları gerektiğinde HitResult.hitPos değerini almak için RaycastWithSnap() kullanın.

Data2D

2B doku projeksiyon seçimi. 2B doku kırpma / vurgulama için kullanılır.

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

Data3D

3B geometri seçimi. 3B geometri kırpma / vurgulama için kullanılır.

public struct Data3D {
    public ShapeType type;          // box / sphere
    public Matrix4x4 invMat;        // Inverse transform matrix of the geometry
    public OperationMode operation; // normal=union, erase=subtraction
    public SelectMode mode;         // normal / invert / clip
}

DataMix

2B + 3B karma seçim. Karma mod kırpma / vurgulama için kullanılır.

public struct DataMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // 3D geometry type
    public Matrix4x4 invMat;        // 3D inverse transform matrix
    public Texture2D texture;       // 2D mask texture
    public Matrix4x4 mv;            // 2D ModelView
    public Matrix4x4 mvp;           // 2D MVP
    public OperationMode operation;
    public SelectMode mode;
}

ToneMix

DataMix üzerine ton parametreleri ekleyen ton seçimi. SetTone() tarafından kullanılır.

public struct ToneMix {
    public EditType editType;       // Edit2D / Edit3D
    public ShapeType type;          // 3D geometry type
    public Matrix4x4 invMat;        // 3D inverse transform matrix
    public Texture2D texture;       // 2D mask texture
    public Matrix4x4 mv;            // 2D ModelView
    public Matrix4x4 mvp;           // 2D MVP
    public OperationMode operation;
    public SelectMode mode;
    public float brightness;        // Brightness (default 1.0)
    public float saturation;        // Saturation (default 1.0)
    public float contrast;          // Contrast (default 1.0)
    public int lutid;               // LUT filter index (0 = not used)
}

PointLightData

Özel nokta ışık / spot ışık verisi. SetLights() tarafından kullanılır.

public struct PointLightData {
    public float3 position;    // World coordinates
    public int lightType;      // 0=point light, 1=spot light
    public float3 color;       // RGB color (no alpha component)
    public float intensity;    // Light intensity
    public float3 direction;   // Spot light direction (ignored for point light)
    public float range;        // Light range
    public float spotAngle;    // Spot light cone angle (degrees, ignored for point light)
    public float3 pad;         // Alignment padding, no assignment needed
}

Alan türü Vector4 değil, Unity.Mathematics.float3 türüdür; color alfa bileşeni içermez. lightType değeri 0 olduğunda nokta ışıktır (direction / spotAngle yok sayılır), 1 olduğunda ise spot ışıktır.

DecalOcclusionSettings

Çıkartma (decal) oklüzyon eleme kalite parametreleri. SetDecalOcclusionSettings() tarafından kullanılır.

public struct DecalOcclusionSettings {
    public float opacityCutoff;   // Minimum opacity in [0,1] for a splat to participate in the depth map, default 0 (all participate)
    public float depthBias;       // Relative depth tolerance ratio, default 0.05
    public int   footprintMaxPx;  // Maximum square footprint radius (px), 0~16, default 2
    public int   resolution;      // Depth map resolution (px, power of 2, 256~4096), default 1024

    public static DecalOcclusionSettings Default { get; } // cutoff=0, bias=0.05, footprint=2, resolution=1024
}
AlanAçıklama
opacityCutoffYalnızca opaklığı bu değerden büyük veya eşit olan splat'ler derinlik haritasına katılır; bu, havada asılı kalan / sis benzeri splat'leri filtreleyebilir. Varsayılan 0 (tümü katılır).
depthBiasNokta bulutu yüzey kalınlığını mesafeyle orantılı olarak karşılayan göreli derinlik tolerans oranı. Varsayılan 0.05. Çok küçük olması kendi kendine oklüzyon gürültüsüne, çok büyük olması oklüzyonların kaçırılmasına neden olur.
footprintMaxPxKomşuluğu kapsamak ve içinden geçme sızıntılarını önlemek için kullanılan, ihtiyatlı en büyük kare ayak izi yarıçapı (piksel cinsinden). 0 tek bir texel'dir, aralık 0~16, varsayılan 2. Çok büyük olması kontur genişlemesine ve aşırı oklüzyona neden olur.
resolutionDerinlik haritası çözünürlüğü (piksel, 2'nin kuvveti, 256~4096). Düşürmek, oklüzyon sınırlarını biraz daha pürüzlü hale getirme pahasına seyrek boşlukları doldurur. Varsayılan 1024.

SplatMeta

3DGS verisinin meta verileri. Görüntüleme Motoru.GetMeta() tarafından çıktı olarak verilir; veri kaynağı (source) ve veri biçimi (dataType) gibi meta verileri içerir ve veri tamamen yüklenmeden okunabilir.

LCCMeshBlockInfo

Çarpışma Mesh bloğu meta verileri. Görüntüleme Motoru.GetMeshBlockInfos() tarafından döndürülür.

public struct LCCMeshBlockInfo {
    public string id;           // Node id, corresponding to LCCMeshBlock.id
    public Bounds boundsWorld;  // World-space AABB, used to select ids
    public Bounds boundsLocal;  // Local-space AABB
    public int vertexCount;     // Vertex count
    public int faceCount;       // Face count
}
AlanTürAçıklama
idstringDüğüm id'si, LCCMeshBlock.id ile eşleşir
boundsWorldBoundsDünya uzayında AABB, id seçmek için kullanılır
boundsLocalBoundsYerel uzayda AABB
vertexCountintKöşe sayısı
faceCountintYüz sayısı

LCCMeshBlock

Çarpışma Mesh bloğu geometri verileri. Görüntüleme Motoru.GetMeshes() tarafından döndürülür.

public struct LCCMeshBlock {
    public string id;           // Node id
    public Vector3[] vertices;  // Vertices, in local coordinates
    public int[] triangles;     // Triangle indices, three per group
    public Bounds boundsLocal;  // Bounding box in the same space as vertices
}
AlanTürAçıklama
idstringDüğüm id'si
verticesVector3[]Nesnenin yerel koordinat sistemindeki köşe noktası dizisi
trianglesint[]Üçgen indeksleri, her grupta üç adet
boundsLocalBoundsKöşe noktalarıyla aynı uzaydaki sınırlayıcı kutu

vertices / boundsLocal her ikisi de nesnenin yerel koordinat sistemindedir; Mesh'i taşıyan GameObject'i Renderer.Transform altına yerleştirmek bunları otomatik olarak hizalar. Tek bir blok 65535'ten fazla köşe noktası içerebilir; bu nedenle Mesh oluşturulmadan önce mesh.indexFormat = IndexFormat.UInt32 ayarlanmalıdır.

Bu bölüm XGRIDS'in resmî kullanım kılavuzundan Türkçeye çevrildi; ekran görüntüleri ve arayüz adları özgün haliyle İngilizcedir. İngilizce aslı (yeni sekmede açılır) · Güncelleme:

XGRIDS Türkiye

Kurulumda ve Sahada Yanınızdayız

Atlıhan Harita; cihaz kurulumu, firmware güncellemesi, yazılım kullanımı ve saha uygulamalarında eğitim ve teknik destek verir. Sorunuzu iletin, uzmanımız size dönsün.

+90 216 546 0804