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

LCC for UE Kullanım Kılavuzu

3DGS Görüntüleme Mekanizması ve Video Belleği Yönetimi

Bölüm 06 / 26Kılavuz sürümü v3.5.0Türkçe

Bu belge, verilerin görüntülemeye katılmak üzere video belleğine nasıl girdiğini; ayrıca video belleğinin tahsis kurallarını ve kapasite sınırlarını açıklar. Görüntü parametrelerini ayarlamak için Görsel Ayarlar bölümüne bakın. Yükleme işlemleri için Hızlı Başlangıç bölümüne bakın.

Terminoloji: Veriler bölündükten sonra yükleme ve görüntülemenin en küçük birimine düğüm (Node) denir. Her düğümün hassasiyeti Level ile belirtilir: Level 0 en yüksek hassasiyete sahiptir, daha büyük bir Level ise daha düşük hassasiyet anlamına gelir. Bu tanımlar Performans Parametreleri ile aynıdır.

Parçalı Görüntüleme ve Tam Yükleme Görüntüleme

Veriler yüklendikten sonra iki şekilde görüntülenebilir: görünür düğümleri ihtiyaca göre yüklemek (parçalı görüntüleme) veya tüm veri kümesini tek seferde yüklemek (tam yükleme görüntüleme). Varsayılan davranış işlem hattına göre değişir:

Not: Bu belgede "parçalı", verilerin mekansal düğümlere bölünüp ihtiyaca göre yüklenmesi anlamına gelir. Bu, karoların ekran pikselleri karoları olduğu Karo tabanlı rasterleştirme yönteminden farklıdır. Biri verilerin video belleğine nasıl girdiğini, diğeri bellekteki verilerin nasıl çizildiğini belirler. İkisi birbirinden bağımsızdır.

HatFormatlarVarsayılan mod
LCC2.lcc2 / .ply / .spz / .sogParçalı görüntüleme
LCC.lccTam yükleme görüntüleme; veri eşiği aştığında parçalı görüntülemeye geçer

Parçalı Görüntüleme

Veriler mekansal düğümlere bölünür ve her düğüm birkaç Level içerir. Her kare şu şekilde işlenir:

Traversal (filter visible nodes by camera position and orientation, pick a Level for each node)
      │
      ▼
Load (read the data of the selected nodes into memory)
      │
      ▼
Upload (submit the data to video memory)
      │
      ▼
Render

Yakındaki düğümler düşük Level, uzaktaki düğümler yüksek Level kullanır; görünmeyen düğümler yüklenmez. Görüş alanından çıkan düğüm hemen serbest bırakılmaz, önbellekte tutulur; böylece yeniden görüş alanına girdiğinde doğrudan kullanılabilir. Video belleği yetersiz kaldığında, son görüntüleme zamanı gibi koşullara göre en az yakın zamanda kullanılan düğümler çıkarılır. Video belleği kullanımı esas olarak o anda görünen alana bağlıdır; büyük sahnelerin desteklenebilmesinin nedeni budur.

İki işlem hattı çizim komutlarını farklı şekilde gönderir:

HatÇizim gönderimi
LCCHer düğüm ayrı bir çizim olarak gönderilir, bu nedenle çizim çağrıları düğüm sayısıyla birlikte artar
LCC2Görünür tüm düğümlerin verileri tek bir Buffer'da birleştirilir ve tek bir çizimde gönderilir

Parçalı görüntülemenin doğal maliyetleri:

  • Komşu düğümlere farklı Level değerleri atanabilir; bu nedenle sınırda yoğunluk ve keskinlik farklılaşır ve düğüm kenarları görünür hale gelir
  • Kamera hareket ederken Level geçişleri sürekli olur ve ani detay değişimine (popping) neden olabilir

Tam Yükleme ile Görüntüleme

Kameraya dayalı düğüm filtreleme adımı atlanır. Tüm veri kümesi tek seferde yüklenir ve video belleğinde kalıcı olarak tutulur; bu nedenle kameranın hareket etmesi artık dolaşma (traversal) veya Level seçimini tetiklemez.

Avantajlar:

  • Tüm sahne tek bir Level kullanır; bu nedenle düğümler arasında Level farkı olmaz ve düğüm kenarları görünmez
  • Veri video belleğinde kalıcı olduğundan kamera hareketi yükleme, bırakma veya ani detay değişimine yol açmaz
  • Kare başına dolaşma ve yükleme yükü ortadan kalkar, kare hızı daha kararlı olur

Bedeli, tüm verinin video belleğinde kalıcı olmasıdır; kullanım sahne boyutuyla doğrusal olarak artar, bu nedenle yalnızca küçük sahnelere uygundur.

Tam Yükleme Ölçütleri

Tam yükleme ile görüntülemenin kullanılıp kullanılmayacağı, yükleme sırasında Use Full Load anahtarı ve Level 0 splat sayısı ile belirlenir:

Load(data file)
      │
      ▼
Read the Level 0 splat count
      │
      ▼
Use Full Load enabled? ── No ──▶ Chunked rendering
      │ Yes
      ▼
Splat count ≤ Full Load Splat Number? ── No ──▶ Chunked rendering
      │ Yes
      ▼
   Full load rendering

Her iki özellik de Actor'ün Details panelinde Performance kategorisi altında yer alır:

ÖzellikAçıklama
Use Full LoadTam yükleme ile görüntülemeye izin verilip verilmediği
Full Load Splat NumberTam yükleme ile görüntülemeye izin veren Level 0 splat sayısının üst sınırı (birim: 10.000, varsayılan 1500)

Varsayılan değerler Actor türüne göre farklılık gösterir:

ActorUse Full Load varsayılanıNeden
ALCCActorEtkinDüğümler arasındaki Level farkları belirgindir ve düğüm kenarları görünür; ayrıca her düğüm bir draw call maliyeti getirir, bu nedenle tam yükleme ile görüntüleme küçük sahnelerde daha iyi görünür
ALCC2Actor / APlyActor / ASpzActor / ASogActorDevre dışıLevel geçişi ekran uzayı hatasına göre sürekli gerçekleşir ve düğüm kenarları belirsizdir; yalnızca bir draw call gerekir, bu nedenle isteğe bağlı yükleme varsayılan olarak daha fazla video belleği tasarrufu sağlar

LCC2'de Tam Yükleme ile Görüntüleme Ne Zaman Elle Etkinleştirilmeli

LCC2 işlem hattı tam yükleme ile görüntülemeyi varsayılan olarak devre dışı bırakır. Aşağıdaki durumlarda elle etkinleştirin:

  • Sahne boyutu sınırlıdır, video belleği yeterlidir ve hem görüntü kalitesi hem de kare hızı kararlı kalmalıdır
  • Kamera hızlı hareket eder veya sık sık ışınlanır, düğüm yükleme yetişemez ve boşluklar ya da ani detay değişimi görülür
  • Ürün düzeyinde sunumlar, ekran kayıtları, sekans görüntüleme ve yükleme sırasında görüntü değişikliklerinin kabul edilemez olduğu diğer durumlar
  • Düğüm sınırlarındaki yoğunluk farkları hâlâ görünür durumdadır

Etkinleştirdikten sonra video belleği yetersiz kalırsa veya kare hızı düşerse, sahne tam yükleme ile görüntülemenin uygun olduğu aralığı aşmış demektir; parçalı görüntülemeye geri dönün.

Not: Tam yükleme ile görüntüleme de maksimum görüntüleme mesafesine tabidir. Kamera ile veri arasındaki mesafe bu değeri aşarsa hiçbir şey görüntülenmez.

Video Belleği Bütçesi ve Kapasite Sınırları

LCC2 işlem hattı, kalıcı splat verilerini görüntüleme için tek bir Buffer'da birleştirir; bu nedenle tek bir modelin yükleyebileceği veri miktarı bu Buffer'ların kapasite sınırlarına bağlıdır.

Buffer Yapısı ve Splat Başına Bellek Kullanımı

Veriler iki Buffer'da saklanır:

BufferSplat başına bellek kullanımıContent
Gaussian temel veri Buffer'ı40 baytKonum, dönüş, renk, ölçek
Küresel harmonikler Buffer'ı12 / 27 / 48 baytKüresel harmonik katsayıları; yalnızca bunları taşıyan veriler için ayrılır

Küresel harmonikler Buffer'ı, verilerde fiilen saklanan band sayısına göre ayrılır: band 1 için 12 bayt, band 2 için 27 bayt ve band 3 için 48 bayt. Düşük band'li veriler en yüksek band için yer ayırmaz; böylece aynı video belleği daha fazla splat tutar.

Tek Bir Buffer'ın Katı Sınırı

Unreal, Buffer boyutlarını 32 bit tamsayı olarak kaydeder; bu da 4 GB'lık kuramsal bir sınır verir. Eklenti fiilen 4095 MB kullanır (4 GB'tan 1 MB az); ayrılan pay, yükleme sırasında bayt hesaplamalarının taşmasını önler. Bu sınır her Buffer için ayrı ayrı geçerlidir ve ayarlarla yükseltilemez.

Video Belleği Bütçesi Ayarı

Tek bir .lcc2 modelinin video belleğinde kalıcı tutabileceği miktar, ProjectSettings > Plugins > LCC4Unreal altındaki LCC2 GPU Memory Budget (MB) ile denetlenir:

ÖğeDeğer
Varsayılan2048 MB
Ayarlanabilir aralık2048 ~ 8192 MB
GeçerlilikDeğiştirdikten sonra editörü yeniden başlatın

Bütçe, tek bir Buffer'ın sınırı değil, iki Buffer'ın toplamıdır. Bu nedenle band 3 küresel harmonik verisi splat başına 88 bayt (40 + 48) sayılır; bunlar olmayan veriler 40 bayt sayılır.

Bu bütçe, akışlı yüklemenin kalıcılık penceresini sınırlar; bu nedenle yalnızca düğümleri içeri ve dışarı takas edebilen .lcc2 için geçerlidir. Tek dosyalı biçimlerin (.ply / .spz / .sog) tamamı bellekte kalıcı olmalıdır ve kendi kapasite kuralları vardır; bkz. Tek Dosyalı Biçimlerin Yükleme Sınırları.

Sıralama Buffer'ının Ek Maliyeti

3DGS görüntülenmeden önce splat'ler kameraya olan uzaklıklarına göre sıralanır. Sıralama sonucu görüşe bağlıdır, bu nedenle her görüş kendi sıralama Buffer'ları kümesine ihtiyaç duyar. Bu kısım yukarıdaki bütçeye dahil değildir: kalıcı her splat, görüş başına ek 16 bayt maliyet getirir (sıralama anahtarı ve dizinin ikişer kopyası; sıralama sırasında dönüşümlü okuma ve yazma için kullanılır).

2048 MB bütçe ve küresel harmonik taşıyan verilerle yaklaşık 24,4 milyon splat kalıcı olarak tutulabilir; tek bir görüş için sıralama Buffer'ı yaklaşık 372 MB olur.

Stereo görüntülemenin sol ve sağ gözü, bölünmüş ekrandaki her oyuncu ve her SceneCapture birer görüş sayılır. Görüş sayısı arttıkça sıralama Buffer'ları büyür ve görüş sayısı düştükten sonra küçülmez; bu nedenle ortaya çıkan en yüksek görüş sayısı için video belleği ayırın.

Tek Dosyalı Biçimlerin Yükleme Sınırları

Tek dosyalı biçimler .ply / .spz / .sog biçimleridir; yani tüm veri kümesini düğüm bölümlemesi veya Level bilgisi olmadan tek dosyada tutan biçimlerdir. Bu tür veriler parça parça yüklenemez: eklenti bunu yalnızca tek bir düğüm olarak tek geçişte çözebilir ve tamamını video belleğinde kalıcı tutar; bu nedenle kesin bir splat sayısı sınırı vardır. .lcc ve .lcc2 düğüm bölümlemesini dışa aktarma sırasında zaten tamamlar ve tek dosyalı biçim değildir.

Sınır Nasıl Hesaplanır

Tek dosyalı biçimlerin sınırı LCC2 GPU Memory Budget ile sınırlanmaz. Bu bütçe, düğümlerin içeri ve dışarı takas edilebildiği .lcc2 için anlamlı olan akışlı yüklemenin kalıcılık penceresini belirler. Tek dosya, tamamen bellekte kalıcı olması gereken tek bir düğümdür; aynı sayının uygulanması, onu grafik kartının rahatça tutabileceği modelleri reddeden yapay bir üst sınıra dönüştürürdü. Bu nedenle tek dosyanın kapasitesi doğrudan donanıma göre belirlenir ve bütçeyi değiştirmek bunu etkilemez.

Eklenti sınırı yüklemeden önce hesaplar ve sınırı aşan verileri reddeder. Sınır, aşağıdaki iki koşuldan küçük olanıdır:

KoşulAçıklama
Tek Buffer sınırı4095 MB değerinin splat başına adıma (stride) bölünmesiyle bulunur (küresel harmoniksiz 40 B; bunlarla birlikte gerçek band sayısına göre 12 ~ 48 B)
Fiilen kullanılabilir video belleğiKartta o anda kullanılabilir video belleğinin %90'ı; motor ve sürücü için pay bırakılır

Video belleği, sıralama Buffer'ının 16 baytı dahil, splat başına fiziksel maliyet üzerinden ölçülür. Kartın belleğinin sorgulanamadığı platformlarda tahmini bir değer kullanılmaz; yalnızca tek Buffer sınırı uygulanır.

Küresel harmonik bant sayısı kapasiteyi doğrudan değiştirir: Bant 1 verisinde küresel harmonik adımı 12 bayttır; bu, Bant 3'ün (48 bayt) dörtte biridir. Dolayısıyla aynı kart belirgin biçimde daha fazla splat tutar. Eklenti, her zaman en geniş 48 baytı varsaymak yerine veride gerçekten saklanan bant sayısıyla hesaplama yapar.

Sınır Aşıldığında Ne Olur

Tek dosyalı veri sınırı aştığında yükleme reddedilir. Output Log, gerçek splat sayısını ve geçerli sınırı yazdırır; ayrıca sınırın tek Buffer kısıtından mı yoksa kullanılabilir video belleğinden mi kaynaklandığını belirtir. Aşağıdaki sırayla ilerleyin:

  1. .lcc2 biçimine dönüştürün. Eklenti her şeyi bellekte tutmak yerine veriyi gerektiğinde yükler; toplam veri hacmi artık bu sınıra tabi olmaz.
  2. Küresel harmonik bant sayısı daha düşük olan veya hiç içermeyen verilere geçin. Bu, splat başına video belleği maliyetini düşürür.
  3. Video belleği daha yüksek bir karta geçin. Darboğaz kullanılabilir video belleği olduğunda sınırı yükselten tek donanım önlemi budur.

.sog veya .spz biçimine geçmek sınırı aşmaya yardımcı olmaz: Bu biçimlerin sıkıştırması yalnızca diskteki dosya için geçerlidir ve çözüldükten sonra her splat video belleğinde tamamen aynı miktarda yer kaplar.

LCC2 Biçimi Bu Sınıra Tabi Değildir

.lcc2 veriyi birden fazla düğüme böler; her düğüm ayrı ayrı çözülür ve yüklenir. Tek bir düğüm yukarıdaki sınırların çok altında kalır. Bu nedenle toplam veri miktarının kesin bir sınırı yoktur ve video belleği bütçesini önemli ölçüde aşabilir. Kısıtlanan iki çalışma zamanı değeri vardır:

Kısıtlanan DeğerSınırın KaynağıAşıldığında Davranış
Aynı anda bellekte tutulan splat sayısıVideo belleği bütçesi ve tek Buffer sınırıEn uzun süredir kullanılmayan düğümler çıkarılır ve düğümler bellekten çıkarılıp yeniden yüklenir
Tek karede görüntülenen splat sayısıYaklaşık 89 milyon (4095 MB ÷ 48 B)Uzaktaki düğümler mesafeye göre atılır

Kare başına görüntüleme miktarı, Actor üzerindeki Max Splat Num ile de sınırlanır; ikisinden küçük olanı geçerlidir.

Video Belleği Yönetimi ve Ayarlama

Video Belleği Azaldığında Otomatik Serbest Bırakma

Eklenti, çalışma sırasında ekran kartının gerçek video belleği kullanımını sürekli izler. Kullanım, ProjectSettings içindeki Max GPU Usage Percentage For Release ile belirlenen yüzdeyi aştığında düğümler son görüntüleme zamanı, erişim sıklığı, veri boyutu ve Level değerinin birleşimine göre sıralanır; en uzun süredir kullanılmayanlar önce serbest bırakılır. Görünüm hızla çevrildiğinde büyük boşluklar oluşmaması için yüksek Level düğümleri korunur.

İlgili ayarlar:

AyarlarAçıklama
Max GPU Usage Percentage For ReleaseOtomatik serbest bırakmayı tetikleyen video belleği kullanım yüzdesi (50 ~ 100%)
GPU Release PercentageHer tetiklemede serbest bırakılan veri yüzdesi (10 ~ 100%)
LCC2 GPU Memory Budget (MB)Tek bir modelin splat verisi için video belleği bütçesi

Yetersiz Bütçeyi Teşhis Etme ve Ayarlama

Çok küçük bir bütçe yükleme hatasına yol açmaz; bunun yerine veri tekrar tekrar bellekten çıkarılıp yeniden yüklenir. Yaygın belirtiler:

  • Kamera hareket ederken veya dönerken boşluklar oluşur ve durduktan sonra yavaş yavaş dolar
  • Görünüm sağa sola sallanırken aynı bölge tekrar tekrar netleşir ve bulanıklaşır
  • Yerel bir alan bulanık kalır ve yaklaşıldığında bile netleşmez
  • Kare hızı görünümdeki içerik miktarına göre dalgalanır ve açık görünümlerde belirgin biçimde düşer
  • Sahne durağan olduğunda davranış normaldir, ancak hareket sırasında takılmalar olur

Yerel bulanıklık kolayca düşük veri kalitesi sanılabilir. Düşük Level verisi zamanında yüklenemediğinde eklenti, görüntüde eksik bölge kalmaması için boşluğu video belleğindeki yüksek Level verisiyle doldurur; düşük Level verisi hazır olunca bunu değiştirir. Yetersiz video belleği düşük Level verisinin tekrar tekrar çıkarılmasına neden olduğunda o alan yüksek Level'da kalır. Ölçüt, yaklaşıldığında netleşip netleşmediğidir: Normalde bir iki saniye dolması için yeterlidir; hiç değişmiyorsa düşük Level verisi video belleğine giremiyor demektir.

Doğrulama: Yükleme sırasında Output Log'a yazdırılan modelin tahmini maliyetini kontrol edin ve geçerli bütçeyle karşılaştırın. Tek bir modelin tahmini maliyeti bütçeye yaklaşıyor veya bütçeyi aşıyorsa bellekte tutulacak alan yetersizdir. Serbest bırakma sayısı stat LCC ile de izlenebilir; sürekli artan bir değer sık sık veri çıkarıldığını gösterir.

Bütçeyi artırmak yalnızca ekran kartında boş kapasite varsa işe yarar. Bütçe, eklentinin istediği üst sınırdan ibarettir; kartta gerçekten kullanılabilir olan video belleğini aştığında sürücü veriyi sistem belleğine aktarır ve kare hızındaki düşüş, veriyi çıkarıp yeniden yüklemeden daha kötü olur. Aşağıdaki sırayla ilerleyin:

  1. Kartta kullanılabilir video belleğini doğrulayın. Sıralama Buffer'ının maliyeti eklendikten sonra bütçe, motorun kendisi ve diğer kaynaklar için pay bırakmalıdır.
  2. Bütçeyi adım adım artırın (2048 → 4096 → 8192) ve her yeniden başlatmadan sonra boşlukların ve kare hızının iyileşip iyileşmediğini kontrol edin.
  3. İyileşme azsa darboğaz bütçe değildir; bunun yerine veri hacmini azaltın: Max Splat Num değerini düşürün, Max Distance sınırını etkinleştirin veya küresel harmonik içermeyen verilere geçin.

Not: Bütçe her model için ayrı hesaplanır. Sahneye birden fazla LCC Actor yerleştirildiğinde video belleği kullanımı model sayısıyla birlikte artar; bu nedenle model başına bütçeyi buna göre düşürün.

Path Tracing Görünümünde 3DGS Gösterme

Yalnızca LCC2 işlem hattı (yani .lcc2 / .sog / .spz / .ply), UE 5.4 ve üzeri.

⚠️ Bu özellik yalnızca 3DGS'yi görünür kılar; 3DGS, path tracing işlem hattına katılmaz.

Yalnızca tek bir sorunu çözer: Path Tracing view mode içinde 3DGS'yi görmeye devam etmenizi sağlar. Daha önce path tracing görünümü rasterize edilmiş temel geçişi atlıyordu ve 3DGS rasterizasyon yolundan geçtiği için bu görünüme geçildiğinde kayboluyordu. Bu özellik, 3DGS'yi path tracing ile oluşturulan görüntünün üzerine ışıksız (Unlit) olarak birleştirir ve yalnızca derinlik örtüşmesi uygular.

Bu, "3DGS path tracing / ray tracing destekler" anlamına gelmez: 3DGS path tracing işlem hattına girmez, path tracing ışınları göndermez veya almaz; GI, yansıma, kostik, yumuşak gölge ya da başka hiçbir path tracing efekti üretmez. Rengi, verinin içine işlenmiş orijinal renkten ibarettir. Path tracing yalnızca sahnedeki normal geometriye uygulanır; 3DGS her zaman nihai görüntünün üzerine "yapıştırılan" ışıksız bir katmandır.

Tamamen Otomatik, Eklentide Ayar Gerekmez

Eklenti, geçerli görünümün path tracing görünümü olup olmadığını otomatik olarak algılar ve bindirmeyi uygular; eklenti anahtarı gerekmez. Aynı mekanizma, RayTracing Debug gibi rasterize edilmiş görüntünün yerini alan görüntüleme modlarını da kapsar.

Adımlar

  1. Donanım ve proje ön koşullarını doğrulayın (UE'nin kendisi için gereklidir): GPU donanım ışın izlemeyi (RTX / DX12) desteklemelidir ve Project Settings → Rendering altında hem Ray Tracing hem de Path Tracing etkin olmalıdır (etkinleştirdikten sonra editörü yeniden başlatın).
  2. Görünüm alanının sol üstündeki View Mode menüsünden Path Tracing seçeneğine geçin.
  3. Bir LCC2 sahnesini her zamanki gibi yerleştirin veya yükleyin; 3DGS otomatik olarak bindirilir.
Path tracing görünümünde bindirilmiş 3DGS

Path Tracing görünüm modunda bindirilmiş 3DGS (ışıksız, yalnızca bindirme)

Not: 3DGS ve yol izlemeli geometri birbirlerine karşı derinlik testine tabi tutulur. Bu nedenle örtme doğru çalışır (yakın olan görünü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