Genel Bakış
Farklı performans düzeylerindeki cihazlara uyum sağlamak için LCC Unity SDK, çeşitli görüntüleme performansı yapılandırma parametreleri sunar. Bu parametreler LCCManager sınıfında ve Renderer sınıfında yer alır ve başlıca şu yöntemleri kapsar:
| Sınıf | Yöntem | Amaç | Çağrı Zamanı |
|---|---|---|---|
LCCManager | SetMaxBufferSplat | Maksimum Buffer kapasitesini ayarlar (GPU'da bir kez ayrılır) | Herhangi bir Renderer.Load() çağrısından önce olmalıdır |
LCCManager | SetFullRenderSplat | Tam ve parçalı görüntüleme arasındaki Splat sayısı eşiğini ayarlar | Load() çağrısından önce olmalıdır |
LCCManager | SetMaxRenderSplats | Parçalı görüntülemede ekranda görüntülenen toplam Splat sayısını ayarlayın | Parçalı görüntüleme sırasında herhangi bir zamanda |
LCCManager | SetStartLod | Başlangıç LOD seviyesini ayarlayın | Çalışma zamanında, Load() sonrasında etkili olur |
LCCManager | SetDetailLevel | Görüntüleme detay seviyesini ayarlayın (görüntüleme hassasiyetine ince ayar yapın) | Çalışma zamanında dinamik olarak ayarlanabilir |
Renderer | SetRenderAll | Tam görüntülemenin zorunlu tutulup tutulmayacağını ayarlayın | Load() çağrısından önce olmalıdır |
Not:
Yukarıdaki parametrelerden Splat sayısıyla ilgili yöntemlerin (
SetMaxBufferSplat,SetFullRenderSplat,SetMaxRenderSplats) birimi on bin'dir; yani iletilen değer × 10000 = gerçek Splat sayısı.
Not:
SetMaxBufferSplat, görüntüleme için kullanılabilecek en yüksek CPU belleği ve GPU video belleği ara bellek alanını ayarlar. SetMaxRenderSplats ise parçalı akış görüntüleme sırasında ekranda görüntülenen Splat öğesi sayısını ayarlar. Bu nedenle SetMaxRenderSplats ile ayarlanan değer SetMaxBufferSplat ile ayarlanan değeri aşarsa, değer kesilir.
SDK Görüntüleme Modları
Çeşitli veri ve platformlara uyum sağlamak için SDK'nın 3 ana görüntüleme modu vardır. Görüntüleme modlarını anlamak, performans parametrelerini doğru ayarlamanın ön koşuludur; çünkü farklı parametreler yalnızca belirli modlarda etkili olur.
- SingleRender modu (varsayılan): Esas olarak PC/Mac üzerinde kullanılır. Bu mod birden fazla Renderer oluşturulmasına izin vermez; yani aynı anda yalnızca bir LCC sahnesi görüntülenebilir. Veri hacmi küçükse ve gereksinimleri karşılıyorsa veriler tam olarak görüntülenir (LOD0 verisinin tamamı yüklenir, dinamik LOD geçişi yapılmaz, en iyi görüntüleme kalitesi elde edilir). LOD0 Splat öğeleri tam görüntülenebilecek toplam miktarı aşarsa veriler parçalı olarak görüntülenir; çok büyük sahnelerin görüntülenmesine uyum sağlamak için çalışma zamanında dinamik LOD akış görüntüleme mekanizması kullanılır.
- MultiRender modu: Esas olarak PC/Mac üzerinde kullanılır. Bu mod, birden fazla LCC sahnesinin gerçek zamanlı karma görüntülenmesine izin verir. Tüm sahne verileri dinamik LOD mekanizmasıyla parçalı olarak görüntülenir.
- Parçalı görüntüleme yolu: Mobil (iOS / Android) ve VR (Pico 4 / Quest 3) platformlarında ve PC/Mac üzerindeki HTTP veri kaynaklarında, dinamik LOD mekanizmasını kullanan parçalı görüntüleme yolu kullanılır.

SDK'nın üç görüntüleme modu ile tam / parçalı görüntüleme yolları arasındaki ilişki
Tam görüntüleme ve parçalı görüntüleme:
- Tam görüntüleme: LOD0 verisinin tamamını bir kerede yükler ve görüntüler. En iyi görüntü kalitesini sunar. Yalnızca LOD0 veri hacmi koşulları karşıladığında PC/Mac SingleRender modunda etkinleşir.
- Parçalı görüntüleme: LOD seviyesi verilerini görüntüleme kamerasının görüş alanına göre dinamik olarak yükler, ekrandaki Splat sayısını denetler ve video belleği ile performansı sınırlı donanım ortamlarına uyum sağlar.
SDK Varsayılan Değerleri
Her platform için varsayılan değerler, izin verilen en düşük ve en yüksek değerler aşağıdaki gibidir (birim: on bin):
| Öğe | Varsayılan değer | İzin verilen en düşük değer | İzin verilen en yüksek değer | Açıklamalar |
|---|---|---|---|---|
| Global Buffer | PC/Mac: 3000 Mobil: 300 VR: 100 | 100 | PC/Mac: 4450 Mobil: 600 VR: 200 | SetMaxBufferSplat() ile denetlenir |
| Tam görüntüleme eşiği | 2500 | 100 | 4450 | SetFullRenderSplat() ile denetlenir; yalnızca PC/Mac SingleRender modunda etkilidir |
| Parçalı ekran görüntüleme sayısı | PC/Mac: 2000 Mobil: 200 VR: 60 | 10 | —— | SetMaxRenderSplats() ile denetlenir; en yüksek değer global Buffer miktarıyla sınırlıdır |
| Tam görüntülemeye zorlama | Hayır | —— | —— | Yalnızca PC/Mac üzerinde ve yalnızca SingleRender modunda etkilidir |
PC/Mac Yapılandırma Stratejisi
PC/Mac için parametrelerin aşağıdaki kalite seviyelerine göre yapılandırılması önerilir (Splat sayısı birimi: on bin):
| Seviye | Global Buffer | Tam görüntüleme eşiği | Parçalı ekran sayısı | StartLOD | Tam görüntülemeye zorla |
|---|---|---|---|---|---|
| Çok düşük | 300 | 300 | 300 | 2 | Hayır |
| Düşük | 1000 | 1000 | 1000 | 1 | Hayır |
| Orta | 3000 | 1900 | 1900 | 1 | Hayır |
| Yüksek | 3000 | 2500 | 2500 | 0 | Hayır |
| Çok yüksek | 3000 | 3000 | 3000 | 0 | Hayır |
Çalışma Zamanında Seviye Değiştirme Notları
- Orta / Yüksek / Çok yüksek seviyeler arasında geçiş yaparken global Buffer değerini değiştirmeden bırakabilirsiniz. İşlem çok basittir: yalnızca tam görüntüleme eşiğini, ekran görüntüleme sayısını ve StartLOD değerini ayarlamanız yeterlidir.
- Çok düşük / Düşük seviyeler ile diğer seviyeler arasında geçiş yapmak daha karmaşıktır: Global Buffer daha önce ayrılmış olabileceğinden, önce mevcut global Buffer'ı yok etmeniz, ardından yeni bir Buffer oluşturmanız gerekir. Bu işlem için tüm Renderer'ların
Dispose()ile serbest bırakılması ve Buffer'ın boşaltılması, ardından Renderer'ınGetRender()ile yeniden alınması gerekir. - Güncel öneri: Varsayılan seviyeyi Yüksek olarak belirleyin. Seviye değiştirirken global Buffer'ı değiştirmeden bırakın, ancak tam / parçalı görüntüleme geçişini yine de yönetin.
Notlar
SetMaxBufferSplat()en başta, tercihenGetRender()öncesinde ayarlanmalıdır. Bu değeri sahne çalışmaya başladıktan sonra ayarlarsanız, etkili olması için tüm Renderer'larıDispose()ile serbest bırakmanız ve ardından Renderer'ı yeniden almanız gerekir.SetFullRenderSplat()yalnızca PC/Mac SingleRender modunda etkilidir veLoad()öncesinde ayarlanmalıdır.SetMaxRenderSplats()tüm parçalı görüntülemeler için geçerlidir ve istenen zamanda ayarlanabilir; ancak (çağrılıyorsa)SetMaxBufferSplat()çağrısından sonra yapılmalıdır.
Görüntüleme Performansı API'leri
SetMaxBufferSplat
// Return value: void
public void SetMaxBufferSplat(int _count)
Azami GPU Buffer kapasitesini (Splat sayısı) ayarlar. RenderCore yolunda (MultiRender / SingleRender chunk) paylaşılan Global Buffer boyutunu belirler. SingleRender Full Load modunda ise gerçek veri hacmine göre ayrılır ve bu değere başvurulmaz. Yalnızca bir kez ayrılır ve dinamik olarak değiştirilemez.
| Parametre | Tür | Açıklama |
|---|---|---|
_count | int | Global birleşik Buffer boyutu, 3DGS Splat sayısı cinsinden, birim: on bin |
Kullanım örneği:
lccManager.SetMaxBufferSplat(3000); // 30 million points (PC/Mac default)
lccManager.SetMaxBufferSplat(4450); // 44.5 million points (PC/Mac maximum)
Açıklama:
- Birim "on bin"dir; iletilen değer × 10000 = gerçek Splat sayısı.
- Herhangi bir
Renderer.Load()çağrısından önce çağrılmalıdır; aksi halde hata verir ve geri döner. - Önce
SetPlatformTypeçağrılmalıdır. - Kapasite arttıkça video belleği kullanımı da artar; ihtiyaca göre ayarlayın.
- Platform sınırları: PC/Mac 44,5 milyon, Android/iOS 6 milyon, VR 2 milyon; en düşük 1 milyon.
- Varsayılan değerler: PC/Mac 30 milyon, Android/iOS 3 milyon, VR 1 milyon.
SetFullRenderSplat
// Return value: void
public void SetFullRenderSplat(int _count)
PC/Mac SingleRender modunda tam görüntüleme ile parçalı görüntüleme arasındaki Splat sayısı eşiğini ayarlar. Verinin LOD0 Splat sayısı bu değerden küçükse tam görüntüleme yolu (ayrılmış GPU Buffer) kullanılır; aksi halde parçalı görüntüleme yolu kullanılır.
| Parametre | Tür | Açıklama |
|---|---|---|
_count | int | 3DGS Splat sayısı, birim: on bin |
Kullanım örneği:
lccManager.SetFullRenderSplat(2500); // 25 million points
Açıklama:
- Birim "on bin"dir.
- Yalnızca PC/Mac platformlarında desteklenir; diğer platformlarda çağrılırsa hata verir ve doğrudan geri döner.
- Herhangi bir
Renderer.Load()çağrısından önce çağrılmalıdır. - Önce
SetPlatformTypeçağrılmalıdır. - Değer aralığı
[100, 4450](yani 1 milyon ~ 44,5 milyon).
SetMaxRenderSplats
// Return value: void
public void SetMaxRenderSplats(int _count)
Parçalı görüntülemede her karede ekranda görüntülenen en yüksek Splat sayısını ayarlar. Load() sonrasında dinamik olarak çağrılabilir ve SetMaxBufferSplat ile belirlenen üst sınırla kısıtlanır. SingleRender tam görüntüleme modunda çağrılması etkisizdir (uyarı kaydeder ve doğrudan geri döner).
| Parametre | Tür | Açıklama |
|---|---|---|
_count | int | 3DGS Splat sayısı, birim: on bin; en az 100 bin, en fazla SetMaxBufferSplat() ile ayarlanan Buffer boyutunu aşmamalıdır |
Kullanım örneği:
lccManager.SetMaxRenderSplats(2000); // 20 million points
Açıklama:
- Birim "on bin"dir; iletilen değer × 10000 = gerçek Splat sayısı.
- Çalışma zamanında dinamik olarak ayarlanabilir.
SetMaxBufferSplatile belirlenen kapasite üst sınırını aşmamalıdır (aşılırsa değer otomatik olarak sınırlanır ve uyarı kaydedilir).- SingleRender tam görüntüleme modunda çalışma zamanında ayarlama desteklenmez.
SetStartLod
// Return value: void
public void SetStartLod(int lod)
LOD genişletme başlangıç noktasını ayarlar (0 tabanlı). 0 en ince seviyeyi ifade eder; sayı büyüdükçe seviye kabalaşır. Bu yöntem çalışma zamanında etkili olur ve Load() çağrısından sonra çağrılmalıdır.
| Parametre | Tür | Açıklama |
|---|---|---|
lod | int | Başlangıç LOD seviyesi, aralık [0, 10], 0 en ince seviyedir |
Kullanım örneği:
lccManager.SetStartLod(0);
Açıklama:
- Yalnızca parçalı görüntüleme için etkilidir, aralık
[0, 10]; aşılırsa otomatik olarak sınırlandırılır. - Fiilen geçerli üst sınır, verinin
totalLevelsdeğeriyle sınırlıdır. - SDK, çağrıdan hemen sonra etkili olur.
SetDetailLevel
// Return value: void
public void SetDetailLevel(float sse)
Görüntüleme detay seviyesini ayarlar ve görüntüleme hassasiyetine ince ayar yapmak için kullanılır. Değer büyüdükçe görüntüleme inceleşir ve performans maliyeti artar.
| Parametre | Tür | Açıklama |
|---|---|---|
sse | float | Alt bölümleme katsayısı, aralık [1, 100]. 1 = en kaba (yakın mesafede bile iyileştirme yapılmaz), 100 = en ince (tüm seviyeler en alt seviyeye kadar iyileştirilir) |
Kullanım örneği:
lccManager.SetDetailLevel(50f); // Medium precision
Açıklama:
- Bu parametre sahne detayına ince ayar yapmak için kullanılır, yalnızca parçalı görüntüleme için geçerlidir, varsayılan değer 40, aralık
[1, 100]; aşılırsa otomatik olarak sınırlandırılır. - Logaritmik eşleme kullanır: düşük değer aralığı değişikliklere duyarlıdır, yüksek değer aralığında değişiklik yumuşaktır.
- Çalışma zamanında dinamik olarak ayarlanabilir.
SetRenderAll
// Return value: void
public void SetRenderAll(bool _renderAll)
Renderer sınıfının bir yöntemidir. Bu Renderer'ın tam görüntülemeyi zorunlu kılıp kılmayacağını belirler ve Load() öncesinde çağrılmalıdır. Yalnızca PC/Mac SingleRender modunda kullanılır: çalışma anında LOD0 veri hacmini 44,5 milyonluk üst sınırla karşılaştırır; LOD0 < 44,5 milyon ise görüntüleme için doğrudan LOD0 tam verisi kullanılır; LOD0 > 44,5 milyon ise bu ayar etkisizdir (Unity'nin maksimum GBuffer sınırı nedeniyle) ve bunun yerine parçalı görüntüleme kullanılır.
| Parametre | Tür | Açıklama |
|---|---|---|
_renderAll | bool | Tam görüntülemenin zorunlu kılınıp kılınmayacağı |
Kullanım örneği:
renderer.SetRenderAll(true);
renderer.Load(filePath, null, () => Debug.Log("Full loaded"));
Açıklama:
- Yalnızca PC/Mac platformlarında desteklenir; mobil / VR cihazlarda çağrılırsa uyarı kaydı oluşturur ve geri döner.
- Ayar, bir sonraki
Load()çağrısında etkili olur ve o anda yüklü olan veri kümesini etkilemez. - Geçerli durumu sorgulamak için
IsRenderAllözelliğiyle birlikte kullanılabilir.
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:

