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

LCC for Unity Kullanım Kılavuzu · Özellik Geliştirme Kılavuzu

Görüntüleme Performansı Parametre Yapılandırma Kılavuzu

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

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ıfYöntemAmaçÇağrı Zamanı
LCCManagerSetMaxBufferSplatMaksimum Buffer kapasitesini ayarlar (GPU'da bir kez ayrılır)Herhangi bir Renderer.Load() çağrısından önce olmalıdır
LCCManagerSetFullRenderSplatTam ve parçalı görüntüleme arasındaki Splat sayısı eşiğini ayarlarLoad() çağrısından önce olmalıdır
LCCManagerSetMaxRenderSplatsParçalı görüntülemede ekranda görüntülenen toplam Splat sayısını ayarlayınParçalı görüntüleme sırasında herhangi bir zamanda
LCCManagerSetStartLodBaşlangıç LOD seviyesini ayarlayınÇalışma zamanında, Load() sonrasında etkili olur
LCCManagerSetDetailLevelGörüntüleme detay seviyesini ayarlayın (görüntüleme hassasiyetine ince ayar yapın)Çalışma zamanında dinamik olarak ayarlanabilir
RendererSetRenderAllTam görüntülemenin zorunlu tutulup tutulmayacağını ayarlayınLoad() ç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 İlişki

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):

ÖğeVarsayılan değerİzin verilen en düşük değerİzin verilen en yüksek değerAçıklamalar
Global BufferPC/Mac: 3000
Mobil: 300
VR: 100
100PC/Mac: 4450
Mobil: 600
VR: 200
SetMaxBufferSplat() ile denetlenir
Tam görüntüleme eşiği25001004450SetFullRenderSplat() 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 zorlamaHayı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):

SeviyeGlobal BufferTam görüntüleme eşiğiParçalı ekran sayısıStartLODTam görüntülemeye zorla
Çok düşük3003003002Hayır
Düşük1000100010001Hayır
Orta3000190019001Hayır
Yüksek3000250025000Hayır
Çok yüksek3000300030000Hayı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'ın GetRender() 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

  1. SetMaxBufferSplat() en başta, tercihen GetRender() ö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.
  2. SetFullRenderSplat() yalnızca PC/Mac SingleRender modunda etkilidir ve Load() öncesinde ayarlanmalıdır.
  3. 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.

ParametreTürAçıklama
_countintGlobal 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.

ParametreTürAçıklama
_countint3DGS 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).

ParametreTürAçıklama
_countint3DGS 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.
  • SetMaxBufferSplat ile 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.

ParametreTürAçıklama
lodintBaş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 totalLevels değ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.

ParametreTürAçıklama
ssefloatAlt 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.

ParametreTürAçıklama
_renderAllboolTam 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:

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