Kapitel 6 — Trænings-konfiguration

En typisk preset-JSON-eksport. Felter på øverste niveau: id (UUID), name, (classic | mcmc | sceneClass | custom), (skemaversion), (tidsstempel), (fritekst). Det indlejrede -objekt indeholder de parametre, der er kritiske for reproducerbarhed — ved import indlæses hele blokken i trænings-konfigurationen, og standardværdier fra app-versionen udfylder de felter, der mangler i JSON'en (f.eks. efter en app-opdatering). Hvis du giver et preset videre til en anden Mac, sender du bare denne JSON-fil over.
Trænings-konfigurationen er hjertet i ethvert træningsforløb i RadianceKit. Den samler alle parametre, der påvirker træningen — fra den maksimale antal iterationer over de otte læringsrater til specialfelterne til MCMC, Mip-Splatting, curriculumet og den scene-bevidste cap-logik. Du redigerer den i sidebjælken i området Trænings-konfigurations-sektion (Expert View), gemmer den som et preset eller sender den videre som en JSON-eksport til en anden Mac. Under træningen bliver netop dette objekt frosset og sendt til GPU-backenden.
Dette kapitel er referencemateriale for power-users. Det viser de 80 justerbare felter i trænings-konfigurationen, de 9 medfølgende presets og den scene-afhængige beregning af Gaussian-cap'en. I tvivlstilfælde gælder den værdi, som det valgte preset sætter — du kan se den i Inspector'en eller i JSON-eksporten af presetet.
Indholdsfortegnelse:
+ Iteration (T1–T2) + Læringsrater (T3–T10) + Densification — Classic (T11–T16) + Loss (T17–T20) + SH-Degree-Progression (T21) + Performance (T22–T24) + Diagnose og forberedelse af 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) + Adaptiv Densification (T77–T79) + Curriculum (T80–T81) + Statiske presets (TP1–TP9) + Hvordan appen bestemmer Gaussian-cap'en + Hvilket felt gør hvad? (Cheat-sheet) + Farlige felter
Iteration (T1–T2)
T1maxIterations
DETALJER
Standard: 30 000 (Initializer), 35 000 (.full), 200 000 (.fullMCMC) Interval: 1 000 – 500 000 (UI-slider), ingen hård øvre grænse i logikken
TEKNISK
Det samlede antal træningsiterationer, som backenden gennemløber. En iteration er en forward-rendering af et enkelt træningskamera, en backward-pass over alle loss-komponenter (L1 + SSIM + valgfrie regulariseringer + sky-maske) og et Adam-optimizer-skridt. Dette tal påvirker direkte de andre tidsplaner: Position-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-opgraderinger sker ved de tre markeringer defineret i T21. Ved klassisk densification ligger det gennemprøvede interval på 20 000–35 000 iterationer, ved MCMC på 60 000–200 000. En drastisk forøgelse ud over de værdier, der ligger i preset, giver sjældent ekstra kvalitet — Adam-momentum mætter, og uden en afslutning på LR-decay stagnerer loss'en. Omvendt fører en underskridelse af ~5 000 til ufuldstændigt konvergerede geometrier (density-control har for lidt tid til at klone/splitte).
T2densifyUntilIteration
DETALJER
Standard: 15 000 (Initializer), 5 000 (.full), 160 000 (.fullMCMC) Interval: 0 – T1 maxIterations
TEKNISK
Den iteration, hvorfra densification stopper. Indtil da klones, splittes og beskæres gaussians ud fra reglerne parametriseret i T11–T16 (Classic) eller T67–T70 (MCMC); derefter forbliver antallet af gaussians konstant, og kun positioner, rotationer, skalaer, opaciteter og SH-koefficienter optimeres videre (refinement-fasen). I den oprindelige 3DGS-artikel ligger værdien på 50 % af T1, i RadianceKits .full-preset kun ~14 % (5 000 af 35 000): Efter cirka 5 000 iterationer forværrer yderligere densification snarere resultatet — flere floaters, mere hukommelsesforbrug, ingen kvalitetsgevinst. MCMC lader derimod relocation køre til 80 % af T1, fordi MCMC ikke producerer skadelige floaters. Vælges T2 for lille (< 1 000), opstår der for få gaussians; for stort ved Classic (> 50 % af T1) fører til overgrowth og RGB-saturation-outliers (se Outdoor-Overtraining-Findings).
Learingsrater (T3–T10)
T3positionLearningRate
DETALJER
Standard: 0.00016 Interval: 1e-7 – 1e-3 (anbefalet)
TEKNISK
Adam-læringsrate for XYZ-positionen af hver Gaussian ved træningens start (iteration 0). Følger en cosine-annealing-kurve og falder i løbet af træningen til T4 positionLearningRateFinal. Standardværdien 0.00016 stammer fra det oprindelige 3DGS-papir (Kerbl et al.~2023) og skal i RadianceKit ikke skaleres, selv ved højere billedopløsning — positionen bevæger sig i verdenskoordinatsystemet, ikke i pixelrum. En markant forhøjelse (> 0.0005) bevirker, at Gaussians hopper over lange afstande, og at loss'en bliver ustabil; værdier klart under det (< 0.00005) medfører, at forkert initialiserede punktskyer aldrig finder deres plads. For langt de fleste scener er standardværdien derfor det rigtige valg. Bemærk: ved .fullMCMC lader vi bevidst denne værdi stå på standard — MCMC har brug for konstante læringsrater til sin relocation-logik, så at justere her giver ingen fordel.
T4positionLearningRateFinal
DETALJER
Standard: 0.0000016 (Initializer + papir), 0.000016 (.full, .fullMCMC — 10× højere) Interval: 0 – T3 positionLearningRate
TEKNISK
Slutværdien for position-LR-cosine-annealing-kurven. Denne nås enten ved T1 maxIterations eller, hvis sat, ved T50 positionLRScheduleEndIteration. RadianceKit-.full-preset'et bruger 0.000016 — altså 10× højere end papirets standard 0.0000016. Både en markant mindre slutværdi og en markant større startværdi forringer resultatet mærkbart. Den høje slutværdi er ikke en trade-off, men et bevidst valg: ved for kraftig decay mister Gaussians under refinement-fasen deres evne til at indstille sig på nyligt tilkomne densification-kandidater. Schedule-fasen kan afkortes (T50 < T1), så T4 allerede nås før træningens afslutning, og resten af træningen kører ved konstant mini-LR — typisk konfiguration: T50 = 20 000, T1 = 35 000, altså refinement ved 0.000016 i 15 000 iterationer.
T5shDCLearningRate
DETALJER
Standard: 0.0025 (Initializer + papir), 0.005 (.full og alle MCMC-presets — 2×) Interval: 0.0001 – 0.05
TEKNISK
Adam-læringsrate for DC-andelen (degree 0, altså konstant albedo) af den sfærisk-harmoniske farve. SH-DC svarer til den retningsuafhængige grundtone af en Gaussian, så at sige "basisfarven". RadianceKit fordobler papirets standard i quality-presets — det fremskynder farve-konvergensen, hvilket er nødvendigt, fordi SH-DC ellers ikke kommer i form ved kort træning (< 5 000 iterationer). I modsætning til de geometriske LR'er har SH-DC ingen decay; læringsraten forbliver konstant gennem alle iterationer (eller følger kun den valgfrie extended-phase-decay fra T51). Endnu markant højere værdier (omkring 0.01) forringer igen resultatet og gør farverne ustabile.
T6shRestLearningRate
DETALJER
Standard: 0.000125 (Initializer + papir), 0.00025 (.full og MCMC — 2×) Interval: 0.000001 – 0.005
TEKNISK
Adam-læringsrate for SH-koefficienterne af højere orden (degree 1, 2, 3 — altså de view-direction-afhængige farveandele, der sørger for glansfremhævninger, spejlinger og blød skyggelægning). 20× mindre end T5 efter papirets konvention, fordi disse koefficienter vokser kvadratisk i antal (3 for degree 1, 5 for degree 2, 7 for degree 3 → i alt 15 floats pr. Gaussian) og uden en mindre læringsrate ville mætte billedet for meget. Frigives i to trin — indtil det første mærke i T21 shDegreeUpgradeIterations er kun degree 0 aktiv (altså kun T5), derefter 1, senere 2, til sidst 3. Lave værdier her er særligt vigtige på scener med meget diffust lys; ved meget skinnende overflader (billak, vand) er det ikke umagen værd at skrue på det — selve SH-repræsentationen er begrænset.
T7opacityLearningRate
DETALJER
Standard: 0.05 (Initializer + papir), 0.1 (.full, MCMC — 2×) Interval: 0.001 – 1.0
TEKNISK
Adam-læringsrate for logit-opaciteten af hver Gaussian. Appen gemmer opacitet som en ubegrænset float-værdi og transformerer den med sigmoid til [0, 1]; LR'en virker i logit-rummet. Quality-presets fordobler papirets standard til 0.1; det gør pruning mere effektiv — døde Gaussians falder hurtigere under T14 pruneOpacityThreshold. Hvilken værdi der bærer bedst, afhænger her af Adam-konfigurationen; samspillet mellem de to er ikke trivielt. Lave værdier (< 0.01) medfører, at "døde" Gaussians ligger evigt og bruger hukommelse; for høje værdier (> 0.5) kan føre til opacity-eksplosion, derfor begrænser optimizeren logit-værdien fast til [-15, 3].
T8opacityLearningRateFinal
DETALJER
Standard: 0.0 (= "ingen decay") Interval: 0 eller 0.001 – T7 opacityLearningRate
TEKNISK
Valgfri cosine-decay-slutværdi for opacity-LR'en. Hvis 0.0, er decay deaktiveret, og opacity-LR'en forbliver konstant gennem hele træningen ved T7. En decay fra 0.1 til 0.01 forringer resultatet markant; derfor står standarden på "fra". Hypotesen bag feltet: i refinement-fasen kunne konstant opacity-LR føre til oscillation, så splats, der allerede har nået den rette grad af gennemsigtighed, igen forskubbes af tilfældige gradient-udsving. Empirisk bekræftes dette ikke — logit-clamping-logikken opfanger det alligevel. Feltet forbliver tilgængeligt til fremtidige eksperimenter; også meget lange MCMC-forløb (> 500K iterationer) kunne have gavn af det.
T9scaleLearningRate
DETALJER
Standard: 0.005 (Initializer + papir), 0.01 (.full, MCMC — 2×) Interval: 0.0001 – 0.1
TEKNISK
Adam-læringsrate for de tre skala-komponenter af hver Gaussian i log-rum (RadianceKit gemmer log(scale), så skalaerne forbliver positive). Papirets standard 0.005 er i RadianceKit fordoblet til 0.01 for bedre scale-konvergens ved de afstemte læringsrate-konfigurationer. Forbliver værdien i samspil med de øvrige quality-læringsrater ved papirets standard, opstår der synligt for få Gaussians — density-control kan ikke klone, fordi skala-opdateringerne følger for langsomt med. Skala kontrollerer udstrækningen af hver Gaussian — for hurtig læring fører til "nål"-Gaussians (ekstremt lange tynde splats, se T34 scaleRatioPruneThreshold), for langsom læring lader splats forblive for kompakte, og density-control må splitte for ofte.
T10rotationLearningRate
DETALJER
Standard: 0.001 (Initializer + papir), 0.002 (.full, MCMC — 2×) Interval: 0.0001 – 0.05
TEKNISK
Adam-læringsrate for de fire kvaternion-komponenter af hver Gaussian. Kvaternionen normaliseres i hvert optimizer-trin efter Adam-opdateringen igen (L2-norm = 1) — ellers ville kovariansmatricen degenerere. RadianceKit fordobler papirets standard i quality-presets, fordi rotation har mindre absolutte gradient-magnituder i forhold til skala/position (på enhedssfæren forbliver hvert skridt kort), og uden 2× ville rotationen inden for det 35 000-iterations-vindue være markant under-konvergeret. På NeRF-Blender-scener (Lego, Chair) har rotation særlig stor effekt — objekternes kanter retter først rigtigt ind efter 5 000–10 000 iterationer.
Densification — Klassisk (T11–T16)
T11densifyGradThreshold
DETALJER
Standard: 0.000002 (Initializer, kalibreret til 0,5× opløsning), 0.0000011 (.full, kalibreret til 1,0×), 0.000004 (.quickTest, kalibreret til 0,25×), 2e-7 (.fullClassicPaper) Interval: 1e-8 – 1e-3 (opløsningsafhængig)
TEKNISK
Tærskelværdi for L2-normen af den skærmrums-projicerede positionsgradient, over hvilken en Gaussian markeres til kloning eller splitning. Den absolutte værdi afhænger direkte af trænings-opløsningen — den skalerer nogenlunde som 1/opløsning² (flere pixels = mindre gradient pr. pixel). Derfor kræver hvert T22 trainingRenderScale-niveau en kalibreret tærskelværdi: 0,25× → 4e-6, 0,5× → 2e-6, 1,0× → 5e-8 … 1,1e-6 (.full). Paper-standarden 0,0002 er NDC-normaliseret og ikke direkte sammenlignelig i RadianceKits verdensrums-pipeline. Med T52 adaptiveDensifyThreshold-flaget kan værdien beregnes ved runtime ud fra p98 af den aktuelle gradient-fordeling — på virkelige scener falder antallet af Gaussians dog dramatisk (masse-pruning); flaget forbliver slået fra. T77–T79 giver en alternativ adaptiv logik via rullende median. Dette felt er ikke ufarligt — halvering giver 2–4× flere Gaussians (hukommelsestryk, OOM-risiko); fordobling kan gøre scenen under-densificeret.
T12densifyFromIteration
DETALJER
Standard: 500 Interval: 100 – 5 000
TEKNISK
Første iteration, hvorfra densifikation bliver aktiv. Før det sker der kun "ren" indlæring på den oprindelige SfM-punktsky, uden at der oprettes nye Gaussians. Standardværdien 500 stammer fra 3DGS-paperet og giver initialiseringen tid til at stabilisere sig — hvis der densifikeres allerede fra iteration 0, kloner forkert placerede SfM-punkter sig mange gange, før de overhovedet finder deres rette plads. En markant senere start (f.eks. 1 000) forringer resultatet en smule; hold dig til standarden.
T13densifyInterval
DETALJER
Standard: 100 (Initializer, MCMC), 200 (.full) Interval: 50 – 1 000
TEKNISK
Hvor mange iterationer der ligger mellem to densifikationstrin. I paper-standarden 100 — hver 100. iteration evalueres listen over densifikations-kandidater, klones/splittes, og samtidig fjernes listen over prune-kandidater (sigmoid(opacity) < T14 pruneOpacityThreshold). For .full har 200 vist sig velegnet — det aflaster GPU'en, fordi der kører færre reorganiserings-passes, og giver hver Gaussian mere tid til at falde til ro efter en klone-handling. Kortere intervaller fører i Quality-opsætningen til overdensifikation: der opstår markant flere Gaussians, uden at billedet bliver bedre. Ved MCMC fortolkes det samme felt som relokations-interval; se T67 mcmcRelocationInterval for den MCMC-specifikke logik.
T14pruneOpacityThreshold
DETALJER
Standard: 0,005 (Initializer, Paper, MCMC), 0,001 (.full) Interval: 0,0001 – 0,1
TEKNISK
Sigmoid-opacitets-tærskel, under hvilken en Gaussian slettes ved næste densifikationstrin. Virker sammen med T7 opacityLearningRate og logit-clamp-logikken i optimizeren. I .full ligger værdien på 0,001 i stedet for 0,005 — splats, der kun spiller en rolle under exotiske synsvinkler, bevares dermed længere og bidrager til SH-detaljer. Endnu mindre værdier (f.eks. 0,0001) giver ikke længere gevinst: der prunes for lidt, og hukommelse spildes. Vigtigt: Density-control skal ALTID prune, selv hvis buffer-kapaciteten allerede er fuld på grund af andre foranstaltninger — ellers akkumuleres døde Gaussians, og antallet fryser fast.
T15opacityResetInterval
DETALJER
Standard: 3 000 (Initializer + Paper), 100 000 (.full = effektivt deaktiveret), 200 000 (.fullMCMC = deaktiveret) Interval: 1 000 – 100 000+
TEKNISK
Hver hvor mange iterationer nulstilles opaciteten for alle Gaussians til en lav værdi (~0,01) — en foranstaltning fra 3DGS-paperet for at revurdere "fastfrosne" splats. Sammen med RadianceKits opvarmning, det stokastiske trænings-setup og de fordoblede læringsrater koster opacitets-nulstillingen mærkbart kvalitet, og logit-clampet i optimizeren dækker alligevel allerede dens funktion. Derfor er den i .full praktisk talt deaktiveret (100 000 > 35 000 = udløses aldrig). Ved .fullClassicPaper (paper-tro variant) er den bevidst sat tilbage til 3 000 — der handler det om at nå det oprindelige papers Gaussian-budgetter.
T16maxScreenSize
DETALJER
Standard: 0,0 (= deaktiveret) Interval: 0 (fra) eller > 0
TEKNISK
Maksimal skærmrums-størrelse (i projicerede pixels), som en Gaussian må nå, før den tvangssplittes. Værdien er sat til 0 — RadianceKits density-control bruger i stedet verdensrums-skala-tærsklen fra den samme gradient-logik. Forbliver i felt-kataloget, fordi fremtidige eksperimenter med mip-splatting (T74–T76) eller scene-specifikke splatting-strategier kunne have gavn af den. Aktivering (værdi > 0, f.eks. 20) ville tvinge meget store splats på skærmen til at opdele sig — relevant ved store, glatte vægflader, hvor et enkelt kæmpe splat giver for lidt detalje.
Loss (T17–T20)
T17ssimWeight
DETALJER
Standard: 0.2 (Initializer + Paper + .full), 0.05 (alle MCMC-presets) Interval: 0.0 – 1.0
TEKNISK
Vægten af D-SSIM-andelen i den kombinerede loss-funktion loss = (1 - λ) * L1 + λ * D-SSIM, hvor λ = T17. 3DGS-paper-standarden på 0.2 er det rigtige valg til Classic-densification — allerede 0.3 forringer resultatet mærkbart. For MCMC ligger den passende værdi derimod ved 0.05, fordi MCMC på grund af sin stokastiske udforskning har brug for en stærkere L1-signal-andel — højere SSIM-vægte ville udvande relocation-beslutningerne. SSIM er betydeligt dyrere at beregne end L1 (lokale 11×11-vinduer over hele billedet); RadianceKit bruger en MPS-accelereret implementering, der forbliver under 1 ms pr. 1080p-billede. Scene-class-presets bruger scenespecifikke værdier mellem 0.082 (.outdoorPreset) og 0.171 (.indoorPreset).
T18ssimWeightRefinement
DETALJER
Standard: 0.0 (= „intet skift, behold ssimWeight") Interval: 0 eller 0 – 1.0
TEKNISK
Valgfri SSIM-værdi for refinement-fasen efter T2 densifyUntilIteration. En forhøjelse fra 0.2 til 0.3 i refinement-fasen forringer resultatet i begge mål — både L1 og SSIM; derfor står standarden på 0.0. Hypotesen bag feltet var, at efter densification — når der ikke længere opstår nye Gaussians — ville en stærkere SSIM-andel maksimere den strukturelle skarphed. Empirisk forkert: at hæve SSIM-vægten betyder indirekte at sænke L1-vægten, og L1 er det langt mere sigende signal i den sidste refinement-fase. Feltet forbliver tilgængeligt til fremtidige eksperimenter med perceptuel loss (T60) eller edge-loss (T19), hvor en refinement-specifik loss-sammensætning kunne give mening.
T19edgeLossWeight
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.001 – 1.0
TEKNISK
Eksperimentel loss-term: vægten af en Sobel-gradient-domain-L1-loss, der sammenligner billedkanterne direkte (ground-truth-Sobel vs render-Sobel) ud over L1+SSIM. Hypotese: Kant-information er en perceptuel hjørnesten for billedkvalitet, og en eksplicit term burde tilskynde Gaussians til at ramme kanter bedre. I praksis giver den intet: en mærkbar vægt (0.1) forringer resultatet, en lille (0.01) ændrer intet ved kvaliteten, men koster beregningstid. Sobel-passet koster et ekstra MPS-forward-pass på ground-truth og render. Derfor permanent deaktiveret. Fremtidigt use-case: scener med hårde kunstige kanter (arkitektur, møbler, renderinger) kunne have gavn af det — Scene-class-presets bruger dog ikke denne term til det, men skalerer i stedet SSIM-vægten.
T20skyMaskingEnabled
DETALJER
Standard: false (Initializer og alle presets) Interval: boolean
TEKNISK
Slår Sky Masking til. Her maskeres himmel-regionen i hvert billede fra med hjælp fra Apple Vision-frameworket, og loss i dette område sættes til nul. Formål: Udendørs-scener lider ofte under, at blå/grå/hvide himmel-pixels får appen til at placere Gaussians netop dér — hvilket opfattes som „floaters". Uden sky-mask ville loss i dette område aldrig blive nul, fordi himlen i billedet varierer en smule, og appen for evigt forsøger at genskabe det med splats. Vision-masken beregnes én gang pr. kamera før træningen og holdes i RAM. Bruges typisk sammen med T45 skyDomeEnabled (UI-logik i settings-visningen). Ved indendørs-scener eller syntetiske renderinger bør den holdes deaktiveret — masken ville dér fejlagtigt genkende lofter eller vægge 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 — Grad 3 übersprunget) Interval: [Int], hver værdi i [0, maxIterations], monotont stigende
TEKNISK
Iterationer, hvor den aktive SH-grad opgraderes fra 0→1, 1→2, 2→3. Før den første markering er kun DC-komponenterne aktive (altså T5 shDCLearningRate), efter den første markering DC + 3 Degree-1-koefficienter, efter den anden markering + 5 Degree-2-koefficienter, efter den tredje markering alle 15 koefficienter. Hukommelsesbehovet pr. Gaussian vokser dermed trinvis — 4 Floats → 16 Floats → 36 Floats → 64 Floats. Kvalitetspresets forsinker opgraderingerne i forhold til Initializer-standarderne, fordi geometrien først skal stabilisere sig, før farvedetaljerne med deres højere frekvens kommer på. De tidligere markeringer [1K, 2K, 3K] giver i .full et mærkbart dårligere resultat. .preview stopper ved grad 2, fordi grad 3 ikke konvergerer inden for 5.000 iterationer og kun bruger optimizer-kapacitet. Curriculummet (T80–T81) tilbyder en alternativ logik, der dynamisk overskriver denne liste.
Ydeevne (T22–T24)
T22trainingRenderScale
DETALJER
Standard: 1.0 (Initializer, .full, MCMC, Scene-Class), 0.5 (.preview), 0.25 (.quickTest) Interval: 0.05 – 2.0 (typisk 0.25, 0.5, 1.0)
TEKNISK
Render-opløsning under træning relativt til den oprindelige opløsning af træningsbillederne. Ved 0.5 bliver hvert billede skaleret ned til 50 % bredde × 50 % højde (altså 25 % af pixlerne), og Gaussian-renderingen sker i denne mindre opløsning. Reducerer både hukommelses- og regneforbrug kvadratisk. Vigtigt: T11 densifyGradThreshold skal passe til den valgte opløsning — gradient-magnituderne skalerer med 1/opløsning², derfor har .quickTest (0.25×) en langt højere threshold (4e-6) end .full (1.0×, 1.1e-6). RadianceKit advarer ved meget store billeder og tilpasser automatisk — 3-MP-målopløsning. Ved ekstreme 4K-inputbilleder ville 0.5 eller endda 0.25 give mening, ellers løber selv den kraftigste Mac ind i CPU-compaction.
T23resolutionWarmupScale
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.1 –
TEKNISK
Træn Densification-fasen (Iter 0 til T2) i en lavere opløsning end Refinement-fasen. For .full er dette slået fra, fordi tidsgevinsten ved T22 = 1.0 og cosine-annealing er lille, og kvaliteten lider en smule. Forbliver i felt-kataloget, fordi den ved 4K-input og lange træningsforløb igen kunne blive relevant — Curriculum (T80) tager en lignende logik op, men der er den koblet til LR-skemaet. Hvis aktiveret, og T80 curriculumResolutionRamp også er true, vinder Curriculum og overskriver denne værdi.
T24tileSize
DETALJER
Standard: 16 Interval: 8, 16, 32
TEKNISK
Størrelse på rasteriserings-tiles i pixels. Gaussian-Splatting-renderingen er tile-baseret: billedet opdeles i 16×16-pixel-fliser, hver flise samler de for den relevante Gaussians, sorterer dem efter dybde og blender dem ind. 16 er den standard, der praktisk talt bruges af alle 3DGS-implementeringer, og er hardkodet i RadianceKit-Metal-kernels; en ændring af denne værdi ville kræve re-kompilering af shaderne og er i den nuværende tilstand ikke effektiv. Forbliver som felt, hvis en fremtidig engine-version understøtter tile-size dynamisk.
Diagnose og punktsky-forberedelse (T26–T30)
T26depthDistortionWeight
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: Vægt af en depth-distortion-regulariseringstab. Straffer Gaussians, der ganske vist er dybt forskudt langs en render-stråle, men konceptuelt hører til den samme overflade — det opmuntrer til koncentrerede dybdefordelinger og reducerer floaters. I alle afprøvede styrker bliver resultatet dårligere i stedet for bedre. Den teoretiske fordel — at forbedre multi-view-konsistens — afspejler sig ikke i L1-tabet, fordi hypotesen implicit antager, at SfM-geometrien er korrekt, og at Gaussians blot skal "stables" korrekt. I praksis er SfM-punktskyen som regel den svageste komponent, ikke stablingen. Forbliver tilgængelig for multi-view-datasæt med særligt rene poser (syntetiske, Mip-NeRF 360 med ground truth).
T27singleViewOverfit
DETALJER
Standard: false Interval: boolean
TEKNISK
Diagnose-flag: hvis true, bruges der i hver træningsiteration tvungent kamera-indeks 0 i stedet for et tilfældigt fra kamera-poolen. Formål: Hvis modellen ikke engang kan overfitte en enkelt view (dvs. tabet på view 0 ikke går mod nul selv efter 10 000 iterationer), er der en fundamental bug i forward/backward-passet. Denne kontakt blev brugt intensivt under udviklingen af Metal-shaderne og de differentiable rasterizer-kernels. I dag er den kun tilgængelig som en sanity-check, hvis nogen har ændret noget i trænings-backendet og vil kontrollere det. I brugerfladen findes der ingen kontakt til dette — feltet er slået fra i alle presets og forbliver det.
T28maxCameras
DETALJER
Standard: 0 (= "brug alle kameraer") Interval: 0 eller 1 – N
TEKNISK
Diagnose-grænse: træn kun med de første N kameraer, ignorer alle øvrige. Formål oprindeligt: at teste hypotesen om, at for mange kameraer skaber gradient-konflikter (for mange modstridende tabssignaler for den samme Gaussian). En kunstig begrænsning giver ingen fordel — flere frames giver praktisk taget altid mere kvalitet. I brugerfladen findes der ingen kontrol til dette; feltet står på 0 i alle presets, altså "alle kameraer".
T29maxInitialPoints
DETALJER
Standard: 0 (= "brug alle SfM-punkter") Interval: 0 eller 1 000 – 200 000+
TEKNISK
Sikring: begrænser antallet af de initiale SfM-punkter, som træningen starter med. Tætte COLMAP-rekonstruktioner kan producere > 60 000 punkter, hvilket ved store initial-skalaer fører til 200–300 Gaussians pr. pixel-overlap — det skaber et "tågefelt", hvor træningen ikke konvergerer. Subsampling til ~16 000 punkter (hard-cap-logik i træningsmotoren) bringer den initiale tæthed op på det niveau, som referencens 3DGS bruger, og reducerer overlap dramatisk. Appen sætter dette selv ved meget tætte rekonstruktioner; der findes ingen kontrol til det.
T30cameraClusterOutlierMultiplier
DETALJER
Standard: 10.0 (alle presets — bliver aldrig overskrevet) Interval: 1.0 – 100.0
TEKNISK
Multiplikator for camera-cluster-outlier-filteret. Før træningen beregner træningsmotoren centroiden for alle kamerapositioner og den maksimale afstand for et kamera fra centroiden. SfM-punkter, hvis afstand fra centroiden overskrider multiplier × maxCameraDistance, kasseres som outliers. Standardværdien på 10× er bevidst valgt rummeligt. En subtil sideeffekt: Tættere SfM (kameraer tættere sammen) → mindre tærskelværdi → flere punkter kasseres som outliers. Løsere SfM → større tærskelværdi → færre punkter kasseres. Deraf følger en overraskende effekt: en tættere og i sig selv bedre SfM-rekonstruktion kan forringe træningen, fordi for mange initialpunkter kasseres. Feltet står på 10 i alle presets og er i brugerfladen ikke indstilleligt. Værdier under 5 er som regel for restriktive, over 20 uden virkning.
Regularisering (T31–T37)
T31coarseToFineBlurRadius
DETALJER
Standard: 0 (= deaktiveret) Interval: 0 eller 1 – 10
TEKNISK
Eksperimentelt: Box-blur-radius, der ved starten af densification-fasen anvendes på ground-truth-billedet og lineært reduceres til 0 hen mod slutningen af densification (T2). Hypotese: coarse-to-fine-træning — først lære grove strukturer, så detaljer — burde give mere stabil geometri. I alle afprøvede radiusstørrelser bliver resultatet dårligere. Grunden til fiaskoen: densification træffer beslutninger baseret på billeddomæne-gradienter, og blur reducerer netop de signaler, som er vigtige for „her skal der klones". Forbliver i felt-kataloget til fremtidige tests med et andet density-control-skema.
T32scaleRegWeight
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: L1-regularisering på verdensrumslig skala. Straffer gaussians, der bliver for store — forhindrer „mega-splats", der dækker hele vægflader med én gaussian. Slået til eksploderer antallet af gaussians til millioner, og resultatet bliver mange gange dårligere. Grunden: skala-regularisering kommer i konflikt med density control — mindre skalaer betyder, at flere gaussians er nødvendige, så density control splitter oftere, hvilket igen betyder mere gradient-arbejde. Deaktiveret, men dokumenteret til mip-splatting-eksperimenter (T74): i den kontekst kunne en skala-nedre grænse give mening.
T33anisotropyRegWeight
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: penalty på forholdet max(scale)/min(scale), skal forhindre ekstremt langstrakte „needle"-gaussians, som opfattes som floaters. I alle afprøvede styrker bliver resultatet betydeligt dårligere. Grunden: regulariseringen tvinger splats i retning af „rund" form, hvilket på en flad overflade (væg, bord, gulv) er præcis forkert — der er en flad, bred gaussian mere effektiv end en kugleformet. Deaktiveret. T34 scaleRatioPruneThreshold forfølger samme formål mere målrettet, men er også som standard slået fra.
T34scaleRatioPruneThreshold
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 5.0 – 100.0 (typisk 10.0 – 30.0)
TEKNISK
Eksperimentel post-trænings-pruning, der sletter enhver gaussian, hvis forhold max(scale)/min(scale) overskrider den her indstillede lineære tærskel. Retter sig mod ekstremt langstrakte „needle/disc"-floaters, som ikke kan elimineres af regularisering alene. I testen fjernede pruningen floaters som håbet, men samtidig også fornuftige flade splats på vægge og gulve — billedet blev mere hullet. Derfor slået fra som standard. Siden version 1.8 findes der en kontakt til dette: Remove Needle/Disc Floaters i Inspector-afsnittet „Training", under mellemlinjen „Runs automatically at the end of training". Slået til arbejder den bevidst konservativt (kun splats, hvis længste akse overstiger den korteste med omkring 50×) og virker fra næste træningskørsel.
T35opacityRegWeight
DETALJER
Standard: 0.0 (= deaktiveret) Interval: 0 eller 0.0001 – 0.05
TEKNISK
Eksperimentelt: binary-cross-entropy-penalty, der trækker opacitet mod 0 eller 1 (altså væk fra „halvt-transparent"). Hypotese: en skarpere opacitetsfordeling ville forbedre billedklarheden. Sammen med T33 koster regulariseringen kvalitet; begge er deaktiveret. Bemærk: i 1.4.3-beta dukkede der en bug op, der netop havde dette felt i en ændring af standardværdien (initializer = 0.01), hvilket førte til mass-extinction af gaussian-antallet (460 K → 5 på en iteration). Siden 1.4.4 er standarden fast forankret på 0.0.
T36opacityDecayFactor
DETALJER
Standard: 0.0 (initializer = deaktiveret), 0.9995 (.full, .classicBalanced — HTGS-standard) Interval: 0 (fra) eller 0.95 – 1.0
TEKNISK
Implementering af HTGS-skemaet (Hierarchical Time-Gating, Eurographics 2025): hver T37 opacityDecayInterval iterationer ganges sigmoid-opaciteten for hver gaussian med denne faktor. 0.9995 × 100 anvendelser giver ca. 95 %-forbliven pr. densification-fase — et let, men jævnt nedadgående pres på alle opaciteter, som pålideligt får svagt bidragende gaussians til at synke under T14 pruneOpacityThreshold. Resultatet er et markant bedre resultat end uden decay. Kun aktiv under densification-fasen (indtil T2), derefter kører træningen videre uden decay, så de opaciteter, der er etableret under refinement, forbliver stabile. Bruges ikke ved MCMC (MCMC har sine egne mekanismer via T67 mcmcRelocationInterval + T68 mcmcDeadOpacityThreshold).
T37opacityDecayInterval
DETALJER
Standard: 50 Interval: 10 – 500
TEKNISK
Iterationsinterval, hvori T36 opacityDecayFactor anvendes. HTGS-paper-standard 50, bevaret i .full. Lange intervaller (>200) ophæver delvist effekten, fordi der mellem to anvendelser sker nok gradient-opdateringer til, at opaciteten stiger igen. Kortere intervaller (<20) gør decay for aggressiv. Kun aktiv i densification-fasen.
Refinement (T38–T44)
T38gradientAccumulationSteps
DETALJER
Default: 1 (= „et View pr. Adam-trin") Range: 1 – 8
TEKNISK
Antal views, hvis gradienter akkumuleres, før et Adam-update udføres. Ved > 1 kører appen på en separat, „unfused" backward-project-sti, som summerer gradienterne i en separat buffer; den endelige anvendelse skaleres med 1/N for at holde magnituden konstant. Ved klassisk træning giver værdien 2 ingen kvalitetsgevinst, men koster tid, fordi den unfused-sti er dyrere end den fused. Ved MCMC derimod formindsker accum = 2 kvalitetsafstanden til Classic mærkbart — derfor tilbydes den dér som en kontakt. I presets står værdien på 1. I brugerfladen når du den via kontakten MCMC Quality i Inspector-afsnittet „Training": tændt akkumulerer appen 2 views pr. trin, slukket 1. Andre værdier end 1 og 2 kan kun tildeles via en redigeret preset-fil.
T39testViewIndices
DETALJER
Default: [] (= tom, alle views bruges til træning) Range: Set<Int>, vilkårlig delmængde af Camera-indices
TEKNISK
Sæt af Camera-indices, som IKKE bruges til træning, men gemmes som holdout til PSNR/SSIM/LPIPS-evaluering. Bruges kun i de interne målekørsler: der hvert ottende view, begyndende ved index 0 (LLFF-standard, identisk med Mip-NeRF-360- og 3DGS-paper-konventionerne). I leveringstilstand forbliver feltet tomt — træningen bruger alle views, og der er ikke noget betjeningselement til det i brugerfladen. Forsigtig: hvis man manuelt sætter dette felt i en preset-fil uden at forstå indices, gør det en måling ubrugelig (f.eks. hvis alle indices sættes over N, mens der kun er N-50 views → ingen holdouts → ingen evaluering). Ved eksport af eget preset skrives testViewIndices ikke med, fordi det er scenafhængigt og ellers ville efterlade meningsløse værdier mellem forskellige datasæt.
T40refinementPruneInterval
DETALJER
Default: 0 (= deaktiveret) Range: 0 eller 100 – 5 000
TEKNISK
Hver N. iteration under refinement-fasen (efter T2) køres en ekstra prune-pass, der fjerner Gaussians med sigmoid(opacity) < T41 refinementPruneOpacityThreshold. Formål: under densification er der regelmæssige density-control-kald, derefter ikke mere — Gaussians, hvis opacity fortsat falder, forbliver dog i bufferen. I praksis skader denne ekstra pruning: sammen med den anden densification-fase (T54) kan den tømme Gaussian-bestanden helt. Står i alle presets på 0 og kan ikke justeres i brugerfladen; hvis man alligevel sætter den via en redigeret preset-fil, er 1 000 eller 2 000 fornuftige værdier.
T41refinementPruneOpacityThreshold
DETALJER
Default: 0.0 (= „brug T14") Range: 0 eller 0.001 – 0.1
TEKNISK
Separat opacity-tærskelværdi til refinement-pruning. Efter densification har de fleste Gaussians nået en betydeligt højere opacity (> 0.001), så standard-T14 pruneOpacityThreshold ville være for slap. Hvis T40 er aktiv, bestemmer dette felt sin egen tærskelværdi. Ved 0.0 bruges T14 videre. Kun relevant hvis T40 > 0.
T42midTrainingCompactificationIterations
DETALJER
Default: [] (= deaktiveret) Range: [Int], værdier i (densifyUntilIteration, maxIterations)
TEKNISK
Eksplicitte iterationspunkter under refinement-fasen, hvor en compactification-pass kører (fjerner sigmoid(opacity) < 0.01 + outlier-scale-Gaussians, samme logik som T56 postTrainingCompactification). Formål: lange refinement-faser kan vise confetti-/floater-akkumulering, hvis SH derefter overfitter til viewspecifikke artefakter. Typisk konfiguration hvis aktiveret: [10000, 20000, 30000] for 40K Classic. MEN: frit valgte oprydningsmarkeringer forringer gennemgående slutresultatet — antallet af Gaussians falder ganske vist markant, men billedfejlen stiger mere. Som frit valgbar iterationsliste forbliver feltet derfor tomt i alle presets. Selve effekten opnår du i brugerfladen via kontakten Floater Cleanup i Inspector-afsnittet „Training": ved klassiske kørsler fra 30 000 iterationer lægger den to oprydningsforløb midt i træningen. Egne markeringer kan kun sættes via en redigeret preset-fil.
T43frustumCullEnabled
DETALJER
Default: false Range: boolean
TEKNISK
Efter træningen fjernes alle Gaussians, der ligger uden for foreningsmængden af alle trænings-kamera-frusta. Sådanne Gaussians blev aldrig begrænset af loss-signalet og er altid floaters. Særligt effektivt til scener, hvor novel-view ligger bag eller ved siden af kameraforløbet (f.eks. bagsiden af en lineær droneflyvning) — floaterne dér bliver aldrig synlige i træningsfasen, men til gengæld ved senere bevægelse i 3D-viseren. Ved droneflyvninger giver dette synligt færre floaters, derfor tilgængeligt som opt-in. Default false, fordi frustum-unionen ved object-captures med fuld orbit-coverage omfatter hele scenen, og funktionen så ikke fjerner noget — tilbydes i Settings under „Floater Reduction". Outdoor-preset'et aktiverer det ikke, fordi sky-dome'n dér løser samme problem bedre.
T44frustumCullExpansion
DETALJER
Default: 1.1 Range: 1.0 – 2.0
TEKNISK
NDC-margin til T43 frustumCullEnabled. 1.0 ville skære præcis ved billedkanten, hvilket ville beskære vaklende splats ved billedkanten for kraftigt. 1.1 = 10 % padding ud over det præcise kamera-framing — giver en vis tolerance for kantpixler, som alligevel kunne blive synlige i et let forskudt novel-view. Værdier > 1.2 gør cull'et praktisk talt virkningsløst, fordi det udvidede frustum omfatter meget mere plads.
Sky-Dome (T45–T48)
T45skyDomeEnabled
DETALJER
Standard: false (Initializer + alle presets undtagen P9 Outdoor) Interval: boolean
TEKNISK
Før træningsstart genereres en kugleformet punktsky (Fibonacci-sphere med T46 sample-points), placeret i en radius på T47 skyDomeRadiusMultiplier × scene_extent omkring scenens midtpunkt og initialiseret med farverne fra de himmel-maskerede pixels fra alle træningskameraerne (se T20 skyMaskingEnabled). Disse sky-dome-gaussians indsættes i begyndelsen af gaussian-bufferen og "fryses" under træningen (position/skala/rotations-gradienter = 0, kun SH og opacitet forbliver optimerbare). Effekt: i stedet for sorte "konfetti"-områder i det fjerne ser brugeren en rigtig himmel i novel-views. På drone- og landskabsscener fungerer det rigtig godt; i outdoor-preset'et (P9) er det slået til som standard. Lad det være slukket ved indendørs scener — kuglen ville hænge meningsløst uden for rummet.
T46skyDomeSampleCount
DETALJER
Standard: 5.000 Interval: 1.000 – 50.000 (typisk 2.000 – 10.000)
TEKNISK
Antal Fibonacci-sphere-sample-punkter på sky-dome-kuglen. Højere værdier → tættere sky-dome (bedre ved store opløsninger og meget synlig himmel), men mere hukommelsesforbrug. 5.000 er sweet spot for 4K-renderinger; ved lavere opløsninger er 2.000–3.000 nok. Punkterne initialiseres efter cosine-distance til hver trænings-kamera-view-vektor med de tilsvarende himmel-maskerede pixels — sample-points, hvis view-cone ikke ses af noget kamera, forbliver med en lav opacitets-startværdi bagved, men ændres ikke under træningen (frosset).
T47skyDomeRadiusMultiplier
DETALJER
Standard: 30.0 (Initializer + de fleste presets), 59.0 (P9 Outdoor) Interval: 5.0 – 200.0
TEKNISK
Radius for sky-dome-kuglen relativt til scenens udstrækning (= gennemsnitlig afstand mellem kamera-positionerne). 30 = kuglen har 30 gange kamera-skyens diameter. For lille (< 5) → sky-dome interfererer med selve scenen (f.eks. lander en sky-dome-splat i forgrunden); for stor (> 100) → tab af float32-præcision ved sky-dome-positionerne, hvilket udløser render-glitches i det fjerne. Ved store udendørsscener er 59.0 den passende værdi — standardværdien 30.0 er for lille til dybe landskaber, så renderes sky-dome-pixels synligt som en "væg" i billedkanterne.
T48frozenGaussianCount
DETALJER
Standard: 0 (= ingen frosne gaussians) Interval: 0 eller 1 – T46
TEKNISK
Antal gaussians i begyndelsen af bufferen, hvis position/skala/rotations-gradienter i optimizeren sættes til nul — de forbliver rumligt stive under hele træningen. Density-control må ikke klone, splitte eller beskære dem. Bruges til sky-dome-injection (se T45): når sky-dome er slået til, sættes dette felt automatisk til T46 skyDomeSampleCount. Manuel indstilling er mulig (f.eks. for at fryse en forudplaceret punktsky fra et LiDAR-scan), men er ikke direkte tilgængelig i UI'et. Vigtigt: de første N gaussians i bufferen er altid de frosne — rækkefølgen i bufferen afgør det, ikke et eksplicit indeks.
Adam + LR-Schedule (T49–T55)
T49adamResetIteration
DETALJER
Default: 0 (= deaktiveret) Range: 0 eller 100 –
TEKNISK
Iteration, hvor Adam-optimeringens momentum-akkumulatorer (m1, m2) nulstilles. Bias-korrektionen kører derefter med (iter - adamResetIteration) i stedet for med iter. En nulstilling efter afslutningen af densification forringer resultatet markant. Årsag: det Adam-momentum, der er opbygget under densification, bidrager med information om de typiske gradient-størrelser og fremskynder refinement-fasen. At smide det væk koster de første ~500 refinement-iterationer i konvergens. Står derfor på 0 i alle presets og kan ikke justeres i brugerfladen.
T50positionLRScheduleEndIteration
DETALJER
Default: 0 (Initializer = „brug maxIterations"), 20 000 (.full — Cosine slutter ved 20K på trods af maxIter=35K), 30 000 (.fullClassicPaper) Range: 0 eller 1 000 –
TEKNISK
Iteration, hvor cosine-annealing-kurven for position-LR når sit minimum. Hvis 0, er dette identisk med T1 maxIterations. Hvis > 0, kører schedulen frem til denne værdi og forbliver derefter konstant ved T4 positionLearningRateFinal. Dette muliggør en „extended refinement phase" med minimal men konstant læringsrate — forfiner positioner langsomt uden fornyet decay. .full gør dette (schedule slutter ved 20K, træningen kører til 35K); i nærheden — 15K til 25K — ændres der næsten intet, 20K er det bedste kompromis. Bruges videre sammen med T51 til også at modificere de ikke-position-relaterede LR'er i den udvidede fase.
T51extendedPhaseLRDecay
DETALJER
Default: 0.0 (= deaktiveret, konstante LR'er) Range: 0 eller 0.01 – 1.0
TEKNISK
Minimal multiplikator for de ikke-position-relaterede LR'er (skala, rotation, opacity, SH) i „extended phase" — altså: efter T50 er nået, og position-LR allerede er ved T4. Hvis 0.1, bliver skala/rotation/opacity/SH selv cosine-decayed fra 1.0 (= deres standard-LR) til 0.1× af deres standard. Hvis 0.0 (default), forbliver de konstante. Fuld decay ned til nul giver samme resultat som slet ingen decay — adfærden virker renere med decay, men er ikke målbart bedre. Står derfor på 0 i alle presets og kan ikke justeres i brugerfladen.
T52adaptiveDensifyThreshold
DETALJER
Default: false Range: boolean
TEKNISK
Eksperimentelt: hvis true, beregner appen ved hvert densification-trin p98 af den aktuelle gradient-fordeling og bruger den som dynamisk tærskelværdi (clampet til mindst 0.5× af den konfigurerede værdi fra T11, så den ikke afviger for meget). Hypotese: Automatisk tilpasning til den aktuelle scene-fase ville gøre density-control mere robust — f.eks. strengere pruning i starten, mere lempelig senere, eller omvendt. I praksis kollapser antallet af gaussians dramatisk — mass-pruning, fordi p98 er ekstremt højt i de første iterationer og næsten intet derefter overskrider tærskelværdien. Den faste tærskel er allerede godt kalibreret, dynamisk tilpasning skader mere, end den gavner. T77 tilbyder en alternativ adaptiv logik via rolling median, som omgår problemet.
T53mergeAfterDensification
DETALJER
Default: false (Initializer), true (.full, .classicBalanced, .fullClassicPaper) Range: boolean
TEKNISK
Ved slutningen af densification-fasen (iter T2) udføres en engangs merge-pass, der samler gaussians, der ligger tæt på hinanden og har lignende skala og farve. Reducerer antallet af gaussians med typisk 5–15 % uden synligt kvalitetstab. Formål: efter intensiv kloning opstår der klynger af næsten identiske gaussians, som ikke bidrager med noget nyt — merging frigør optimeringskapacitet til andre områder. Standard i Classic-Quality-presets. Bruges ikke ved MCMC, fordi MCMC's relocation-logik forhindrer sådanne klynger i overhovedet at opstå.
T54densifyPhase2FromIteration
DETALJER
Default: 0 (= deaktiveret) Range: 0 eller T2 – T1
TEKNISK
Eksperimentelt: muliggør en anden densification-fase, der starter ved denne iteration efter refinement-pausen og kører frem til T55. Hypotese: efter en refinement-fase har gradient-akkumulatorerne mere stabile størrelser og kan mere præcist angive, hvilke områder der stadig har brug for flere gaussians. I praksis ender den anden densification-fase i en kaskade helt ned til nul gaussians — sammen med refinement-pruning (T40) tømmer den bufferen helt. Står derfor på 0 i alle presets og er ikke justerbar i brugerfladen.
T55densifyPhase2UntilIteration
DETALJER
Default: 0 Range: 0 eller T54 – T1 Defined in:
TEKNISK
Slutning på den anden densification-fase. Kun relevant hvis T54 > 0. Begge felter deaktiveret sammen.
Efterbehandling + Apple AI (T56–T60)
T56postTrainingCompactification
DETALJER
Default: true (i alle Production-Presets), false (.quickTest, .preview) Range: boolean
TEKNISK
Efter afsluttet træning fjernes Gaussians med sigmoid(opacity) < 0.01 hårdt (de bidrager praktisk talt ikke længere til billedet). Reducerer Gaussian-antallet med typisk 58 % og eksport-filstørrelsen med 55 % uden synligt kvalitetstab. Som standard aktiv i Production-Presets — slutresultatet skal kunne leveres så kompakt som muligt. I .quickTest slået fra, fordi en diagnosekørsel alligevel ikke eksporteres. I modsætning til T42 midTrainingCompactificationIterations finder compactification først sted til sidst — refinement kan indtil da bruge alle Gaussians.
T57metalFXUpscaling
DETALJER
Default: false Range: boolean
TEKNISK
⚠ Nedlagt siden 2026-07-18 og uden nogen virkning. Feltet hørte til pickeren „Viewport Scaling" (Off/MetalFX/Lanczos) i Inspector. Rendereren har aldrig læst det: blit-beslutningen er rent geometrisk (supersampled renderet ⇒ MPS-Lanczos-downsample til kantudjævning, ellers bilineær), og for MetalFX-stien fandtes der slet ikke noget kaldested. Pickeren og de to falske meddelelser, den fodrede, er fjernet; overlay-teksten hedder nu „Sampling", ikke „Scaling", og ingen steder i appen skaleres der op via MetalFX. Selve feltet forbliver, fordi træningskonfigurationen gemmes fuldstændigt — det sidder i hver gemte scene, i hvert preset og i indstillingskommentaren i allerede eksporterede PLY'er; en sletning ville stille falde key'en ud ved genskrivning og bryde denne udveksling. Af samme grund er feltet undtaget fra „Modified"-sammenligningen: en gammel scene kan bære true, og der er ingen vej mere til at nulstille dette via brugerfladen. Intet læser det — ikke kobl det til igen.
T58mpsLanczosScaling
DETALJER
Default: false Range: boolean
TEKNISK
⚠ Nedlagt siden 2026-07-18 og uden nogen virkning — se T57 metalFXUpscaling, dér står også hvorfor feltet alligevel skal gemmes fortsat. En nærliggende fejlslutning skal nævnes udtrykkeligt: appen bruger sandelig MPS-Lanczos i viewporten, men det styres udelukkende af geometrien — et supersampled renderet billede regnes ned til kantudjævning. Det er en nedskalering, ikke en opskalering, og dette felt har aldrig udløst det.
T59livePreviewInterval
DETALJER
Default: 50 (Initializer; presets sætter ikke feltet) Range: 0 (fra), 50, 250 eller 1 000 i indstillinger-pickeren
TEKNISK
Hvor ofte 3D-vieweren opdateres med de aktuelle Gaussians under træningen. 50 = et nyt render for hver 50 iterationer — godt nok til at observere fremskridtet uden at bremse træningen mærkbart. 0 = vieweren opdateres slet ikke (baggrundstræning, maksimal hastighed). Ved lange MCMC-kørsler kan 250 eller 1 000 betale sig, fordi opdaterings-overheaden lægger sig oveni i det store billede. Særlig rolle: feltet hører ganske vist til træningskonfigurationen, men er en app-bred indstilling (Indstillinger → Training) og ikke en del af trænings-opskriften. Det er derfor undtaget fra „Modified"-sammenligningen, bevares ved preset-skift og bliver siden 2026-07-18 ikke længere overtaget fra filen ved åbning af en scene — tidligere erstattede en indlæst scene stille brugerens billedrate med scene-forfatterens, „Fra" inklusive, og der var ingen anden plads, hvorfra den kunne hentes tilbage.
T60perceptualLossWeight
DETALJER
Default: 0.0 (= deaktiveret) Range: 0 eller 0.001 – 0.5
TEKNISK
Vægt af en perceptuel loss-term (Multi-Scale-Blur-Feature-Matching). Fanger strukturel og teksturel lighed på et højere niveau end L1+SSIM — typisk dér, hvor „pixel-perfekt" er mindre vigtigt end „ser realistisk ud". Værdien ligger på 0.0 (fra) i alle presets. I brugerfladen indstiller du den via skyderen Perceptual Loss i Inspector-afsnittet „Training", interval 0 til 0,20 i trin af 0,01; ved 0 viser appen „Off".
MCMC-Densification (T61–T73)
T61densificationStrategy
DETALJER
Default: .classic (Initializer + Classic-Presets), .mcmc (alle MCMC-Presets + Scene-Class) Range: .classic eller .mcmc
TEKNISK
Vælger mellem Classic-Densification (klon/split/prune, Kerbl et al.~2023) og MCMC-Densification (Stochastic Gradient Langevin Dynamics med Relocation, Kheradmand et al.~NeurIPS 2024). Ved .classic bruges T11–T16, ved .mcmc T62–T73. Pas på ved skift: Classic-defaults og MCMC-defaults er kalibreret helt forskelligt — hvis du bare flipper vælgeren i Expert View uden at indlæse et passende preset, risikerer du en 1.4.3-bug-agtig masseudryddelse (460 K → 5 i én iteration, fordi MCMC-OpacityReg på 0.01 dræber Classic-opaciteterne). Derfor er MCMC-init-defaults bevidst „blødgjort" (alle reg-værdier 0.0).
T62mcmcMaxGaussians
DETALJER
Default: 150 000 (Initializer + .fullMCMC + .mcmcBalanced), 100 000 (.mcmcPreview), 1 500 000 (.fullMCMCMip — Mip-Splatting-variant med 10× budget), 1.19 M (.renderPreset), 1.25 M (.outdoorPreset), 670 K (.indoorPreset) Range: 0 (= „brug buffer-kapacitet") eller 10 000 – 5 000 000 Defined in:
TEKNISK
Hård øvre grænse for antallet af Gaussians ved MCMC-strategi. Antallet vokser gradvist med T70 mcmcGrowthRate (typisk 5 %) pr.~relocation-step op til dette loft. 150 K er et godt udgangspunkt — betydeligt over det udtyndes splat-kvaliteten (for mange små, overflødige Gaussians), betydeligt under forbliver scenen underdensificeret. Ved meget store scener (f.eks. 1 545-billeders droneflyvning med 158 K SfM-init) er 150 K for lavt — derfor 1.4.5-udvidelsen T72 mcmcCapMultiplier + T73 mcmcAutoScaleByScene. Scene-Class-presets bruger scenespecifikke værdier mellem 670 K (indendørs) og 1.25 M (udendørs). Ved værdien 0 bruger motoren den fulde buffer-kapacitet som loft.
T63mcmcNoiseScale
DETALJER
Default: 0.00005 (5e-5 = paper-default) Range: 1e-6 – 1e-3
TEKNISK
Multiplikator for den gaussiske støj, der i hver MCMC-iteration lægges til positionen af hver Gaussian (SGLD-logik). Højere = mere udforskning (Gaussians vandrer mere, finder potentielt bedre pladser), lavere = mere udnyttelse (Gaussians bliver, hvor de allerede er gode). 5e-5 er den rette værdi — betydeligt mindre betyder for lidt udforskning, betydeligt større (1e-4) for meget, så flyder splats ud. Falder over træningstiden med cosine-decay indtil T69 mcmcNoiseDecayEnd — ved slutningen af decay-intervallet er støjen effektivt 0, og Gaussians konvergerer.
T64mcmcOpacityRegWeight
DETALJER
Default: 0.0 (= deaktiveret i RadianceKit-defaults, paper: 0.01) Range: 0 eller 0.001 – 0.05
TEKNISK
MCMC-specifik L1-straf på opacitet. Paper-default 0.01 (presser ubrugte Gaussians mod nul, gør dem tilgængelige for relocation). I RadianceKit er resultatet uden denne regularisering målbart bedre. Grund: pruning-kriteriet defineret med T68 mcmcDeadOpacityThreshold er nok alene — en ekstra L1-straf tvinger også værdifulde, lav-opacitets-Gaussians til at dø. Derfor default 0. Bemærk: i 1.4.3-beta-build var initializer-defaulten fejlagtigt 0.01, hvilket resulterede i masseudryddelses-fejlen (se forklaring til T61); siden 1.4.4 fastsat til 0.0.
T65mcmcScaleRegWeight
DETALJER
Default: 0.0 (= deaktiveret, paper: 0.01) Range: 0 eller 0.001 – 0.05
TEKNISK
MCMC-specifik L1-straf på skala-egenværdierne. Paper-default 0.01. Også her er resultatet uden regularisering bedre, af samme grund som ved T64. Deaktiveret i alle RadianceKit-MCMC-presets. Pas på som ved T64: 1.4.3-fejlen.
T66mcmcRelocationInterval
DETALJER
Default: 100 (Initializer + alle MCMC-presets, paper-standard), 155 (P9 Outdoor) Range: 50 – 500
TEKNISK
Iterationsinterval, hvor MCMC relokerer døde Gaussians (sigmoid(opacity) < T68 mcmcDeadOpacityThreshold) til nye positioner. Kortere intervaller (omkring 50) virker for forstyrrende, tabet svinger; betydeligt længere (omkring 200) tager reaktionsevnen fra MCMC. 100 er den rette værdi. For udendørsscener ligger den med 155 lidt højere — de længere intervaller giver Adam mere tid til at integrere nyplacerede Gaussians, før den næste reloc-hændelse presser dem.
T67mcmcWarmupIterations
DETALJER
Default: 500 Range: 100 – 5 000
TEKNISK
Antal indledende iterationer, hvor der endnu ikke sker MCMC-relocation. Først efter denne opvarmning begynder reloc-logikken. Mening: i de første iterationer har opacitetsværdierne endnu ikke stabiliseret sig — hvis der blev startet direkte med reloc, ville Gaussians blive placeret forkerte steder og skulle straks flyttes igen, hvilket ødelægger Adam-momentum. Paper-default 500. RadianceKit overtager denne værdi, fordi den har vist sig robust.
T68mcmcDeadOpacityThreshold
DETALJER
Default: 0.005 (Initializer, paper-standard), 0.01 (.fullMCMC og alle MCMC-presets) Range: 0.001 – 0.05
TEKNISK
sigmoid(opacitet)-tærskelværdi, under hvilken en Gaussian anses for „død" og kommer i betragtning til relocation. 0.01 er den rette værdi — 0.005 ændrer næsten intet, 0.02 er dårligere. Højere = mere aggressiv reloc (flere Gaussians flyttes), lavere = mere forsigtig. 0.01 svarer nogenlunde til „0.5 % visuel synlighed". P10 Indoor bruger 0.0142.
T69mcmcNoiseDecayEnd
DETALJER
Default: 0 (Initializer = „ingen decay"), 160 000 (.fullMCMC = 80 % af 200K), 96 000 (.mcmcBalanced = 80 % af 120K), 40 000 (.mcmcPreview) Range: 0 eller 1 000 –
TEKNISK
Iteration, hvor T63 mcmcNoiseScale-støjen dæmpes fuldstændigt ned til nul (cosine-decay fra iteration 0 og hertil). 80 % af maxIterations er den rette værdi — det giver MCMC nok udforskningstid, men lader de sidste 20 % konvergere uden støj. 0 = konstant støj gennem alle iterationer (sjældent fornuftigt, MCMC kan så ikke konvergere).
T70mcmcGrowthRate
DETALJER
Default: 0.05 (paper-standard = 5 %) Range: 0.01 – 0.2
TEKNISK
Vækstrate for MCMC-populationsmålet pr. relocation-step. Logikken: ved hver reloc-hændelse forhøjes mål-populationsstørrelsen med (1 + growthRate), indtil T62 mcmcMaxGaussians (eller varianten skaleret via T72/T73) nås. 0.05 er den rette værdi — højere værdier fører til for hurtig vækst (Gaussians indsættes, før Adam-momentum kan integrere dem), lavere til underdensificerede scener til sidst.
T71mcmcSigmoidK
DETALJER
Default: 100.0 Range: 10.0 – 500.0 Defined in:
TEKNISK
Sigmoid-skarphedsparameter for MCMC-støjdæmpning. I SGLD-skridtet dæmpes støjen pr. Gaussian gennem — højt opake Gaussians (hvis logit er positiv) får eksponentielt mindre støj end lavt opake. K = 100 er skarp, dvs.~overgangen fra „fuld støj" til „ingen støj" sker meget hurtigt omkring opacitet 0.5. K = 100 er den rette værdi — mindre værdier (10–50) lader også høj-opake Gaussians ryste med (ødelægger konvergerede Gaussians), større (> 500) gør overgangen kunstigt hård, og døde Gaussians bliver slet ikke flyttet mere.
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 (= deaktiveret) eller 1.0 – 10.0
TEKNISK
1.4.5-funktion: sceneadaptiv loft-skalering. Når T73 mcmcAutoScaleByScene er true, beregnes det effektive loft som (klippet til buffer-kapacitet). Baggrund: ved store scener (f.eks. 1 545-billeders droneflyvning → 158 K SfM-init) er T62 = 150 000 for lavt — density-control ville slet ikke kunne vokse. Med multiplikator 3.0 skaleres loftet i dette eksempel til 474 K (158 K × 3.0). Scene-Class-presets bruger scenespecifikke værdier: udendørs profiterer af en høj multiplikator (5.32 → ~830 K loft ved 156 K init-punkter), indendørs nøjes med 1.76 (vægge mætter hurtigere). Fuldstændig opløsning af loftet se -metoden.
T73mcmcAutoScaleByScene
DETALJER
Default: true (Initializer + alle MCMC-presets) Range: boolean
TEKNISK
1.4.5-funktion: hovedafbryder for den scenebevidste loft-logik (se T72 +). Hvis false, bruges udelukkende T62 mcmcMaxGaussians som loft (tilbage til 1.4.4-adfærd). Som standard slået til, fordi masseudryddelsesproblemerne ved store scener fra 1.4.3 ellers ville vende tilbage. Deaktiver kun manuelt, hvis du eksplicit vil sætte et hårdt loft — f.eks. for at træne en 150 K-variant, hvis slutstørrelse er forudsigelig.
Mip-Splatting (T74–T76)
Status: Mip-Splatting har i praksis ikke givet nogen kvalitetsgevinst og har på nogle udendørsscener endda gjort skade. Felterne forbliver opt-in til eksperimenter; i alle leverede presets er Mip-Splatting slået fra.
T74useMipSplatting
DETALJER
Default: false (alle Production-presets), true (.fullMCMCMip — forsknings-sibling) Range: boolean
TEKNISK
Aktiverer Mip-Splatting (Yu et al.~CVPR 2024): 3D-smoothing-filter + 2D-filter + α-kompensation, der begrænser per-Gaussian-frekvensen til Nyquist-grænsen for den tætteste trænings-kamera-samplingsrate. Teoretisk mål: eliminering af aliasing ved rendering i off-training-skalaer (0.5× eller 2× af træningsopløsningen). Er aktiveret og funktionelt korrekt i preprocess- og backward-projection-shaderne. I praksis udeblev den håbede kvalitetsgevinst dog: ved rendering i træningsopløsningen ændrer der sig praktisk talt intet, og på udendørsscener bliver billedet endda dårligere. En forklaring på dette: 3D-udglatningen arbejder imod MCMC-relocation, så snart mange Gaussians er i spil. Feltet forbliver tilgængeligt til egne multi-scale-forsøg.
T75mipSmoothing3DScale
DETALJER
Default: 0.2 (paper-default) Range: 0.05 – 1.0
TEKNISK
3D-smoothing-skala-parameter (Yu et al.~§3.3, paper-default 0.2). Større = mere verdens-rum-udglatning pr. Gaussian (= mere anti-aliasing, men også mere blur ved default-skalaen), mindre = skarpere men mere modtagelig for aliasing. Konsulteres kun, hvis T74 useMipSplatting = true. Ikke optimeret yderligere — allerede med paper-defaulten 0.2 giver Mip-Splatting ingen gevinst.
T76mipFilter2DVariance
DETALJER
Default: 0.3 (= nøjagtigt den hidtidige adfærd) Range: 0.1 – 1.0
TEKNISK
2D-Mip-filter-varians, der lægges til Σ_2D-diagonalen (varians direkte, ikke kvadreret). 0.3 er nøjagtigt den værdi, der før Mip-Splatting stod fast indkodet i kernen. Hvis T74 useMipSplatting = false, ignorerer kernen denne værdi fuldstændigt og skriver den hardkodede 0.3 — så der garanteret ikke ændres noget ved den hidtidige adfærd. Hvis den er slået til, bruges den her indstillede værdi. Forbliver i felt-kataloget til Mip-sweeps.
Adaptiv Densification (T77–T79)
T77adaptiveDensification
DETALJER
Standard: false Interval: boolean
TEKNISK
Rolling-Median-Tracker som alternativ til den faste T11 densifyGradThreshold. Hvis true, overskrives den aktuelle tærskelværdi i hvert Densify-trin med median(seneste N avgGrad-samples) × T79 adaptiveDensifyMultiplier. N = T78 adaptiveWindow. Strengere end p98-varianten fra T52, som dér udløser Mass-Pruning: median gange 2 ligger i indsvinget tilstand omkring p70–p80 af gradient-fordelingen. Alene giver feltet ingen kvalitetsgevinst; sammen med curriculummet (se T80/T81) derimod — dér bærer curriculummet gevinsten, dette felt snarere stabiliteten. Der findes intet betjeningselement til dette: feltet er slået fra i alle presets og kan kun angives via en redigeret preset-fil.
T78adaptiveWindow
DETALJER
Standard: 1 000 Interval: 100 – 10 000 Defineret i:
TEKNISK
Rolling-Median-Window i Densification-events (IKKE iterationer — hvert T13 densifyInterval-trin leverer et sample). Standard 1 000 — det betyder, at de seneste 100 000 trænings-iterationer bidrager til medianen, altså typisk hele træningshistorikken indtil dette punkt. Tidlig fase (før T78 samples): Tracker returnerer nil → fallback til den faste tærskelværdi T11. Kun relevant hvis.
T79adaptiveDensifyMultiplier
DETALJER
Standard: 2.0 Interval: 1.0 – 4.0
TEKNISK
Multiplikator på den rullende median for den adaptive tærskelværdi. Standard 2.0 svarer nogenlunde til p70–p80 af den typiske gradient-fordeling. Lavere = mere aggressiv vækst (flere kloner), højere = strengere (færre kloner). I intervallet 1,5–3,0 er 2,0 den bedste værdi. Kun relevant hvis.
Curriculum (T80–T81)
T80curriculumResolutionRamp
DETALJER
Standard: false Interval: boolean
TEKNISK
Træningsopløsningen starter ved 0.5× og skifter ved T50 positionLRScheduleEndIteration / 2 (eller T1 maxIterations / 2, hvis T50 ikke er sat) til T22 trainingRenderScale. Tilsidesætter T23 resolutionWarmupScale, hvis aktiveret. Af de to adaptive tilføjelser (se T77) er det dette curriculum, der bærer den egentlige kvalitetsgevinst — den trinvise opløsningsforøgelse giver appen tid til at finde grov geometri ved den lavere opløsning, før den går videre til det fine detaljearbejde. Kan ikke justeres i brugerfladen — kun via en redigeret preset-fil, og så meningsfuldt sammen med T81.
T81curriculumSHProgression
DETALJER
Standard: false Interval: boolean
TEKNISK
Tilsidesætter T21 shDegreeUpgradeIterations med [maxIter/4, maxIter/2, maxIter*3/4], og fordeler dermed SH-opgraderingerne jævnt over træningstiden i stedet for at front-loade dem. Hypotese: stabil geometri etableres, før farvedetalje-eksplosionen sætter ind, hvilket placerer de synsretningsafhængige glans-effekter mere præcist. Sammen med T77 giver det en gevinst i nogle scener; det er dette felt, der bærer gevinsten — T77 alene er ikke nok. Kan ikke justeres i brugerfladen — kun via en redigeret preset-fil.
Statiske presets (TP1–TP9)
Her kun de strukturelle forskelle i forhold til initializer-standarden. Den fulde markedsføringsbeskrivelse af de elleve UI-presets P1–P11 finder du i kapitel 7.
TP1.preview
DETALJER
Diagnose-/preview-preset til systemer ≥ 10 GB RAM. Overrides i forhold til initializer:
maxIterations30 000 → 5 000densifyUntilIteration15 000 → 3 500 (70 % af maxIter)positionLearningRateFinal1.6e-6 → 1.6e-5 (10× højere, mindre aggressiv decay)shDCLearningRate,shRestLearningRate,opacityLearningRate,scaleLearningRate,rotationLearningRatehver 2×opacityResetInterval3 000 → 100 000 (effektivt fra — resetten ødelægger korte træningsforløb)shDegreeUpgradeIterations[1K, 2K, 3K]→[1K, 2K](grad 3 konvergerer ikke i så korte forløb)trainingRenderScale1.0 → 0.5
TP2.full
DETALJER
Production-quality classic. Overrides:
maxIterations30 000 → 35 000 (derover truer overtræning: flere gaussians uden kvalitetsgevinst)densifyUntilIteration15 000 → 5 000 (velafprøvet værdi; at stoppe senere er dårligere)- Alle LR'er 2×
positionLearningRateFinal1.6e-6 → 1.6e-5 (10× højere end paper-standarden)densifyGradThreshold2e-6 → 1.1e-6 (kalibreret til 1.0× opløsning)densifyInterval100 → 200pruneOpacityThreshold0.005 → 0.001opacityResetInterval3 000 → 100 000 (effektivt deaktiveret)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K](forsinket opgradering)opacityDecayFactor0.0 → 0.9995 (HTGS-skema, tydelig kvalitetsgevinst)opacityDecayInterval50 (uændret)mergeAfterDensificationfalse → truepositionLRScheduleEndIteration0 → 20 000postTrainingCompactificationtrue (allerede initializer-standard for.full)
TP3.fullClassicPaper
DETALJER
Paper-tro classic-variant af TP2. Overrides i forhold til TP2:
maxIterations35 000 → 30 000 (paper-standard)densifyUntilIteration5 000 → 15 000 (paper: 50 % af maxIter)positionLearningRateFinal1.6e-5 → 1.6e-6 (paper-standard)opacityLearningRate,scaleLearningRate,rotationLearningRatetilbage til paper-standarder (0.05, 0.005, 0.001)densifyGradThreshold1.1e-6 → 2e-7 (kalibreret til ~1–2 mio. Gs på Bicycle)densifyInterval200 → 100 (paper)pruneOpacityThreshold0.001 → 0.005 (paper-standard)opacityResetInterval100 000 → 3 000 (paper §5.2, risikabelt — koster kvalitet i RadianceKits opsætning)opacityDecayFactor0.9995 → 0.0 (paperet har ingen decay)positionLRScheduleEndIteration20 000 → 30 000 (cosine kører til 100 % af maxIter)
TP4.fullMCMC
DETALJER
Production-quality MCMC. Overrides i forhold til initializer:
maxIterations30 000 → 200 000 (MCMC kræver omkring 5× flere iterationer end classic)densifyUntilIteration15 000 → 160 000 (80 % af maxIter)positionLearningRateFinal1.6e-6 → 1.6e-5- LR-skema som TP2 (alle 2×)
ssimWeight0.2 → 0.05 (MCMC har brug for et stærkere L1-signal)shDegreeUpgradeIterations[1K, 2K, 3K]→[2K, 5K, 8K]densificationStrategy.classic→.mcmcmcmcMaxGaussians150 000 (allerede i initializeren, bekræftet i presettet)mcmcNoiseScale5e-5 (paper-værdi, velafprøvet)mcmcDeadOpacityThreshold0.005 → 0.01mcmcNoiseDecayEnd0 → 160 000 (80 % af maxIter)mcmcCapMultiplier3.0 (allerede i initializeren)mcmcAutoScaleByScenetrue (allerede i initializeren)opacityResetInterval3 000 → 200 000 (effektivt fra, MCMC bruger reloc i stedet for reset)
TP5.fullMCMCMip
DETALJER
Mip-Splatting-variant af TP4 med det oprindelige papers gaussian-budget. Overrides i forhold til TP4:
mcmcMaxGaussians150 000 → 1 500 000 (10×, paper-størrelsesorden)useMipSplattingfalse → true (Mip til)
TP6.classicBalanced
DETALJER
Mid-tier classic. Overrides i forhold til TP2:
maxIterations35 000 → 20 000 (giver praktisk talt det samme som 30 000, ved mærkbart kortere ventetid)positionLRScheduleEndIteration20 000 → 0 (cosine kører til maxIter = 20K, ingen forlænget 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 mere tilbageholdende)
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 (mellem preview 2.0 og full 3.0)
TP9.quickTest
DETALJER
Ren funktionstest. Overrides i forhold til initializer:
maxIterations30 000 → 1 000densifyUntilIteration15 000 → 500densifyGradThreshold2e-6 → 4e-6 (kalibreret til 0.25× opløsning)densifyInterval100 → 50opacityResetInterval3 000 → 100 000 (fra, da det er alt for kort)trainingRenderScale1.0 → 0.25
Sådan bestemmer appen loftet for Gaussians
Det afgørende svar på spørgsmålet „hvor mange Gaussians må MCMC maksimalt lade vokse til?". Tre størrelser indgår: den indstillede værdi fra T62 mcmcMaxGaussians, antallet af SfM-init-punkter i din scene og den forudreserverede buffer-kapacitet. Appen regner i denne rækkefølge:
+ Udgangspunktet er T62. Står den på 0, sætter appen 150.000 ind — denne sikkerhedsbund forhindrer den mass-extinction-hændelse fra 1.4.3. + Er T73 mcmcAutoScaleByScene slået til, og T72 mcmcCapMultiplier større end 0, sammenligner appen udgangsværdien med „init-punkter × T72" og tager den største af de to værdier. + Til sidst begrænser den resultatet til buffer-kapaciteten.
Eksempel: Bicycle (Mip-NeRF 360, 194 foto-frames) → SfM-init ~156 K punkter, T62 = 150.000, T72 = 5,32, auto-scale til, buffer-kapacitet 8 M. 156 K × 5,32 giver 830 K, hvilket er mere end de 150.000 og mindre end de 8 M — det effektive loft er altså 830 K. Det er den grænse MCMC-relokaliseringen holder sig til.
Beregner det reelle maksimale antal splats ved MCMC. Appen tager din indstilling „Max Gaussians", ser på, hvor mange punkter din scene har i starten, og skalerer med multiplikatoren, hvis „Auto-scale by scene" er slået til. På den måde tilpasser loftet sig til scenen i stedet for at tvinge samme værdi igennem for en lille og en kæmpestor scene. Du behøver ikke at gøre noget selv — appen beregner det automatisk, når træningen starter.
Hvilket felt bruges til hvad? (Cheat-Sheet)
| Mål | Felter der skal justeres |
|---|---|
| Mere detalje i det fjerne | T62 mcmcMaxGaussians højt, T72 mcmcCapMultiplier 5+ |
| Mere detalje generelt (Classic) | T1 maxIterations højt (≤ 40K), T2 densifyUntilIteration ≤ 14 % af T1 |
| Reducér floaters i drone-optagelser | T43 frustumCullEnabled til, T20 skyMaskingEnabled til, T45 skyDomeEnabled til |
| Flottere himmel i udendørs scener | T45 skyDomeEnabled til, T47 skyDomeRadiusMultiplier 30–60 |
| Mindre eksportfil | Strategi .mcmc (T61), T56 postTrainingCompactification til, T62 mcmcMaxGaussians ≤ 200K |
| Hurtigere træning | T22 trainingRenderScale 0.5, T1 maxIterations halveret — men ikke begge dele! |
| Bedre glansrefleksioner | T21 shDegreeUpgradeIterations med [2K, 5K, 8K] (ingen early-front-load), MCMC + 200K iter |
| Live-forhåndsvisning oftere | T59 livePreviewInterval på 50 — den tætteste værdi, som Indstillinger → Træning tilbyder |
| Blødere overgange ved skygger | T17 ssimWeight lidt højt (0.15–0.25), men ikke over 0.3 |
| Hold indendørs scener kompakte | P10 Indendørs-preset (, T72 = 1.76) |
Farlige felter
Disse felter kan ved forkert konfiguration føre til OOM, app-nedbrud, massedød af Gaussians eller ubrugelige benchmark-data. Skal behandles med forsigtighed:
- T11 densifyGradThreshold — en halvering kan skabe 2–4× så mange Gaussians, hvilket hurtigt sprænger GPU-hukommelsen. Bemærk også: skal passe til 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 en multiplier > 5 opstår et resolved cap på millioner af Gaussians. På Mac'er med 36 GB RAM er OOM muligt. Udendørs-værdien 5.32 fungerer kun, fordi den tilhørende referencescene har omkring 156 K init-punkter → 830 K cap. - T39 testViewIndices — manuel indstilling i en preset-fil kan gøre en kvalitetsmåling ubrugelig (alle indices > N → ingen holdouts). Lad listen være tom. - T64 mcmcOpacityRegWeight og T65 mcmcScaleRegWeight — sat til 0.01 i 1.4.3-beta, hvilket førte til massedød (460 K → 5 Gaussians i én iteration). Siden 1.4.4 fastlåst til 0.0, men manuel forhøjelse kan reproducere problemet. - T15 opacityResetInterval — hvis ikke 100 000+ (reelt slået fra) og træningen er kortere end 10 000 iterationer, ødelægger reset konvergensen. .preview har den derfor sat til 100 000 på trods af maxIterations = 5 000. - T54/T55 densifyPhase2* — Den anden densification-fase ender i en kaskade helt ned til nul Gaussians. Lad begge stå på 0. - T74 useMipSplatting — giver ingen kvalitetsgevinst og kan på nogle udendørsscener endda forringe billedkvaliteten. Slået fra som standard, kun opt-in til eksperimenter.
Hvis et felt står på denne liste, og du vil ændre det, så tag en sikkerhedskopi af dit aktuelle preset først (eksport som JSON), og overvej, om du kan måle resultatet reproducerbart — ellers ved du bagefter ikke, om du har opnået en forbedring eller en forværring.