Kapittel 6 — Treningskonfigurasjon

En typisk preset-JSON-eksport. Felt på øverste nivå: id (UUID), name, (classic | mcmc | sceneClass | custom), (Skjema-versjon), (Tidsstempel), (Fritekst). Det nøstede -objektet inneholder parameterne som er kritiske for reproduserbarhet — ved import leses hele blokken inn i treningskonfigurasjonen, og standardverdier fra app-versjonen fyller ut feltene som mangler i JSON-en (f.eks. etter en app-oppdatering). Den som vil overføre et preset til en annen Mac, sender ganske enkelt denne JSON-filen over.
Treningskonfigurasjonen er selve kjernen i hver treningskjøring i RadianceKit. Den samler alle parametere som påvirker treningen — fra maksimalt antall iterasjoner via de åtte læringsratene til spesialfeltene for MCMC, Mip-Splatting, curriculum-et og den scene-bevisste cap-logikken. Du redigerer den i sidepanelet i seksjonen Treningskonfigurasjon (Ekspertvisning), lagrer den som et preset eller sender den videre som JSON-eksport til en annen Mac. Under trening er det nøyaktig dette objektet som fryses og sendes til GPU-backend-en.
Dette kapittelet er referansemateriale for avanserte brukere. Det lister opp de 80 justerbare feltene i treningskonfigurasjonen, de 9 medfølgende presetene og den scene-avhengige beregningen av gaussian-cap-en. Ved tvil gjelder verdien som det valgte presetet setter — du ser den i Inspector eller i JSON-eksporten av presetet.
Innholdsfortegnelse:
+ Iterasjon (T1–T2) + Learning Rates (T3–T10) + Densification — Classic (T11–T16) + Loss (T17–T20) + SH-Degree-Progression (T21) + Performance (T22–T24) + Diagnose og forberedelse av punktskyer (T26–T30) + Regularisering (T31–T37) + Refinement (T38–T44) + Sky-Dome (T45–T48) + Adam + LR-Schedule (T49–T55) + Post-Processing + Apple AI (T56–T60) + MCMC-Densification (T61–T73) + Mip-Splatting (T74–T76) + Adaptive Densification (T77–T79) + Curriculum (T80–T81) + Statiske Presets (TP1–TP9) + Hvordan appen bestemmer gaussian-cap-en + Hvilket felt til hva? (Jukselapp) + Farlige felt
Iterasjon (T1–T2)
T1maxIterations
DETALJER
Standard: 30 000 (Initializer), 35 000 (.full), 200 000 (.fullMCMC) Område: 1 000 – 500 000 (UI-glidebryter), ingen hard øvre grense i logikken
TEKNISK
Totalt antall treningsiterasjoner som backend-en går gjennom. En iterasjon betegner en forward-rendering av et enkelt treningskamera, en backward-pass over alle loss-komponentene (L1 + SSIM + valgfrie regulariseringer + sky-maske) og et Adam-optimizer-steg. Dette tallet virker direkte inn på de andre tidsplanene: posisjon-læringsraten følger en cosine-annealing-kurve fra 0 til enten T1 selv eller til T50 positionLRScheduleEndIteration; Densification stopper ved T2 densifyUntilIteration; MCMC-noise-decay slutter ved T69 mcmcNoiseDecayEnd; SH-Degree-oppgraderinger skjer ved de tre merkene definert i T21. Ved klassisk densification ligger det utprøvde området på 20 000–35 000 iterasjoner, ved MCMC på 60 000–200 000. En drastisk økning utover verdiene lagt inn i Preset gir sjelden ekstra kvalitet — Adam-momentum metter seg, og uten LR-decay-slutt stagnerer loss. Motsatt fører et fall under ~5 000 til ufullstendig konvergerte geometrier (Density-Control har for lite tid til å klone/splitte).
T2densifyUntilIteration
DETALJER
Standard: 15 000 (Initializer), 5 000 (.full), 160 000 (.fullMCMC) Område: 0 – T1 maxIterations
TEKNISK
Iterasjonen der densification stopper. Fram til dette punktet blir Gaussians klonet, splittet og prunet etter reglene parametrisert i T11–T16 (Classic) eller T67–T70 (MCMC); deretter forblir antallet Gaussians konstant, og bare posisjoner, rotasjoner, skalaer, opasiteter og SH-koeffisienter blir optimalisert videre (raffineringsfase). I det opprinnelige 3DGS-papiret ligger verdien på 50 % av T1, i RadianceKits .full-preset på bare ~14 % (5 000 av 35 000): Etter omtrent 5 000 iterasjoner forverrer videre densifisering resultatet heller — flere floaters, høyere minnebehov, ingen kvalitetsgevinst. MCMC derimot lar relokaliseringen løpe helt til 80 % av T1, fordi MCMC ikke produserer skadelige floaters. Velges T2 for lite (< 1 000), oppstår for få Gaussians; for stort ved Classic (> 50 % av T1) fører til overgrowth og RGB-saturation-outliers (se Outdoor-Overtraining-Findings).
Læringsrater (T3–T10)
T3positionLearningRate
DETALJER
Standard: 0.00016 Område: 1e-7 – 1e-3 (anbefalt)
TEKNISK
Adam-læringsrate for XYZ-posisjonen til hver Gaussian ved starten av treningen (iterasjon 0). Følger en cosine-annealing-kurve og synker i løpet av treningen til T4 positionLearningRateFinal. Standardverdien 0.00016 stammer fra 3DGS-originalartikkelen (Kerbl et al.~2023) og skal i RadianceKit ikke skaleres selv om bildeoppløsningen økes — posisjonen beveger seg i verdenskoordinatsystemet, ikke i pikselrommet. En markant økning (> 0.0005) fører til at Gaussians hopper over lange avstander og at loss blir ustabil; verdier godt under (< 0.00005) fører til at feil initialiserte punktskyer aldri finner sin plass. For de aller fleste scener er standardverdien derfor det riktige valget. Merk: ved .fullMCMC lar vi denne verdien bevisst stå på standard — MCMC trenger konstante læringsrater for sin relocation-logikk, så tuning her gir ingenting.
T4positionLearningRateFinal
DETALJER
Standard: 0.0000016 (Initializer + artikkel), 0.000016 (.full, .fullMCMC — 10× høyere) Område: 0 – T3 positionLearningRate
TEKNISK
Sluttverdi for posisjon-LR-cosine-annealing-kurven. Nås enten ved T1 maxIterations eller, hvis satt, ved T50 positionLRScheduleEndIteration. RadianceKit-.full-presetet bruker 0.000016 — altså 10× høyere enn artikkel-standarden 0.0000016. Både en markant mindre sluttverdi og en markant større startverdi forverrer resultatet merkbart. Den høye sluttverdien er ikke en avveining, men et bevisst valg: ved for sterk decay mister Gaussians under refinement-fasen evnen til å tilpasse seg nylig tilkomne densification-kandidater. Schedule-fasen kan forkortes (T50 < T1), slik at T4 allerede nås før treningen er slutt, og resten av treningen kjører med konstant mini-LR — typisk konfigurasjon: T50 = 20 000, T1 = 35 000, altså refinement ved 0.000016 i 15 000 iterasjoner.
T5shDCLearningRate
DETALJER
Standard: 0.0025 (Initializer + artikkel), 0.005 (.full og alle MCMC-presets — 2×) Område: 0.0001 – 0.05
TEKNISK
Adam-læringsrate for DC-andelen (grad 0, altså konstant albedo) av spherical-harmonic-fargen. SH-DC tilsvarer den retningsuavhengige grunntonen til en Gaussian, på en måte «basisfargen». RadianceKit dobler artikkel-standarden i kvalitetspresetene — det akselererer farge-konvergensen, som er nødvendig fordi SH-DC ellers ikke kommer i form ved kort trening (< 5 000 iterasjoner). I motsetning til de geometriske LR-ene har SH-DC ingen decay; læringsraten forblir konstant over alle iterasjoner (eller følger bare den valgfrie extended-phase-decayen fra T51). Enda betydelig høyere verdier (rundt 0.01) forverrer resultatet igjen og gjør fargene ustabile.
T6shRestLearningRate
DETALJER
Standard: 0.000125 (Initializer + artikkel), 0.00025 (.full og MCMC — 2×) Område: 0.000001 – 0.005
TEKNISK
Adam-læringsrate for SH-koeffisientene av høyere orden (grad 1, 2, 3 — altså de view-direction-avhengige fargeandelene som gir glansspunkter, refleksjoner og myk skyggelegging). 20× mindre enn T5 per artikkel-konvensjon, fordi disse koeffisientene vokser kvadratisk i antall (3 for grad 1, 5 for grad 2, 7 for grad 3 → totalt 15 floats per Gaussian) og uten mindre læringsrate ville de overmette bildet. Skrus på i to trinn — inntil den første markeringen i T21 shDegreeUpgradeIterations er bare grad 0 aktiv (altså bare T5), deretter 1, senere 2, til slutt 3. Lave verdier her er spesielt viktig på scener med mye diffust lys; på svært blanke overflater (billakk, vann) lønner det seg ikke å skru på denne — selve SH-representasjonen har en iboende begrensning.
T7opacityLearningRate
DETALJER
Standard: 0.05 (Initializer + artikkel), 0.1 (.full, MCMC — 2×) Område: 0.001 – 1.0
TEKNISK
Adam-læringsrate for logit-opasiteten til hver Gaussian. Appen lagrer opasitet som en ubegrenset float-verdi og transformerer den med sigmoid til [0, 1]; LR-en virker i logit-rommet. Kvalitetspresetene dobler artikkel-standarden til 0.1; det gjør pruningen mer effektiv — døde Gaussians faller raskere under T14 pruneOpacityThreshold. Hvilken verdi som fungerer best avhenger dermed av Adam-konfigurasjonen; samspillet mellom de to er ikke trivielt. Lave verdier (< 0.01) fører til at «døde» Gaussians blir liggende evig og bruker minne; for høye verdier (> 0.5) kan føre til opacity-eksplosjon, derfor begrenser optimizeren logit-verdien fast til [-15, 3].
T8opacityLearningRateFinal
DETALJER
Standard: 0.0 (= «ingen decay») Område: 0 eller 0.001 – T7 opacityLearningRate
TEKNISK
Valgfri cosine-decay-sluttverdi for opacity-LR-en. Hvis 0.0, er decay deaktivert og opacity-LR-en forblir konstant på T7 gjennom hele treningen. En decay fra 0.1 til 0.01 forverrer resultatet merkbart; derfor står standarden på «av». Hypotesen bak feltet: i refinement-fasen kunne konstant opacity-LR føre til oscillasjon, slik at splatter som allerede har nådd riktig grad av transparens blir forskjøvet igjen av tilfeldige gradient-svingninger. Empirisk bekrefter dette seg ikke — logit-clamping-logikken fanger dette uansett opp. Feltet forblir tilgjengelig for fremtidige eksperimenter; også svært lange MCMC-kjøringer (> 500K iterasjoner) kunne dra nytte av det.
T9scaleLearningRate
DETALJER
Standard: 0.005 (Initializer + artikkel), 0.01 (.full, MCMC — 2×) Område: 0.0001 – 0.1
TEKNISK
Adam-læringsrate for de tre skala-komponentene til hver Gaussian i log-rommet (RadianceKit lagrer log(scale), slik at skalaene forblir positive). Artikkel-standarden 0.005, i RadianceKit doblet til 0.01 for bedre scale-konvergens ved de tilpassede læringsrate-konfigurasjonene. Blir verdien stående på artikkel-standarden sammen med de øvrige kvalitets-læringsratene, oppstår synlig for få Gaussians — density-control kan ikke klone, fordi skala-oppdateringene henger for langsomt etter. Skala kontrollerer utstrekningen til hver Gaussian — for rask læring fører til «nål»-Gaussians (ekstremt lange tynne splatter, se T34 scaleRatioPruneThreshold), for langsom læring gjør at splatter forblir for kompakte og density-control må splitte for ofte.
T10rotationLearningRate
DETALJER
Standard: 0.001 (Initializer + artikkel), 0.002 (.full, MCMC — 2×) Område: 0.0001 – 0.05
TEKNISK
Adam-læringsrate for de fire kvaternion-komponentene til hver Gaussian. Kvaternionen normaliseres på nytt i hvert optimizer-steg etter Adam-oppdateringen (L2-norm = 1) — ellers ville kovariansmatrisen blitt degenerert. RadianceKit dobler artikkel-standarden i kvalitetspresetene, fordi rotasjon har mindre absolutte gradient-magnituder sammenlignet med skala/posisjon (på enhetssfæren forblir hvert steg kort), og uten 2× ville rotasjonen vært tydelig under-konvergert innenfor 35 000-iterasjonsvinduet. På NeRF-Blender-scener (Lego, Chair) har rotasjon spesielt stor betydning — kantene på objektene retter seg først skikkelig opp etter 5 000–10 000 iterasjoner.
Densification — Klassisk (T11–T16)
T11densifyGradThreshold
DETALJER
Standard: 0.000002 (Initializer, kalibrert for 0.5× oppløsning), 0.0000011 (.full, kalibrert for 1.0×), 0.000004 (.quickTest, kalibrert for 0.25×), 2e-7 (.fullClassicPaper) Område: 1e-8 – 1e-3 (oppløsningsavhengig)
TEKNISK
Terskelverdi for L2-normen til den skjermromsprojiserte posisjonsgradienten, over hvilken en Gaussian markeres for kloning eller splitting. Den absolutte verdien avhenger direkte av treningsoppløsningen — den skalerer omtrent som 1/oppløsning² (flere piksler = mindre per-piksel-gradienter). Derfor trenger hvert T22 trainingRenderScale-nivå en kalibrert terskel: 0.25× → 4e-6, 0.5× → 2e-6, 1.0× → 5e-8 … 1.1e-6 (.full). Paper-standarden 0.0002 er NDC-normalisert og ikke direkte sammenlignbar i RadianceKits verdensrom-pipeline. Med flagget T52 adaptiveDensifyThreshold kan verdien beregnes ved kjøretid ut fra p98 av den nåværende gradientfordelingen — på ekte scener kollapser imidlertid Gaussian-antallet dramatisk (masse-pruning); flagget forblir av. T77–T79 gir en alternativ adaptiv logikk via rullerende median. Dette feltet er ikke risikofritt — halvering gir 2–4× flere Gaussians (minnepress, OOM-risiko); dobling kan under-densifisere scenen.
T12densifyFromIteration
DETALJER
Standard: 500 Område: 100 – 5 000
TEKNISK
Første iterasjon hvor densifisering blir aktiv. Før dette skjer bare "ren" læring på den initiale SfM-punktskyen, uten at nye Gaussians opprettes. Standardverdien 500 kommer fra 3DGS-artikkelen og gir initialiseringen tid til å stabilisere seg — hvis densifisering starter allerede fra iterasjon 0, kloner feilplasserte SfM-punkter seg mange ganger før de i det hele tatt finner sin riktige plass. En betydelig senere start (rundt 1 000) forverrer resultatet noe; hold deg til standardverdien.
T13densifyInterval
DETALJER
Standard: 100 (Initializer, MCMC), 200 (.full) Område: 50 – 1 000
TEKNISK
Hvor mange iterasjoner det er mellom to densifiseringssteg. I paper-standarden 100 — hver 100. iterasjon evalueres listen over densifiseringskandidater, klones/splittes, og samtidig fjernes listen over pruning-kandidater (sigmoid(opacity) < T14 pruneOpacityThreshold). For .full har 200 vist seg å fungere godt — det avlaster GPU-en fordi færre reorganiseringspasser kjøres, og gir hver Gaussian mer tid til å stabilisere seg etter en kloningshandling. Kortere intervaller fører til overdensifisering i Quality-oppsettet: det oppstår betydelig flere Gaussians uten at bildet blir bedre. Ved MCMC tolkes det samme feltet som relokaliseringsintervall; se T67 mcmcRelocationInterval for den MCMC-spesifikke logikken.
T14pruneOpacityThreshold
DETALJER
Standard: 0.005 (Initializer, Paper, MCMC), 0.001 (.full) Område: 0.0001 – 0.1
TEKNISK
Sigmoid-opasitetsterskel under hvilken en Gaussian slettes ved neste densifiseringssteg. Virker sammen med T7 opacityLearningRate og logit-clamp-logikken i optimizeren. I .full ligger verdien på 0.001 i stedet for 0.005 — splats som bare spiller en rolle fra eksotiske synsvinkler, bevares dermed lenger og bidrar til SH-detaljer. Enda mindre verdier (rundt 0.0001) gir ingen ytterligere gevinst: det prunes for lite, og minne sløses bort. Viktig: Density-control må ALLTID prune, selv om bufferkapasiteten allerede er full på grunn av andre tiltak — ellers akkumuleres døde Gaussians og antallet fryser.
T15opacityResetInterval
DETALJER
Standard: 3 000 (Initializer + Paper), 100 000 (.full = effektivt deaktivert), 200 000 (.fullMCMC = deaktivert) Område: 1 000 – 100 000+
TEKNISK
Hver hvor mange iterasjoner opasiteten til alle Gaussians tilbakestilles til en lav verdi (~0.01) — et tiltak fra 3DGS-artikkelen for å revurdere "fastfrosne" splats. Sammen med RadianceKits oppvarming, det stokastiske treningsoppsettet og de doblede læringsratene koster opasitetstilbakestillingen merkbar kvalitet, og logit-clampen i optimizeren dekker uansett allerede denne funksjonen. Derfor er den i .full praktisk talt deaktivert (100 000 > 35 000 = utløses aldri). Ved .fullClassicPaper (paper-tro variant) er den bevisst satt tilbake til 3 000 — der handler det om å nå Gaussian-budsjettene i den originale artikkelen.
T16maxScreenSize
DETALJER
Standard: 0.0 (= deaktivert) Område: 0 (av) eller > 0
TEKNISK
Maksimal skjermromsstørrelse (i projiserte piksler) en Gaussian får lov til å nå før den tvangssplittes. Verdien er satt til 0 — RadianceKits density-control bruker i stedet verdensrom-skala-terskelen fra samme gradientlogikk. Forblir i feltkatalogen fordi fremtidige eksperimenter med Mip-Splatting (T74–T76) eller scenespesifikke splatting-strategier kan dra nytte av den. Aktivering (verdi > 0, f.eks. 20) ville tvinge splats som har blitt svært store på skjermen til å dele seg — relevant ved store, glatte veggflater, hvor en enkelt kjempesplat gir for lite detalj.
Loss (T17–T20)
T17ssimWeight
DETALJER
Standard: 0.2 (Initializer + Paper + .full), 0.05 (alle MCMC-presets) Område: 0.0 – 1.0
TEKNISK
Vekten til D-SSIM-andelen i den kombinerte loss-funksjonen loss = (1 - λ) * L1 + λ * D-SSIM, der λ = T17. 3DGS-paperets standard på 0.2 er det riktige valget for Classic-densifisering — allerede 0.3 forverrer resultatet merkbart. For MCMC ligger derimot den passende verdien på 0.05, fordi MCMC på grunn av sin stokastiske utforsking trenger en sterkere L1-signalandel — høyere SSIM-vekter ville utvannet relocation-beslutningene. SSIM er betydelig dyrere å beregne enn L1 (lokale 11×11-vinduer over hele bildet); RadianceKit bruker en MPS-akselerert implementasjon som holder seg under 1 ms per 1080p-bilde. Scene-class-presetene bruker scene-spesifikke verdier mellom 0.082 (.outdoorPreset) og 0.171 (.indoorPreset).
T18ssimWeightRefinement
DETALJER
Standard: 0.0 (= «ingen endring, behold ssimWeight») Område: 0 eller 0 – 1.0
TEKNISK
Valgfri SSIM-verdi for forbedringsfasen (refinement) etter T2 densifyUntilIteration. En økning fra 0.2 til 0.3 i forbedringsfasen forverrer resultatet i begge mål — L1 så vel som SSIM; derfor står standarden på 0.0. Hypotesen bak feltet var at etter densifiseringen — når det ikke lenger oppstår nye gaussians — ville en sterkere SSIM-andel maksimere den strukturelle skarpheten. Empirisk feil: å øke SSIM-vekten betyr indirekte å senke L1-vekten, og L1 er det klart mer meningsfulle signalet i sluttfasen av forbedringen. Feltet forblir tilgjengelig for fremtidige eksperimenter med perseptuell loss (T60) eller edge-loss (T19), der en forbedringsspesifikk loss-sammensetning kan være fornuftig.
T19edgeLossWeight
DETALJER
Standard: 0.0 (= deaktivert) Område: 0 eller 0.001 – 1.0
TEKNISK
Eksperimentell loss-term: vekten til en Sobel-gradient-domene-L1-loss som sammenligner bildekanter direkte (ground-truth-Sobel vs. render-Sobel) i tillegg til L1+SSIM. Hypotese: kant-informasjon er en perseptuell grunnpilar for bildekvalitet, og en eksplisitt term burde oppmuntre gaussians til å treffe kanter bedre. I praksis gir den ingenting: en merkbar vekt (0.1) forverrer resultatet, en liten (0.01) endrer ikke kvaliteten, men koster regnetid. Sobel-passet koster en ekstra MPS-forward på ground-truth og render. Derfor permanent deaktivert. Fremtidig bruksområde: scener med harde kunstige kanter (arkitektur, møbler, renderinger) kunne dra nytte av det — scene-class-presetene bruker imidlertid ikke denne termen til dette, men skalerer i stedet SSIM-vekten.
T20skyMaskingEnabled
DETALJER
Standard: false (Initializer og alle presets) Område: boolean
TEKNISK
Slår på sky masking (himmelmaskering). Her maskeres i hvert bilde himmel-regionen ut ved hjelp av Apple Vision-rammeverket, og loss i dette området settes til null. Hensikt: utendørsscener lider ofte av at blå/grå/hvite himmel-piksler får appen til å plassere gaussians nøyaktig der — noe som oppfattes som «floater». Uten himmel-maske ville loss i dette området aldri bli null, fordi himmelen i bildet varierer litt og appen for alltid ville prøve å gjenskape dette med splats. Vision-masken beregnes én gang per kamera før treningen og holdes i RAM. Slås typisk på sammen med T45 skyDomeEnabled (UI-logikk i Settings-visningen). La den være deaktivert ved innendørsscener eller syntetiske renderinger — masken ville der feilaktig gjenkjenne tak eller vegger som «himmel».
SH-Degree-Progression (T21)
T21shDegreeUpgradeIterations
DETALJER
Standard: [1_000, 2_000, 3_000] (Initializer), [2_000, 5_000, 8_000] (.full, MCMC), [1_000, 2_000] (.preview — Degree 3 hoppes over) Område: [Int], hver verdi i [0, maxIterations], monotont stigende
TEKNISK
Iterasjoner der den aktive SH-graden kobles opp fra 0→1, 1→2, 2→3. Før den første markøren er kun DC-komponentene aktive (altså T5 shDCLearningRate), etter den første markøren DC + 3 Degree-1-koeffisienter, etter den andre markøren + 5 Degree-2-koeffisienter, etter den tredje markøren alle 15 koeffisienter. Minnebehovet per Gaussian vokser dermed trinnvis — 4 floats → 16 floats → 36 floats → 64 floats. Kvalitetspresetene forsinker oppgraderingene i forhold til Initializer-standardverdiene, fordi geometrien først skal stabilisere seg før fargedetaljene med sin høyere frekvens legges på. De tidligere markørene [1K, 2K, 3K] gir merkbart dårligere resultat i .full. .preview stopper ved Degree 2, fordi Degree 3 ikke konvergerer på 5 000 iterasjoner og bare bruker opp optimizer-kapasitet. Curriculumet (T80–T81) tilbyr en alternativ logikk som overskriver denne listen dynamisk.
Ytelse (T22–T24)
T22trainingRenderScale
DETALJER
Standard: 1.0 (Initializer, .full, MCMC, Scene-Class), 0.5 (.preview), 0.25 (.quickTest) Område: 0.05 – 2.0 (typisk 0.25, 0.5, 1.0)
TEKNISK
Render-oppløsning under trening relativt til originaloppløsningen til treningsbildene. Ved 0.5 blir hvert bilde nedskalert til 50 % bredde × 50 % høyde (altså 25 % av pikslene), og Gaussian-renderingen foregår i denne mindre oppløsningen. Reduserer både minne- og regnebehov kvadratisk. Viktig: T11 densifyGradThreshold må passe til den valgte oppløsningen — gradient-magnitudene skalerer med 1/oppløsning², derfor har .quickTest (0.25×) en mye høyere terskel (4e-6) enn .full (1.0×, 1.1e-6). RadianceKit advarer ved svært store bilder og tilpasser seg automatisk — 3-MP-målsoppløsning. Ved ekstreme 4K-inngangsbilder ville 0.5 eller til og med 0.25 vært fornuftig, ellers kjører hver Mac bare i CPU-kompaktering.
T23resolutionWarmupScale
DETALJER
Standard: 0.0 (= deaktivert) Område: 0 eller 0.1 –
TEKNISK
Tren Densification-fasen (iter 0 til T2) i en lavere oppløsning enn Refinement-fasen. For .full er dette slått av, fordi tidsgevinsten ved T22 = 1.0 og Cosine-Annealing blir liten, og kvaliteten lider litt. Forblir i feltkatalogen, fordi den ved 4K-inndata og lange treningskjøringer igjen kunne bli nyttig — Curriculum (T80) tar opp en lignende logikk, men der er den koblet til LR-tidsplanen. Hvis aktivert og T80 curriculumResolutionRamp også er true, vinner curriculumet og overskriver denne verdien.
T24tileSize
DETALJER
Standard: 16 Område: 8, 16, 32
TEKNISK
Størrelse på rasteriserings-tiles i piksler. Gaussian-Splatting-renderingen er tile-basert: bildet deles opp i 16×16-piksel-fliser, hver flis samler inn de gaussianene som er relevante for den, sorterer dem etter dybde og blender dem inn. 16 er standarden som brukes av praktisk talt alle 3DGS-implementasjoner, og er hardkodet i RadianceKits Metal-kernels; en endring av denne verdien ville kreve rekompilering av shaderne og er i dagens tilstand ikke effektiv. Forblir som felt i tilfelle en fremtidig motorversjon støtter tile-størrelse dynamisk.
Diagnose og punktsky-forberedelse (T26–T30)
T26depthDistortionWeight
DETALJER
Standard: 0.0 (= deaktivert) Område: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: vekt for et Depth-Distortion-regulariserings-loss. Straffer Gaussians som riktignok er dypt lagvis langs en render-stråle, men konseptuelt tilhører samme overflate — dette oppmuntrer til konsentrerte dybdefordelinger og reduserer floaters. I alle utprøvde styrker blir resultatet dårligere i stedet for bedre. Den teoretiske fordelen — å forbedre Multi-View-konsistens — gjenspeiles ikke i L1-lossen, fordi hypotesen implisitt antar at SfM-geometrien er korrekt og at Gaussians bare må "stables" riktig. I praksis er SfM-punktskyen ofte den svakeste komponenten, ikke stablingen. Forblir tilgjengelig for Multi-View-datasett med spesielt rene poser (Synthetic, Mip-NeRF 360 med Ground Truth).
T27singleViewOverfit
DETALJER
Standard: false Område: boolean
TEKNISK
Diagnoseflagg: hvis true, brukes det i hver treningsiterasjon tvingende kamera-indeks 0 i stedet for en tilfeldig fra kamera-poolen. Hensikt: Hvis modellen ikke engang klarer å overfitte en eneste view (altså at lossen på view 0 heller ikke etter 10 000 iterasjoner går mot null), er det en fundamental bug i forward/backward-passet. Denne bryteren ble brukt intensivt under utviklingen av Metal-shaderne og de differensierbare rasterizer-kernelene. I dag er den bare tilgjengelig som en sanity-check hvis noen har endret noe i trenings-backenden og vil sjekke det. I grensesnittet finnes det ingen bryter for dette — feltet er av i alle presets og forblir det.
T28maxCameras
DETALJER
Standard: 0 (= "bruk alle kameraer") Område: 0 eller 1 – N
TEKNISK
Diagnosegrense: tren bare med de første N kameraene, ignorer alle andre. Opprinnelig hensikt: teste hypotesen om at for mange kameraer skaper gradient-konflikter (for mange motstridende loss-signaler for samme Gaussian). En kunstig begrensning gir ingen fordel — flere frames gir praktisk talt alltid mer kvalitet. I grensesnittet finnes det ingen betjeningselement for dette; feltet står på 0 i alle presets, altså "alle kameraer".
T29maxInitialPoints
DETALJER
Standard: 0 (= "bruk alle SfM-punkter") Område: 0 eller 1 000 – 200 000+
TEKNISK
Sikring: begrenser antallet initiale SfM-punkter som treningen starter med. Tette COLMAP-rekonstruksjoner kan produsere > 60 000 punkter, noe som ved store initialskalaer fører til 200–300 Gaussians per piksel-overlapp — dette skaper et "tåkefelt" der treningen ikke konvergerer. Subsampling til ~16 000 punkter (hard-cap-logikk i trenings-motoren) bringer initialtettheten opp til nivået referanse-3DGS bruker, og reduserer overlapp dramatisk. Appen setter dette selv ved svært tette rekonstruksjoner; det finnes ikke noe betjeningselement for det.
T30cameraClusterOutlierMultiplier
DETALJER
Standard: 10.0 (alle presets — overskrives aldri) Område: 1.0 – 100.0
TEKNISK
Multiplikator for kamera-cluster-outlier-filteret. Før treningen beregner trenings-motoren sentroiden for alle kameraposisjoner og maksimal avstand fra en kamera til sentroiden. SfM-punkter hvis avstand fra sentroiden overskrider multiplier × maxCameraDistance, forkastes som outliers. Standardverdien 10× er bevisst valgt raus. En subtil bieffekt: Tettere SfM (kameraer nærmere hverandre) → mindre maxCameraDistance → lavere terskelverdi → flere punkter forkastes som outliers. Løsere SfM → høyere terskelverdi → færre punkter forkastes. Dette gir en overraskende effekt: en tettere og i utgangspunktet bedre SfM-rekonstruksjon kan forverre treningen fordi for mange initialpunkter forkastes. Feltet står på 10 i alle presets og kan ikke justeres i grensesnittet. Verdier under 5 er som regel for restriktive, over 20 uten virkning.
Regularisering (T31–T37)
T31coarseToFineBlurRadius
DETALJER
Default: 0 (= deaktivert) Range: 0 eller 1 – 10
TEKNISK
Eksperimentelt: Box-blur-radius som ved starten av densification-fasen påføres ground-truth-bildet og lineært reduseres til 0 mot slutten av densification (T2). Hypotese: Coarse-to-fine-trening — først lære grove strukturer, deretter detaljer — skulle gi mer stabil geometri. Ved alle utprøvde radier blir resultatet dårligere. Grunnen til at det mislykkes: densification tar avgjørelser basert på bildedomene-gradienter, og blurring reduserer nettopp de signalene som er viktige for «her må det klones». Forblir i felt-katalogen for fremtidige tester med et annet density-control-skjema.
T32scaleRegWeight
DETALJER
Default: 0.0 (= deaktivert) Range: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: L1-regularisering på verdensrom-skala. Straffer Gaussians som blir for store — forhindrer «mega-splatts» som dekker hele veggflater med én Gaussian. Slått på eksploderer antallet Gaussians til millioner, og resultatet blir mange ganger dårligere. Grunnen: skala-regularisering kommer i konflikt med density-control — mindre skalaer betyr at flere Gaussians trengs, så density-control splitter oftere, noe som igjen betyr mer gradient-arbeid. Deaktivert, men dokumentert for mip-splatting-eksperimenter (T74): i den konteksten kunne en skala-nedre-grense være fornuftig.
T33anisotropyRegWeight
DETALJER
Default: 0.0 (= deaktivert) Range: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: Penalty på max(scale)/min(scale)-forholdet, skal forhindre ekstremt langstrakte «needle»-Gaussians som oppfattes som floatere. Ved alle utprøvde styrker blir resultatet betydelig dårligere. Grunnen: regularisering tvinger splats mot «rund» form, noe som på en flat overflate (vegg, bord, gulv) er nettopp feil — der er en flat, bred Gaussian mer effektiv enn en kuleformet. Deaktivert. T34 scaleRatioPruneThreshold forfølger det samme formålet mer målrettet, men er også av som standard.
T34scaleRatioPruneThreshold
DETALJER
Default: 0.0 (= deaktivert) Range: 0 eller 5.0 – 100.0 (typisk 10.0 – 30.0)
TEKNISK
Eksperimentell post-trening-pruning som sletter hver Gaussian hvis max(scale)/min(scale)-forhold overskrider den her satte lineære terskelen. Er rettet mot ekstremt langstrakte «needle/disc»-floatere som ikke kan elimineres av regularisering alene. I testen fjernet pruningen floatere som håpet, men samtidig også fornuftige flate splats på vegger og gulv — bildet ble mer hullete. Derfor av som standard. Siden versjon 1.8 finnes bryteren Remove Needle/Disc Floaters i Inspector-seksjonen «Training», under mellomlinjen «Runs automatically at the end of training». Slått på arbeider den bevisst konservativt (kun splats hvis lengste akse er rundt 50× den korteste) og virker fra neste treningskjøring.
T35opacityRegWeight
DETALJER
Default: 0.0 (= deaktivert) Range: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: Binary-cross-entropy-penalty som trekker opasitet mot 0 eller 1 (altså bort fra «halvtransparent»). Hypotese: skarpere opasitetsfordeling ville forbedre bildeklarhet. Sammen med T33 koster regulariseringen kvalitet; begge er deaktivert. Merk: i 1.4.3-Beta dukket det opp en feil som endret nettopp dette feltet i en standardverdi-endring (initializer = 0.01), noe som førte til massutryddelse av Gaussian-antallet (460 K → 5 på én iterasjon). Siden 1.4.4 er 0.0 fast forankret som standard.
T36opacityDecayFactor
DETALJER
Default: 0.0 (initializer = deaktivert), 0.9995 (.full, .classicBalanced — HTGS-standard) Range: 0 (av) eller 0.95 – 1.0
TEKNISK
Implementasjon av HTGS-skjemaet (Hierarchical Time-Gating, Eurographics 2025): hver T37 opacityDecayInterval iterasjoner multipliseres sigmoid-opasiteten til hver Gaussian med denne faktoren. 0.9995 × 100 anvendelser gir ~95 %-gjenværende per densification-fase — et lett, men jevnt nedadgående press på alle opasiteter, som pålitelig lar svakt bidragende Gaussians synke under T14 pruneOpacityThreshold. Resultatet er et betydelig bedre resultat enn uten decay. Kun aktiv under densification-fasen (frem til T2), deretter fortsetter treningen uten decay, slik at opasitetene som er etablert i refinement forblir stabile. Brukes ikke ved MCMC (MCMC har egne mekanismer via T67 mcmcRelocationInterval + T68 mcmcDeadOpacityThreshold).
T37opacityDecayInterval
DETALJER
Default: 50 Range: 10 – 500
TEKNISK
Iterasjonsintervall der T36 opacityDecayFactor blir anvendt. HTGS-paper-standard 50, beholdt i .full. Lange intervaller (>200) opphever effekten delvis, fordi det mellom to anvendelser skjer nok gradient-oppdateringer til at opasiteten stiger igjen. Kortere intervaller (<20) gjør decay for aggressiv. Kun aktiv i densification-fasen.
Refinement (T38–T44)
T38gradientAccumulationSteps
DETALJER
Standard: 1 (= «én View per Adam-steg") Område: 1 – 8
TEKNISK
Antall Views hvis gradienter akkumuleres før et Adam-oppdatering utføres. Ved > 1 kjører appen på en separat, «unfused" backward-project-bane, som summerer gradientene i en separat buffer; den endelige anvendelsen skalerer med 1/N for å holde magnituden konstant. Ved klassisk trening gir verdien 2 ingen kvalitetsgevinst, men koster tid, fordi den unfused-banen er dyrere enn den fused. Ved MCMC derimot reduserer accum = 2 kvalitetsavstanden til Classic merkbart — derfor tilbys den der som en bryter. I presetene står verdien på 1. I brukergrensesnittet når du den via bryteren MCMC Quality i Inspector-seksjonen «Training": slått på akkumulerer appen 2 Views per steg, slått av 1. Andre verdier enn 1 og 2 kan bare settes via en redigert preset-fil.
T39testViewIndices
DETALJER
Standard: [] (= tom, alle Views brukes til trening) Område: Set<Int>, vilkårlig delmengde av Camera-indeksene
TEKNISK
Sett med Camera-indekser som IKKE brukes til trening, men spares som holdout for PSNR/SSIM/LPIPS-evaluering. Settes bare i de interne målekjøringene: da hver åttende View, med start ved indeks 0 (LLFF-standard, identisk med Mip-NeRF-360- og 3DGS-paper-konvensjonene). I utleveringstilstanden forblir feltet tomt — treningen bruker alle Views, og det finnes ikke noe kontrollelement for det i brukergrensesnittet. Advarsel: manuell setting av dette feltet i en preset-fil uten forståelse av indeksene gjør en måling ubrukelig (f.eks. hvis alle indekser settes over N mens det bare finnes N-50 Views → ingen holdouts → ingen evaluering). Ved eksport av eget preset skrives testViewIndices ikke med, fordi det er scene-avhengig og ellers ville etterlatt meningsløse verdier mellom forskjellige datasett.
T40refinementPruneInterval
DETALJER
Standard: 0 (= deaktivert) Område: 0 eller 100 – 5 000
TEKNISK
Hver N. iterasjon under refinement-fasen (etter T2) kjøres en ekstra prune-runde som fjerner Gaussians med sigmoid(opacity) < T41 refinementPruneOpacityThreshold. Hensikt: under Densification finnes det jevnlige Density-Control-kall, etter det ikke lenger — Gaussians hvis opacity fortsatt synker, blir imidlertid værende i bufferen. I praksis skader denne ekstra pruningen: sammen med den andre Densification-fasen (T54) kan den tømme hele Gaussian-bestanden fullstendig. Står i alle presets på 0 og kan ikke stilles i brukergrensesnittet; hvis man likevel setter det via en redigert preset-fil, er 1 000 eller 2 000 fornuftige verdier.
T41refinementPruneOpacityThreshold
DETALJER
Standard: 0.0 (= «bruk T14") Område: 0 eller 0.001 – 0.1
TEKNISK
Separat opacity-terskel for refinement-pruning. Etter Densification har de fleste Gaussians nådd en betydelig høyere opacity (> 0.001), slik at standard-T14 pruneOpacityThreshold ville vært for slapp. Hvis T40 er aktiv, bestemmer dette feltet sin egen terskel. Ved 0.0 brukes T14 videre. Bare relevant når T40 > 0.
T42midTrainingCompactificationIterations
DETALJER
Standard: [] (= deaktivert) Område: [Int], verdier i (densifyUntilIteration, maxIterations)
TEKNISK
Eksplisitte iterasjonspunkter under refinement-fasen der en compactification-runde kjøres (fjerner sigmoid(opacity) < 0.01 + outlier-scale-Gaussians, samme logikk som T56 postTrainingCompactification). Hensikt: lange refinement-faser kan vise confetti-/floater-akkumulasjon, hvis SH deretter overfitter på view-spesifikke artefakter. Typisk konfigurasjon hvis aktivert: [10000, 20000, 30000] for 40K Classic. MEN: fritt valgte opprydningsmerker forverrer sluttresultatet konsekvent — Gaussian-antallet synker riktignok tydelig, men bildefeilen øker mer. Som fritt valgbar iterasjonsliste forblir feltet derfor tomt i alle presets. Selve effekten oppnår du i brukergrensesnittet via bryteren Floater Cleanup i Inspector-seksjonen «Training": ved klassiske kjøringer fra 30 000 iterasjoner legger den to opprydningsrunder midt i treningen. Egne merker kan bare settes via en redigert preset-fil.
T43frustumCullEnabled
DETALJER
Standard: false Område: boolean
TEKNISK
Etter treningen fjernes alle Gaussians som ligger utenfor unionen av alle trenings-kamera-frusta. Slike Gaussians har aldri vært begrenset av loss-signalet og er alltid floatere. Spesielt effektivt for scener der Novel-View ligger bak eller ved siden av kamerabanen (f.eks. baksiden av en lineær droneflukt) — floaterne der blir aldri synlige i treningsfasen, men svært mye synlige ved senere bevegelse i 3D-visningen. På droneflukter gir dette merkbart færre floatere, derfor tilgjengelig som opt-in. Standard false, fordi ved objekt-opptak med full orbit-dekning omfatter frustum-unionen hele scenen, og funksjonen fjerner ingenting — tilbys i Settings under «Floater Reduction". Outdoor-preseten aktiverer det ikke, fordi sky-dome-en der løser det samme problemet bedre.
T44frustumCullExpansion
DETALJER
Standard: 1.1 Område: 1.0 – 2.0
TEKNISK
NDC-margin for T43 frustumCullEnabled. 1.0 ville kuttet nøyaktig ved bildekanten, noe som ville kortet vaklende splatter ved bildekanten for mye. 1.1 = 10 % padding utover den eksakte kamera-framingen — gir litt toleranse for kantpiksler som i en litt forskjøvet Novel-View likevel kan bli synlige. Verdier > 1.2 gjør cull-en praktisk talt uvirksom, fordi det utvidede frustumet omfatter mye mer plass.
Sky-Dome (T45–T48)
T45skyDomeEnabled
DETALJER
Standard: false (Initialiserer + alle presets unntatt P9 Outdoor) Område: boolean
TEKNISK
Før treningsstart genereres en kuleformet punktsky (Fibonacci-sphere med T46 sample-punkter), plassert i en radius på T47 skyDomeRadiusMultiplier × scene_extent rundt scenens sentrum og initialisert med fargene fra de himmel-maskerte pikslene fra alle treningskameraene (se T20 skyMaskingEnabled). Disse sky-dome-gaussianene settes inn i begynnelsen av gaussian-bufferen og blir «fryst» under treningen (posisjon-/skala-/rotasjonsgradienter = 0, kun SH og opasitet forblir optimerbare). Effekt: i stedet for svarte «confetti»-områder i det fjerne ser brukeren en ekte himmel i nye visninger. På drone- og landskapsscener fungerer dette svært godt; i outdoor-presetet (P9) er det slått på som standard. Skru det av ved innendørsscener — sfæren ville henge meningsløst utenfor rommet.
T46skyDomeSampleCount
DETALJER
Standard: 5 000 Område: 1 000 – 50 000 (typisk 2 000 – 10 000)
TEKNISK
Antall Fibonacci-sphere-sample-punkter på sky-dome-sfæren. Høyere verdier → tettere sky-dome (bedre ved store oppløsninger og mye synlig himmel), men høyere minnebehov. 5 000 er sweet spot for 4K-rendering; ved lavere oppløsninger holder 2 000–3 000. Punktene initialiseres etter cosine-distance til hver treningskameras view-vektor med de tilsvarende himmel-maskerte pikslene — sample-punkter som ingen kamera ser innenfor sin view-cone, forblir bak med lav opasitets-startverdi, men endres ikke under treningen (fryst).
T47skyDomeRadiusMultiplier
DETALJER
Standard: 30,0 (initialiserer + de fleste presets), 59,0 (P9 Outdoor) Område: 5,0 – 200,0
TEKNISK
Radiusen til sky-dome-sfæren relativt til scenens utstrekning (= gjennomsnittlig avstand mellom kameraposisjoner). 30 = kulen har 30 ganger diameteren av kameraskyen. For liten (< 5) → sky-dome interfererer med selve scenen (f.eks. lander en sky-dome-splatt i forgrunnen); for stor (> 100) → float32-presisjonstap ved sky-dome-posisjonene, som utløser render-glitches i det fjerne. For vidstrakte utendørsscener er 59,0 den riktige verdien — standard-30,0 er for liten for dype landskap, da vil sky-dome-pikslene rendres synlig som en «vegg» i bildekantene.
T48frozenGaussianCount
DETALJER
Standard: 0 (= ingen fryste gaussianer) Område: 0 eller 1 – T46
TEKNISK
Antall gaussianer i begynnelsen av bufferen hvis posisjons-/skala-/rotasjonsgradienter settes til null i optimereren — de forblir romlig stive gjennom hele treningen. Density-control kan ikke klone, splitte eller beskjære dem. Brukes for sky-dome-injeksjon (se T45): når sky-dome er på, settes dette feltet automatisk til T46 skyDomeSampleCount. Manuell innstilling er mulig (f.eks. for å fryse en forhåndsplassert punktsky fra et LiDAR-skann), men er ikke direkte tilgjengelig i grensesnittet. Viktig: de første N gaussianene i bufferen er alltid de fryste — rekkefølgen i bufferen avgjør, ikke en eksplisitt indeks.
Adam + LR-Schedule (T49–T55)
T49adamResetIteration
DETALJER
Default: 0 (= deaktivert) Range: 0 eller 100 –
TEKNISK
Iterasjon der Adam-optimalisererens momentum-akkumulatorer (m1, m2) nullstilles. Bias-korreksjon etterpå kjører med (iter - adamResetIteration) i stedet for med iter. En reset etter at densification er avsluttet forverrer resultatet betydelig. Grunn: Adam-momentumet som har bygget seg opp under densification, bærer informasjon om de typiske gradient-magnitudene og fremskynder refinement-fasen. Å kaste det bort koster de første ~500 iterasjonene av refinement i konvergens. Står derfor på 0 i alle presets og kan ikke justeres i grensesnittet.
T50positionLRScheduleEndIteration
DETALJER
Default: 0 (Initializer = «bruk maxIterations»), 20 000 (.full — Cosine slutter ved 20K til tross for maxIter=35K), 30 000 (.fullClassicPaper) Range: 0 eller 1 000 –
TEKNISK
Iterasjon der cosine-annealing-kurven for Position-LR når sitt minimum. Hvis 0, er dette identisk med T1 maxIterations. Hvis > 0, kjører schedulen frem til denne verdien og forblir deretter konstant på T4 positionLearningRateFinal. Dette muliggjør en «extended refinement phase» med minimal men konstant læringsrate — forfiner posisjoner sakte uten fornyet decay. .full gjør dette (schedule-slutt ved 20K, treningen kjører til 35K); i nærheten — 15K til 25K — endres nesten ingenting, 20K er det beste kompromisset. Brukes videre sammen med T51, for også å modifisere ikke-posisjon-LR-ene i den utvidede fasen.
T51extendedPhaseLRDecay
DETALJER
Default: 0.0 (= deaktivert, konstante LR-er) Range: 0 eller 0.01 – 1.0
TEKNISK
Minimal multiplikator for ikke-posisjon-LR-ene (skala, rotasjon, opasitet, SH) i den «extended phase» — altså: etter at T50 er nådd og posisjons-LR allerede er på T4. Hvis 0.1, blir skala/rotasjon/opasitet/SH selv cosine-decayed fra 1.0 (= deres standard-LR) til 0.1× av sin standard. Hvis 0.0 (Default), forblir de konstante. Full decay ned til null gir samme resultat som ingen decay i det hele tatt — oppførselen virker renere med decay, men er ikke målbart bedre. Står derfor på 0 i alle presets og kan ikke justeres i grensesnittet.
T52adaptiveDensifyThreshold
DETALJER
Default: false Range: boolean
TEKNISK
Eksperimentelt: hvis true, beregner appen i hvert densification-steg p98 av den aktuelle gradient-fordelingen og bruker den som dynamisk terskelverdi (clampet til minst 0.5× av den konfigurerte verdien fra T11, slik at den ikke avviker for mye). Hypotese: Automatisk tilpasning til den aktuelle scene-fasen ville gjøre density-kontroll mer robust — f.eks. strengere pruning i starten, mer avslappet senere, eller omvendt. I praksis kollapser gaussian-antallet dramatisk — masse-pruning, fordi p98 er ekstremt høyt i de første iterasjonene og deretter er det nesten ingenting som overskrider terskelverdien lenger. Den faste terskelen er allerede godt kalibrert, dynamisk tilpasning skader mer enn den hjelper. T77 tilbyr en alternativ adaptiv logikk via rolling median, som omgår problemet.
T53mergeAfterDensification
DETALJER
Default: false (Initializer), true (.full, .classicBalanced, .fullClassicPaper) Range: boolean
TEKNISK
Ved slutten av densification-fasen (iter T2) utføres en engangs merge-pass som slår sammen gaussianer som ligger nær hverandre og har lignende skala og farge. Reduserer gaussian-antallet med typisk 5–15 % uten synlig kvalitetstap. Poeng: etter intensiv kloning oppstår klynger av nesten-identiske gaussianer som ikke bidrar med noe nytt — mergingen frigjør optimaliserer-kapasitet til andre områder. Standard i Classic-quality-presets. Brukes ikke ved MCMC, fordi MCMC gjennom sin relokaliseringslogikk ikke lar slike klynger oppstå i utgangspunktet.
T54densifyPhase2FromIteration
DETALJER
Default: 0 (= deaktivert) Range: 0 eller T2 – T1
TEKNISK
Eksperimentelt: muliggjør en andre densification-fase, som etter refinement-pausen starter ved denne iterasjonen og kjører frem til T55. Hypotese: etter en refinement-fase har gradient-akkumulatorene mer stabile magnituder og kan mer presist si hvilke områder som fortsatt trenger flere gaussianer. I praksis ender den andre densification-fasen i en kaskade helt ned til null gaussianer — sammen med refinement-pruningen (T40) tømmer den bufferen helt. Står derfor på 0 i alle presets og kan ikke justeres i grensesnittet.
T55densifyPhase2UntilIteration
DETALJER
Default: 0 Range: 0 eller T54 – T1 Defined in:
TEKNISK
Slutt på den andre densification-fasen. Kun relevant når T54 > 0. Begge feltene er sammen deaktivert.
Post-Processing + Apple AI (T56–T60)
T56postTrainingCompactification
DETALJER
Default: true (i alle Production-Presets), false (.quickTest, .preview) Range: boolean
TEKNISK
Etter treningens slutt fjernes Gaussians med sigmoid(opacity) < 0.01 hardt (de bidrar praktisk talt ikke lenger til bildet). Reduserer Gaussian-antallet med typisk 58 % og eksport-filstørrelsen med 55 % uten synlig kvalitetstap. Som standard aktiv i Production-Presets — sluttresultatet skal kunne leveres så kompakt som mulig. I .quickTest av, fordi en diagnosekjøring uansett ikke eksporteres. I motsetning til T42 midTrainingCompactificationIterations skjer Compactification først på slutten — Refinement kan fram til da bruke alle Gaussians.
T57metalFXUpscaling
DETALJER
Default: false Range: boolean
TEKNISK
⚠ Nedlagt siden 2026-07-18 og uten noen virkning. Feltet tilhørte velgeren «Viewport Scaling» (Off/MetalFX/Lanczos) i Inspector. Rendereren har aldri lest det: blit-avgjørelsen er rent geometrisk (supersamplet rendret ⇒ MPS-Lanczos-nedsampling for kantutjevning, ellers bilineær), og for MetalFX-veien fantes det overhodet ikke noe kallsted. Velgeren og de to feilmeldingene den matet, er fjernet; overlay-teksten heter nå «Sampling», ikke «Scaling», og ingen steder i appen skaleres det opp via MetalFX. Feltet selv består, fordi trenings-konfigurasjonen lagres fullstendig — det finnes i hver lagrede scene, i hvert Preset og i innstillings-kommentaren til allerede eksporterte PLY-filer; en sletting ville stille latt nøkkelen falle bort ved omskriving og brutt denne utvekslingen. Av samme grunn er feltet unntatt fra «Modified»-sammenligningen: en gammel scene kan bære true, og det finnes ingen vei lenger til å tilbakestille det via brukergrensesnittet. Ingenting leser det — ikke koble det til på nytt.
T58mpsLanczosScaling
DETALJER
Default: false Range: boolean
TEKNISK
⚠ Nedlagt siden 2026-07-18 og uten noen virkning — se T57 metalFXUpscaling, der står det også hvorfor feltet likevel må fortsette å lagres. En nærliggende misforståelse skal nevnes uttrykkelig: appen bruker faktisk MPS-Lanczos i viewporten, men det styres utelukkende av geometrien — et supersamplet rendret bilde beregnes ned for kantutjevning. Dette er en nedskalering, ikke en oppskalering, og dette feltet har aldri utløst det.
T59livePreviewInterval
DETALJER
Default: 50 (Initializer; Presets setter ikke dette feltet) Range: 0 (av), 50, 250 eller 1 000 i innstillings-velgeren
TEKNISK
Hvor ofte 3D-viewporten oppdateres med de gjeldende Gaussians under trening. 50 = et nytt render hver 50. iterasjon — godt nok til å følge med på fremdriften uten å bremse treningen merkbart. 0 = viewporten oppdateres ikke i det hele tatt (bakgrunnstrening, maksimal fart). Ved lange MCMC-kjøringer lønner 250 eller 1 000 seg, fordi oppdateringskostnaden slår ut i sum. Særrolle: feltet tilhører riktignok trenings-konfigurasjonen, men er en appvid innstilling (Innstillinger → Trening) og ikke en del av trenings-oppskriften. Det er derfor unntatt fra «Modified»-sammenligningen, bevares ved Preset-bytte, og har siden 2026-07-18 ikke lenger blitt overtatt fra filen ved åpning av en scene — tidligere erstattet en lastet scene stille brukerens bildefrekvens med scene-forfatterens, «Av» inkludert, og det fantes ingen annen plass å hente den tilbake fra.
T60perceptualLossWeight
DETALJER
Default: 0.0 (= deaktivert) Range: 0 eller 0.001 – 0.5
TEKNISK
Vekt for et perseptuelt loss-ledd (Multi-Scale-Blur-Feature-Matching). Fanger opp strukturell og teksturell likhet på et høyere nivå enn L1+SSIM — typisk der hvor «pikselperfekt» er mindre viktig enn «ser realistisk ut». Verdien ligger på 0.0 (av) i alle Presets. I brukergrensesnittet stiller du den inn via glidebryteren Perceptual Loss i Inspector-seksjonen «Training», område 0 til 0,20 i trinn på 0,01; ved 0 viser appen «Off».
MCMC-densifisering (T61–T73)
T61densificationStrategy
DETALJER
Default: .classic (Initializer + Classic-Presets), .mcmc (alle MCMC-Presets + Scene-Class) Range: .classic eller .mcmc
TEKNISK
Velger mellom Classic-densifisering (klon/split/prune, Kerbl et al.~2023) og MCMC-densifisering (Stochastic Gradient Langevin Dynamics med relocation, Kheradmand et al.~NeurIPS 2024). Ved .classic blir T11–T16 evaluert, ved .mcmc T62–T73. Vær forsiktig ved bytte: Classic-defaults og MCMC-defaults er helt forskjellig kalibrert — den som vipper velgeren i Expert View uten å laste et passende preset, risikerer 1.4.3-bug-lignende masseutryddelse (460 K → 5 i én iterasjon, fordi MCMC-OpacityReg på 0.01 dreper Classic-opasitetene). Derfor er MCMC-init-defaultene bevisst «mildnet» (alle reg-verdier 0.0).
T62mcmcMaxGaussians
DETALJER
Default: 150 000 (Initializer + .fullMCMC + .mcmcBalanced), 100 000 (.mcmcPreview), 1 500 000 (.fullMCMCMip — Mip-Splatting-variant med 10× budsjett), 1,19 M (.renderPreset), 1,25 M (.outdoorPreset), 670 K (.indoorPreset) Range: 0 (= «bruk buffer-kapasitet») eller 10 000 – 5 000 000 Defined in:
TEKNISK
Hard øvre grense for antall Gaussians ved MCMC-strategi. Antallet vokser gradvis med T70 mcmcGrowthRate (typisk 5 %) per relocation-steg opp til dette taket. 150 K er et godt utgangspunkt — betydelig over dette blir splat-kvaliteten fortynnet (for mange små, redundante Gaussians), betydelig under blir scenen underdensifisert. I svært store scener (f.eks. et dronefotoopptak med 1545 bilder og 158 K SfM-init) er 150 K for lavt — derav 1.4.5-utvidelsen T72 mcmcCapMultiplier + T73 mcmcAutoScaleByScene. Scene-Class-presetene bruker scenespesifikke verdier mellom 670 K (innendørs) og 1,25 M (utendørs). Ved verdi 0 bruker motoren full buffer-kapasitet som tak.
T63mcmcNoiseScale
DETALJER
Default: 0,00005 (5e-5 = paper-default) Range: 1e-6 – 1e-3
TEKNISK
Multiplikator for den gaussiske støyen som legges til posisjonen til hver Gaussian i hver MCMC-iterasjon (SGLD-logikk). Høyere = mer utforskning (Gaussians vandrer mer, finner potensielt bedre plasser), lavere = mer utnyttelse (Gaussians blir der de allerede er gode). 5e-5 er den passende verdien — betydelig mindre gir for lite utforskning, betydelig større (1e-4) for mye, da flyter splattene utover. Dempes over treningstiden med kosinus-decay frem til T69 mcmcNoiseDecayEnd — ved slutten av decay-området er støyen effektivt 0 og Gaussians konvergerer.
T64mcmcOpacityRegWeight
DETALJER
Default: 0.0 (= deaktivert i RadianceKit-defaultene, paper: 0.01) Range: 0 eller 0,001 – 0,05
TEKNISK
MCMC-spesifikk L1-straff på opasitet. Paper-default 0.01 (presser ubrukte Gaussians mot null, gjør dem tilgjengelige for relocation). I RadianceKit er resultatet målbart bedre uten denne regulariseringen. Grunn: Prunings-kriteriet som defineres av T68 mcmcDeadOpacityThreshold er nok alene — en ekstra L1-straff tvinger også verdifulle Gaussians med lav opasitet til å dø. Derfor default 0. Vær oppmerksom: i 1.4.3-beta-build var Initializer-defaulten feilaktig 0.01, noe som resulterte i masseutryddelses-buggen (se T61-forklaringen); fikset til 0.0 siden 1.4.4.
T65mcmcScaleRegWeight
DETALJER
Default: 0.0 (= deaktivert, paper: 0.01) Range: 0 eller 0,001 – 0,05
TEKNISK
MCMC-spesifikk L1-straff på skala-egenverdiene. Paper-default 0.01. Også her er resultatet bedre uten regularisering, av samme grunn som ved T64. Deaktivert i alle RadianceKit-MCMC-presetene. Vær forsiktig som ved T64: 1.4.3-buggen.
T66mcmcRelocationInterval
DETALJER
Default: 100 (Initializer + alle MCMC-presetene, paper-standard), 155 (P9 Outdoor) Range: 50 – 500
TEKNISK
Iterasjonsintervall der MCMC relokerer døde Gaussians (sigmoid(opacity) < T68 mcmcDeadOpacityThreshold) til nye posisjoner. Kortere intervaller (rundt 50) virker for forstyrrende, loss svinger; betydelig lengre (rundt 200) tar responsevnen fra MCMC. 100 er den riktige verdien. For utendørsscener ligger den noe høyere med 155 — de lengre intervallene gir Adam mer tid til å integrere nyplasserte Gaussians før neste reloc-hendelse presser dem.
T67mcmcWarmupIterations
DETALJER
Default: 500 Range: 100 – 5 000
TEKNISK
Antall innledende iterasjoner der ingen MCMC-relocation skjer ennå. Først etter denne oppvarmingen begynner reloc-logikken. Poeng: i de første iterasjonene har opasitetsverdiene ennå ikke stabilisert seg — hvis reloc startet direkte, ville Gaussians bli plassert feil steder og måtte flyttes igjen med en gang, noe som ødelegger Adam-momentum. Paper-default 500. RadianceKit bruker denne verdien fordi den har vist seg robust.
T68mcmcDeadOpacityThreshold
DETALJER
Default: 0,005 (Initializer, paper-standard), 0,01 (.fullMCMC og alle MCMC-presetene) Range: 0,001 – 0,05
TEKNISK
sigmoid(opacity)-terskelverdi under hvilken en Gaussian regnes som «død» og blir aktuell for relocation. 0.01 er den passende verdien — 0.005 endrer knapt noe, 0.02 er dårligere. Høyere = mer aggressiv reloc (flere Gaussians blir flyttet), lavere = mer forsiktig. 0.01 tilsvarer omtrent «0,5 % visuell synlighet». P10 Indoor bruker 0,0142.
T69mcmcNoiseDecayEnd
DETALJER
Default: 0 (Initializer = «ingen decay»), 160 000 (.fullMCMC = 80 % av 200K), 96 000 (.mcmcBalanced = 80 % av 120K), 40 000 (.mcmcPreview) Range: 0 eller 1 000 –
TEKNISK
Iterasjon der T63 mcmcNoiseScale-støyen dempes helt ned til null (kosinus-decay fra iter 0 til her). 80 % av maxIterations er den passende verdien — det gir MCMC nok utforskningstid, men lar de siste 20 % konvergere uten støy. 0 = konstant støy over alle iterasjoner (sjelden fornuftig, MCMC kan da ikke konvergere).
T70mcmcGrowthRate
DETALJER
Default: 0,05 (paper-standard = 5 %) Range: 0,01 – 0,2
TEKNISK
Vekstrate for MCMC-populasjonsmålet per relocation-steg. Logikken: ved hver reloc-hendelse økes mål-populasjonsstørrelsen med (1 + growthRate) inntil T62 mcmcMaxGaussians (eller varianten skalert via T72/T73) er nådd. 0.05 er den passende verdien — høyere verdier fører til for rask vekst (Gaussians settes inn før Adam-momentum kan integrere dem), lavere til underdensifiserte scener til slutt.
T71mcmcSigmoidK
DETALJER
Default: 100,0 Range: 10,0 – 500,0 Defined in:
TEKNISK
Sigmoid-skarphetsparameter for MCMC-støydempingen. I SGLD-steget dempes støyen per Gaussian — høy-opake Gaussians (hvis logit er positiv) får eksponentielt mindre støy enn lav-opake. K = 100 er skarpt, altså overgangen fra «full støy» til «ingen støy» skjer svært raskt rundt opasitet 0,5. K = 100 er den passende verdien — lavere verdier (10–50) lar også høy-opake Gaussians riste med (ødelegger konvergerte Gaussians), høyere (> 500) gjør overgangen kunstig hard, og døde Gaussians blir da overhodet ikke flyttet lenger.
T72mcmcCapMultiplier
DETALJER
Default: 3,0 (Initializer + .fullMCMC), 2,0 (.mcmcPreview), 2,5 (.mcmcBalanced), 2,98 (P8 Render), 5,32 (P9 Outdoor), 1,76 (P10 Indoor) Range: 0 (= deaktivert) eller 1,0 – 10,0
TEKNISK
1.4.5-funksjon: scene-adaptiv tak-skalering. Hvis T73 mcmcAutoScaleByScene er sann, beregnes det effektive taket som (klemmes til buffer-kapasitet). Bakgrunn: i store scener (f.eks. et dronefotoopptak med 1545 bilder → 158 K SfM-init) er T62 = 150 000 for lavt — density control ville ikke ha klart å vokse i det hele tatt. Med multiplikator 3.0 skaleres taket i dette eksempelet til 474 K (158 K × 3.0). Scene-Class-presetene bruker scenespesifikke verdier: utendørs profiterer på en høy multiplikator (5,32 → ~830 K tak ved 156 K init-punkter), innendørs nøyer seg med 1,76 (vegger metter raskere). For fullstendig oppløsning av taket se -metoden.
T73mcmcAutoScaleByScene
DETALJER
Default: true (Initializer + alle MCMC-presetene) Range: boolean
TEKNISK
1.4.5-funksjon: hovedbryter for den scenebevisste tak-logikken (se T72 +). Hvis false, brukes utelukkende T62 mcmcMaxGaussians som tak (tilbake til 1.4.4-oppførsel). Standard på, fordi masseutryddelses-problemene i store scener fra 1.4.3 ellers ville komme tilbake. Deaktiver manuelt bare hvis du eksplisitt vil sette et fast tak — f.eks. for å trene en 150 K-variant der sluttstørrelsen skal være forutsigbar.
Mip-Splatting (T74–T76)
Status: Mip-Splatting har i praksis ikke gitt noen kvalitetsgevinst, og på enkelte utendørsscener har det til og med gjort resultatet dårligere. Feltene forblir opt-in for eksperimenter; i alle leverte Presets er Mip-Splatting av.
T74useMipSplatting
DETALJER
Default: false (alle Production-Presets), true (.fullMCMCMip — forsknings-søsken) Range: boolean
TEKNISK
Aktiverer Mip-Splatting (Yu et al.~CVPR 2024): 3D-utjevningsfilter + 2D-filter + α-kompensasjon, som begrenser per-Gaussian-frekvensen til Nyquist-grensen for den tetteste treningskamera-samplingsraten. Teoretisk mål: eliminering av aliasing ved rendering i off-training-skalaer (0,5× eller 2× av treningsoppløsningen). Aktivert og funksjonelt korrekt i preprosesserings- og backward-projection-shaderne. I praksis uteble den håpede kvalitetsgevinsten likevel: ved rendering i treningsoppløsningen endrer så godt som ingenting seg, og på utendørsscener blir bildet til og med dårligere. En mulig forklaring: 3D-utjevningen arbeider mot MCMC-relokaliseringen så snart mange Gaussians er i spill. Feltet forblir tilgjengelig for egne multi-skala-eksperimenter.
T75mipSmoothing3DScale
DETALJER
Default: 0.2 (artikkelens standardverdi) Range: 0.05 – 1.0
TEKNISK
3D-utjevnings-skalaparameter (Yu et al.~§3.3, standardverdi 0,2 i artikkelen). Større = mer verdensrom-utjevning per Gaussian (= mer anti-aliasing, men også mer uskarphet ved standardskalaen), mindre = skarpere, men mer utsatt for aliasing. Konsulteres bare når T74 useMipSplatting = true. Ikke videre optimalisert — allerede med artikkelens standardverdi 0,2 gir Mip-Splatting ingen gevinst.
T76mipFilter2DVariance
DETALJER
Default: 0.3 (= nøyaktig den tidligere oppførselen) Range: 0.1 – 1.0
TEKNISK
2D-mip-filter-varians som legges til Σ_2D-diagonalen (varians direkte, ikke kvadrert). 0,3 er nøyaktig verdien som tidligere lå hardkodet i kernelen. Hvis T74 useMipSplatting = false, ignorerer kernelen denne verdien fullstendig og skriver den hardkodede 0,3 — slik at det garantert ikke skjer noen endring i den tidligere oppførselen. Hvis den er på, brukes verdien som er satt her. Forblir i feltkatalogen for mip-sweeps.
Adaptiv Densifisering (T77–T79)
T77adaptiveDensification
DETALJER
Default: false Range: boolean
TEKNISK
Rolling-Median-Tracker som alternativ til den faste T11 densifyGradThreshold. Hvis true, blir i hvert Densify-Step den gjeldende terskelverdien overskrevet med median(siste N avgGrad-Samples) × T79 adaptiveDensifyMultiplier. N = T78 adaptiveWindow. Strengere enn p98-varianten fra T52, som der utløser Mass-Pruning: median ganger 2 ligger i innsvingt tilstand omtrent på p70–p80 av gradient-fordelingen. Alene aktivert gir feltet ingen kvalitetsgevinst; sammen med Curriculum (se T80/T81) derimot — der bærer Curriculum gevinsten, dette feltet snarere stabiliteten. Det finnes ingen kontroll for dette: feltet er av i alle Presets og kan bare stilles inn via en redigert Preset-fil.
T78adaptiveWindow
DETALJER
Default: 1 000 Range: 100 – 10 000 Defined in:
TEKNISK
Rolling-Median-Window i Densification-Events (IKKE iterasjoner — hvert T13 densifyInterval-Step gir ett sample). Default 1 000 — ved dette betyr det at de siste 100 000 trenings-iterasjonene bidrar til medianen, altså typisk hele treningshistorikken frem til dette punktet. Tidlig fase (før T78 samples): Tracker returns nil → Fallback til fast Threshold T11. Bare relevant hvis.
T79adaptiveDensifyMultiplier
DETALJER
Default: 2.0 Range: 1.0 – 4.0
TEKNISK
Multiplikator på Rolling-Median for den adaptive terskelverdien. Default 2.0 tilsvarer omtrent p70–p80 av den typiske gradient-fordelingen. Lavere = mer aggressiv vekst (flere kloner), høyere = strengere (færre kloner). I området 1,5–3,0 er 2,0 den beste verdien. Bare relevant hvis.
Læreplan (T80–T81)
T80curriculumResolutionRamp
DETALJER
Standard: false Område: boolean
TEKNISK
Treningsoppløsningen starter på 0.5× og bytter ved T50 positionLRScheduleEndIteration / 2 (eller T1 maxIterations / 2, hvis T50 ikke er satt) til T22 trainingRenderScale. Overstyrer T23 resolutionWarmupScale når aktivert. Av de to adaptive tilleggene (se T77) er det denne læreplanen som gir den egentlige kvalitetsgevinsten — den gradvise oppløsningsøkningen gir appen tid til å finne grov geometri på lavere oppløsning før den går videre til det fine detaljarbeidet. Kan ikke justeres i grensesnittet — kun via en redigert forhåndsinnstillingsfil, og da fornuftig sammen med T81.
T81curriculumSHProgression
DETALJER
Standard: false Område: boolean
TEKNISK
Overstyrer T21 shDegreeUpgradeIterations med [maxIter/4, maxIter/2, maxIter*3/4], og fordeler dermed SH-oppgraderingene jevnt over treningstiden i stedet for å legge tyngden tidlig. Hypotese: stabil geometri etableres før fargedetalj-eksplosjonen, noe som posisjonerer de synsretning-avhengige glanseffektene mer presist. Sammen med T77 gir dette en gevinst i enkelte scener; det er dette feltet som bærer effekten, T77 alene er ikke nok. Kan ikke justeres i grensesnittet — kun via en redigert forhåndsinnstillingsfil.
Statiske forhåndsinnstillinger (TP1–TP9)
Her bare de strukturelle forskjellene fra initialisererens standard. Den fullstendige markedsføringsbeskrivelsen av de elleve UI-forhåndsinnstillingene P1–P11 finner du i kapittel 7.
TP1.preview
DETALJER
Diagnose-/forhåndsvisnings-preset for systemer ≥ 10 GB RAM. Overrides i forhold til initialisereren:
maxIterations30 000 → 5 000densifyUntilIteration15 000 → 3 500 (70 % av maxIter)positionLearningRateFinal1.6e-6 → 1.6e-5 (10× høyere, mindre aggressiv decay)shDCLearningRate,shRestLearningRate,opacityLearningRate,scaleLearningRate,rotationLearningRatehver 2×opacityResetInterval3 000 → 100 000 (effektivt av — resetten ødelegger korte treninger)shDegreeUpgradeIterations[1K, 2K, 3K]→[1K, 2K](grad 3 konvergerer ikke i så korte kjøringer)trainingRenderScale1.0 → 0.5
TP2.full
DETALJER
Production-Quality Classic. Overrides:
maxIterations30 000 → 35 000 (over dette truer overtrening: flere Gaussians uten kvalitetsgevinst)densifyUntilIteration15 000 → 5 000 (utprøvd verdi; senere stopp er dårligere)- Alle LR-er 2×
positionLearningRateFinal1.6e-6 → 1.6e-5 (10× høyere enn paper-standardverdien)densifyGradThreshold2e-6 → 1.1e-6 (kalibrert for 1.0× oppløsning)densifyInterval100 → 200pruneOpacityThreshold0.005 → 0.001opacityResetInterval3 000 → 100 000 (effektivt deaktivert)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K](forsinket oppgradering)opacityDecayFactor0.0 → 0.9995 (HTGS-skjema, tydelig kvalitetsgevinst)opacityDecayInterval50 (uendret)mergeAfterDensificationfalse → truepositionLRScheduleEndIteration0 → 20 000postTrainingCompactificationtrue (allerede initialisererens standard for.full)
TP3.fullClassicPaper
DETALJER
Paper-tro Classic-variant av TP2. Overrides i forhold til TP2:
maxIterations35 000 → 30 000 (paper-standard)densifyUntilIteration5 000 → 15 000 (paper: 50 % av maxIter)positionLearningRateFinal1.6e-5 → 1.6e-6 (paper-standardverdi)opacityLearningRate,scaleLearningRate,rotationLearningRatetilbake til paper-standardverdier (0.05, 0.005, 0.001)densifyGradThreshold1.1e-6 → 2e-7 (kalibrert for ~1–2 M Gs på Bicycle)densifyInterval200 → 100 (paper)pruneOpacityThreshold0.001 → 0.005 (paper-standardverdi)opacityResetInterval100 000 → 3 000 (paper §5.2, risikabelt — koster kvalitet i RadianceKits oppsett)opacityDecayFactor0.9995 → 0.0 (paper har ingen decay)positionLRScheduleEndIteration20 000 → 30 000 (cosine kjører til 100 % av maxIter)
TP4.fullMCMC
DETALJER
Production-Quality MCMC. Overrides i forhold til initialisereren:
maxIterations30 000 → 200 000 (MCMC trenger rundt 5× flere iterasjoner enn Classic)densifyUntilIteration15 000 → 160 000 (80 % av maxIter)positionLearningRateFinal1.6e-6 → 1.6e-5- LR-tidsplan som TP2 (alle 2×)
ssimWeight0.2 → 0.05 (MCMC trenger et sterkere L1-signal)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K]densificationStrategy.classic→.mcmcmcmcMaxGaussians150 000 (allerede i initialisereren, bekreftet i presetet)mcmcNoiseScale5e-5 (paper-verdi, utprøvd)mcmcDeadOpacityThreshold0.005 → 0.01mcmcNoiseDecayEnd0 → 160 000 (80 % av maxIter)mcmcCapMultiplier3.0 (allerede i initialisereren)mcmcAutoScaleByScenetrue (allerede i initialisereren)opacityResetInterval3 000 → 200 000 (effektivt av, MCMC bruker Reloc i stedet for reset)
TP5.fullMCMCMip
DETALJER
Mip-Splatting-variant av TP4 med Gaussian-budsjettet fra det opprinnelige paperet. Overrides i forhold til TP4:
mcmcMaxGaussians150 000 → 1 500 000 (10×, paper-størrelsesorden)useMipSplattingfalse → true (Mip på)
TP6.classicBalanced
DETALJER
Mid-Tier Classic. Overrides i forhold til TP2:
maxIterations35 000 → 20 000 (gir praktisk talt det samme som 30 000, med merkbart kortere ventetid)positionLRScheduleEndIteration20 000 → 0 (cosine kjører til maxIter = 20K, ingen forlenget fase)
TP7.mcmcPreview
DETALJER
MCMC-diagnose. Overrides i forhold til TP4:
maxIterations200 000 → 60 000densifyUntilIteration160 000 → 48 000 (80 %)mcmcMaxGaussians150 000 → 100 000mcmcNoiseDecayEnd160 000 → 40 000mcmcCapMultiplier3.0 → 2.0 (Preview skalerer mer tilbakeholdent)
TP8.mcmcBalanced
DETALJER
Mid-Tier MCMC. Overrides i forhold til TP4:
maxIterations200 000 → 120 000densifyUntilIteration160 000 → 96 000 (80 %)mcmcNoiseDecayEnd160 000 → 96 000 (80 %)mcmcCapMultiplier3.0 → 2.5 (mellom Preview 2.0 og Full 3.0)
TP9.quickTest
DETALJER
Ren funksjonstest. Overrides i forhold til initialisereren:
maxIterations30 000 → 1 000densifyUntilIteration15 000 → 500densifyGradThreshold2e-6 → 4e-6 (kalibrert for 0.25× oppløsning)densifyInterval100 → 50opacityResetInterval3 000 → 100 000 (av, siden det er altfor kort)trainingRenderScale1.0 → 0.25
Hvordan appen bestemmer Gaussian-capen
Det endelige svaret på spørsmålet «hvor mange Gaussians kan MCMC maksimalt la vokse?». Tre størrelser inngår: den innstilte verdien fra T62 mcmcMaxGaussians, antall SfM-init-punkter i scenen din, og den forhåndsreserverte buffer-kapasiteten. Appen regner i denne rekkefølgen:
+ Utgangsverdien er T62. Står den på 0, setter appen inn 150 000 — dette sikkerhetsgulvet forhindrer masseutryddelseshendelsen fra 1.4.3. + Hvis T73 mcmcAutoScaleByScene er slått på og T72 mcmcCapMultiplier er større enn 0, sammenligner appen utgangsverdien med «init-punkter × T72» og velger den største av de to verdiene. + Til slutt begrenser den resultatet til buffer-kapasiteten.
Eksempel: Bicycle (Mip-NeRF 360, 194 fotorammer) → SfM-init ~156 K punkter, T62 = 150 000, T72 = 5.32, auto-scale på, buffer-kapasitet 8 M. 156 K × 5,32 gir 830 K, det er mer enn 150 000 og mindre enn 8 M — den effektive capen er altså 830 K. MCMC-relokaliseringen holder seg til denne grensen.
Beregner den faktiske maksimale splat-mengden ved MCMC. Appen tar innstillingen din «Max Gaussians», ser på hvor mange punkter scenen din har i utgangspunktet, og skalerer med multiplikatoren hvis «Auto-scale by scene» er slått på. Slik tilpasser capen seg til scenen, i stedet for å tvinge samme verdi for en liten og en enorm scene. Du trenger ikke gjøre noe for dette — appen regner dette ut selv når treningen starter.
Hvilket felt til hva? (Jukselapp)
| Mål | Felter å justere |
|---|---|
| Mer detalj i det fjerne | T62 mcmcMaxGaussians høy, T72 mcmcCapMultiplier 5+ |
| Mer detalj generelt (Classic) | T1 maxIterations høy (≤ 40K), T2 densifyUntilIteration ≤ 14 % av T1 |
| Redusere floatere i droneflyvninger | T43 frustumCullEnabled på, T20 skyMaskingEnabled på, T45 skyDomeEnabled på |
| Fin himmel i utendørsscener | T45 skyDomeEnabled på, T47 skyDomeRadiusMultiplier 30–60 |
| Mindre eksportfil | Strategi .mcmc (T61), T56 postTrainingCompactification på, T62 mcmcMaxGaussians ≤ 200K |
| Raskere trening | T22 trainingRenderScale 0.5, T1 maxIterations halveres — men ikke begge deler! |
| Bedre glansslys | T21 shDegreeUpgradeIterations med [2K, 5K, 8K] (ingen early-front-load), MCMC + 200K iter |
| Live-forhåndsvisning oftere | T59 livePreviewInterval til 50 — den tetteste verdien som Innstillinger → Trening tilbyr |
| Mykere overganger ved skygger | T17 ssimWeight litt høy (0.15–0.25), men ikke over 0.3 |
| Holde interiør kompakt | P10 Innendørs-preset (, T72 = 1.76) |
Farlige felt
Disse feltene kan ved feilkonfigurering føre til OOM, app-krasj, mass-utryddelse av Gaussians eller ubrukelige benchmark-data. Skal behandles med forsiktighet:
- T11 densifyGradThreshold — en halvering kan gi 2–4× så mange Gaussians, noe som raskt sprenger GPU-minnet. Husk også: må stemme overens med T22 trainingRenderScale (1.0× → 1e-6, 0.5× → 2e-6, 0.25× → 4e-6). - T72 mcmcCapMultiplier — ved store scener med > 200 K SfM-init-punkter og multiplikator > 5 oppstår et resolved-cap på millioner av Gaussians. OOM mulig på 36-GB-RAM-Macer. Utendørsverdien 5.32 fungerer bare fordi den tilhørende referansescenen har rundt 156 K init-punkter → 830 K cap. - T39 testViewIndices — manuell innstilling i en preset-fil kan gjøre en kvalitetsmåling ubrukelig (alle indekser > N → ingen holdouts). La listen stå tom. - T64 mcmcOpacityRegWeight og T65 mcmcScaleRegWeight — I 1.4.3-beta satt til 0.01, noe som førte til mass-utryddelse (460 K → 5 Gaussians i én iterasjon). Siden 1.4.4 fastsatt til 0.0, men manuell økning kan reprodusere problemet. - T15 opacityResetInterval — hvis ikke 100 000+ (effektivt av) og treningen er kortere enn 10 000 iterasjoner, ødelegger tilbakestillingen konvergensen. .preview har den derfor satt til 100 000 til tross for maxIterations = 5 000. - T54/T55 densifyPhase2* — Den andre densification-fasen ender i en kaskade helt ned til null Gaussians. La begge stå på 0. - T74 useMipSplatting — gir ingen kvalitetsgevinst og kan på enkelte utendørsscener til og med forverre bildekvaliteten. Standard av, opt-in kun for eksperimenter.
Hvis et felt står på denne listen og du vil endre det, ta først en sikkerhetskopi av din nåværende preset (eksporter som JSON) og vurder om du kan måle resultatet reproduserbart — ellers vet du etterpå ikke om du har oppnådd en forbedring eller forverring.