Bölüm 6 — Eğitim Yapılandırması

Tipik bir Preset-JSON dışa aktarımı. Üst düzey alanlar: id (UUID), name, (classic | mcmc | sceneClass | custom), (Şema sürümü), (Zaman damgası), (Serbest metin). İç içe geçmiş -nesnesi, yeniden üretilebilirlik açısından kritik olan parametreleri içerir — içe aktarma sırasında tüm blok eğitim yapılandırmasına okunur ve uygulama sürümünün varsayılan değerleri, JSON'da eksik olan alanları doldurur (örn. bir uygulama güncellemesinden sonra). Bir ön ayarı başka bir Mac'e aktarmak isteyen kişi, sadece bu JSON dosyasını gönderir.
Eğitim yapılandırması, RadianceKit'teki her eğitim sürecinin kalbidir. Eğitimi etkileyen her parametreyi bir araya getirir — maksimum iterasyon sayısından sekiz öğrenme oranına, MCMC, Mip-Splatting, Curriculum ve sahneye duyarlı (scene-aware) Cap mantığı için özel alanlara kadar. Bu ayarları kenar çubuğundaki Eğitim Yapılandırması Bölümü'nde (Expert View) düzenlersin, bir Preset olarak kaydedersin veya bir JSON dışa aktarımı olarak başka bir Mac'e iletirsin. Eğitim sırasında tam olarak bu nesne donduruluyor ve GPU arka ucuna veriliyor.
Bu bölüm, ileri düzey kullanıcılar için referans materyalidir. Eğitim yapılandırmasının ayarlanabilir 80 alanını, birlikte gelen 9 ön ayarı ve Gaussian Cap'in sahneye bağlı çözümlenmesini listeler. Şüpheye düşüldüğünde seçilen Preset'in belirlediği değer geçerlidir — bunu Inspector'da veya Preset'in JSON dışa aktarımında görebilirsin.
İçindekiler:
+ İterasyon (T1–T2) + Öğrenme Oranları (T3–T10) + Densification — Klasik (T11–T16) + Kayıp (T17–T20) + SH-Degree-Progression (T21) + Performans (T22–T24) + Teşhis ve Nokta Bulutu Hazırlığı (T26–T30) + Düzenlileştirme (T31–T37) + İyileştirme (T38–T44) + Sky-Dome (T45–T48) + Adam + LR-Schedule (T49–T55) + Son İşleme + Apple AI (T56–T60) + MCMC-Densification (T61–T73) + Mip-Splatting (T74–T76) + Adaptif Densification (T77–T79) + Curriculum (T80–T81) + Statik Presetler (TP1–TP9) + Uygulama Gaussian Cap'i nasıl belirler + Hangi alan ne işe yarar? (Cheat-Sheet) + Tehlikeli Alanlar
Iterasyon (T1–T2)
T1maxIterations
DETAYLAR
Varsayılan: 30 000 (Initializer), 35 000 (.full), 200 000 (.fullMCMC) Aralık: 1 000 – 500 000 (UI kaydırıcısı), mantıkta sabit bir üst sınır yok
TEKNİK
Backend'in gerçekleştirdiği toplam eğitim iterasyonu sayısı. Bir iterasyon; tek bir eğitim kamerasının ileri yönlü render işlemini, tüm loss bileşenleri (L1 + SSIM + isteğe bağlı düzenlileştirmeler + Sky-Mask) üzerinden geri yayılım geçişini ve bir Adam-Optimizer adımını ifade eder. Bu sayı diğer zamanlamaları doğrudan etkiler: Konum öğrenme oranı, 0'dan T1'in kendisine ya da T50 positionLRScheduleEndIteration'a kadar Cosine-Annealing eğrisini izler; Densification, T2 densifyUntilIteration noktasında durur; MCMC-Noise-Decay, T69 mcmcNoiseDecayEnd noktasında sona erer; SH-Degree yükseltmeleri, T21'de tanımlanan üç işaret noktasında gerçekleşir. Klasik densification'da kanıtlanmış aralık 20 000–35 000 iterasyon iken, MCMC'de 60 000–200 000'dir. Preset'lerde belirtilen değerlerin çok üzerine çıkmak nadiren ek kalite getirir — Adam-Momentum doyuma ulaşır ve LR-Decay sonu olmadan loss durağanlaşır. Tersine, ~5 000'in altına inmek yetersiz yakınsamış geometrilere yol açar (Density-Control'ün klonlama/bölme için yeterince zamanı olmaz).
T2densifyUntilIteration
DETAYLAR
Varsayılan: 15 000 (Initializer), 5 000 (.full), 160 000 (.fullMCMC) Aralık: 0 – T1 maxIterations
TEKNİK
Densification'ın durduğu iterasyon. Bu noktaya kadar Gaussian'lar T11–T16 (Classic) veya T67–T70 (MCMC) içinde parametrelendirilen kurallara göre klonlanır, bölünür ve budanır; bundan sonra Gaussian sayısı sabit kalır ve yalnızca konumlar, rotasyonlar, ölçekler, opaklıklar ve SH katsayıları optimize edilmeye devam eder (Refinement aşaması). Orijinal 3DGS makalesinde bu değer T1'in %50'sinde yer alırken, RadianceKit'in .full preset'inde sadece ~%14'tür (35 000'in 5 000'i): Yaklaşık 5 000 iterasyondan sonra ek densification sonucu iyileştirmek yerine kötüleştirir — daha fazla floater, daha fazla bellek ihtiyacı, kalite kazancı yok. MCMC ise relocation'ın T1'in %80'ine kadar sürmesine izin verir, çünkü MCMC zararlı floater'lar üretmez. T2 çok küçük seçilirse (< 1 000), çok az Gaussian oluşur; Classic'te çok büyük seçilirse (T1'in > %50'si) Overgrowth ve RGB-Saturation-Outlier'lara yol açar (bkz. Outdoor-Overtraining bulguları).
Öğrenme Oranları (T3–T10)
T3positionLearningRate
DETAYLAR
Varsayılan: 0.00016 Aralık: 1e-7 – 1e-3 (önerilen)
TEKNİK
Her Gaussian'ın XYZ konumu için eğitim başlangıcında (iterasyon 0) kullanılan Adam öğrenme oranı. Bir Cosine-Annealing eğrisini takip eder ve eğitim ilerledikçe T4 positionLearningRateFinal değerine düşer. Varsayılan değer 0.00016, 3DGS orijinal makalesinden (Kerbl vd.~2023) gelir ve RadianceKit'te görüntü çözünürlüğü artırılsa bile ölçeklenmemesi gerekir — konum piksel uzayında değil, dünya koordinat sisteminde hareket eder. Belirgin bir artış (> 0.0005), Gaussian'ların uzun mesafelerde sıçramasına ve loss'un kararsız hale gelmesine yol açar; bunun oldukça altındaki değerler (< 0.00005) ise yanlış başlatılmış nokta bulutlarının hiçbir zaman doğru yerlerini bulamamasına neden olur. Sahnelerin büyük çoğunluğu için standart değer bu yüzden doğru seçimdir. Şuna dikkat et: .fullMCMC içinde bu değeri bilinçli olarak varsayılanda bırakıyoruz — MCMC, relocation mantığı için sabit öğrenme oranlarına ihtiyaç duyar, dolayısıyla burada ayarlama yapmanın bir faydası yoktur.
T4positionLearningRateFinal
DETAYLAR
Varsayılan: 0.0000016 (Initializer + makale), 0.000016 (.full, .fullMCMC — 10× daha yüksek) Aralık: 0 – T3 positionLearningRate
TEKNİK
Konum LR Cosine-Annealing eğrisinin son değeri. Bu değere ya T1 maxIterations'ta ya da ayarlanmışsa T50 positionLRScheduleEndIteration'da ulaşılır. RadianceKit'in .full preset'i 0.000016 kullanır — yani makalenin varsayılan değeri 0.0000016'nın 10 katı. Hem belirgin şekilde daha küçük bir bitiş değeri hem de belirgin şekilde daha büyük bir başlangıç değeri sonucu gözle görülür şekilde kötüleştirir. Yüksek son değer bir taviz değil, bilinçli bir tercihtir: çok güçlü bir decay durumunda Gaussian'lar refinement aşamasında yeni eklenen densification adaylarına uyum sağlama yeteneklerini kaybeder. Schedule aşaması kısaltılabilir (T50 < T1), böylece T4'e eğitim bitmeden önce ulaşılır ve eğitimin geri kalanı sabit mini-LR ile devam eder — tipik yapılandırma: T50 = 20 000, T1 = 35 000, yani refinement 15 000 iterasyon boyunca 0.000016'da gerçekleşir.
T5shDCLearningRate
DETAYLAR
Varsayılan: 0.0025 (Initializer + makale), 0.005 (.full ve tüm MCMC preset'leri — 2×) Aralık: 0.0001 – 0.05
TEKNİK
Spherical-harmonic rengin DC bileşeni (derece 0, yani sabit albedo) için Adam öğrenme oranı. SH-DC, bir Gaussian'ın yön bağımsız temel tonuna karşılık gelir, bir bakıma „temel renk". RadianceKit, Quality preset'lerinde makale varsayılanını ikiye katlar — bu renk yakınsamasını hızlandırır, ki bu kısa eğitimlerde (5 000 iterasyondan az) gereklidir çünkü aksi halde SH-DC şekle giremez. Geometrik LR'lerin aksine, SH-DC'de decay yoktur; öğrenme oranı tüm iterasyonlar boyunca sabit kalır (veya sadece T51'deki opsiyonel extended-phase-decay'i takip eder). Belirgin şekilde daha yüksek değerler (yaklaşık 0.01) sonucu yeniden kötüleştirir ve renklerin kararsız hale gelmesine yol açar.
T6shRestLearningRate
DETAYLAR
Varsayılan: 0.000125 (Initializer + makale), 0.00025 (.full ve MCMC — 2×) Aralık: 0.000001 – 0.005
TEKNİK
Yüksek dereceli SH katsayıları için Adam öğrenme oranı (derece 1, 2, 3 — yani parlama noktaları, yansımalar ve yumuşak gölgelendirmeden sorumlu, görüş yönüne bağlı renk bileşenleri). Makale kuralına göre T5'ten 20× daha küçüktür, çünkü bu katsayılar sayı olarak karesel büyür (derece 1 için 3, derece 2 için 5, derece 3 için 7 → Gaussian başına toplam 15 float) ve daha küçük bir öğrenme oranı olmadan görüntüyü aşırı doyurur. İki adımda etkinleştirilir — T21 shDegreeUpgradeIterations'daki ilk işarete kadar sadece derece 0 aktiftir (yani sadece T5), sonra 1, daha sonra 2, en sonunda 3. Burada düşük değerler özellikle çok fazla yaygın (diffuse) aydınlatma içeren sahnelerde önemlidir; çok parlak yüzeylerde (araba boyası, su) üzerinde oynamaya değmez — SH gösteriminin kendisi zaten sınırlıdır.
T7opacityLearningRate
DETAYLAR
Varsayılan: 0.05 (Initializer + makale), 0.1 (.full, MCMC — 2×) Aralık: 0.001 – 1.0
TEKNİK
Her Gaussian'ın logit-opaklığı için Adam öğrenme oranı. Uygulama opaklığı sınırsız bir float değeri olarak saklar ve sigmoid ile [0, 1] aralığına dönüştürür; LR logit uzayında etki eder. Quality preset'leri makale varsayılanını 0.1'e ikiye katlar; bu pruning'i daha verimli hale getirir — ölü Gaussian'lar T14 pruneOpacityThreshold'un altına daha hızlı düşer. Hangi değerin en iyi sonucu verdiği bu noktada Adam yapılandırmasına bağlıdır; ikisinin etkileşimi hiç de basit değildir. Düşük değerler (< 0.01), „ölü" Gaussian'ların sonsuza kadar ortada kalıp bellek tüketmesine yol açar; çok yüksek değerler (> 0.5) ise opaklık patlamasına neden olabilir, bu yüzden optimizer logit değerini kesin olarak [-15, 3] aralığında sınırlar.
T8opacityLearningRateFinal
DETAYLAR
Varsayılan: 0.0 (= „decay yok") Aralık: 0 veya 0.001 – T7 opacityLearningRate
TEKNİK
Opaklık LR'si için opsiyonel cosine-decay son değeri. 0.0 ise decay devre dışıdır ve opaklık LR'si tüm eğitim boyunca T7'de sabit kalır. 0,1'den 0,01'e bir decay sonucu belirgin şekilde kötüleştirir; bu yüzden varsayılan „kapalı" olarak ayarlanmıştır. Bu alanın arkasındaki hipotez şu: refinement aşamasında sabit opaklık LR'si salınıma yol açabilir, öyle ki doğru şeffaflık derecesine zaten ulaşmış splat'lar rastgele gradient dalgalanmaları nedeniyle yeniden kaydırılabilir. Deneysel olarak bu doğrulanmıyor — logit-clamping mantığı bunu zaten önlüyor. Bu alan gelecekteki deneyler için mevcut kalır; çok uzun MCMC çalışmaları da (> 500K iterasyon) bundan faydalanabilir.
T9scaleLearningRate
DETAYLAR
Varsayılan: 0.005 (Initializer + makale), 0.01 (.full, MCMC — 2×) Aralık: 0.0001 – 0.1
TEKNİK
Her Gaussian'ın log uzayındaki üç ölçek bileşeni için Adam öğrenme oranı (RadianceKit, ölçeklerin pozitif kalması için log(scale) saklar). Makale varsayılanı 0.005, RadianceKit'te ayarlanmış öğrenme oranı yapılandırmalarında daha iyi ölçek yakınsaması için 0.01'e ikiye katlanmıştır. Değer, diğer Quality öğrenme oranlarıyla birlikte makale varsayılanında kalırsa, gözle görülür şekilde çok az Gaussian oluşur — density-control klonlama yapamaz, çünkü ölçek güncellemeleri yeterince hızlı takip edemez. Ölçek, her Gaussian'ın genişliğini kontrol eder — çok hızlı öğrenme „iğne" Gaussian'lara (aşırı uzun ince splat'lar, bkz. T34 scaleRatioPruneThreshold) yol açar, çok yavaş öğrenme ise splat'ların çok kompakt kalmasına ve density-control'ün çok sık split yapmak zorunda kalmasına neden olur.
T10rotationLearningRate
DETAYLAR
Varsayılan: 0.001 (Initializer + makale), 0.002 (.full, MCMC — 2×) Aralık: 0.0001 – 0.05
TEKNİK
Her Gaussian'ın dört quaternion bileşeni için Adam öğrenme oranı. Quaternion, her optimizer adımında Adam güncellemesinden sonra yeniden normalize edilir (L2-norm = 1) — aksi halde kovaryans matrisi dejenere olurdu. RadianceKit, Quality preset'lerinde makale varsayılanını ikiye katlar, çünkü rotasyon, ölçek/konuma kıyasla daha küçük mutlak gradient büyüklüklerine sahiptir (birim küre üzerinde her adım kısa kalır) ve 2× olmadan rotasyon 35 000-iterasyon penceresinde belirgin şekilde yetersiz yakınsamış olurdu. NeRF-Blender sahnelerinde (Lego, Chair) rotasyon özellikle etkilidir — nesnelerin kenarları ancak 5 000–10 000 iterasyondan sonra düzgün hizalanır.
Densification — Classic (T11–T16)
T11densifyGradThreshold
DETAYLAR
Varsayılan: 0.000002 (Initializer, 0.5× çözünürlük için kalibre edilmiş), 0.0000011 (.full, 1.0× için kalibre edilmiş), 0.000004 (.quickTest, 0.25× için kalibre edilmiş), 2e-7 (.fullClassicPaper) Aralık: 1e-8 – 1e-3 (çözünürlüğe bağlı)
TEKNİK
Ekran uzayına yansıtılmış konum gradyanının L2 normu için eşik değeri; bu değerin üzerinde bir Gaussian klonlama veya bölünme için işaretlenir. Mutlak değer doğrudan eğitim çözünürlüğüne bağlıdır — yaklaşık olarak 1/çözünürlük² şeklinde ölçeklenir (daha fazla piksel = piksel başına daha küçük gradyanlar). Bu nedenle her T22 trainingRenderScale kademesi kalibre edilmiş bir eşik değeri gerektirir: 0.25× → 4e-6, 0.5× → 2e-6, 1.0× → 5e-8 … 1.1e-6 (.full). Paper'daki varsayılan değer olan 0.0002 NDC-normalize edilmiştir ve RadianceKit'in dünya-uzayı pipeline'ında doğrudan karşılaştırılamaz. T52 adaptiveDensifyThreshold bayrağıyla bu değer çalışma zamanında mevcut gradyan dağılımının p98'inden hesaplanabilir — ancak gerçek sahnelerde Gaussian sayısı bu durumda dramatik biçimde çöküyor (kitlesel budama); bu bayrak varsayılan olarak kapalı kalır. T77–T79, rolling median üzerinden alternatif bir adaptif mantık sunar. Bu alan tehlikesiz değildir — değerin yarıya indirilmesi 2–4× daha fazla Gaussian üretir (bellek baskısı, OOM riski); ikiye katlanması ise sahnenin yetersiz densifikasyonuna yol açabilir.
T12densifyFromIteration
DETAYLAR
Varsayılan: 500 Aralık: 100 – 5 000
TEKNİK
Densification'ın etkinleşmeye başladığı ilk iterasyon. Öncesinde yalnızca ilk SfM nokta bulutu üzerinde "çıplak" öğrenme gerçekleşir, yeni Gaussian üretilmez. Varsayılan değer olan 500, 3DGS paper'ından gelir ve başlangıç durumunun stabil hale gelmesi için zaman tanır — eğer densifikasyon 0. iterasyondan itibaren başlarsa, yanlış konumlandırılmış SfM noktaları doğru yerlerini bile bulamadan defalarca klonlanır. Belirgin şekilde daha geç bir başlangıç (örneğin 1 000) sonucu hafifçe kötüleştirir; varsayılan değerde kalın.
T13densifyInterval
DETAYLAR
Varsayılan: 100 (Initializer, MCMC), 200 (.full) Aralık: 50 – 1 000
TEKNİK
İki densification adımı arasında kaç iterasyon olduğunu belirler. Paper'ın varsayılan değeri olan 100'de — her 100 iterasyonda bir densify-aday listesi değerlendirilir, klonlanır/bölünür ve aynı zamanda prune-aday listesi (sigmoid(opacity) < T14 pruneOpacityThreshold) kaldırılır. .full için 200 değerinin işe yaradığı görülmüştür — bu, daha az yeniden düzenleme geçişi çalıştığı için GPU'yu rahatlatır ve her Gaussian'a bir klonlama işleminden sonra yerine oturması için daha fazla zaman tanır. Daha kısa aralıklar Quality kurulumunda aşırı densifikasyona yol açar: görüntü daha iyi hale gelmeden belirgin şekilde daha fazla Gaussian oluşur. MCMC'de aynı alan Relocation-Interval olarak yorumlanır; MCMC'ye özgü mantık için T67 mcmcRelocationInterval'a bakın.
T14pruneOpacityThreshold
DETAYLAR
Varsayılan: 0.005 (Initializer, Paper, MCMC), 0.001 (.full) Aralık: 0.0001 – 0.1
TEKNİK
Bir sonraki densification adımında bir Gaussian'ın silinmesine yol açan sigmoid-opaklık eşiği. T7 opacityLearningRate ve optimizer'daki logit-clamp mantığıyla birlikte etkili olur. .full'da değer 0.005 yerine 0.001'dir — yalnızca sıra dışı bakış açılarında rol oynayan splat'ler bu sayede daha uzun süre korunur ve SH detayına katkı sağlar. Daha da küçük değerler (örneğin 0.0001) artık bir fayda sağlamaz: çok az budama yapılır ve bellek boşa harcanır. Önemli: Density-Control her zaman budama yapmalıdır, buffer kapasitesi başka önlemlerle zaten dolu olsa bile — aksi halde ölü Gaussian'lar birikir ve sayım donar.
T15opacityResetInterval
DETAYLAR
Varsayılan: 3 000 (Initializer + Paper), 100 000 (.full = etkin olarak devre dışı), 200 000 (.fullMCMC = devre dışı) Aralık: 1 000 – 100 000+
TEKNİK
Kaç iterasyonda bir tüm Gaussian'ların opaklığının düşük bir değere (~0.01) sıfırlandığını belirler — "donmuş" splat'leri yeniden değerlendirmek için 3DGS paper'ından gelen bir önlem. RadianceKit'in warmup'ı, stokastik eğitim kurulumu ve iki katına çıkarılmış öğrenme oranlarıyla birlikte opacity-reset gözle görülür şekilde kaliteye mal olur ve optimizer'daki logit-clamp zaten bu işlevi kapsamaktadır. Bu nedenle .full'da pratik olarak devre dışıdır (100 000 > 35 000 = hiç tetiklenmez). .fullClassicPaper'da (paper'a sadık varyant) bilinçli olarak yeniden 3 000'e ayarlanmıştır — orada amaç, orijinal paper'ın Gaussian bütçelerine ulaşmaktır.
T16maxScreenSize
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 (kapalı) veya > 0
TEKNİK
Bir Gaussian'ın zorla bölünmeden önce ulaşabileceği maksimum ekran-uzayı boyutu (yansıtılmış piksel cinsinden). Değer 0'a ayarlanmıştır — RadianceKit'in Density-Control'ü bunun yerine aynı gradyan mantığından gelen dünya-uzayı ölçek eşiğini kullanır. Alan kataloğunda yer almaya devam eder, çünkü Mip-Splatting (T74–T76) veya sahneye özgü splatting stratejileriyle yapılacak gelecekteki deneyler bundan faydalanabilir. Etkinleştirme (0'dan büyük bir değer, örn. 20) ekranda çok büyümüş splat'leri bölünmeye zorlar — tek bir dev splat'in yeterli detay sunmadığı büyük, düz duvar yüzeylerinde önemlidir.
Loss (T17–T20)
T17ssimWeight
DETAYLAR
Varsayılan: 0.2 (Initializer + Paper + .full), 0.05 (tüm MCMC Presetleri) Aralık: 0.0 – 1.0
TEKNİK
Birleşik Loss fonksiyonundaki loss = (1 - λ) * L1 + λ * D-SSIM D-SSIM payının ağırlığı, burada λ = T17. 3DGS-Paper-Varsayılanı olan 0.2, Classic-Densification için doğru seçimdir — 0.3 bile sonucu belirgin şekilde kötüleştirir. MCMC için ise uygun değer 0.05'tir, çünkü MCMC stokastik keşfi nedeniyle daha güçlü bir L1-sinyal payına ihtiyaç duyar — daha yüksek SSIM ağırlıkları Relocation kararlarını sulandırır. SSIM, L1'e kıyasla hesaplaması çok daha pahalıdır (tüm görüntü üzerinde lokal 11×11-pencereler); RadianceKit, 1080p bir görüntü için 1 ms'nin altında kalan MPS hızlandırmalı bir uygulama kullanır. Scene-Class Presetleri, 0.082 (.outdoorPreset) ile 0.171 (.indoorPreset) arasında sahneye özgü değerler kullanır.
T18ssimWeightRefinement
DETAYLAR
Varsayılan: 0.0 (= "değişiklik yok, ssimWeight korunsun") Aralık: 0 veya 0 – 1.0
TEKNİK
T2 densifyUntilIteration sonrasındaki Refinement aşaması için opsiyonel SSIM değeri. Refinement aşamasında 0.2'den 0.3'e çıkarmak sonucu her iki ölçütte de kötüleştirir — hem L1 hem SSIM; bu yüzden varsayılan 0.0'da kalır. Bu alanın arkasındaki hipotez, Densification'dan sonra — yani artık yeni Gaussian'lar oluşmadığında — daha güçlü bir SSIM payının yapısal keskinliği en üst düzeye çıkaracağıydı. Ampirik olarak yanlış çıktı: SSIM ağırlığını artırmak dolaylı olarak L1 ağırlığını düşürmek anlamına gelir ve L1, Final-Refinement aşamasında çok daha anlamlı bir sinyaldir. Bu alan, gelecekteki algısal Loss (T60) veya Edge-Loss (T19) deneyleri için hazır tutulmaktadır; orada Refinement'e özgü bir Loss bileşimi mantıklı olabilir.
T19edgeLossWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.001 – 1.0
TEKNİK
Deneysel Loss terimi: Görüntü kenarlarını doğrudan karşılaştıran (Ground-Truth-Sobel'e karşı Render-Sobel) bir Sobel-Gradient-Domain-L1-Loss'un ağırlığı, L1+SSIM'e ek olarak. Hipotez: kenar bilgisi görüntü kalitesinin algısal bir temel taşıdır ve açık bir terim Gaussian'ları kenarları daha iyi yakalamaya teşvik etmelidir. Pratikte bir faydası yok: hissedilir bir ağırlık (0.1) sonucu kötüleştiriyor, küçük bir ağırlık (0.01) kalitede bir şey değiştirmiyor ama hesaplama süresine mal oluyor. Sobel geçişi, Ground-Truth ve Render üzerinde ek bir MPS-Forward'a mal olur. Bu nedenle kalıcı olarak devre dışı bırakılmıştır. Gelecekteki kullanım senaryosu: sert yapay kenarlara sahip sahneler (mimari, mobilya, render'lar) bundan faydalanabilir — ancak Scene-Class Presetleri bunun için bu terimi değil, SSIM ağırlığını ölçeklendirmeyi kullanır.
T20skyMaskingEnabled
DETAYLAR
Varsayılan: false (Initializer ve tüm Presetler) Aralık: boolean
TEKNİK
Sky Masking'i etkinleştirir. Bu sırada Apple-Vision-Framework yardımıyla her görüntüde Sky bölgesi maskelenir ve bu alandaki Loss sıfıra ayarlanır. Amaç: Outdoor sahneler genellikle mavi/gri/beyaz Sky piksellerinin uygulamayı tam olarak oraya Gaussian yerleştirmeye yöneltmesinden muzdariptir — bu da "floater" olarak algılanır. Sky-Mask olmadan bu alandaki Loss hiçbir zaman sıfır olmazdı, çünkü gökyüzü görüntüde hafifçe değişir ve uygulama bunu sonsuza kadar Splat'larla yeniden oluşturmaya çalışır. Vision maskesi, eğitimden önce kamera başına bir kez hesaplanır ve RAM'de tutulur. Genellikle T45 skyDomeEnabled ile birlikte etkinleştirilir (UI mantığı Settings-View'da). İç mekan sahnelerinde veya sentetik render'larda devre dışı bırakılmış olarak tutun — maske orada tavanları veya duvarları yanlışlıkla "Sky" olarak algılar.
SH-Degree-Progression (T21)
T21shDegreeUpgradeIterations
DETAYLAR
Standard: [1_000, 2_000, 3_000] (Initializer), [2_000, 5_000, 8_000] (.full, MCMC), [1_000, 2_000] (.preview — Degree 3 übersprungen) Bereich: [Int], jeder Wert in [0, maxIterations], monoton steigend
TEKNİK
Iterationen, an denen der aktive SH-Degree von 0→1, 1→2, 2→3 hochgeschaltet wird. Vor der ersten Marke sind nur die DC-Komponenten aktiv (also T5 shDCLearningRate), nach der ersten Marke die DC + 3 Degree-1-Koeffizienten, nach der zweiten Marke + 5 Degree-2-Koeffizienten, nach der dritten Marke alle 15 Koeffizienten. Der Speicherbedarf pro Gaussian wächst dabei in Stufen — 4 Floats → 16 Floats → 36 Floats → 64 Floats. Die Quality-Presets verzögern die Aufstufungen gegenüber den Initializer-Defaults, weil die Geometrie zuerst stabilisieren soll, bevor die Farbdetails mit ihrer höheren Frequenz draufkommen. Die früheren Marken [1K, 2K, 3K] liefern in .full ein spürbar schlechteres Ergebnis. .preview kappt bei Degree 2, weil Degree 3 in 5 000 Iterationen nicht konvergiert und nur Optimizer-Kapazität verbraucht. Das Curriculum (T80–T81) bietet eine alternative Logik, die diese Liste dynamisch überschreibt.
Performans (T22–T24)
T22trainingRenderScale
DETAYLAR
Varsayılan: 1.0 (Initializer, .full, MCMC, Scene-Class), 0.5 (.preview), 0.25 (.quickTest) Aralık: 0.05 – 2.0 (tipik olarak 0.25, 0.5, 1.0)
TEKNİK
Eğitim sırasındaki render çözünürlüğü, eğitim görüntülerinin orijinal çözünürlüğüne göre. 0.5 değerinde her görüntü %50 genişlik × %50 yükseklik olacak şekilde küçültülür (yani piksellerin %25'i) ve Gaussian-Rendering bu daha küçük çözünürlükte gerçekleşir. Hem bellek hem de hesaplama yükünü kareli olarak azaltır. Önemli: T11 densifyGradThreshold seçilen çözünürlüğe uymalıdır — gradyan büyüklükleri 1/çözünürlük² ile ölçeklenir, bu nedenle .quickTest (0.25×) .full'a (1.0×, 1.1e-6) göre çok daha yüksek bir eşiğe (4e-6) sahiptir. RadianceKit çok büyük görüntülerde uyarır ve otomatik olarak ayarlar — 3 MP hedef çözünürlük. Aşırı 4K giriş görüntülerinde 0.5 hatta 0.25 mantıklı olurdu, aksi halde her Mac sadece CPU-Compaction'da çalışır.
T23resolutionWarmupScale
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.1 –
TEKNİK
Densification aşamasını (Iter 0'dan T2'ye kadar) Refinement aşamasından daha düşük bir çözünürlükte eğit. .full için bu kapalıdır, çünkü T22 = 1.0 ve Cosine-Annealing ile zaman kazancı düşük çıkar ve kalite hafifçe zarar görür. Alan kataloğunda kalır, çünkü 4K girişlerinde ve uzun eğitim koşularında tekrar mantıklı hale gelebilir — Curriculum (T80) benzer bir mantığı ele alır, ancak orada LR-Schedule'a bağlıdır. Etkinleştirilmişse ve T80 curriculumResolutionRamp de true ise, Curriculum kazanır ve bu değerin üzerine yazar.
T24tileSize
DETAYLAR
Varsayılan: 16 Aralık: 8, 16, 32
TEKNİK
Rasterizasyon karolarının piksel cinsinden boyutu. Gaussian-Splatting-Rendering karo tabanlıdır: görüntü 16×16 piksellik karolara bölünür, her karo kendisiyle ilgili Gaussian'ları toplar, derinliğe göre sıralar ve harmanlar. 16 değeri, pratik olarak tüm 3DGS uygulamalarının kullandığı standarttır ve RadianceKit Metal-Kernels içinde sabit kodlanmıştır; bu değerin değiştirilmesi shader'ların yeniden derlenmesini gerektirir ve mevcut durumda etkili değildir. Gelecekteki bir motor sürümü Tile-Size'ı dinamik olarak destekleyebilirse diye alan olarak kalır.
Diagnoz ve Nokta Bulutu Hazırlığı (T26–T30)
T26depthDistortionWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.0001 – 0.05
TEKNİK
Deneysel: bir Depth-Distortion regülarizasyon kaybının ağırlığı. Bir render ışını boyunca derinlik açısından art arda dizilmiş ama kavramsal olarak aynı yüzeye ait olan Gaussian'ları cezalandırır — bu, yoğunlaşmış derinlik dağılımlarını teşvik eder ve Floaters'ları azaltır. Denenen tüm güçlerde sonuç daha iyi değil daha kötü çıkıyor. Teorik avantaj — Multi-View tutarlılığını iyileştirmek — L1-Loss'a yansımıyor, çünkü hipotez örtük olarak SfM geometrisinin doğru olduğunu ve Gaussian'ların sadece "istiflenmesi" gerektiğini varsayıyor. Pratikte SfM nokta bulutu genellikle en zayıf bileşendir, istifleme değil. Özellikle temiz pozlara sahip Multi-View veri kümeleri için kullanılabilir durumda kalır (Synthetic, Ground Truth'lu Mip-NeRF 360).
T27singleViewOverfit
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
Diagnoz bayrağı: true olduğunda, her eğitim iterasyonunda kamera havuzundan rastgele biri yerine zorunlu olarak kamera indeksi 0 kullanılır. Amacı: Model tek bir görünüme bile overfit edemiyorsa (yani View 0'daki kayıp 10 000 iterasyondan sonra bile sıfıra yaklaşmıyorsa), forward/backward geçişinde temel bir hata var demektir. Bu anahtar, Metal shader'ların ve diferansiyellenebilir Rasterizer çekirdeklerinin geliştirilmesi sırasında yoğun şekilde kullanıldı. Bugün yalnızca, biri eğitim arka ucunda bir değişiklik yapıp doğrulamak istediğinde bir akıl sağlığı kontrolü (sanity check) olarak kullanılabilir. Arayüzde bunun için bir anahtar yoktur — alan tüm Preset'lerde kapalıdır ve öyle kalır.
T28maxCameras
DETAYLAR
Varsayılan: 0 (= "tüm kameraları kullan") Aralık: 0 veya 1 – N
TEKNİK
Diagnoz sınırı: yalnızca ilk N kamerayla eğit, geri kalanların tümünü yok say. Amacı başlangıçta: çok fazla kameranın gradyan çakışmaları yarattığı (aynı Gaussian için çok fazla çelişkili kayıp sinyali) hipotezini test etmekti. Yapay bir sınırlama herhangi bir avantaj sağlamıyor — daha fazla kare pratik olarak neredeyse her zaman daha fazla kalite sağlar. Arayüzde bunun için bir kontrol öğesi yoktur; alan tüm Preset'lerde 0, yani "tüm kameralar" olarak ayarlıdır.
T29maxInitialPoints
DETAYLAR
Varsayılan: 0 (= "tüm SfM noktalarını kullan") Aralık: 0 veya 1 000 – 200 000+
TEKNİK
Güvenlik önlemi: eğitimin başladığı ilk SfM noktalarının sayısını sınırlar. Yoğun COLMAP rekonstrüksiyonları > 60 000 nokta üretebilir, bu da büyük başlangıç ölçeklerinde piksel başına 200–300 Gaussian örtüşmesine yol açar — bu, eğitimin yakınsamadığı bir "sis alanı" oluşturur. ~16 000 noktaya alt örnekleme (eğitim motorundaki sabit üst sınır mantığı) başlangıç yoğunluğunu referans 3DGS'in kullandığı seviyeye getirir ve örtüşmeyi dramatik biçimde azaltır. Uygulama bunu çok yoğun rekonstrüksiyonlarda kendisi ayarlar; bunun için bir kontrol öğesi yoktur.
T30cameraClusterOutlierMultiplier
DETAYLAR
Varsayılan: 10.0 (tüm Preset'lerde — asla değiştirilmez) Aralık: 1.0 – 100.0
TEKNİK
Camera-Cluster-Outlier filtresi için çarpan. Eğitimden önce eğitim motoru tüm kamera konumlarının merkez noktasını (centroid) ve bir kameranın centroid'e olan maksimum mesafesini hesaplar. Centroid'e olan mesafesi multiplier × maxCameraDistance değerini aşan SfM noktaları, aykırı değer (outlier) olarak atılır. Varsayılan 10× kasıtlı olarak cömert seçilmiştir. İnce bir yan etki: Daha sıkı SfM (kameralar birbirine daha yakın) → daha küçük eşik değeri → daha fazla nokta aykırı değer olarak atılır. Daha gevşek SfM → daha büyük eşik değeri → daha az nokta atılır. Bundan şaşırtıcı bir etki doğar: daha sıkı ve aslında daha iyi bir SfM rekonstrüksiyonu, çok fazla başlangıç noktası atıldığı için eğitimi kötüleştirebilir. Alan tüm Preset'lerde 10 olarak ayarlıdır ve arayüzde değiştirilemez. 5'in altındaki değerler genellikle çok kısıtlayıcıdır, 20'nin üzerindekiler etkisizdir.
Düzenlileştirme (Regularisierung) (T31–T37)
T31coarseToFineBlurRadius
DETAYLAR
Varsayılan: 0 (= devre dışı) Aralık: 0 veya 1 – 10
TEKNİK
Deneysel: Densification aşamasının başında zemin gerçeği (ground-truth) görüntüye uygulanan ve T2'deki densification'ın sonuna kadar doğrusal olarak 0'a düşürülen Box-Blur yarıçapı. Hipotez: Kabadan-inceye (coarse-to-fine) eğitim — önce kaba yapıları öğren, sonra detayları — daha kararlı bir geometri sağlamalı. Denenen tüm yarıçaplarda sonuç kötüleşiyor. Başarısızlığın nedeni: densification, görüntü alanı gradyanlarına dayanarak karar veriyor ve bulanıklaştırma tam olarak "burada klonlama yapılmalı" için önemli olan sinyalleri azaltıyor. Farklı bir yoğunluk kontrolü (density-control) şemasıyla gelecekteki testler için deney kataloğunda kalıyor.
T32scaleRegWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.0001 – 0.05
TEKNİK
Deneysel: dünya-uzayı ölçeği üzerinde L1 düzenlileştirme. Çok büyüyen Gaussian'ları cezalandırır — tüm duvar yüzeylerini tek bir Gaussian ile kaplayan "mega-splat"leri önler. Etkinleştirildiğinde Gaussian sayısı milyonlara fırlıyor ve sonuç kat kat kötüleşiyor. Nedeni: ölçek düzenlileştirmesi yoğunluk kontrolüyle (density-control) çelişiyor — daha küçük ölçekler daha fazla Gaussian gerektiği anlamına gelir, dolayısıyla density-control daha sık bölünür (split), bu da daha fazla gradyan yükü demektir. Devre dışı, ancak Mip-Splatting deneyleri (T74) için belgelenmiş durumda: bu bağlamda bir ölçek alt sınırı anlamlı olabilir.
T33anisotropyRegWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.0001 – 0.05
TEKNİK
Deneysel: floater olarak algılanan aşırı uzamış "iğne" (needle) Gaussian'ları önlemek için max(scale)/min(scale) oranı üzerinde ceza. Denenen tüm yoğunluklarda sonuç belirgin şekilde kötüleşiyor. Nedeni: düzenlileştirme, splat'leri "yuvarlak" bir şekle zorluyor, bu da düz bir yüzeyde (duvar, masa, zemin) tam olarak yanlış — orada küresel bir Gaussian'dan daha verimli olan düz, geniş bir Gaussian'dır. Devre dışı. T34 scaleRatioPruneThreshold aynı amacı daha hedefli takip ediyor, ama o da varsayılan olarak kapalı.
T34scaleRatioPruneThreshold
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 5.0 – 100.0 (tipik olarak 10.0 – 30.0)
TEKNİK
max(scale)/min(scale) oranı burada belirlenen doğrusal eşiği aşan her Gaussian'ı silen deneysel eğitim-sonrası budama (pruning). Yalnızca düzenlileştirmeyle ortadan kaldırılamayan aşırı uzamış "iğne/disk" floater'larını hedefler. Testte budama floater'ları umulduğu gibi kaldırdı, ama aynı zamanda duvarlardaki ve zeminlerdeki anlamlı düz splat'leri de — görüntü daha delikli hale geldi. Bu nedenle varsayılan olarak kapalı. 1.8 sürümünden itibaren bunun için Inspector'ın "Training" bölümünde, "Runs automatically at the end of training" ara satırının altında Remove Needle/Disc Floaters anahtarı var. Etkinleştirildiğinde bilinçli olarak muhafazakâr çalışır (yalnızca en uzun ekseni en kısasının yaklaşık 50 katını aşan splat'ler) ve bir sonraki eğitim çalıştırmasından itibaren etkili olur.
T35opacityRegWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.0001 – 0.05
TEKNİK
Deneysel: opaklığı 0'a veya 1'e doğru çeken (yani "yarı-saydam"lıktan uzaklaştıran) İkili Çapraz Entropi (Binary-Cross-Entropy) cezası. Hipotez: daha keskin bir opaklık dağılımı görüntü netliğini iyileştirir. T33 ile birlikte bu düzenlileştirme kaliteye mal oluyor; ikisi de devre dışı. Dikkat: 1.4.3-Beta'da tam olarak bu alanda bir varsayılan değer değişikliği (Initializer = 0.01) içeren bir hata ortaya çıktı, bu da Gaussian sayısının toplu yok oluşuna (460 K → 5, tek bir iterasyonda) yol açtı. 1.4.4'ten itibaren varsayılan olarak sabit bir şekilde 0.0'a bağlandı.
T36opacityDecayFactor
DETAYLAR
Varsayılan: 0.0 (Initializer = devre dışı), 0.9995 (.full, .classicBalanced — HTGS standardı) Aralık: 0 (kapalı) veya 0.95 – 1.0
TEKNİK
HTGS şemasının (Hierarchical Time-Gating, Eurographics 2025) uygulaması: her T37 opacityDecayInterval iterasyonda, her Gaussian'ın sigmoid opaklığı bu faktörle çarpılır. 0.9995 × 100 uygulama, densification aşaması başına ~%95 kalış oranı verir — tüm opaklıklar üzerinde hafif ama sürekli bir aşağı yönlü baskı, zayıf katkı sağlayan Gaussian'ları güvenilir bir şekilde T14 pruneOpacityThreshold'un altına düşürür. Sonuç, decay olmadan elde edilenden belirgin şekilde daha iyi bir sonuçtur. Yalnızca densification aşamasında (T2'ye kadar) etkindir, sonrasında eğitim decay olmadan devam eder, böylece refinement'ta oturmuş opaklıklar kararlı kalır. MCMC'de kullanılmaz (MCMC'nin kendi mekanizmaları vardır: T67 mcmcRelocationInterval + T68 mcmcDeadOpacityThreshold).
T37opacityDecayInterval
DETAYLAR
Varsayılan: 50 Aralık: 10 – 500
TEKNİK
T36 opacityDecayFactor'ın uygulandığı iterasyon aralığı. HTGS makalesindeki varsayılan değer 50, .full'da korunmuştur. Uzun aralıklar (>200) etkiyi kısmen ortadan kaldırır, çünkü iki uygulama arasında opaklığın tekrar yükselmesine yetecek kadar gradyan güncellemesi gerçekleşir. Daha kısa aralıklar (<20) decay'i çok agresif hale getirir. Yalnızca densification aşamasında etkindir.
Verfeinerung (T38–T44)
T38gradientAccumulationSteps
DETAYLAR
Standard: 1 (= „eine View pro Adam-Schritt") Bereich: 1 – 8
TEKNİK
Anzahl der Views, deren Gradienten akkumuliert werden, bevor ein Adam-Update ausgeführt wird. Bei > 1 läuft die App auf einem separaten, „unfused" Backward-Project-Pfad, der die Gradienten in einem separaten Buffer summiert; die finale Anwendung skaliert mit 1/N, um die Magnitude konstant zu halten. Bei klassischem Training bringt der Wert 2 keinen Qualitätsgewinn, kostet aber Zeit, weil der unfused-Pfad teurer ist als der fused. Bei MCMC dagegen verkleinert accum = 2 den Qualitätsabstand zu Classic spürbar — deshalb wird er dort als Schalter angeboten. In den Presets steht der Wert auf 1. In der Oberfläche erreichst du ihn über den Schalter MCMC Quality im Inspector-Abschnitt „Training": eingeschaltet akkumuliert die App 2 Views pro Schritt, ausgeschaltet 1. Andere Werte als 1 und 2 sind nur über ein bearbeitetes Preset zu belegen.
T39testViewIndices
DETAYLAR
Standard: [] (= leer, alle Views werden zum Training verwendet) Bereich: Set<Int>, beliebige Untermenge der Camera-Indices
TEKNİK
Set von Camera-Indices, die NICHT zum Training verwendet, sondern als Holdout für PSNR/SSIM/LPIPS-Auswertung gespart werden. Wird nur in den internen Messläufen belegt: dann jede achte View, beginnend bei Index 0 (LLFF-Standard, identisch mit den Mip-NeRF-360- und 3DGS-Paper-Konventionen). Im Auslieferungszustand bleibt das Feld leer — das Training nutzt alle Views, und es gibt in der Oberfläche kein Bedienelement dafür. Vorsicht: das manuelle Setzen dieses Feldes in einer Preset-Datei ohne Verständnis der Indizes macht eine Messung unbrauchbar (z.B. wenn alle Indices über N gesetzt werden, während es nur N-50 Views gibt → keine Holdouts → keine Auswertung). Beim eigenen Preset-Export wird testViewIndices nicht mitgeschrieben, weil es szenenabhängig ist und sonst zwischen verschiedenen Datensätzen sinnlose Werte hinterlassen würde.
T40refinementPruneInterval
DETAYLAR
Standard: 0 (= deaktiviert) Bereich: 0 oder 100 – 5 000
TEKNİK
Alle N Iterationen während der Refinement-Phase (nach T2) wird ein zusätzlicher Prune-Pass laufen gelassen, der Gaussians mit sigmoid(opacity) < T41 refinementPruneOpacityThreshold entfernt. Sinn: während Densification gibt es regelmäßige Density-Control-Calls, danach nicht mehr — Gaussians, deren Opacity weiter sinkt, bleiben aber im Buffer. In der Praxis schadet dieses zusätzliche Pruning: zusammen mit der zweiten Densification-Phase (T54) kann es den Gaussian-Bestand vollständig leerräumen. Steht in allen Presets auf 0 und ist in der Oberfläche nicht verstellbar; falls man es über eine bearbeitete Preset-Datei trotzdem belegt, sind 1 000 oder 2 000 sinnvolle Werte.
T41refinementPruneOpacityThreshold
DETAYLAR
Standard: 0.0 (= „verwende T14") Bereich: 0 oder 0.001 – 0.1
TEKNİK
Separater Opacity-Schwellwert für Refinement-Pruning. Nach Densification haben die meisten Gaussians eine deutlich höhere Opacity erreicht (> 0.001), sodass der Standard-T14 pruneOpacityThreshold zu lasch wäre. Wenn T40 aktiv, bestimmt dieses Feld den eigenen Schwellwert. Bei 0.0 wird T14 weiterverwendet. Nur relevant wenn T40 > 0.
T42midTrainingCompactificationIterations
DETAYLAR
Standard: [] (= deaktiviert) Bereich: [Int], Werte in (densifyUntilIteration, maxIterations)
TEKNİK
Explizite Iteration-Punkte während der Refinement-Phase, an denen ein Compactification-Pass läuft (entfernt sigmoid(opacity) < 0.01 + Outlier-Scale-Gaussians, dieselbe Logik wie T56 postTrainingCompactification). Sinn: lange Refinement-Phasen können Confetti-/Floater-Akkumulation zeigen, deren SH dann auf view-spezifische Artefakte überfitten. Typische Konfiguration falls aktiviert: [10000, 20000, 30000] für 40K Classic. ABER: frei gewählte Aufräum-Marken verschlechtern das Endergebnis durchweg — die Gaussian-Anzahl sinkt zwar deutlich, der Bildfehler steigt aber stärker. Als frei wählbare Iterationsliste bleibt das Feld deshalb in allen Presets leer. Den Effekt selbst erreichst du in der Oberfläche über den Schalter Floater Cleanup im Inspector-Abschnitt „Training": bei klassischen Läufen ab 30 000 Iterationen legt er zwei Aufräum-Durchgänge mitten ins Training. Eigene Marken lassen sich nur über eine bearbeitete Preset-Datei setzen.
T43frustumCullEnabled
DETAYLAR
Standard: false Bereich: boolean
TEKNİK
Nach dem Training werden alle Gaussians entfernt, die außerhalb der Vereinigung aller Trainings-Kamera-Frusta liegen. Solche Gaussians wurden nie vom Loss-Signal eingeschränkt und sind immer Floater. Besonders effektiv für Szenen, in denen die Novel-View hinter oder neben dem Kamerapfad liegt (z.B. Rückseite eines linearen Drohnenflugs) — die Floater dort werden in der Trainingsphase nie sichtbar, beim späteren Bewegen im 3D-Viewer aber sehr wohl. Auf Drohnenflügen bringt das sichtbar weniger Floater, daher als Opt-In verfügbar. Standard false, weil bei Object-Captures mit voller Orbit-Coverage die Frustum-Union die ganze Szene umfasst und das Feature nichts entfernt — wird in den Einstellungen unter „Floater Reduction" angeboten. Das Outdoor-Preset aktiviert es nicht, weil der Sky-Dome dort dasselbe Problem besser löst.
T44frustumCullExpansion
DETAYLAR
Standard: 1.1 Bereich: 1.0 – 2.0
TEKNİK
NDC-Margin für T43 frustumCullEnabled. 1.0 würde exakt am Bildrand schneiden, was wackelige Splatts am Bildrand zu sehr kürzen würde. 1.1 = 10 % Padding über die exakte Kamera-Framing hinaus — gibt etwas Toleranz für Randpixel, die in einer leicht versetzten Novel-View doch sichtbar werden könnten. Werte > 1.2 machen den Cull praktisch unwirksam, weil das erweiterte Frustum sehr viel mehr Raum umfasst.
Gökyüzü Kubbesi (Sky-Dome) (T45–T48)
T45skyDomeEnabled
DETAYLAR
Varsayılan: false (Initializer + P9 Outdoor hariç tüm Presetler) Aralık: boolean
TEKNİK
Eğitim başlamadan önce küresel bir nokta bulutu oluşturulur (Fibonacci-sphere ile T46 Sample-Points), sahne merkezinin etrafında T47 skyDomeRadiusMultiplier × scene_extent yarıçapında konumlandırılır ve tüm eğitim kameralarının gökyüzü maskeli piksellerinden (bkz. T20 skyMaskingEnabled) alınan renklerle başlatılır. Bu Sky-Dome-Gaussian'lar Gaussian-buffer'ın başına eklenir ve eğitim sırasında "dondurulur" (Position/Skala/Rotation-Gradyanları = 0, sadece SH ve Opacity optimize edilebilir kalır). Etki: uzaktaki siyah "konfeti" alanları yerine kullanıcı Novel-View'larda gerçek bir gökyüzü görür. Drone ve manzara sahnelerinde bu çok iyi çalışır; Outdoor-Preset'te (P9) varsayılan olarak açıktır. İç mekan sahnelerinde kapalı bırak — küre anlamsızca odanın dışında asılı kalırdı.
T46skyDomeSampleCount
DETAYLAR
Varsayılan: 5 000 Aralık: 1 000 – 50 000 (tipik 2 000 – 10 000)
TEKNİK
Sky-Dome-Sphere üzerindeki Fibonacci-Sphere-Sample-noktalarının sayısı. Daha yüksek değerler → daha yoğun Sky-Dome (büyük çözünürlüklerde ve çok görünür gökyüzünde daha iyi), ama daha fazla bellek gerektirir. 5 000, 4K render'lar için sweet spot'tur; daha düşük çözünürlüklerde 2 000–3 000 yeterlidir. Noktalar her eğitim kamerasının view vektörüne olan Cosine-Distance'a göre karşılık gelen gökyüzü maskeli piksellerle başlatılır — view-cone'unu hiçbir kameranın görmediği Sample-Points düşük opaklık başlangıç değeriyle arkada kalır, ama eğitim sırasında değiştirilmez (dondurulmuş).
T47skyDomeRadiusMultiplier
DETAYLAR
Varsayılan: 30.0 (Initializer + çoğu Preset), 59.0 (P9 Outdoor) Aralık: 5.0 – 200.0
TEKNİK
Sky-Dome-Sphere'in yarıçapı, sahne genişliğine göre (= kamera pozisyonları arasındaki ortalama mesafe) oranlanır. 30 = kürenin çapı kamera bulutunun çapının 30 katıdır. Çok küçük (< 5) → Sky-Dome sahnenin kendisiyle etkileşime girer (ör. bir Sky-Dome-Splat ön plana düşer); çok büyük (> 100) → Sky-Dome pozisyonlarında float32 hassasiyet kaybı oluşur, bu da uzakta render hatalarına yol açar. Geniş dış mekan sahneleri için 59.0 uygun değerdir — varsayılan 30.0 derin manzaralar için çok küçüktür, bu durumda Sky-Dome pikselleri görüntü kenarlarında görünür şekilde "duvar" olarak render edilir.
T48frozenGaussianCount
DETAYLAR
Varsayılan: 0 (= dondurulmuş Gaussian yok) Aralık: 0 veya 1 – T46
TEKNİK
Buffer'ın başındaki, optimizer'da Position/Skala/Rotation-Gradyanları sıfıra ayarlanan Gaussian'ların sayısı — bunlar tüm eğitim boyunca uzamsal olarak sabit kalır. Density-Control bunları klonlayamaz, split edemez veya budayamaz. Sky-Dome-Injection için kullanılır (bkz. T45): Sky-Dome açıkken, bu alan otomatik olarak T46 skyDomeSampleCount değerine ayarlanır. Manuel ayarlama da mümkündür (ör. bir LiDAR taramasından önceden yerleştirilmiş bir nokta bulutunu dondurmak için), ama UI'da doğrudan erişilebilir değildir. Önemli: buffer'daki ilk N Gaussian her zaman dondurulmuş olanlardır — buffer'daki sıra belirleyicidir, açık bir index değil.
Adam + LR-Programı (T49–T55)
T49adamResetIteration
DETAYLAR
Varsayılan: 0 (= devre dışı) Aralık: 0 veya 100 –
TEKNİK
Adam optimizer'ın momentum akümülatörlerinin (m1, m2) sıfıra sıfırlandığı iterasyon. Bundan sonraki bias düzeltmesi iter yerine (iter - adamResetIteration) ile çalışır. Densification bitiminden sonra bir sıfırlama sonucu belirgin şekilde kötüleştirir. Sebep: Densification sırasında biriken Adam-momentumu, tipik gradyan büyüklükleri hakkında bilgi taşır ve refinement aşamasını hızlandırır. Bunu atmak, ilk ~500 refinement iterasyonunu yakınsama açısından maliyetlendirir. Bu yüzden tüm preset'lerde 0 olarak durur ve arayüzden ayarlanamaz.
T50positionLRScheduleEndIteration
DETAYLAR
Varsayılan: 0 (Initializer = „maxIterations kullan"), 20 000 (.full — Cosine, maxIter=35K olmasına rağmen 20K'de biter), 30 000 (.fullClassicPaper) Aralık: 0 veya 1 000 –
TEKNİK
Position-LR için cosine annealing eğrisinin minimumuna ulaştığı iterasyon. Sıfır ise bu T1 maxIterations ile aynıdır. 0'dan büyükse, program bu değere kadar çalışır ve sonrasında T4 positionLearningRateFinal değerinde sabit kalır. Bu, tekrar bir decay olmadan pozisyonları yavaşça inceltmeye devam eden minimal ama sabit öğrenme oranıyla bir „genişletilmiş refinement aşaması" sağlar. .full bunu yapar (program 20K'de biter, eğitim 35K'ye kadar sürer); komşuluğunda — 15K ile 25K arası — neredeyse hiçbir şey değişmez, 20K en iyi uzlaşımdır. Genişletilmiş aşamada pozisyon dışı LR'leri de değiştirmek için T51 ile birlikte kullanılmaya devam eder.
T51extendedPhaseLRDecay
DETAYLAR
Varsayılan: 0.0 (= devre dışı, sabit LR'ler) Aralık: 0 veya 0.01 – 1.0
TEKNİK
T50'ye ulaşıldıktan ve position-LR zaten T4'te olduktan sonraki „genişletilmiş aşamada" pozisyon dışı LR'ler (ölçek, döndürme, opaklık, SH) için minimum çarpan. 0.1 ise, ölçek/döndürme/opaklık/SH kendi içlerinde 1.0'dan (= standart LR'leri) standartlarının 0.1×'ine kadar cosine-decay'e uğrar. 0.0 (varsayılan) ise sabit kalırlar. Sıfıra kadar tam decay, hiç decay olmamasıyla aynı sonucu verir — decay ile davranış daha „temiz" görünür, ama ölçülebilir şekilde daha iyi değildir. Bu yüzden tüm preset'lerde 0 olarak durur ve arayüzden ayarlanamaz.
T52adaptiveDensifyThreshold
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
Deneysel: true ise, uygulama her densification adımında güncel gradyan dağılımının p98'ini hesaplar ve bunu dinamik bir eşik değeri olarak kullanır (çok fazla sapmaması için T11'deki yapılandırılmış değerin en az 0.5×'ine kırpılmış olarak). Hipotez: güncel sahne aşamasına otomatik uyum, density control'ü daha sağlam yapar — örn. başlangıçta daha sıkı budama, sonra daha gevşek, ya da tam tersi. Pratikte Gaussian sayısı dramatik biçimde çöküyor — kitlesel budama, çünkü ilk iterasyonlarda p98 aşırı yüksek ve sonrasında neredeyse hiçbir şey eşiği aşmıyor. Sabit eşik değeri zaten iyi kalibre edilmiş, dinamik ayarlama faydadan çok zarar veriyor. T77, rolling median üzerinden bu sorunu aşan alternatif bir adaptif mantık sunuyor.
T53mergeAfterDensification
DETAYLAR
Varsayılan: false (Initializer), true (.full, .classicBalanced, .fullClassicPaper) Aralık: boolean
TEKNİK
Densification aşamasının sonunda (iter T2) birbirine yakın, benzer ölçek ve renge sahip Gaussian'ları birleştiren tek seferlik bir merge geçişi uygulanır. Gaussian sayısını görünür kalite kaybı olmadan tipik olarak %5–15 azaltır. Amaç: yoğun klonlamadan sonra neredeyse özdeş Gaussian kümeleri oluşur ve bunlar yeni bir şey katmaz — merge işlemi, optimizer kapasitesini diğer alanlar için serbest bırakır. Classic-Quality preset'lerinde standarttır. MCMC'de kullanılmaz, çünkü MCMC kendi relocation mantığı sayesinde bu tür kümelerin oluşmasına baştan izin vermez.
T54densifyPhase2FromIteration
DETAYLAR
Varsayılan: 0 (= devre dışı) Aralık: 0 veya T2 – T1
TEKNİK
Deneysel: refinement duraklamasından sonra bu iterasyonda başlayıp T55'e kadar süren ikinci bir densification aşamasına olanak tanır. Hipotez: bir refinement aşamasından sonra gradyan akümülatörleri daha kararlı büyüklüklere sahip olur ve hangi bölgelerin hâlâ ek Gaussian'a ihtiyacı olduğunu daha kesin söyleyebilir. Pratikte ikinci densification aşaması sıfır Gaussian'a kadar bir çöküntüyle sonuçlanıyor — refinement-budama (T40) ile birlikte tamponu tamamen boşaltıyor. Bu yüzden tüm preset'lerde 0 olarak durur ve arayüzden ayarlanamaz.
T55densifyPhase2UntilIteration
DETAYLAR
Varsayılan: 0 Aralık: 0 veya T54 – T1 Tanımlandığı yer:
TEKNİK
İkinci densification aşamasının sonu. Sadece T54 > 0 olduğunda geçerlidir. Her iki alan da birlikte devre dışıdır.
Post-Processing + Apple AI (T56–T60)
T56postTrainingCompactification
DETAYLAR
Varsayılan: true (tüm Production-Preset'lerinde), false (.quickTest, .preview) Aralık: boolean
TEKNİK
Eğitim bittikten sonra sigmoid(opacity) < 0.01 olan Gaussian'lar kalıcı olarak kaldırılır (bunlar görüntüye pratikte artık katkı sağlamaz). Gaussian sayısını tipik olarak %58, dışa aktarma dosya boyutunu ise %55 azaltır, görünür kalite kaybı olmadan. Varsayılan olarak Production-Preset'lerinde etkindir — nihai sonucun mümkün olduğunca kompakt teslim edilebilmesi hedeflenir. .quickTest'te kapalıdır, çünkü bir tanı çalıştırması zaten dışa aktarılmaz. T42 midTrainingCompactificationIterations'dan farklı olarak compactification ancak sonda gerçekleşir — refinement o ana kadar tüm Gaussian'ları kullanabilir.
T57metalFXUpscaling
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
⚠ 2026-07-18'den beri devre dışı ve hiçbir etkisi yok. Bu alan, Inspector'daki „Viewport Scaling" seçicisine (Off/MetalFX/Lanczos) aitti. Renderer bunu hiçbir zaman okumadı: blit kararı tamamen geometrik (supersampled render edilmişse ⇒ kenar yumuşatma için MPS-Lanczos downsample, aksi halde bilinear), ve MetalFX yolu için zaten hiçbir çağrı noktası yoktu. Seçici ve onun beslediği iki yanlış bilgi kaldırıldı; overlay etiketi artık „Scaling" değil „Sampling" olarak adlandırılıyor ve uygulamanın hiçbir yerinde MetalFX ile büyütme yapılmıyor. Alanın kendisi varlığını sürdürüyor, çünkü eğitim yapılandırması eksiksiz olarak kaydediliyor — her kaydedilmiş sahnede, her preset'te ve halihazırda dışa aktarılmış PLY'lerin ayarlar yorumunda yer alıyor; silinmesi, yeniden yazma sırasında bu anahtarın sessizce düşmesine ve bu uyumluluğu bozmasına yol açardı. Aynı nedenle bu alan „Modified" karşılaştırmasından muaf tutulmuştur: eski bir sahne true değerini taşıyabilir ve bunu arayüz üzerinden geri alacak bir yol artık yoktur. Hiçbir şey onu okumuyor — yeniden bağlamayın.
T58mpsLanczosScaling
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
⚠ 2026-07-18'den beri devre dışı ve hiçbir etkisi yok — ayrıntılar için T57 metalFXUpscaling'e bakın, alanın yine de neden kaydedilmeye devam etmesi gerektiği de orada açıklanıyor. Ortaya çıkabilecek bariz bir yanılgıyı açıkça belirtelim: uygulama viewport'ta gerçekten de MPS-Lanczos kullanıyor, ama bu yalnızca geometri tarafından kontrol ediliyor — supersampled render edilmiş bir görüntü kenar yumuşatma için küçültülüyor. Bu bir küçültme işlemidir, büyütme değil, ve bu alan bunu hiçbir zaman tetiklemedi.
T59livePreviewInterval
DETAYLAR
Varsayılan: 50 (Initializer; preset'ler bu alanı ayarlamaz) Aralık: Ayarlar seçicisinde 0 (kapalı), 50, 250 veya 1.000
TEKNİK
Eğitim sırasında 3D görüntüleyicinin mevcut Gaussian'larla ne sıklıkta güncelleneceğini belirler. 50 = her 50 iterasyonda bir yeni render — ilerlemeyi gözlemlemek için yeterli, eğitimi hissedilir şekilde yavaşlatmadan. 0 = görüntüleyici hiç güncellenmez (arka planda eğitim, maksimum hız). Uzun MCMC çalıştırmalarında 250 veya 1.000 değerleri işe yarar, çünkü güncelleme yükü toplamda hissedilir hale gelir. Özel durum: bu alan eğitim yapılandırmasına ait olsa da, uygulama genelinde geçerli bir ayardır (Ayarlar → Eğitim) ve eğitim tarifinin bir parçası değildir. Bu nedenle „Modified" karşılaştırmasından muaf tutulur, preset değişiminde korunur ve 2026-07-18'den beri bir sahne açıldığında dosyadan artık devralınmaz — daha önce yüklenen bir sahne, kullanıcının kare hızını sessizce sahne yazarının değeriyle değiştiriyordu, „Kapalı" dahil, ve bunu geri alabileceğin ikinci bir yer yoktu.
T60perceptualLossWeight
DETAYLAR
Varsayılan: 0.0 (= devre dışı) Aralık: 0 veya 0.001 – 0.5
TEKNİK
Algısal bir loss teriminin ağırlığı (çok ölçekli bulanıklaştırma özellik eşleştirmesi). L1+SSIM'den daha üst bir düzeyde yapısal ve dokusal benzerliği yakalar — tipik olarak „piksel mükemmelliği"nin „gerçekçi görünmek"ten daha az önemli olduğu yerlerde. Tüm preset'lerde değer 0.0'dır (kapalı). Arayüzde bunu Inspector'ın „Training" bölümündeki Perceptual Loss kaydırıcısıyla ayarlarsın, 0,01 adımlarla 0 ile 0,20 arasında; 0 değerinde uygulama „Off" gösterir.
MCMC-Densifikasyon (T61–T73)
T61densificationStrategy
DETAYLAR
Varsayılan: .classic (Initializer + Classic-Presetler), .mcmc (tüm MCMC-Presetler + Scene-Class) Aralık: .classic veya .mcmc
TEKNİK
Classic-Densifikasyon (Klon/Split/Prune, Kerbl ve ark.~2023) ile MCMC-Densifikasyon (Stochastic Gradient Langevin Dynamics ve Relocation, Kheradmand ve ark.~NeurIPS 2024) arasında seçim yapar. .classic seçildiğinde T11–T16 değerlendirilir, .mcmc seçildiğinde ise T62–T73 devreye girer. Değiştirirken dikkat: Classic varsayılanları ve MCMC varsayılanları tamamen farklı kalibre edilmiştir — Expert View'daki seçiciyi uygun bir Preset yüklemeden çeviren kişi, 1.4.3-Bug-tarzı bir kitlesel yok oluş riskiyle karşı karşıya kalır (460 K → 5, tek bir iterasyonda, çünkü MCMC-OpacityReg 0.01 değerinde Classic-Opacity'leri öldürür). Bu yüzden MCMC-Init varsayılanları bilinçli olarak „yumuşatılmıştır" (tüm Reg değerleri 0.0).
T62mcmcMaxGaussians
DETAYLAR
Varsayılan: 150.000 (Initializer + .fullMCMC + .mcmcBalanced), 100.000 (.mcmcPreview), 1.500.000 (.fullMCMCMip — 10× bütçeli Mip-Splatting varyantı), 1,19 M (.renderPreset), 1,25 M (.outdoorPreset), 670 K (.indoorPreset) Aralık: 0 (= „Buffer kapasitesini kullan") veya 10.000 – 5.000.000 Tanımlandığı yer:
TEKNİK
MCMC stratejisinde Gaussian sayısı için sert üst sınır. Sayı, her Relocation adımında T70 mcmcGrowthRate (tipik olarak %5) kadar bu sınıra ulaşana dek kademeli olarak büyür. 150 K iyi bir başlangıç değeridir — bunun oldukça üzerinde splat kalitesi seyrekleşir (çok fazla küçük, gereksiz Gaussian), oldukça altında ise sahne yeterince yoğunlaştırılamaz. Çok büyük sahnelerde (örn. 1.545 fotoğraflık drone uçuşu, 158 K SfM-init ile) 150 K çok düşük kalır — bu yüzden 1.4.5 genişletmesi T72 mcmcCapMultiplier + T73 mcmcAutoScaleByScene eklenmiştir. Scene-Class-Presetler, 670 K (İç mekân) ile 1,25 M (Dış mekân) arasında sahneye özgü değerler kullanır. Değer 0 olduğunda motor, tam Buffer kapasitesini üst sınır olarak kullanır.
T63mcmcNoiseScale
DETAYLAR
Varsayılan: 0,00005 (5e-5 = Paper-Varsayılanı) Aralık: 1e-6 – 1e-3
TEKNİK
Her MCMC iterasyonunda her Gaussian'ın konumuna eklenen Gauss dağılımlı gürültü için çarpan (SGLD mantığı). Yüksek = daha fazla keşif (Gaussianlar daha çok gezer, potansiyel olarak daha iyi konumlar bulur), düşük = daha fazla sömürü (exploitation) (Gaussianlar zaten iyi oldukları yerde kalır). 5e-5 uygun değerdir — belirgin şekilde daha küçük olursa yetersiz keşif, belirgin şekilde daha büyük (1e-4) olursa aşırı keşif olur, bu durumda splatlar dağılır. Eğitim süresi boyunca T69 mcmcNoiseDecayEnd'e kadar kosinüs eğrisiyle azaltılır (decay) — decay aralığının sonunda gürültü fiilen 0'dır ve Gaussianlar yakınsar.
T64mcmcOpacityRegWeight
DETAYLAR
Varsayılan: 0,0 (= RadianceKit varsayılanlarında devre dışı, Paper: 0,01) Aralık: 0 veya 0,001 – 0,05
TEKNİK
Opacity üzerinde MCMC'ye özgü L1-ceza (penalty). Paper varsayılanı 0,01 (kullanılmayan Gaussianları sıfıra doğru bastırır, onları Relocation için uygun hâle getirir). RadianceKit'te sonuç bu regülarizasyon olmadan ölçülebilir şekilde daha iyidir. Neden: T68 mcmcDeadOpacityThreshold ile tanımlanan budama (pruning) kriteri tek başına yeterlidir — ek bir L1-ceza, değerli, düşük opasiteli Gaussianları da ölmeye zorlar. Bu yüzden varsayılan 0'dır. Dikkat: 1.4.3-Beta yapısında Initializer varsayılanı yanlışlıkla 0,01 idi, bu da kitlesel yok oluş hatasıyla sonuçlandı (bkz. T61 açıklaması); 1.4.4'ten itibaren 0,0 olarak düzeltildi.
T65mcmcScaleRegWeight
DETAYLAR
Varsayılan: 0,0 (= devre dışı, Paper: 0,01) Aralık: 0 veya 0,001 – 0,05
TEKNİK
Ölçek özdeğerleri üzerinde MCMC'ye özgü L1-ceza. Paper varsayılanı 0,01. Burada da regülarizasyon olmadan sonuç daha iyidir, T64'teki ile aynı nedenden ötürü. Tüm RadianceKit-MCMC-Presetlerinde devre dışı. T64'teki gibi dikkat: 1.4.3-Bug.
T66mcmcRelocationInterval
DETAYLAR
Varsayılan: 100 (Initializer + tüm MCMC-Presetleri, Paper-standardı), 155 (P9 Outdoor) Aralık: 50 – 500
TEKNİK
MCMC'nin ölü Gaussianları (sigmoid(opacity) < T68 mcmcDeadOpacityThreshold) yeni konumlara yeniden yerleştirdiği iterasyon aralığı. Daha kısa aralıklar (örn. 50) fazla yıkıcı etki eder, loss dalgalanır; belirgin şekilde daha uzun olanlar (örn. 200) MCMC'nin tepki verebilirliğini alır. 100 doğru değerdir. Dış mekân sahneleri için 155 ile biraz daha yüksektir — daha uzun aralıklar, Adam'a yeni yerleştirilen Gaussianları bir sonraki Reloc olayı onları baskı altına almadan önce entegre etmesi için daha fazla zaman tanır.
T67mcmcWarmupIterations
DETAYLAR
Varsayılan: 500 Aralık: 100 – 5.000
TEKNİK
Henüz hiçbir MCMC-Relocation'ın gerçekleşmediği başlangıç iterasyonlarının sayısı. Reloc mantığı ancak bu warmup'tan sonra başlar. Amaç: ilk iterasyonlarda opasite değerleri henüz oturmamıştır — doğrudan Reloc ile başlansaydı, Gaussianlar yanlış yerlere yerleştirilir ve hemen tekrar hareket ettirilmeleri gerekirdi, bu da Adam-momentum'unu bozardı. Paper varsayılanı 500. RadianceKit bu değeri devralır çünkü sağlam olduğu kanıtlanmıştır.
T68mcmcDeadOpacityThreshold
DETAYLAR
Varsayılan: 0,005 (Initializer, Paper-standardı), 0,01 (.fullMCMC ve tüm MCMC-Presetleri) Aralık: 0,001 – 0,05
TEKNİK
Bir Gaussian'ın „ölü" sayıldığı ve Relocation için uygun olduğu sigmoid(Opacity) eşik değeri. 0,01 uygun değerdir — 0,005 neredeyse hiçbir şeyi değiştirmez, 0,02 ise daha kötüdür. Daha yüksek = daha agresif Reloc (daha fazla Gaussian taşınır), daha düşük = daha temkinli. 0,01 yaklaşık olarak „%0,5 görsel görünürlüğe" karşılık gelir. P10 Indoor 0,0142 kullanır.
T69mcmcNoiseDecayEnd
DETAYLAR
Varsayılan: 0 (Initializer = „decay yok"), 160.000 (.fullMCMC = 200K'nın %80'i), 96.000 (.mcmcBalanced = 120K'nın %80'i), 40.000 (.mcmcPreview) Aralık: 0 veya 1.000 –
TEKNİK
T63 mcmcNoiseScale gürültüsünün tamamen sıfıra söndürüldüğü iterasyon (0. iterasyondan buraya kadar kosinüs-decay). maxIterations'ın %80'i uygun değerdir — bu MCMC'ye yeterli keşif zamanı verir, ama son %20'yi gürültüsüz yakınsamaya bırakır. 0 = tüm iterasyonlar boyunca sabit gürültü (nadiren anlamlıdır, MCMC bu durumda yakınsayamaz).
T70mcmcGrowthRate
DETAYLAR
Varsayılan: 0,05 (Paper-standardı = %5) Aralık: 0,01 – 0,2
TEKNİK
MCMC popülasyon hedefinin her Relocation adımı başına büyüme oranı. Mantık şu: her Reloc olayında hedef popülasyon büyüklüğü (1 + growthRate) kadar artırılır, T62 mcmcMaxGaussians'a (veya T72/T73 ile ölçeklenen varyantına) ulaşılana kadar. 0,05 uygun değerdir — daha yüksek değerler çok hızlı büyümeye yol açar (Gaussianlar, Adam-momentum onları entegre edebilmeden eklenir), daha düşük değerler ise sonunda yetersiz yoğunlaştırılmış sahnelere yol açar.
T71mcmcSigmoidK
DETAYLAR
Varsayılan: 100,0 Aralık: 10,0 – 500,0 Tanımlandığı yer:
TEKNİK
MCMC-Noise-Attenuation için Sigmoid-Keskinlik parametresi. SGLD adımında, Gaussian başına gürültü azaltılır — yüksek opasiteli Gaussianlar (logit'i pozitif olanlar) düşük opasitelilere göre üstel olarak daha az gürültü alır. K = 100 keskindir, yani „tam-gürültü"den „gürültü-yok"a geçiş opasite 0,5 civarında çok hızlı gerçekleşir. K = 100 uygun değerdir — daha küçük değerler (10–50) yüksek opasiteli Gaussianların da titremesine izin verir (yakınsamış Gaussianları bozar), daha büyük değerler (> 500) geçişi yapay olarak sert yapar ve ölü Gaussianlar artık hiç hareket ettirilmez.
T72mcmcCapMultiplier
DETAYLAR
Varsayılan: 3,0 (Initializer + .fullMCMC), 2,0 (.mcmcPreview), 2,5 (.mcmcBalanced), 2,98 (P8 Render), 5,32 (P9 Outdoor), 1,76 (P10 Indoor) Aralık: 0 (= devre dışı) veya 1,0 – 10,0
TEKNİK
1.4.5 özelliği: sahne-adaptif Cap ölçeklendirmesi. T73 mcmcAutoScaleByScene true olduğunda, etkin cap, Buffer kapasitesine kelepçelenerek hesaplanır. Arka plan: büyük sahnelerde (örn. 1.545 fotoğraflık drone uçuşu → 158 K SfM-init) T62 = 150.000 çok düşük kalır — Density-Control büyüyemezdi bile. 3,0 çarpanıyla bu örnekte cap, 474 K'ya ölçeklenir (158 K × 3,0). Scene-Class-Presetler sahneye özgü değerler kullanır: Outdoor yüksek bir çarpandan faydalanır (5,32 → 156 K başlangıç noktasında ~830 K cap), Indoor 1,76 ile yetinir (duvarlar daha hızlı doyar). Cap'in tam çözümü için -yöntemine bakınız.
T73mcmcAutoScaleByScene
DETAYLAR
Varsayılan: true (Initializer + tüm MCMC-Presetleri) Aralık: boolean
TEKNİK
1.4.5 özelliği: sahne farkındalıklı Cap mantığı için ana anahtar (bkz. T72 +). false olduğunda, üst sınır olarak yalnızca T62 mcmcMaxGaussians kullanılır (1.4.4 davranışına geri dönüş). Varsayılan olarak açıktır, çünkü aksi hâlde büyük sahnelerde 1.4.3'ten bilinen kitlesel yok oluş sorunları geri gelir. Manuel olarak devre dışı bırakmak yalnızca açıkça sabit bir cap belirlemek istiyorsan gereklidir — örn. son büyüklüğü planlanabilir olan 150 K'lık bir varyant eğitmek için.
Mip-Splatting (T74–T76)
Durum: Mip-Splatting pratikte bir kalite kazancı sağlamadı ve bazı dış mekan sahnelerinde hatta zarar verdi. Alanlar deneyler için opt-in olarak kalıyor; teslim edilen tüm Preset'lerde Mip-Splatting kapalı.
T74useMipSplatting
DETAYLAR
Varsayılan: false (tüm Production Preset'leri), true (.fullMCMCMip — Araştırma-Sibling) Aralık: boolean
TEKNİK
Mip-Splatting'i etkinleştirir (Yu et al.~CVPR 2024): per-Gaussian frekansını en yoğun eğitim kamerası örnekleme oranının Nyquist sınırına sınırlayan 3D-Smoothing-Filtre + 2D-Filtre + α-Kompensasyon. Teorik hedef: eğitim ölçeği dışında (0.5× veya 2× eğitim çözünürlüğü) render alırken Aliasing'in ortadan kaldırılması. Preprocess- ve Backward-Projection-Shader'larda etkinleştirilmiş ve işlevsel olarak doğru. Ancak pratikte umulan kalite kazancı gerçekleşmedi: eğitim çözünürlüğünde render alırken pratikte hiçbir şey değişmiyor, dış mekan sahnelerinde ise görüntü hatta kötüleşiyor. Bunun için bir açıklama: çok sayıda Gaussian devrede olduğunda 3D-yumuşatma, MCMC-Relocation'a karşı çalışıyor. Alan, kendi Multi-Scale denemeleriniz için kullanılabilir durumda kalıyor.
T75mipSmoothing3DScale
DETAYLAR
Varsayılan: 0.2 (Makale-Varsayılanı) Aralık: 0.05 – 1.0
TEKNİK
3D-Smoothing-Skala-Parametresi (Yu et al.~§3.3, Makale-Varsayılanı 0.2). Büyük = Gaussian başına daha fazla dünya-uzayı yumuşatma (= daha fazla Anti-Aliasing, ama aynı zamanda varsayılan ölçekte daha fazla blur), küçük = daha keskin ama Aliasing'e karşı daha savunmasız. Sadece T74 useMipSplatting = true olduğunda dikkate alınır. Daha fazla optimize edilmedi — Makale-Varsayılanı 0.2 ile bile Mip-Splatting bir kazanç sağlamıyor.
T76mipFilter2DVariance
DETAYLAR
Varsayılan: 0.3 (= şu ana kadarki davranışın tam olarak aynısı) Aralık: 0.1 – 1.0
TEKNİK
Σ_2D-diyagonaline eklenen 2D-Mip-Filtre-Varyansı (varyans doğrudan, karesi alınmadan). 0.3, Mip-Splatting'den önce kernel'de sabit olarak yer alan değerin tam olarak aynısı. Eğer T74 useMipSplatting = false ise, kernel bu değeri tamamen görmezden gelir ve sabit kodlanmış 0.3 değerini yazar — böylece şu ana kadarki davranışta garanti olarak hiçbir şey değişmez. Eğer etkinse, burada ayarlanan değer kullanılır. Mip-Sweep'ler için alan kataloğunda kalır.
Uyarlanabilir Yoğunlaştırma (T77–T79)
T77adaptiveDensification
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
Sabit T11 densifyGradThreshold değerine alternatif olarak Rolling-Median-Tracker. true olduğunda, her Densify-Step'te güncel eşik değeri median(son N avgGrad-örneği) × T79 adaptiveDensifyMultiplier ile üzerine yazılır. N = T78 adaptiveWindow. Orada Mass-Pruning'i tetikleyen T52'deki p98-varyantından daha katıdır: Median çarpı 2, kararlı durumda gradyan dağılımının yaklaşık p70–p80'inde bulunur. Tek başına açıldığında bu alan kalite kazancı sağlamaz; müfredatla (bkz. T80/T81) birlikte ise sağlar — orada kazancı müfredat taşır, bu alan ise daha çok kararlılığı. Bunun için bir kontrol elemanı yoktur: alan tüm Preset'lerde kapalıdır ve yalnızca düzenlenmiş bir Preset dosyası üzerinden ayarlanabilir.
T78adaptiveWindow
DETAYLAR
Varsayılan: 1 000 Aralık: 100 – 10 000 Tanımlandığı yer:
TEKNİK
Densification-Event'leri cinsinden Rolling-Median-Window (iterasyon DEĞİL — her T13 densifyInterval adımı bir örnek verir). Varsayılan 1 000 — bu şu anlama gelir: son 100 000 eğitim iterasyonu mediana katkı sağlar, yani tipik olarak buraya kadarki tüm eğitim geçmişi. Erken evre (T78 örneğinden önce): Tracker nil döner → sabit eşik değeri T11'e geri düşülür. Yalnızca şu durumda önem taşır: adaptif mantık (T77) açıkken.
T79adaptiveDensifyMultiplier
DETAYLAR
Varsayılan: 2.0 Aralık: 1.0 – 4.0
TEKNİK
Adaptif eşik değeri için Rolling-Median üzerindeki çarpan. Varsayılan 2.0, tipik gradyan dağılımının yaklaşık p70–p80'ine karşılık gelir. Daha düşük = daha agresif büyüme (daha fazla klon), daha yüksek = daha katı (daha az klon). 1.5–3.0 aralığında en iyi değer 2.0'dır. Yalnızca şu durumda önem taşır: adaptif mantık açıkken.
Müfredat (T80–T81)
T80curriculumResolutionRamp
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
Eğitim çözünürlüğü 0.5×'te başlar ve T50 positionLRScheduleEndIteration / 2 noktasında (ya da T50 ayarlanmamışsa T1 maxIterations / 2 noktasında) T22 trainingRenderScale'e geçer. Etkinleştirildiğinde T23 resolutionWarmupScale'in üzerine yazar. İki uyarlanabilir eklentiden (bkz. T77) bu müfredat asıl kalite kazancını sağlar — kademeli çözünürlük artışı, uygulamaya ince detay çalışmasına geçmeden önce daha düşük çözünürlükte kaba geometriyi bulması için zaman tanır. Arayüzden ayarlanamaz — yalnızca düzenlenmiş bir Preset dosyası üzerinden, ve bu durumda mantıklı olan T81 ile birlikte kullanmaktır.
T81curriculumSHProgression
DETAYLAR
Varsayılan: false Aralık: boolean
TEKNİK
T21 shDegreeUpgradeIterations'ın üzerine [maxIter/4, maxIter/2, maxIter*3/4] yazar, yani SH seviye atlamalarını öne yüklemek yerine eğitim süresine eşit şekilde dağıtır. Hipotez: kararlı geometri, renk detayı patlamasından önce oturtulur, bu da görüş yönüne bağlı parlaklık efektlerinin daha isabetli konumlanmasını sağlar. T77 ile birlikte bazı sahnelerde bir kazanç sağlar; bu kazancı asıl taşıyan bu alandır, T77 tek başına yeterli değildir. Arayüzden ayarlanamaz — yalnızca düzenlenmiş bir Preset dosyası üzerinden.
Statik Ön Ayarlar (TP1–TP9)
Burada yalnızca Initializer varsayılanına göre yapısal farklar yer alıyor. On bir kullanıcı arayüzü ön ayarı P1–P11'in tam pazarlama açıklamasını Bölüm 7'de bulabilirsin.
TP1.preview
DETAYLAR
≥ 10 GB RAM'li sistemler için tanı/önizleme ön ayarı. Initializer'a göre override'lar:
maxIterations30 000 → 5 000densifyUntilIteration15 000 → 3 500 (maxIter'ın %70'i)positionLearningRateFinal1.6e-6 → 1.6e-5 (10× daha yüksek, daha az agresif decay)shDCLearningRate,shRestLearningRate,opacityLearningRate,scaleLearningRate,rotationLearningRateher biri 2×opacityResetInterval3 000 → 100 000 (fiilen kapalı — reset bu kısa eğitimleri mahveder)shDegreeUpgradeIterations[1K, 2K, 3K]→[1K, 2K](Degree 3 bu kadar kısa çalışmalarda yakınsamaz)trainingRenderScale1.0 → 0.5
TP2.full
DETAYLAR
Üretim kalitesinde Classic. Override'lar:
maxIterations30 000 → 35 000 (bunun üzerinde overtraining tehlikesi var: kalite kazanımı olmadan daha fazla Gaussian)densifyUntilIteration15 000 → 5 000 (kanıtlanmış değer; daha geç durdurmak daha kötü)- Tüm LR'ler 2×
positionLearningRateFinal1.6e-6 → 1.6e-5 (makale varsayılanından 10× daha yüksek)densifyGradThreshold2e-6 → 1.1e-6 (1.0× çözünürlük için kalibre edilmiş)densifyInterval100 → 200pruneOpacityThreshold0.005 → 0.001opacityResetInterval3 000 → 100 000 (fiilen devre dışı)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K](gecikmeli yükseltme)opacityDecayFactor0.0 → 0.9995 (HTGS şeması, belirgin kalite kazanımı)opacityDecayInterval50 (değişmedi)mergeAfterDensificationfalse → truepositionLRScheduleEndIteration0 → 20 000postTrainingCompactificationtrue (.fulliçin zaten Initializer varsayılanı)
TP3.fullClassicPaper
DETAYLAR
TP2'nin makaleye sadık Classic varyantı. TP2'ye göre override'lar:
maxIterations35 000 → 30 000 (makale standardı)densifyUntilIteration5 000 → 15 000 (makale: maxIter'ın %50'si)positionLearningRateFinal1.6e-5 → 1.6e-6 (makale varsayılanı)opacityLearningRate,scaleLearningRate,rotationLearningRatemakale varsayılanlarına geri döner (0.05, 0.005, 0.001)densifyGradThreshold1.1e-6 → 2e-7 (Bicycle üzerinde ~1–2 M Gs için kalibre edilmiş)densifyInterval200 → 100 (makale)pruneOpacityThreshold0.001 → 0.005 (makale varsayılanı)opacityResetInterval100 000 → 3 000 (Makale §5.2, riskli — RadianceKit'in kurulumunda kaliteye mal olur)opacityDecayFactor0.9995 → 0.0 (makalede decay yok)positionLRScheduleEndIteration20 000 → 30 000 (cosine, maxIter'ın %100'üne kadar çalışır)
TP4.fullMCMC
DETAYLAR
Üretim kalitesinde MCMC. Initializer'a göre override'lar:
maxIterations30 000 → 200 000 (MCMC, Classic'ten yaklaşık 5× daha fazla iterasyona ihtiyaç duyar)densifyUntilIteration15 000 → 160 000 (maxIter'ın %80'i)positionLearningRateFinal1.6e-6 → 1.6e-5- LR takvimi TP2 gibi (hepsi 2×)
ssimWeight0.2 → 0.05 (MCMC daha güçlü bir L1 sinyaline ihtiyaç duyar)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K]densificationStrategy.classic→.mcmcmcmcMaxGaussians150 000 (zaten Initializer'da, ön ayarda onaylandı)mcmcNoiseScale5e-5 (makale değeri, kanıtlanmış)mcmcDeadOpacityThreshold0.005 → 0.01mcmcNoiseDecayEnd0 → 160 000 (maxIter'ın %80'i)mcmcCapMultiplier3.0 (zaten Initializer'da)mcmcAutoScaleByScenetrue (zaten Initializer'da)opacityResetInterval3 000 → 200 000 (fiilen kapalı, MCMC reset yerine reloc kullanır)
TP5.fullMCMCMip
DETAYLAR
Orijinal makalenin Gaussian bütçesine sahip TP4'ün Mip-Splatting varyantı. TP4'e göre override'lar:
mcmcMaxGaussians150 000 → 1 500 000 (10×, makale büyüklüğü)useMipSplattingfalse → true (Mip açık)
TP6.classicBalanced
DETAYLAR
Orta seviye Classic. TP2'ye göre override'lar:
maxIterations35 000 → 20 000 (pratikte 30 000 ile aynı sonucu, belirgin şekilde daha kısa bekleme süresiyle verir)positionLRScheduleEndIteration20 000 → 0 (Cosine, maxIter = 20K'ya kadar çalışır, uzatılmış faz yok)
TP7.mcmcPreview
DETAYLAR
MCMC tanısı. TP4'e göre override'lar:
maxIterations200 000 → 60 000densifyUntilIteration160 000 → 48 000 (%80)mcmcMaxGaussians150 000 → 100 000mcmcNoiseDecayEnd160 000 → 40 000mcmcCapMultiplier3.0 → 2.0 (Preview daha ölçülü bir şekilde ölçeklenir)
TP8.mcmcBalanced
DETAYLAR
Orta seviye MCMC. TP4'e göre override'lar:
maxIterations200 000 → 120 000densifyUntilIteration160 000 → 96 000 (%80)mcmcNoiseDecayEnd160 000 → 96 000 (%80)mcmcCapMultiplier3.0 → 2.5 (Preview'in 2.0'ı ile Full'un 3.0'ı arasında)
TP9.quickTest
DETAYLAR
Saf işlev testi. Initializer'a göre override'lar:
maxIterations30 000 → 1 000densifyUntilIteration15 000 → 500densifyGradThreshold2e-6 → 4e-6 (0.25× çözünürlük için kalibre edilmiş)densifyInterval100 → 50opacityResetInterval3 000 → 100 000 (kapalı, çünkü çok fazla kısa)trainingRenderScale1.0 → 0.25
Uygulama Gaussian üst sınırını nasıl belirliyor
„MCMC en fazla kaç Gaussian'ın büyümesine izin verebilir?" sorusunun bağlayıcı cevabı. Buna üç değer dahil olur: T62 mcmcMaxGaussians üzerinden ayarlanan değer, sahnenin SfM-Init-Punkte sayısı ve önceden ayrılmış Buffer kapasitesi. Uygulama bu sırayla hesaplar:
+ Başlangıç değeri T62'dir. Değer 0 ise, uygulama 150 000 değerini kullanır — bu güvenlik tabanı, 1.4.3'teki toplu yok oluş olayının tekrarlanmasını engeller. + T73 mcmcAutoScaleByScene açıksa ve T72 mcmcCapMultiplier 0'dan büyükse, uygulama başlangıç değerini „Init noktaları × T72" ile karşılaştırır ve ikisinden büyük olanı alır. + Son olarak sonucu Buffer kapasitesiyle sınırlandırır.
Örnek: Bicycle (Mip-NeRF 360, 194 fotoğraf-kare) → SfM-init ~156 K nokta, T62 = 150 000, T72 = 5.32, Auto-scale açık, Buffer kapasitesi 8 M. 156 K × 5,32, 830 K eder — bu değer 150 000'den büyük ve 8 M'den küçüktür, yani geçerli üst sınır 830 K'dir. MCMC-Relocation bu sınıra uyar.
MCMC'de gerçek maksimum splat sayısını hesaplar. Uygulama „Max Gaussians" ayarını alır, sahnenin başlangıçta kaç noktaya sahip olduğuna bakar ve „Auto-scale by scene" açıksa çarpanla ölçeklendirir. Böylece üst sınır sahneye uyarlanır, küçük ve devasa bir sahne için aynı değeri zorlamak yerine. Bunun için hiçbir şey yapman gerekmiyor — uygulama bunu eğitim başladığında kendisi hesaplıyor.
Hangi alan ne için? (Hile Sayfası)
| Hedef | Ayarlanacak alanlar |
|---|---|
| Uzaklarda daha fazla detay | T62 mcmcMaxGaussians yüksek, T72 mcmcCapMultiplier 5+ |
| Genel olarak daha fazla detay (Classic) | T1 maxIterations yüksek (≤ 40K), T2 densifyUntilIteration T1'in ≤ 14 % kadarı |
| Drone uçuşlarında floater'ları azaltmak | T43 frustumCullEnabled açık, T20 skyMaskingEnabled açık, T45 skyDomeEnabled açık |
| Dış mekân sahnelerinde daha güzel gökyüzü | T45 skyDomeEnabled açık, T47 skyDomeRadiusMultiplier 30–60 |
| Daha küçük dışa aktarma dosyası | Strateji .mcmc (T61), T56 postTrainingCompactification açık, T62 mcmcMaxGaussians ≤ 200K |
| Daha hızlı eğitim | T22 trainingRenderScale 0.5, T1 maxIterations yarıya indir — ama ikisini birden değil! |
| Daha iyi parlak yansımalar | T21 shDegreeUpgradeIterations için [2K, 5K, 8K] (öne yükleme yapmadan), MCMC + 200K iter |
| Canlı önizlemeyi daha sık göster | T59 livePreviewInterval değerini 50'ye ayarla — Ayarlar → Eğitim'in sunduğu en sık değer |
| Gölgelerde daha yumuşak geçişler | T17 ssimWeight biraz yüksek (0.15–0.25), ama 0.3'ün üzerine çıkma |
| İç mekânları kompakt tutmak | P10 İç Mekân Preset'i (, T72 = 1.76) |
Tehlikeli Alanlar
Diese Felder können bei Falsch-Konfiguration zu OOM, App-Crash, Mass-Extinction der Gaussians oder unbrauchbaren Benchmark-Daten führen bölümü Türkçeye çevrilecek, ancak label değişmeyecek.
Bu alanlar yanlış yapılandırıldığında OOM, uygulama çökmesi, Gaussian'ların toplu şekilde yok olmasına (Mass-Extinction) veya kullanılamaz benchmark verilerine yol açabilir. Dikkatli ele alınması gerekenler:
- T11 densifyGradThreshold — bir yarıya indirme, 2–4× kadar daha fazla Gaussian oluşturabilir, bu da hızla GPU belleğini taşırabilir. Ayrıca dikkat edilmesi gereken: T22 trainingRenderScale ile uyumlu olmalı (1.0× → 1e-6, 0.5× → 2e-6, 0.25× → 4e-6). - T72 mcmcCapMultiplier — > 200 K SfM-init-noktalı büyük sahnelerde ve > 5 Multiplier ile milyonlarca Gaussian'a varan bir Resolved-Cap oluşur. 36-GB-RAM'li Mac'lerde OOM mümkündür. Outdoor değeri 5.32 yalnızca ilgili referans sahnesinin yaklaşık 156 K init noktasına sahip olması sayesinde işe yarar → 830 K Cap. - T39 testViewIndices — bir preset dosyasında elle ayarlamak bir kalite ölçümünü kullanılamaz hale getirebilir (tüm indeksler > N → holdout yok). Listeyi boş bırak. - T64 mcmcOpacityRegWeight ve T65 mcmcScaleRegWeight — 1.4.3-Beta sürümünde 0.01'e ayarlanmıştı, bu da toplu yok oluşa (Mass-Extinction) yol açtı (460 K → 5 Gaussian tek bir iterasyonda). 1.4.4'ten beri 0.0'a sabitlendi, ancak elle artırmak sorunu yeniden oluşturabilir. - T15 opacityResetInterval — eğer 100.000+ değilse (etkin olarak kapalı) ve eğitim 10.000 iterasyondan kısaysa, reset yakınsamayı bozar. .preview bu yüzden maxIterations = 5.000 olmasına rağmen bunu 100.000'e ayarlamıştır. - T54/T55 densifyPhase2* — İkinci densification aşaması, sıfır Gaussian'a kadar giden bir çığ etkisiyle sonuçlanır. İkisini de 0'da bırak. - T74 useMipSplatting — kalite artışı sağlamaz ve bazı dış mekân sahnelerinde görüntü kalitesini daha da kötüleştirebilir. Varsayılan olarak kapalıdır, yalnızca deneyler için isteğe bağlı olarak açılmalıdır.
Bu listede yer alan bir alanı değiştirmek istiyorsan, önce mevcut presetinin bir yedeğini al (JSON olarak dışa aktar) ve sonucu tekrarlanabilir şekilde ölçüp ölçemeyeceğini düşün — aksi takdirde sonrasında bir iyileştirme mi yoksa bir kötüleşme mi yarattığını bilemezsin.