Käyttöopas

Luku 6 — Koulutuksen määritykset

Esikatselu-preset vietynä JSON-muotoon ja näytettynä TextEditissä — kentät id/name/category/version/createdAt/description, trainingConfig kaikkine olennaisine parametreineen (maxIterations 5000, densifyUntilIteration 3500, ssimWeight 0.20, renderScale 0.50, strategy classic, cameraAlignment applePhotogrammetry, densifyGradThreshold 2.0e-06, opacityResetInterval 3000, minOpacity 0.005, kuusi Bool-kytkintä)
Esikatselu-preset vietynä JSON-muotoon ja näytettynä TextEditissä — kentät id/name/category/version/createdAt/description, trainingConfig kaikkine olennaisine parametreineen (maxIterations 5000, densifyUntilIteration 3500, ssimWeight 0.20, renderScale 0.50, strategy classic, cameraAlignment applePhotogrammetry, densifyGradThreshold 2.0e-06, opacityResetInterval 3000, minOpacity 0.005, kuusi Bool-kytkintä)

Tyypillinen preset-JSON-vienti. Ylätason kentät: id (UUID), name, (classic | mcmc | sceneClass | custom), (skeeman versio), (aikaleima), (vapaa teksti). Sisäkkäinen -objekti sisältää toistettavuuden kannalta kriittiset parametrit — tuonnin yhteydessä koko lohko luetaan koulutuksen määrityksiin, ja sovellusversion oletusarvot täyttävät kentät, jotka puuttuvat JSON:sta (esim. sovelluspäivityksen jälkeen). Jos jaat presetin toiselle Macille, lähetä vain tämä JSON-tiedosto.

Koulutuksen määritykset ovat jokaisen RadianceKit-koulutusajon sydän. Ne kokoavat yhteen jokaisen parametrin, joka vaikuttaa koulutukseen — maksimi-iteraatiomäärästä kahdeksaan oppimisnopeuteen sekä MCMC:n, Mip-Splattingin, curriculumin ja scene-aware-cap-logiikan erikoiskenttiin asti. Muokkaat niitä sivupalkin Koulutuksen määritykset -osiossa (Expert View), tallennat ne presetiksi tai lähetät ne JSON-vientinä toiselle Macille. Koulutuksen aikana juuri tämä objekti jäädytetään ja annetaan GPU-taustajärjestelmälle.

Tämä luku on viitemateriaalia edistyneille käyttäjille. Se luettelee koulutuksen määritysten 80 muokattavaa kenttää, 9 mukana toimitettua presetiä sekä Gaussian-capin scene-riippuvaisen ratkaisun. Epäselvissä tapauksissa pätee arvo, jonka valittu preset asettaa — näet sen Inspectorista tai presetin JSON-viennistä.

Sisällysluettelo:

+ Iteration (T1–T2) + Oppimisnopeudet (T3–T10) + Densification — Classic (T11–T16) + Loss (T17–T20) + SH-Degree-Progression (T21) + Performance (T22–T24) + Diagnoosi ja pistepilven esikäsittely (T26–T30) + Regularisointi (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) + Adaptiivinen Densification (T77–T79) + Curriculum (T80–T81) + Staattiset presetit (TP1–TP9) + Miten sovellus määrittää Gaussian-capin + Mikä kenttä mihinkin? (Cheat-Sheet) + Vaaralliset kentät

Iteraatiot (T1–T2)

T1maxIterations

TIEDOT

Oletus: 30 000 (Initializer), 35 000 (.full), 200 000 (.fullMCMC) Alue: 1 000 – 500 000 (UI-liukusäädin), ei kovaa ylärajaa logiikassa

TEKNINEN

Backendin läpikäymien harjoitusiteraatioiden kokonaismäärä. Yksi iteraatio tarkoittaa yhden harjoituskameran forward-renderöintiä, backward-läpikäyntiä kaikkien loss-komponenttien yli (L1 + SSIM + valinnaiset regularisoinnit + Sky-Mask) ja yhtä Adam-optimoijan askelta. Tämä luku vaikuttaa suoraan muihin aikatauluihin: Position-oppimisnopeus noudattaa cosine-annealing-käyrää välillä 0 – joko T1 itse tai T50 positionLRScheduleEndIteration; Densification pysähtyy kohdassa T2 densifyUntilIteration; MCMC-kohinan vaimeneminen päättyy kohdassa T69 mcmcNoiseDecayEnd; SH-Degree-päivitykset tapahtuvat kolmessa T21:ssä määritellyssä kohdassa. Klassisessa densifikaatiossa toimiva alue on 20 000–35 000 iteraatiota, MCMC:llä 60 000–200 000. Presetin arvojen huomattava ylittäminen tuo harvoin lisää laatua — Adam-momentum saturoituu, ja ilman LR-decay-loppua loss jämähtää paikoilleen. Toisin päin, alle ~5 000 iteraatiota johtaa epätäydellisesti konvergoituneisiin geometrioihin (Density-Controlilla on liian vähän aikaa kloonata/jakaa).

T2densifyUntilIteration

TIEDOT

Oletus: 15 000 (Initializer), 5 000 (.full), 160 000 (.fullMCMC) Alue: 0 – T1 maxIterations

TEKNINEN

Iteraatio, jonka jälkeen Densification lakkaa. Siihen asti Gaussianeja kloonataan, jaetaan ja karsitaan T11–T16 (Classic) tai T67–T70 (MCMC) parametroitujen sääntöjen mukaisesti; sen jälkeen Gaussianien määrä pysyy vakiona ja optimoidaan enää positioita, rotaatioita, skaaloja, opasiteetteja ja SH-kertoimia (Refinement-vaihe). 3DGS-alkuperäisjulkaisussa arvo on 50 % arvosta T1, RadianceKitin .full-presetissä vain noin 14 % (5 000/35 000): noin 5 000 iteraation jälkeen jatkuva densifikaatio pikemminkin huonontaa tulosta — enemmän kelluvia artefakteja (floaters), enemmän muistintarvetta, ei laatuvoittoa. MCMC sen sijaan antaa Relocationin jatkua 80 %:iin arvosta T1, koska MCMC ei tuota haitallisia floatereita. Jos T2 valitaan liian pieneksi (< 1 000), syntyy liian vähän Gaussianeja; liian suurena Classicilla (> 50 % arvosta T1) seurauksena on Overgrowth ja RGB-Saturation-Outliers (katso Outdoor-Overtraining-Findings).

Learning Rates (T3–T10)

T3positionLearningRate

TIEDOT

Oletus: 0.00016 Alue: 1e-7 – 1e-3 (suositeltu)

TEKNINEN

Adam-oppimisnopeus jokaisen Gaussianin XYZ-sijainnille harjoittelun alussa (iteraatio 0). Noudattaa cosine-annealing-käyrää ja laskee harjoittelun edetessä arvoon T4 positionLearningRateFinal. Oletusarvo 0.00016 on peräisin 3DGS-alkuperäisjulkaisusta (Kerbl ym.~2023), eikä sitä tule RadianceKitissä skaalata edes kuvatarkkuutta nostettaessa — sijainti liikkuu maailmankoordinaatistossa, ei pikseliavaruudessa. Selvä nosto (> 0.0005) saa Gaussianit hyppimään pitkiä matkoja, jolloin loss muuttuu epävakaaksi; selvästi pienemmät arvot (< 0.00005) taas johtavat siihen, että väärin alustetut pistepilvet eivät koskaan löydä paikkaansa. Suurimmalle osalle kohtauksista oletusarvo on siis oikea valinta. Huomaa: .fullMCMC-tilassa jätämme tämän arvon tarkoituksella oletukseen — MCMC tarvitsee vakiona pysyvät oppimisnopeudet uudelleensijoituslogiikkaansa varten, joten säätämisestä ei ole tässä hyötyä.

T4positionLearningRateFinal

TIEDOT

Oletus: 0.0000016 (Initializer + julkaisu), 0.000016 (.full, .fullMCMC — 10× korkeampi) Alue: 0 – T3 positionLearningRate

TEKNINEN

Sijainnin oppimisnopeuden cosine-annealing-käyrän loppuarvo. Se saavutetaan joko kohdassa T1 maxIterations tai, mikäli asetettu, kohdassa T50 positionLRScheduleEndIteration. RadianceKitin .full-esiasetus käyttää arvoa 0.000016 — eli 10× korkeampi kuin julkaisun oletusarvo 0.0000016. Sekä selvästi pienempi loppuarvo että selvästi suurempi alkuarvo heikentävät tulosta tuntuvasti. Korkea loppuarvo ei ole kompromissi vaan tietoinen valinta: liian voimakkaan vaimennuksen (decay) yhteydessä Gaussianit menettävät refinement-vaiheen aikana kykynsä mukautua äskettäin lisättyihin densifikaatiokandidaatteihin. Schedule-vaihetta voi lyhentää (T50 < T1), jolloin T4 saavutetaan jo ennen harjoittelun loppua ja loppuosa harjoittelusta kulkee vakioarvoisella mini-oppimisnopeudella — tyypillinen konfiguraatio: T50 = 20 000, T1 = 35 000, jolloin refinement tapahtuu arvolla 0.000016 15 000 iteraation ajan.

T5shDCLearningRate

TIEDOT

Oletus: 0.0025 (Initializer + julkaisu), 0.005 (.full ja kaikki MCMC-esiasetukset — 2×) Alue: 0.0001 – 0.05

TEKNINEN

Adam-oppimisnopeus spherical harmonic -värin DC-osalle (degree 0, eli vakioalbedo). SH-DC vastaa Gaussianin suunnasta riippumatonta perusväriä, ikään kuin "perusväriä". RadianceKit kaksinkertaistaa julkaisun oletusarvon laatuesiasetuksissa — tämä nopeuttaa värikonvergenssia, mikä on tarpeen, koska lyhyellä harjoittelulla (alle 5 000 iteraatiota) SH-DC ei muuten ehdi muotoutua. Toisin kuin geometriset oppimisnopeudet, SH-DC:llä ei ole vaimennusta; oppimisnopeus pysyy vakiona kaikkien iteraatioiden ajan (tai noudattaa vain valinnaista extended-phase-vaimennusta kohdasta T51). Vielä selvästi korkeammat arvot (noin 0.01) heikentävät tulosta jälleen ja tekevät väreistä epävakaita.

T6shRestLearningRate

TIEDOT

Oletus: 0.000125 (Initializer + julkaisu), 0.00025 (.full ja MCMC — 2×) Alue: 0.000001 – 0.005

TEKNINEN

Adam-oppimisnopeus korkeamman asteen SH-kertoimille (degree 1, 2, 3 — eli katselusuunnasta riippuvat väriosat, jotka luovat kiiltokohdat, heijastukset ja pehmeän varjostuksen). 20× pienempi kuin T5 julkaisun käytännön mukaisesti, koska näiden kertoimien lukumäärä kasvaa neliöllisesti (3 asteelle 1, 5 asteelle 2, 7 asteelle 3 → yhteensä 15 float-arvoa per Gaussian) ja ilman pienempää oppimisnopeutta kuva ylikylläistyisi. Vapautetaan kahdessa vaiheessa — ensimmäiseen rajaan asti kohdassa T21 shDegreeUpgradeIterations vain degree 0 on aktiivinen (eli vain T5), sitten 1, myöhemmin 2, lopulta 3. Matalat arvot tässä ovat erityisen tärkeitä kohtauksissa, joissa on paljon diffuusia valaistusta; hyvin kiiltävillä pinnoilla (auton lakka, vesi) säätämisestä ei kannata vaivautua — itse SH-esitys on rajallinen.

T7opacityLearningRate

TIEDOT

Oletus: 0.05 (Initializer + julkaisu), 0.1 (.full, MCMC — 2×) Alue: 0.001 – 1.0

TEKNINEN

Adam-oppimisnopeus jokaisen Gaussianin logit-opasiteetille. Sovellus tallentaa opasiteetin rajoittamattomana float-arvona ja muuntaa sen sigmoidilla välille [0, 1]; oppimisnopeus vaikuttaa logit-avaruudessa. Laatuesiasetukset kaksinkertaistavat julkaisun oletusarvon arvoon 0.1; tämä tekee karsinnasta (pruning) tehokkaampaa — kuolleet Gaussianit putoavat nopeammin kynnyksen T14 pruneOpacityThreshold alle. Mikä arvo toimii parhaiten, riippuu Adam-konfiguraatiosta; näiden kahden vuorovaikutus ei ole triviaali. Matalat arvot (< 0.01) johtavat siihen, että "kuolleet" Gaussianit lojuvat ikuisesti ja kuluttavat muistia; liian korkeat arvot (> 0.5) voivat aiheuttaa opasiteetin räjähtämisen, minkä vuoksi optimoija rajaa logit-arvon kiinteästi välille [-15, 3].

T8opacityLearningRateFinal

TIEDOT

Oletus: 0.0 (= "ei vaimennusta") Alue: 0 tai 0.001 – T7 opacityLearningRate

TEKNINEN

Valinnainen cosine-vaimennuksen loppuarvo opasiteetin oppimisnopeudelle. Jos arvo on 0.0, vaimennus on poissa käytöstä ja opasiteetin oppimisnopeus pysyy koko harjoittelun ajan vakiona arvossa T7. Vaimennus arvosta 0.1 arvoon 0.01 heikentää tulosta selvästi; siksi oletusarvona on "pois päältä". Kentän taustalla oleva hypoteesi: refinement-vaiheessa vakiona pysyvä opasiteetin oppimisnopeus saattaisi johtaa oskillaatioon, jolloin splatit, jotka ovat jo saavuttaneet oikean läpinäkyvyystason, siirtyisivät satunnaisten gradienttivaihteluiden vuoksi takaisin. Empiirisesti tätä ei vahvistu — logitin clamping-logiikka estää sen joka tapauksessa. Kenttä pysyy käytettävissä tulevia kokeiluja varten; myös hyvin pitkät MCMC-ajot (> 500 000 iteraatiota) saattaisivat hyötyä siitä.

T9scaleLearningRate

TIEDOT

Oletus: 0.005 (Initializer + julkaisu), 0.01 (.full, MCMC — 2×) Alue: 0.0001 – 0.1

TEKNINEN

Adam-oppimisnopeus kunkin Gaussianin kolmelle skaalakomponentille log-avaruudessa (RadianceKit tallentaa log(scale)-arvon, jotta skaalat pysyvät positiivisina). Julkaisun oletusarvo 0.005, RadianceKitissä kaksinkertaistettu arvoon 0.01 paremman skaalakonvergenssin saavuttamiseksi säädetyillä oppimisnopeuskonfiguraatioilla. Jos arvo jätetään muiden laatuoppimisnopeuksien kanssa julkaisun oletukseen, syntyy havaittavasti liian vähän Gaussianeja — density-control ei pysty kloonaamaan, koska skaalan päivitykset seuraavat liian hitaasti perässä. Skaala hallitsee kunkin Gaussianin laajuutta — liian nopea oppiminen johtaa "neula"-Gaussianeihin (äärimmäisen pitkiin ohuisiin splatteihin, katso T34 scaleRatioPruneThreshold), liian hidas oppiminen taas jättää splatit liian kompakteiksi ja density-control joutuu jakamaan (split) liian usein.

T10rotationLearningRate

TIEDOT

Oletus: 0.001 (Initializer + julkaisu), 0.002 (.full, MCMC — 2×) Alue: 0.0001 – 0.05

TEKNINEN

Adam-oppimisnopeus kunkin Gaussianin neljälle kvaternionikomponentille. Kvaternioni normalisoidaan uudelleen (L2-normi = 1) jokaisen Adam-päivitysaskeleen jälkeen — muuten kovarianssimatriisi degeneroituisi. RadianceKit kaksinkertaistaa julkaisun oletusarvon laatuesiasetuksissa, koska rotaatiolla on skaalaan / sijaintiin verrattuna pienemmät absoluuttiset gradienttimagnitudit (yksikköpallon pinnalla jokainen askel pysyy lyhyenä), ja ilman 2×-kerrointa rotaatio jäisi 35 000 iteraation ikkunassa selvästi alikonvergoituneeksi. NeRF-Blender-kohtauksissa (Lego, Chair) rotaatiolla on erityisen suuri vaikutus — kohteiden reunat asettuvat oikein vasta 5 000–10 000 iteraation jälkeen.

Densifiointi — Klassinen (T11–T16)

T11densifyGradThreshold

TIEDOT

Oletus: 0.000002 (Initializer, kalibroitu 0.5× resoluutiolle), 0.0000011 (.full, kalibroitu 1.0×), 0.000004 (.quickTest, kalibroitu 0.25×), 2e-7 (.fullClassicPaper) Alue: 1e-8 – 1e-3 (resoluutioriippuvainen)

TEKNINEN

Kynnysarvo kuvaruutuavaruuteen projisoidun sijaintigradientin L2-normille, jonka ylittyessä Gaussian merkitään kloonattavaksi tai jaettavaksi. Absoluuttinen arvo riippuu suoraan harjoitusresoluutiosta — se skaalautuu suunnilleen suhteessa 1/resoluutio² (enemmän pikseleitä = pienemmät per-pikseli-gradientit). Siksi jokainen T22 trainingRenderScale-taso tarvitsee kalibroidun kynnysarvon: 0.25× → 4e-6, 0.5× → 2e-6, 1.0× → 5e-8 … 1.1e-6 (.full). Paperin oletusarvo 0.0002 on NDC-normalisoitu eikä suoraan verrattavissa RadianceKitin maailma-avaruuden putkeen. T52 adaptiveDensifyThreshold-lipulla arvo voidaan laskea ajon aikana nykyisen gradienttijakauman p98-arvosta — todellisissa kohtauksissa Gaussian-määrä kuitenkin romahtaa dramaattisesti (massakarsinta); lippu jätetään siksi pois päältä. T77–T79 tarjoavat vaihtoehtoisen adaptiivisen logiikan liukuvan mediaanin avulla. Tämä kenttä ei ole vaaraton — puolittaminen tuottaa 2–4× enemmän Gaussianeja (muistipaine, OOM-riski); kaksinkertaistaminen voi jättää kohtauksen ali-densifioiduksi.

T12densifyFromIteration

TIEDOT

Oletus: 500 Alue: 100 – 5 000

TEKNINEN

Ensimmäinen iteraatio, josta alkaen densifiointi aktivoituu. Sitä ennen tapahtuu vain „paljasta" oppimista alkuperäisestä SfM-pistepilvestä ilman uusien Gaussianien luomista. Oletusarvo 500 on peräisin 3DGS-paperista ja antaa alustukselle aikaa vakiintua — jos densifiointi alkaisi jo iteraatiosta 0, väärin sijoitetut SfM-pisteet klooontuisivat moneen kertaan ennen kuin löytävät ylipäätään oikean paikkansa. Selvästi myöhempi aloitus (esim. 1 000) heikentää tulosta hieman; pidä oletusarvo.

T13densifyInterval

TIEDOT

Oletus: 100 (Initializer, MCMC), 200 (.full) Alue: 50 – 1 000

TEKNINEN

Kuinka monta iteraatiota on kahden densifiointivaiheen välissä. Paperin oletusarvolla 100 — joka 100. iteraatiolla densifiointiehdokkaiden lista arvioidaan, kloonataan/jaetaan ja samalla poistetaan karsintaehdokkaiden lista (sigmoid(opacity) < T14 pruneOpacityThreshold). .full-tilassa 200 on osoittautunut toimivaksi — se kevyentää GPU:ta, koska uudelleenjärjestelypasseja ajetaan vähemmän, ja antaa jokaiselle Gaussianille enemmän aikaa asettua paikoilleen kloonaustoimen jälkeen. Lyhyemmät välit johtavat Quality-asetuksessa ylidensifiointiin: syntyy huomattavasti enemmän Gaussianeja ilman, että kuva paranee. MCMC:ssä sama kenttä tulkitaan uudelleensijoitusväliksi; katso T67 mcmcRelocationInterval MCMC-kohtaista logiikkaa varten.

T14pruneOpacityThreshold

TIEDOT

Oletus: 0.005 (Initializer, paperi, MCMC), 0.001 (.full) Alue: 0.0001 – 0.1

TEKNINEN

Sigmoid-peittävyyskynnys, jonka alapuolella Gaussian poistetaan seuraavassa densifiointivaiheessa. Toimii yhdessä T7 opacityLearningRate-arvon ja optimoijan logit-rajoituslogiikan kanssa. .full-tilassa arvo on 0.001 eikä 0.005 — splatit, joilla on merkitystä vain eksoottisissa katsekulmissa, säilyvät näin pidempään ja osallistuvat SH-yksityiskohtiin. Vielä pienemmät arvot (esim. 0.0001) eivät tuo enää lisähyötyä: karsintaa tehdään liian vähän ja muistia tuhlataan. Tärkeää: tiheydenhallinnan tulee AINA karsia, vaikka puskurikapasiteetti olisi jo täynnä muiden toimenpiteiden vuoksi — muuten kuolleet Gaussianit kasautuvat ja määrä jäätyy paikalleen.

T15opacityResetInterval

TIEDOT

Oletus: 3 000 (Initializer + paperi), 100 000 (.full = käytännössä pois käytöstä), 200 000 (.fullMCMC = pois käytöstä) Alue: 1 000 – 100 000+

TEKNINEN

Joka kuinka monennella iteraatiolla kaikkien Gaussianien peittävyys nollataan matalaan arvoon (~0.01) — toimenpide 3DGS-paperista, jonka tarkoituksena on arvioida uudelleen „jäätyneet" splatit. Yhdessä RadianceKitin lämmittelyvaiheen, stokastisen harjoitusasetuksen ja kaksinkertaistettujen oppimisnopeuksien kanssa opacity-nollaus maksaa huomattavasti laatua, ja optimoijan logit-rajoitus kattaa sen tehtävän joka tapauksessa jo. Siksi se on .full-tilassa käytännössä pois käytöstä (100 000 > 35 000 = ei koskaan laukea). .fullClassicPaper-tilassa (paperille uskollinen versio) se on tarkoituksella asetettu takaisin arvoon 3 000 — siinä tavoitteena on saavuttaa alkuperäisen paperin Gaussian-budjetit.

T16maxScreenSize

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 (pois) tai > 0

TEKNINEN

Suurin kuvaruutuavaruuden koko (projisoituina pikseleinä), jonka Gaussian saa saavuttaa ennen kuin se pakotetaan jaettavaksi. Arvo on asetettu nollaan — RadianceKitin tiheydenhallinta käyttää sen sijaan maailma-avaruuden skaalakynnysarvoa samasta gradienttilogiikasta. Pysyy kenttäluettelossa, koska tulevat kokeilut Mip-Splattingin (T74–T76) tai kohtauskohtaisten splattaus-strategioiden kanssa saattaisivat hyötyä siitä. Aktivointi (arvo > 0, esim. 20) pakottaisi hyvin suuriksi kasvaneet splatit ruudulla jakautumaan — olennaista suurilla, sileillä seinäpinnoilla, joilla yksittäinen jättiläissplat tarjoaa liian vähän yksityiskohtia.

Häviö (T17–T20)

T17ssimWeight

TIEDOT

Oletus: 0.2 (Initializer + paperi + .full), 0.05 (kaikki MCMC-esiasetukset) Alue: 0.0 – 1.0

TEKNINEN

D-SSIM-osuuden paino yhdistetyssä häviöfunktiossa loss = (1 - λ) * L1 + λ * D-SSIM, jossa λ = T17. 3DGS-paperin oletusarvo 0.2 on oikea valinta Classic-tihentämiselle — jo 0.3 heikentää tulosta selvästi. MCMC:lle sopiva arvo on sen sijaan 0.05, koska MCMC tarvitsee stokastisen tutkimisensa vuoksi vahvemman L1-signaaliosuuden — suuremmat SSIM-painot heikentäisivät relokaatiopäätöksiä. SSIM on huomattavasti kalliimpi laskea kuin L1 (paikalliset 11×11-ikkunat koko kuvan yli); RadianceKit käyttää MPS-kiihdytettyä toteutusta, joka pysyy alle 1 ms:ssa per 1080p-kuva. Scene-Class-esiasetukset käyttävät kohtauskohtaisia arvoja väliltä 0.082 (.outdoorPreset) ja 0.171 (.indoorPreset).

T18ssimWeightRefinement

TIEDOT

Oletus: 0.0 (= "ei vaihdosta, säilytä ssimWeight") Alue: 0 tai 0 – 1.0

TEKNINEN

Valinnainen SSIM-arvo hienosäätövaiheelle kohdan T2 densifyUntilIteration jälkeen. Nostaminen 0.2:sta 0.3:een hienosäätövaiheessa heikentää tulosta molemmilla mitoilla — sekä L1:llä että SSIM:llä; siksi oletusarvo on 0.0. Kentän takana ollut hypoteesi oli, että tihentämisen jälkeen — kun uusia Gaussian-pisteitä ei enää synny — vahvempi SSIM-osuus maksimoisi rakenteellisen terävyyden. Empiirisesti väärin: SSIM-painon nostaminen tarkoittaa epäsuorasti L1-painon laskemista, ja L1 on selvästi informatiivisempi signaali lopullisessa hienosäätövaiheessa. Kenttä pysyy käytettävissä tulevia kokeiluja varten perkeptuaalisen häviön (T60) tai reunahäviön (T19) kanssa, joissa hienosäätökohtainen häviökoostumus voisi olla järkevä.

T19edgeLossWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.001 – 1.0

TEKNINEN

Kokeellinen häviötermi: Sobel-gradienttialueen L1-häviön paino, joka vertaa kuvan reunoja suoraan (ground truth -Sobel vs. renderöinnin Sobel) L1:n ja SSIM:n lisäksi. Hypoteesi: reunatieto on kuvanlaadun perkeptuaalinen kulmakivi ja eksplisiittisen termin pitäisi kannustaa Gaussian-pisteitä osumaan reunoihin paremmin. Käytännössä siitä ei ole hyötyä: havaittava paino (0.1) heikentää tulosta, pieni paino (0.01) ei muuta laatua mihinkään, mutta maksaa laskenta-aikaa. Sobel-vaihe maksaa ylimääräisen MPS-forward-läpiajon sekä ground truthille että renderöinnille. Siksi pysyvästi pois käytöstä. Tuleva käyttötapaus: kohtaukset, joissa on kovia keinotekoisia reunoja (arkkitehtuuri, huonekalut, renderöinnit), voisivat hyötyä — Scene-Class-esiasetukset eivät kuitenkaan käytä tähän tätä termiä, vaan skaalaavat sen sijaan SSIM-painoa.

T20skyMaskingEnabled

TIEDOT

Oletus: false (Initializer ja kaikki esiasetukset) Alue: boolean

TEKNINEN

Kytkee taivasmaskauksen päälle. Tällöin jokaisesta kuvasta peitetään taivasalue pois Apple Vision -kehyksen avulla, ja häviö kyseisellä alueella asetetaan nollaan. Tarkoitus: ulkokuvauskohtaukset kärsivät usein siitä, että siniset/harmaat/valkoiset taivaspikselit saavat sovelluksen sijoittamaan Gaussian-pisteitä juuri sinne — mikä koetaan "leijukkeena" ("floater"). Ilman taivasmaskia häviö kyseisellä alueella ei koskaan olisi nolla, koska taivas vaihtelee kuvassa hieman, ja sovellus yrittää loputtomasti jäljitellä sitä splateilla. Vision-maski lasketaan kerran per kamera ennen koulutusta ja pidetään RAM-muistissa. Otetaan tyypillisesti käyttöön yhdessä kohdan T45 skyDomeEnabled kanssa (UI-logiikka asetusnäkymässä). Sisätilakohtauksissa tai synteettisissä renderöinneissä kannattaa jättää pois päältä — maski tunnistaisi siellä virheellisesti kattoja tai seiniä "taivaaksi".

SH-Degree-Progression (T21)

T21shDegreeUpgradeIterations

TIEDOT

Oletus: [1_000, 2_000, 3_000] (Initializer), [2_000, 5_000, 8_000] (.full, MCMC), [1_000, 2_000] (.preview — aste 3 ohitetaan) Arvoalue: [Int], jokainen arvo välillä [0, maxIterations], monotonisesti kasvava

TEKNINEN

Iteraatiot, joissa aktiivinen SH-aste kytketään ylös 0→1, 1→2, 2→3. Ennen ensimmäistä rajaa aktiivisina ovat vain DC-komponentit (eli T5 shDCLearningRate), ensimmäisen rajan jälkeen DC + 3 asteen 1 kerrointa, toisen rajan jälkeen + 5 asteen 2 kerrointa, kolmannen rajan jälkeen kaikki 15 kerrointa. Muistintarve per Gaussian kasvaa tällöin portaittain — 4 lukua (float) → 16 lukua → 36 lukua → 64 lukua. Laatupresetit viivästyttävät asteen nostoja Initializerin oletusarvoihin verrattuna, koska geometrian tulee ensin vakiintua, ennen kuin väridetaljit lisätään korkeammalla taajuudellaan. Aikaisemmat rajat [1K, 2K, 3K] tuottavat presetissä .full selvästi huonomman lopputuloksen. .preview katkaisee asteeseen 2, koska aste 3 ei konvergoidu 5 000 iteraatiossa ja kuluttaa vain optimoijan kapasiteettia. Curriculum (T80–T81) tarjoaa vaihtoehtoisen logiikan, joka ylikirjoittaa tämän listan dynaamisesti.

Suorituskyky (T22–T24)

T22trainingRenderScale

TIEDOT

Oletus: 1.0 (Initializer, .full, MCMC, Scene-Class), 0.5 (.preview), 0.25 (.quickTest) Alue: 0.05 – 2.0 (tyypillisesti 0.25, 0.5, 1.0)

TEKNINEN

Renderöintiresoluutio harjoittelun aikana suhteessa harjoituskuvien alkuperäiseen resoluutioon. Arvolla 0.5 jokainen kuva pienennetään 50 %:iin leveydestä × 50 %:iin korkeudesta (eli 25 %:iin pikseleistä), ja Gaussian-renderöinti tapahtuu tässä pienemmässä resoluutiossa. Vähentää sekä muistin- että laskentakuormaa neliöllisesti. Tärkeää: T11 densifyGradThreshold on sovitettava valittuun resoluutioon — gradienttien suuruudet skaalautuvat suhteessa 1/resoluutio², joten .quickTest-tilalla (0.25×) on paljon korkeampi kynnysarvo (4e-6) kuin .full-tilalla (1.0×, 1.1e-6). RadianceKit varoittaa erittäin suurista kuvista ja mukauttaa arvon automaattisesti — 3 MP:n tavoiteresoluutio. Äärimmäisen suurilla 4K-syötekuvilla 0.5 tai jopa 0.25 olisi järkevää, muuten mikä tahansa Mac ajautuu pelkkään CPU-kompaktioon.

T23resolutionWarmupScale

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.1 –

TEKNINEN

Harjoittele Densification-vaihe (iteraatiot 0 – T2) matalammalla resoluutiolla kuin Refinement-vaihe. .full-tilassa tämä on pois päältä, koska arvolla T22 = 1.0 ja Cosine-Annealingilla ajansäästö jää vähäiseksi ja laatu kärsii hieman. Pysyy kenttäkatalogissa, koska se voisi tulla hyödylliseksi jälleen 4K-syötteillä ja pitkillä harjoitusajoilla — Curriculum (T80) hyödyntää samankaltaista logiikkaa, mutta siinä se on sidottu LR-aikatauluun. Jos tämä on käytössä ja myös T80 curriculumResolutionRamp on tosi, Curriculum voittaa ja ylikirjoittaa tämän arvon.

T24tileSize

TIEDOT

Oletus: 16 Alue: 8, 16, 32

TEKNINEN

Rasterointi-tilejen koko pikseleinä. Gaussian-Splatting-renderöinti on tile-pohjaista: kuva jaetaan 16×16-pikselin laattoihin, ja jokainen laatta kerää sille relevantit Gaussianit, järjestää ne syvyyden mukaan ja sekoittaa ne yhteen. 16 on käytännössä kaikkien 3DGS-toteutusten käyttämä oletusarvo, ja se on kovakoodattu RadianceKitin Metal-ytimiin; tämän arvon muuttaminen vaatisi shadereiden uudelleenkääntämisen eikä ole nykytilassa tehokasta. Pysyy kenttänä siltä varalta, että tuleva moottoriversio tukisi tile-koon dynaamista muuttamista.

Diagnostiikka ja pistepilven valmistelu (T26–T30)

T26depthDistortionWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.0001 – 0.05

TEKNINEN

Kokeellinen: syvyysvääristymän regularisointihäviön (depth-distortion loss) paino. Rankaisee Gaussianeja, jotka ovat renderöintisäteen suunnassa syvyydeltään hajallaan, vaikka ne käsitteellisesti kuuluvat samaan pintaan — tämä kannustaa keskittyneempiin syvyysjakaumiin ja vähentää floattereita. Kaikilla testatuilla vahvuuksilla tulos huononee sen sijaan että paranisi. Teoreettinen etu — usean näkymän konsistenssin parantaminen — ei näy L1-häviössä, koska hypoteesi olettaa implisiittisesti, että SfM-geometria on oikein ja Gaussianit pitää vain "pinota" oikein. Käytännössä SfM-pistepilvi on yleensä heikoin komponentti, ei pinoaminen. Jää saataville monen näkymän aineistoille, joissa on erityisen puhtaat posetiedot (synteettiset, Mip-NeRF 360 ground truth -datalla).

T27singleViewOverfit

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Diagnostiikkalippu: jos true, jokaisessa koulutusiteraatiossa käytetään pakotetusti kamera-indeksiä 0 satunnaisen kamerapoolista valitun sijaan. Tarkoitus: jos malli ei pysty ylisovittamaan edes yhteen näkymään (eli häviö näkymässä 0 ei lähene nollaa edes 10 000 iteraation jälkeen), forward/backward-läpikäynnissä on perustavanlaatuinen bugi. Tätä kytkintä käytettiin runsaasti Metal-shadereiden ja differentioituvien rasterointiytimien kehitysvaiheessa. Nykyään se toimii vain järkevyystarkistuksena, kun joku on muuttanut koulutuksen taustajärjestelmää ja haluaa varmistaa asian. Käyttöliittymässä ei ole tähän kytkintä — kenttä on pois päältä kaikissa esiasetuksissa ja pysyy niin.

T28maxCameras

TIEDOT

Oletus: 0 (= "käytä kaikkia kameroita") Alue: 0 tai 1 – N

TEKNINEN

Diagnostiikkaraja: kouluta vain N ensimmäisellä kameralla, jätä kaikki muut huomiotta. Alkuperäinen tarkoitus: testata hypoteesia, että liian monet kamerat aiheuttavat gradienttiristiriitoja (liian monta ristiriitaista häviösignaalia samalle Gaussianille). Keinotekoinen rajoitus ei tuo etua — useammat kuvat tuottavat käytännössä lähes aina paremman laadun. Käyttöliittymässä ei ole tähän säädintä; kenttä on kaikissa esiasetuksissa arvossa 0, eli "kaikki kamerat".

T29maxInitialPoints

TIEDOT

Oletus: 0 (= "käytä kaikkia SfM-pisteitä") Alue: 0 tai 1 000 – 200 000+

TEKNINEN

Varmistus: rajoittaa niiden alkuperäisten SfM-pisteiden määrää, joilla koulutus aloitetaan. Tiheät COLMAP-rekonstruktiot voivat tuottaa yli 60 000 pistettä, mikä suurilla alkuperäisillä skaaloilla johtaa 200–300 Gaussianiin pikselipäällekkäisyyttä kohden — tästä syntyy "sumukenttä", jossa koulutus ei konvergoidu. Alinäytteistys noin 16 000 pisteeseen (kovan rajan logiikka koulutusmoottorissa) tuo alkutiheyden tasolle, jota vertailu-3DGS käyttää, ja vähentää päällekkäisyyttä dramaattisesti. Sovellus asettaa tämän itse hyvin tiheiden rekonstruktioiden yhteydessä; siihen ei ole omaa säädintä.

T30cameraClusterOutlierMultiplier

TIEDOT

Oletus: 10.0 (kaikissa esiasetuksissa — ei koskaan ylikirjoitettu) Alue: 1.0 – 100.0

TEKNINEN

Kamerakäyttöklusterin poikkeama-suodattimen kerroin. Ennen koulutusta koulutusmoottori laskee kaikkien kamera-asemien painopisteen ja suurimman etäisyyden, jonka jokin kamera on painopisteestä. SfM-pisteet, joiden etäisyys painopisteestä ylittää multiplier × maxCameraDistance, hylätään poikkeamina. Oletusarvo 10× on valittu tarkoituksella anteliaaksi. Hienovarainen sivuvaikutus: tiiviimpi SfM (kamerat lähempänä toisiaan) → pienempi → pienempi kynnysarvo → useampi piste hylätään poikkeamana. Löyhempi SfM → suurempi kynnysarvo → vähemmän pisteitä hylätään. Tästä seuraa yllättävä vaikutus: tiiviimpi ja sinänsä parempi SfM-rekonstruktio voi huonontaa koulutusta, koska liian moni alkupiste hylätään. Kenttä on kaikissa esiasetuksissa arvossa 10, eikä sitä voi säätää käyttöliittymästä. Alle 5:n arvot ovat yleensä liian rajoittavia, yli 20:n arvot vaikutuksettomia.

Regularisointi (T31–T37)

T31coarseToFineBlurRadius

TIEDOT

Oletus: 0 (= pois käytöstä) Alue: 0 tai 1 – 10

TEKNINEN

Kokeellinen: Box-Blur-säde, joka lisätään densifikaatiovaiheen alussa referenssikuvaan (ground truth) ja pienennetään lineaarisesti nollaan densifikaation loppuun (T2) mennessä. Hypoteesi: karkeasta hienoon -harjoittelu — ensin karkeat rakenteet, sitten yksityiskohdat — tuottaisi vakaamman geometrian. Kaikilla testatuilla säteillä tulos huononee. Syy epäonnistumiseen: densifikaatio tekee päätöksensä kuvatason gradienttien perusteella, ja sumennus vähentää juuri niitä signaaleja, jotka ovat tärkeitä sen päättämiseksi, "missä pitää klonata". Jää kenttäkatalogiin tulevia testejä varten muunlaisella tiheydenhallintamallilla.

T32scaleRegWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.0001 – 0.05

TEKNINEN

Kokeellinen: L1-regularisointi maailmanavaruuden mittakaavaan. Rankaisee Gaussianeja, jotka kasvavat liian suuriksi — estää "mega-splatit", jotka peittävät kokonaisia seinäpintoja yhdellä Gaussianilla. Käytössä Gaussianien määrä räjähtää miljooniin ja tulos huononee moninkertaisesti. Syy: mittakaavan regularisointi joutuu ristiriitaan tiheydenhallinnan kanssa — pienemmät mittakaavat tarkoittavat, että useampia Gaussianeja tarvitaan, joten tiheydenhallinta jakaa useammin, mikä puolestaan tarkoittaa enemmän gradienttilaskentaa. Pois käytöstä, mutta dokumentoitu Mip-Splatting-kokeiluja (T74) varten: tässä kontekstissa mittakaavan alaraja voisi olla järkevä.

T33anisotropyRegWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.0001 – 0.05

TEKNINEN

Kokeellinen: rangaistus max(scale)/min(scale)-suhteesta, tarkoitettu estämään äärimmäisen venyneet "neula"-Gaussianit, jotka havaitaan floattereina. Kaikilla testatuilla voimakkuuksilla tulos huononee selvästi. Syy: regularisointi pakottaa splatit "pyöreään" muotoon, mikä on tasaisella pinnalla (seinä, pöytä, lattia) juuri väärin — siellä litteä, leveä Gaussian on tehokkaampi kuin pallomainen. Pois käytöstä. T34 scaleRatioPruneThreshold tavoittelee samaa päämäärää kohdennetummin, mutta on sekin oletuksena pois käytöstä.

T34scaleRatioPruneThreshold

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 5.0 – 100.0 (tyypillisesti 10.0 – 30.0)

TEKNINEN

Kokeellinen harjoittelun jälkeinen karsinta, joka poistaa jokaisen Gaussianin, jonka max(scale)/min(scale)-suhde ylittää tässä asetetun lineaarisen kynnysarvon. Tähtää äärimmäisen venyneisiin "neula/kiekko"-floattereihin, joita pelkkä regularisointi ei pysty poistamaan. Testissä karsinta poisti floattereita toivotulla tavalla, mutta samalla myös järkeviä litteitä splatteja seinillä ja lattioilla — kuvasta tuli reikäisempi. Siksi oletuksena pois käytöstä. Versiosta 1.8 alkaen tätä varten on kytkin Poista neula-/kiekkofloaterit Inspectorin "Training"-osiossa, väliotsikon "Runs automatically at the end of training" alla. Käytössä se toimii tarkoituksella varovaisesti (vain splatit, joiden pisin akseli on noin 50-kertainen lyhimpään verrattuna) ja vaikuttaa seuraavasta harjoittelukerrasta alkaen.

T35opacityRegWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Alue: 0 tai 0.0001 – 0.05

TEKNINEN

Kokeellinen: binäärinen ristientropiarangaistus, joka vetää opasiteetin kohti 0:aa tai 1:tä (siis pois "puoliksi läpinäkyvästä"). Hypoteesi: terävämpi opasiteettijakauma parantaisi kuvan selkeyttä. Yhdessä T33:n kanssa regularisointi maksaa laatua; molemmat ovat pois käytöstä. Huomio: 1.4.3-Betassa esiintyi bugi, jossa juuri tähän kenttään oli tehty oletusarvomuutos (alustaja = 0.01), mikä johti Gaussianien massasukupuuttoon (460 000 → 5 yhdessä iteraatiossa). Versiosta 1.4.4 alkaen 0.0 on kiinteästi ankkuroitu oletusarvoksi.

T36opacityDecayFactor

TIEDOT

Oletus: 0.0 (alustaja = pois käytöstä), 0.9995 (.full, .classicBalanced — HTGS-standardi) Alue: 0 (pois) tai 0.95 – 1.0

TEKNINEN

HTGS-mallin toteutus (Hierarchical Time-Gating, Eurographics 2025): joka T37 opacityDecayInterval iteraation välein jokaisen Gaussianin sigmoidiopasiteetti kerrotaan tällä kertoimella. 0.9995 × 100 soveltamiskertaa antaa ~95 % säilymän per densifikaatiovaihe — kevyt mutta jatkuva alaspäin suuntautuva paine kaikkiin opasiteetteihin, joka laskee luotettavasti heikosti vaikuttavat Gaussianit T14 pruneOpacityThreshold-kynnyksen alle. Tuloksena on selvästi parempi lopputulos kuin ilman decay'ta. Aktiivinen vain densifikaatiovaiheen aikana (asti T2), sen jälkeen harjoittelu jatkuu ilman decay'ta, jotta refinement-vaiheessa vakiintuneet opasiteetit pysyvät vakaina. Ei käytössä MCMC:ssä (MCMC:llä on omat mekanisminsa T67 mcmcRelocationInterval:n + T68 mcmcDeadOpacityThreshold:n kautta).

T37opacityDecayInterval

TIEDOT

Oletus: 50 Alue: 10 – 500

TEKNINEN

Iteraatioväli, jonka mukaan T36 opacityDecayFactor sovelletaan. HTGS-paperin oletus 50, säilytetty .full-tilassa. Pitkät välit (>200) kumoavat vaikutuksen osittain, koska kahden soveltamiskerran välillä ehtii tapahtua tarpeeksi gradienttipäivityksiä, jotta opasiteetti nousee taas. Lyhyemmät välit (<20) tekevät decaysta liian aggressiivisen. Aktiivinen vain densifikaatiovaiheessa.

Refinement (T38–T44)

T38gradientAccumulationSteps

TIEDOT

Oletus: 1 (= „yksi näkymä per Adam-askel") Alue: 1 – 8

TEKNINEN

Niiden näkymien lukumäärä, joiden gradientit kerätään yhteen ennen Adam-päivityksen suorittamista. Kun > 1, sovellus käyttää erillistä, „unfused" backward-project-polkua, joka summaa gradientit erilliseen bufferiin; lopullinen soveltaminen skaalataan tekijällä 1/N, jotta magnitudi pysyy vakiona. Klassisessa koulutuksessa arvo 2 ei tuo laatuhyötyä, mutta maksaa aikaa, koska unfused-polku on kalliimpi kuin fused-polku. MCMC:ssä sen sijaan accum = 2 pienentää havaittavasti laatueroa Classic-menetelmään verrattuna — siksi se tarjotaan siellä kytkimenä. Preseteissä arvo on 1. Käyttöliittymässä pääset siihen MCMC Quality -kytkimen kautta Inspector-osiossa „Training": päällä sovellus kerää 2 näkymää per askel, pois päältä 1. Muita arvoja kuin 1 ja 2 voi asettaa vain muokatun preset-tiedoston kautta.

T39testViewIndices

TIEDOT

Oletus: [] (= tyhjä, kaikkia näkymiä käytetään koulutukseen) Alue: Set<Int>, mikä tahansa osajoukko kamera-indekseistä

TEKNINEN

Joukko kamera-indeksejä, joita EI käytetä koulutukseen, vaan jotka säästetään holdoutiksi PSNR/SSIM/LPIPS-arviointia varten. Käytetään vain sisäisissä mittausajoissa: silloin joka kahdeksas näkymä, alkaen indeksistä 0 (LLFF-standardi, sama kuin Mip-NeRF-360- ja 3DGS-paperin käytäntö). Toimitustilassa kenttä pysyy tyhjänä — koulutus käyttää kaikkia näkymiä, eikä käyttöliittymässä ole tähän mitään hallintaelementtiä. Varoitus: tämän kentän manuaalinen asettaminen preset-tiedostossa ilman indeksien ymmärtämistä tekee mittauksesta käyttökelvottoman (esim. jos kaikki indeksit asetetaan yli N:n, vaikka näkymiä on vain N-50 → ei holdouteja → ei arviointia). Omassa preset-viennissä testViewIndices ei kirjoiteta mukaan, koska se on skeenariippuvainen ja jättäisi muuten merkityksettömiä arvoja eri datasettien välille.

T40refinementPruneInterval

TIEDOT

Oletus: 0 (= pois käytöstä) Alue: 0 tai 100 – 5 000

TEKNINEN

Joka N iteraation välein refinement-vaiheen aikana (T2:n jälkeen) suoritetaan lisäkarsintavaihe, joka poistaa Gaussianit, joiden sigmoid(opacity) < T41 refinementPruneOpacityThreshold. Tarkoitus: densifikaation aikana tehdään säännöllisiä density-control-kutsuja, sen jälkeen ei enää — Gaussianit, joiden opasiteetti edelleen laskee, jäävät kuitenkin bufferiin. Käytännössä tämä lisäkarsinta haittaa: yhdessä toisen densifikaatiovaiheen (T54) kanssa se voi tyhjentää Gaussian-kannan kokonaan. Kaikissa preseteissä arvo on 0, eikä sitä voi säätää käyttöliittymässä; jos se silti asetetaan muokatun preset-tiedoston kautta, 1 000 tai 2 000 ovat järkeviä arvoja.

T41refinementPruneOpacityThreshold

TIEDOT

Oletus: 0.0 (= „käytä T14:ää") Alue: 0 tai 0.001 – 0.1

TEKNINEN

Erillinen opasiteettikynnys refinement-karsintaa varten. Densifikaation jälkeen useimmat Gaussianit ovat saavuttaneet huomattavasti korkeamman opasiteetin (> 0.001), joten oletusarvoinen T14 pruneOpacityThreshold olisi liian löysä. Kun T40 on aktiivinen, tämä kenttä määrittää oman kynnysarvonsa. Arvolla 0.0 käytetään edelleen T14:ää. Merkityksellinen vain, kun T40 > 0.

T42midTrainingCompactificationIterations

TIEDOT

Oletus: [] (= pois käytöstä) Alue: [Int], arvot välillä (densifyUntilIteration, maxIterations)

TEKNINEN

Nimenomaiset iteraatiokohdat refinement-vaiheen aikana, joissa suoritetaan compactification-vaihe (poistaa sigmoid(opacity) < 0.01 + outlier-scale-Gaussianit, sama logiikka kuin T56 postTrainingCompactification). Tarkoitus: pitkät refinement-vaiheet voivat kerätä konfetti-/floater-akkumulaatiota, jonka SH sitten ylisovittuu näkymäkohtaisiin artefakteihin. Tyypillinen konfiguraatio, jos aktivoitu: [10000, 20000, 30000] 40K Classic -ajolle. MUTTA: vapaasti valitut siivousmerkit heikentävät lopputulosta johdonmukaisesti — Gaussianien määrä laskee tosin selvästi, mutta kuvavirhe kasvaa enemmän. Vapaasti valittavana iteraatiolistana kenttä jää siksi kaikissa preseteissä tyhjäksi. Vaikutuksen itsessään saavutat käyttöliittymässä Floater Cleanup -kytkimen kautta Inspector-osiossa „Training": klassisilla ajoilla vähintään 30 000 iteraation kohdalla se asettaa kaksi siivouskierrosta keskelle koulutusta. Omat merkit voi asettaa vain muokatun preset-tiedoston kautta.

T43frustumCullEnabled

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Koulutuksen jälkeen poistetaan kaikki Gaussianit, jotka sijaitsevat koulutuskameroiden frustumien yhdisteen ulkopuolella. Tällaisia Gaussianeja ei koskaan rajoittanut loss-signaali, ja ne ovat aina floatereita. Erityisen tehokas skeenissä, joissa uusi näkymä sijaitsee kamerapolun takana tai vieressä (esim. lineaarisen droonilennon takapuoli) — siellä olevat floaterit eivät koskaan tule näkyviin koulutusvaiheessa, mutta kylläkin myöhemmin 3D-katselijassa liikuttaessa. Droonilennoilla tämä vähentää havaittavasti floatereita, joten se on saatavilla opt-in-toimintona. Oletusarvo false, koska objektikuvauksissa täydellä kiertokattavuudella frustum-yhdiste kattaa koko skeenen eikä ominaisuus poista mitään — tarjolla Settings-kohdassa „Floater Reduction". Outdoor-preset ei aktivoi sitä, koska taivaskupu ratkaisee saman ongelman siellä paremmin.

T44frustumCullExpansion

TIEDOT

Oletus: 1.1 Alue: 1.0 – 2.0

TEKNINEN

NDC-marginaali kohteelle T43 frustumCullEnabled. 1.0 leikkaisi tarkalleen kuvan reunasta, mikä lyhentäisi liikaa kuvan reunalla olevia epävakaita splatteja. 1.1 = 10 % pehmustetta tarkan kamerakehystyksen ulkopuolelle — antaa hieman toleranssia reunapikseleille, jotka voisivat kuitenkin tulla näkyviin hieman siirretyssä uudessa näkymässä. Arvot > 1.2 tekevät karsinnasta käytännössä tehottoman, koska laajennettu frustum kattaa huomattavasti enemmän tilaa.

Taivaskupu (T45–T48)

T45skyDomeEnabled

TIEDOT

Oletus: false (Alustaja + kaikki presetit paitsi P9 Outdoor) Arvoalue: boolean

TEKNINEN

Ennen harjoituksen alkua luodaan pallonmuotoinen pistepilvi (Fibonacci-sphere, jossa T46 näytepistettä), joka sijoitetaan säteelle T47 skyDomeRadiusMultiplier × scene_extent kohtauksen keskipisteen ympärille ja alustetaan väreillä, jotka on otettu kaikkien harjoituskameroiden taivasmaskatuista pikseleistä (katso T20 skyMaskingEnabled). Nämä sky-dome-gaussianit lisätään Gaussian-puskurin alkuun ja "jäädytetään" harjoituksen ajaksi (sijainti/skaala/rotaatio-gradientit = 0, vain SH ja opasiteetti pysyvät optimoitavina). Vaikutus: mustien "konfetti"-alueiden sijaan kaukaisuudessa käyttäjä näkee uusissa näkymissä oikean taivaan. Drone- ja maisemakohtauksissa tämä toimii erittäin hyvin; Outdoor-presetissä (P9) se on oletuksena päällä. Sisätilakohtauksissa kannattaa jättää pois — pallo roikkuisi järjettömästi huoneen ulkopuolella.

T46skyDomeSampleCount

TIEDOT

Oletus: 5 000 Arvoalue: 1 000 – 50 000 (tyypillisesti 2 000 – 10 000)

TEKNINEN

Fibonacci-sphere-näytepisteiden määrä taivaskuvun pallolla. Suuremmat arvot → tiheämpi taivaskupu (parempi suurilla resoluutioilla ja paljon näkyvällä taivaalla), mutta enemmän muistintarvetta. 5 000 on sweet spot 4K-renderöinneille; pienemmillä resoluutioilla riittää 2 000–3 000. Pisteet alustetaan kosini-etäisyyden perusteella jokaiseen harjoituskameran näkymävektoriin nähden vastaavilla taivasmaskatuilla pikseleillä — näytepisteet, joiden näkymäkartio ei näy yhdellekään kameralle, jäävät taakse matalalla alkuopasiteetilla, mutta niitä ei muuteta harjoituksessa (jäädytetty).

T47skyDomeRadiusMultiplier

TIEDOT

Oletus: 30.0 (Alustaja + useimmat presetit), 59.0 (P9 Outdoor) Arvoalue: 5.0 – 200.0

TEKNINEN

Taivaskuvun pallon säde suhteessa kohtauksen laajuuteen (= kameroiden sijaintien keskimääräinen etäisyys toisistaan). 30 = pallon halkaisija on 30-kertainen kamerapilveen verrattuna. Liian pieni (< 5) → taivaskupu interferoi itse kohtauksen kanssa (esim. taivaskupu-splatti päätyy etualalle); liian suuri (> 100) → float32-tarkkuuden menetys taivaskuvun sijainneissa, mikä aiheuttaa renderöintivirheitä kaukaisuudessa. Laajoille ulkokohtauksille 59.0 on sopiva arvo — oletus-30.0 on liian pieni syville maisemille, jolloin taivaskuvun pikselit renderöityvät kuvan reunoilla näkyvästi "seinänä".

T48frozenGaussianCount

TIEDOT

Oletus: 0 (= ei jäädytettyjä gaussianeja) Arvoalue: 0 tai 1 – T46

TEKNINEN

Niiden gaussianien määrä puskurin alussa, joiden sijainti/skaala/rotaatio-gradientit asetetaan optimoijassa nollaan — ne pysyvät tilallisesti jäykkinä koko harjoituksen ajan. Density-control ei saa kloonata, jakaa tai poistaa niitä. Käytetään sky-dome-injektiossa (katso T45): kun taivaskupu on päällä, tämä kenttä asetetaan automaattisesti arvoon T46 skyDomeSampleCount. Manuaalinen asetus on mahdollista (esim. valmiiksi sijoitetun LiDAR-skannauksen pistepilven jäädyttämiseksi), mutta se ei ole suoraan käytettävissä käyttöliittymässä. Tärkeää: puskurin ensimmäiset N gaussiania ovat aina jäädytettyjä — puskurin järjestys ratkaisee, ei mikään eksplisiittinen indeksi.

Adam + LR-Schedule (T49–T55)

T49adamResetIteration

TIEDOT

Oletus: 0 (= pois käytöstä) Alue: 0 tai 100 –

TEKNINEN

Iteraatio, jossa Adam-optimoijan momentum-akkumulaattorit (m1, m2) nollataan. Sen jälkeen bias-korjaus lasketaan käyttäen (iter - adamResetIteration) eikä iter-arvoa. Nollaus densifikaation päättymisen jälkeen heikentää tulosta huomattavasti. Syy: densifikaation aikana kertynyt Adam-momentum sisältää tietoa tyypillisistä gradienttien suuruuksista ja nopeuttaa refinement-vaihetta. Sen poisheittäminen maksaa ensimmäiset ~500 refinement-iteraatiota konvergenssista. Siksi arvo on kaikissa esiasetuksissa 0, eikä sitä voi muuttaa käyttöliittymästä.

T50positionLRScheduleEndIteration

TIEDOT

Oletus: 0 (Initializer = "käytä maxIterations-arvoa"), 20 000 (.full — Cosine päättyy 20K:ssa vaikka maxIter=35K), 30 000 (.fullClassicPaper) Alue: 0 tai 1 000 –

TEKNINEN

Iteraatio, jossa position-LR:n cosine-annealing-käyrä saavuttaa minimiarvonsa. Jos 0, tämä vastaa arvoa T1 maxIterations. Jos > 0, aikataulu jatkuu tähän arvoon asti ja pysyy sen jälkeen vakiona arvossa T4 positionLearningRateFinal. Tämä mahdollistaa "laajennetun refinement-vaiheen" minimaalisella mutta vakiolla oppimisnopeudella — hioo positioita hitaasti ilman uutta vaimennusta. .full tekee juuri näin (aikataulu päättyy 20K:ssa, koulutus jatkuu 35K:hen); lähialueella — 15K:sta 25K:hen — muutokset ovat pieniä, 20K on paras kompromissi. Käytetään yhdessä T51:n kanssa myös muiden kuin position-LR:ien muokkaamiseen laajennetussa vaiheessa.

T51extendedPhaseLRDecay

TIEDOT

Oletus: 0.0 (= pois käytöstä, vakiot LR:t) Alue: 0 tai 0.01 – 1.0

TEKNINEN

Muiden kuin position-LR:ien (skaala, rotaatio, opasiteetti, SH) minimikerroin "laajennetussa vaiheessa" — eli sen jälkeen kun T50 on saavutettu ja position-LR on jo arvossa T4. Jos arvo on 0.1, skaala/rotaatio/opasiteetti/SH vaimenevat vuorostaan cosine-käyrällä arvosta 1.0 (= niiden oletus-LR) arvoon 0.1× oletuksesta. Jos 0.0 (oletus), ne pysyvät vakioina. Täysi vaimennus nollaan asti tuottaa saman tuloksen kuin ei vaimennusta lainkaan — käytös vaikuttaa vaimennuksen kanssa siistimmältä, mutta ei mitattavasti paremmalta. Siksi arvo on kaikissa esiasetuksissa 0, eikä sitä voi muuttaa käyttöliittymästä.

T52adaptiveDensifyThreshold

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Kokeellinen: jos true, sovellus laskee jokaisessa densifikaatiovaiheessa nykyisen gradienttijakauman p98-arvon ja käyttää sitä dynaamisena kynnysarvona (rajattuna vähintään 0.5× arvoon T11 määritetystä arvosta, jotta se ei karkaisi liikaa). Hypoteesi: automaattinen sopeutuminen kulloiseenkin skenevaiheeseen tekisi tiheydenhallinnasta vakaamman — esim. tiukempi karsinta alussa, löysempi myöhemmin, tai päinvastoin. Käytännössä gaussien määrä romahtaa dramaattisesti — massakarsinta, koska p98 on ensimmäisissä iteraatioissa äärimmäisen korkea ja sen jälkeen lähes mikään ei enää ylitä kynnysarvoa. Kiinteä kynnysarvo on jo hyvin kalibroitu, dynaaminen sopeutus haittaa enemmän kuin auttaa. T77 tarjoaa vaihtoehtoisen adaptiivisen logiikan liikkuvan mediaanin avulla, mikä välttää tämän ongelman.

T53mergeAfterDensification

TIEDOT

Oletus: false (Initializer), true (.full, .classicBalanced, .fullClassicPaper) Alue: boolean

TEKNINEN

Densifikaatiovaiheen lopussa (iteraatio T2) suoritetaan kertaluontoinen yhdistämisvaihe, joka yhdistää toisiaan lähellä olevat, skaalaltaan ja väriltään samankaltaiset gaussit. Vähentää gaussien määrää tyypillisesti 5–15 % ilman näkyvää laadun heikkenemistä. Tarkoitus: intensiivisen kloonauksen jälkeen syntyy klustereita lähes identtisistä gausseista, jotka eivät tuo mitään uutta — yhdistäminen vapauttaa optimoijan kapasiteettia muille alueille. Oletusarvo Classic-laatuesiasetuksissa. Ei käytössä MCMC:ssä, koska MCMC:n uudelleensijoituslogiikka estää tällaisten klustereiden syntymisen ylipäätään.

T54densifyPhase2FromIteration

TIEDOT

Oletus: 0 (= pois käytöstä) Alue: 0 tai T2T1

TEKNINEN

Kokeellinen: mahdollistaa toisen densifikaatiovaiheen, joka alkaa hiontatauon jälkeen tästä iteraatiosta ja jatkuu arvoon T55 asti. Hypoteesi: hiontavaiheen jälkeen gradienttiakkumulaattoreilla on vakaammat suuruusluokat ja ne voivat tarkemmin kertoa, mitkä alueet tarvitsevat vielä lisää gausseja. Käytännössä toinen densifikaatiovaihe päättyy kaskadiin, joka romahtaa nollaan gaussiin — yhdessä hiontavaiheen karsinnan (T40) kanssa se tyhjentää puskurin kokonaan. Siksi arvo on kaikissa esiasetuksissa 0, eikä sitä voi muuttaa käyttöliittymästä.

T55densifyPhase2UntilIteration

TIEDOT

Oletus: 0 Alue: 0 tai T54T1 Määritelty kohdassa:

TEKNINEN

Toisen densifikaatiovaiheen loppu. Merkityksellinen vain, jos T54 > 0. Molemmat kentät yhdessä pois käytöstä.

Jälkikäsittely + Apple AI (T56–T60)

T56postTrainingCompactification

TIEDOT

Oletus: true (kaikissa production-preseteissä), false (.quickTest, .preview) Arvoalue: boolean

TEKNINEN

Koulutuksen päätyttyä Gaussianit, joiden sigmoid(opacity) < 0.01, poistetaan lopullisesti (ne eivät käytännössä enää vaikuta kuvaan). Vähentää Gaussian-määrää tyypillisesti 58 % ja export-tiedoston kokoa 55 % ilman havaittavaa laatutappiota. Oletuksena päällä production-preseteissä — lopputuloksen tulee olla mahdollisimman kompakti vientiä varten. .quickTest-presetissä pois päältä, koska diagnoosiajoa ei muutenkaan viedä ulos. Toisin kuin T42 midTrainingCompactificationIterations, tämä compactification tapahtuu vasta lopussa — refinement voi siihen asti käyttää kaikkia Gaussianeja.

T57metalFXUpscaling

TIEDOT

Oletus: false Arvoalue: boolean

TEKNINEN

⚠ Poistettu käytöstä 18.7.2026 alkaen, eikä sillä ole enää mitään vaikutusta. Kenttä kuului Inspectorin valitsimeen „Viewport Scaling" (Off/MetalFX/Lanczos). Renderöijä ei koskaan lukenut sitä: blit-päätös tehdään puhtaasti geometrian perusteella (supersamplattuna renderöity ⇒ MPS-Lanczos-alasotanta reunanpehmennykseen, muuten bilineaarinen), eikä MetalFX-polulle ollut ylipäätään mitään kutsukohtaa. Valitsin ja sen syöttämät kaksi virheellistä ilmoitusta on poistettu; overlay-tekstinä on nyt „Sampling", ei „Scaling", eikä missään sovelluksessa enää skaalata ylöspäin MetalFX:llä. Itse kenttä säilyy, koska koulutuskonfiguraatio tallennetaan kokonaisuudessaan — se on mukana jokaisessa tallennetussa scenessä, jokaisessa presetissä ja jo vietyjen PLY-tiedostojen asetuskommentissa; poistaminen saisi avaimen hiljaa katoamaan uudelleenkirjoituksen yhteydessä ja rikkoisi tämän yhteensopivuuden. Samasta syystä kenttä on jätetty pois „Modified"-vertailusta: vanha scene voi kantaa arvoa true, eikä sitä ole enää mahdollista nollata käyttöliittymän kautta. Mikään ei lue sitä — älä kytke sitä uudelleen.

T58mpsLanczosScaling

TIEDOT

Oletus: false Arvoalue: boolean

TEKNINEN

⚠ Poistettu käytöstä 18.7.2026 alkaen, eikä sillä ole enää mitään vaikutusta — katso T57 metalFXUpscaling, josta löytyy myös syy sille, miksi kenttä on silti säilytettävä tallennuksessa. Yksi ilmeinen väärinkäsitys on syytä mainita erikseen: sovellus todella käyttää MPS-Lanczosia viewportissa, mutta sitä ohjaa yksinomaan geometria — supersamplattuna renderöity kuva lasketaan alaspäin reunanpehmennystä varten. Kyseessä on alasskaalaus, ei ylösskaalaus, eikä tämä kenttä ole koskaan laukaissut sitä.

T59livePreviewInterval

TIEDOT

Oletus: 50 (alustaja; presetit eivät aseta tätä kenttää) Arvoalue: 0 (pois), 50, 250 tai 1 000 asetusten valitsimessa

TEKNINEN

Kuinka usein koulutuksen aikana 3D-katselin päivitetään nykyisillä Gaussianeilla. 50 = uusi renderöinti 50 iteraation välein — riittävän usein, jotta edistymistä voi seurata, ilman että koulutus hidastuu havaittavasti. 0 = katselinta ei päivitetä lainkaan (taustakoulutus, maksiminopeus). Pitkissä MCMC-ajoissa kannattaa käyttää arvoa 250 tai 1 000, koska päivitysten yhteenlaskettu ylikuorma alkaa näkyä. Erikoisrooli: kenttä kuuluu koulutuskonfiguraatioon, mutta on sovellustason asetus (Asetukset → Koulutus) eikä osa itse koulutusreseptiä. Siksi se on jätetty pois „Modified"-vertailusta, säilyy presetin vaihdon yli, eikä sitä 18.7.2026 lähtien enää oteta scenen avaamisen yhteydessä tiedostosta — aiemmin ladattu scene korvasi hiljaisesti käyttäjän kuvataajuuden scenen tekijän arvolla, „Pois"-arvo mukaan lukien, eikä ollut mitään toista paikkaa, josta sen olisi voinut palauttaa.

T60perceptualLossWeight

TIEDOT

Oletus: 0.0 (= pois käytöstä) Arvoalue: 0 tai 0.001 – 0.5

TEKNINEN

Perkeptuaalisen loss-termin paino (monikerroksinen blur-feature-matching). Mittaa rakenteellista ja tekstuurista samankaltaisuutta korkeammalla tasolla kuin L1+SSIM — tyypillisesti siellä, missä „pikselintarkka" on vähemmän tärkeää kuin „näyttää realistiselta". Arvo on kaikissa preseteissä 0.0 (pois). Käyttöliittymässä säädät sitä Inspectorin „Training"-osion Perceptual Loss-liu'ulla, alue 0–0,20 askelvälillä 0,01; arvolla 0 sovellus näyttää „Off".

MCMC-tihentäminen (T61–T73)

T61densificationStrategy

TIEDOT

Oletus: .classic (Initializer + Classic-esiasetukset), .mcmc (kaikki MCMC-esiasetukset + Scene-Class) Vaihteluväli: .classic tai .mcmc

TEKNINEN

Valitsee Classic-tihentämisen (klooni/split/prune, Kerbl et al.~2023) ja MCMC-tihentämisen (Stochastic Gradient Langevin Dynamics relokaatiolla, Kheradmand et al.~NeurIPS 2024) väliltä. .classic-tilassa käytetään arvoja T11–T16, .mcmc-tilassa arvoja T62–T73. Huomio vaihdettaessa: Classic-oletukset ja MCMC-oletukset on kalibroitu täysin eri tavalla — jos vaihdat valitsimen Expert View -näkymässä ilman sopivan esiasetuksen lataamista, riskeeraat 1.4.3-bugin tyylisen massasukupuuton (460 K → 5 yhdessä iteraatiossa, koska MCMC-OpacityReg-arvo 0.01 tappaa Classic-opasiteetit). Siksi MCMC-init-oletukset on tarkoituksella "pehmennetty" (kaikki Reg-arvot 0.0).

T62mcmcMaxGaussians

TIEDOT

Oletus: 150 000 (Initializer + .fullMCMC + .mcmcBalanced), 100 000 (.mcmcPreview), 1 500 000 (.fullMCMCMip — Mip-Splatting-variantti 10-kertaisella budjetilla), 1.19 M (.renderPreset), 1.25 M (.outdoorPreset), 670 K (.indoorPreset) Vaihteluväli: 0 (= "käytä puskurin kapasiteettia") tai 10 000 – 5 000 000 Määritelty kohdassa:

TEKNINEN

Kova yläraja Gaussianien määrälle MCMC-strategiassa. Määrä kasvaa asteittain arvon T70 mcmcGrowthRate (tyypillisesti 5 %) verran per relokaatioaskel tähän ylärajaan asti. 150 K on hyvä lähtöarvo — selvästi tämän yläpuolella splat-laatu laimenee (liikaa pieniä, redundantteja Gaussianeja), selvästi alle jää näkymä alitihentyneeksi. Erittäin suurissa näkymissä (esim. 1 545 kuvan droonilento 158 K SfM-init-pisteellä) 150 K on liian alhainen — siksi 1.4.5-laajennus T72 mcmcCapMultiplier + T73 mcmcAutoScaleByScene. Scene-Class-esiasetukset käyttävät näkymäkohtaisia arvoja 670 K:n (sisätila) ja 1.25 M:n (ulkotila) välillä. Arvolla 0 moottori käyttää täyttä puskurikapasiteettia ylärajana.

T63mcmcNoiseScale

TIEDOT

Oletus: 0.00005 (5e-5 = paperin oletusarvo) Vaihteluväli: 1e-6 – 1e-3

TEKNINEN

Kerroin Gaussin kohinalle, joka lisätään jokaisessa MCMC-iteraatiossa jokaisen Gaussianin sijaintiin (SGLD-logiikka). Suurempi = enemmän tutkimista (Gaussianit vaeltavat enemmän, löytävät mahdollisesti parempia paikkoja), pienempi = enemmän hyödyntämistä (Gaussianit pysyvät siellä, missä ne ovat jo hyviä). 5e-5 on sopiva arvo — selvästi pienempi tarkoittaa liian vähän tutkimista, selvästi suurempi (1e-4) liikaa, jolloin splatit hajoavat. Kohinaa vaimennetaan koulutusajan yli kosinimuotoisesti arvoon T69 mcmcNoiseDecayEnd asti — vaimenemisalueen lopussa kohina on käytännössä nolla ja Gaussianit konvergoituvat.

T64mcmcOpacityRegWeight

TIEDOT

Oletus: 0.0 (= poistettu käytöstä RadianceKitin oletuksissa, paperi: 0.01) Vaihteluväli: 0 tai 0.001 – 0.05

TEKNINEN

MCMC-kohtainen L1-sakko opasiteetille. Paperin oletusarvo 0.01 (painaa käyttämättömät Gaussianit lähelle nollaa, tehden niistä käytettävissä relokaatiolle). RadianceKitissä tulos on ilman tätä regularisointia mitattavasti parempi. Syy: arvolla T68 mcmcDeadOpacityThreshold määritelty pruning-kriteeri riittää yksinään — lisä-L1-sakko pakottaisi myös arvokkaat, matalan opasiteetin Gaussianit kuolemaan. Siksi oletusarvo on 0. Huomio: 1.4.3-beta-buildissa Initializer-oletusarvo oli virheellisesti 0.01, mikä johti massasukupuutto-bugiin (katso T61-selitys); 1.4.4:stä lähtien korjattu arvoon 0.0.

T65mcmcScaleRegWeight

TIEDOT

Oletus: 0.0 (= poistettu käytöstä, paperi: 0.01) Vaihteluväli: 0 tai 0.001 – 0.05

TEKNINEN

MCMC-kohtainen L1-sakko skaala-ominaisarvoille. Paperin oletusarvo 0.01. Myös tässä tulos on parempi ilman regularisointia, samasta syystä kuin T64:ssä. Poistettu käytöstä kaikissa RadianceKit-MCMC-esiasetuksissa. Huomio kuten T64:ssä: 1.4.3-bugi.

T66mcmcRelocationInterval

TIEDOT

Oletus: 100 (Initializer + kaikki MCMC-esiasetukset, paperin standardi), 155 (P9 Ulkotila) Vaihteluväli: 50 – 500

TEKNINEN

Iteraatioväli, jossa MCMC relokoi kuolleet Gaussianit (sigmoid(opacity) < T68 mcmcDeadOpacityThreshold) uusiin sijainteihin. Lyhyemmät välit (noin 50) vaikuttavat liian häiritsevästi, häviö (loss) heilahtelee; selvästi pidemmät (noin 200) vievät MCMC:ltä reagointikyvyn. 100 on oikea arvo. Ulkonäkymille se on hieman korkeampi, 155 — pidemmät välit antavat Adamille enemmän aikaa integroida vasta sijoitetut Gaussianit, ennen kuin seuraava reloc-tapahtuma painostaa niitä uudelleen.

T67mcmcWarmupIterations

TIEDOT

Oletus: 500 Vaihteluväli: 100 – 5 000

TEKNINEN

Alkuiteraatioiden määrä, joiden aikana MCMC-relokaatiota ei vielä tapahdu. Vasta tämän lämmittelyn jälkeen reloc-logiikka alkaa. Tarkoitus: ensimmäisten iteraatioiden aikana opasiteettiarvot eivät ole vielä vakiintuneet — jos reloc käynnistyisi heti, Gaussianit sijoitettaisiin vääriin paikkoihin ja jouduttaisiin siirtämään heti uudelleen, mikä tuhoaisi Adam-momentumin. Paperin oletusarvo 500. RadianceKit ottaa tämän arvon käyttöön, koska sen on osoitettu olevan vakaa.

T68mcmcDeadOpacityThreshold

TIEDOT

Oletus: 0.005 (Initializer, paperin standardi), 0.01 (.fullMCMC ja kaikki MCMC-esiasetukset) Vaihteluväli: 0.001 – 0.05

TEKNINEN

sigmoid(opacity)-kynnysarvo, jonka alapuolella Gaussian katsotaan "kuolleeksi" ja tulee relokaation kohteeksi. 0.01 on sopiva arvo — 0.005 muuttaa tuskin mitään, 0.02 on huonompi. Suurempi = aggressiivisempi reloc (useampia Gaussianeja siirretään), pienempi = varovaisempi. 0.01 vastaa suunnilleen "0,5 %:n visuaalista näkyvyyttä". P10 Sisätila käyttää arvoa 0.0142.

T69mcmcNoiseDecayEnd

TIEDOT

Oletus: 0 (Initializer = "ei vaimenemista"), 160 000 (.fullMCMC = 80 % arvosta 200K), 96 000 (.mcmcBalanced = 80 % arvosta 120K), 40 000 (.mcmcPreview) Vaihteluväli: 0 tai 1 000 –

TEKNINEN

Iteraatio, jossa T63 mcmcNoiseScale-kohina vaimenee täysin nollaan (kosinivaimennus iteraatiosta 0 tähän asti). 80 % arvosta maxIterations on sopiva arvo — se antaa MCMC:lle riittävästi tutkimisaikaa, mutta jättää viimeiset 20 % konvergoitumiseen ilman kohinaa. 0 = jatkuva kohina kaikkien iteraatioiden ajan (harvoin järkevää, MCMC ei silloin voi konvergoitua).

T70mcmcGrowthRate

TIEDOT

Oletus: 0.05 (paperin standardi = 5 %) Vaihteluväli: 0.01 – 0.2

TEKNINEN

MCMC-populaatiotavoitteen kasvunopeus per relokaatioaskel. Logiikka: jokaisessa reloc-tapahtumassa tavoitepopulaation kokoa kasvatetaan kertoimella (1 + growthRate), kunnes saavutetaan T62 mcmcMaxGaussians (tai T72/T73:n mukaan skaalattu variantti). 0.05 on sopiva arvo — suuremmat arvot johtavat liian nopeaan kasvuun (Gaussianeja lisätään ennen kuin Adam-momentum ehtii integroida ne), pienemmät alitihentyneisiin näkymiin lopussa.

T71mcmcSigmoidK

TIEDOT

Oletus: 100.0 Vaihteluväli: 10.0 – 500.0 Määritelty kohdassa:

TEKNINEN

Sigmoid-terävyysparametri MCMC:n kohinanvaimennukselle. SGLD-askeleessa Gaussian-kohtaista kohinaa vaimennetaan — korkean opasiteetin Gaussianit (joiden logit on positiivinen) saavat eksponentiaalisesti vähemmän kohinaa kuin matalan opasiteetin Gaussianit. K = 100 on terävä, eli siirtymä "täysi kohina" -tilasta "ei kohinaa" -tilaan tapahtuu hyvin nopeasti opasiteetin 0,5 kohdalla. K = 100 on sopiva arvo — pienemmät arvot (10–50) antavat myös korkean opasiteetin Gaussianeille "täristä mukana" (tuhoaa konvergoituneet Gaussianit), suuremmat (> 500) tekevät siirtymästä keinotekoisen jyrkän, jolloin kuolleita Gaussianeja ei enää siirretä lainkaan.

T72mcmcCapMultiplier

TIEDOT

Oletus: 3.0 (Initializer + .fullMCMC), 2.0 (.mcmcPreview), 2.5 (.mcmcBalanced), 2.98 (P8 Render), 5.32 (P9 Ulkotila), 1.76 (P10 Sisätila) Vaihteluväli: 0 (= poistettu käytöstä) tai 1.0 – 10.0

TEKNINEN

1.4.5-ominaisuus: näkymään mukautuva ylärajaskaalaus. Kun T73 mcmcAutoScaleByScene on true, tehokas yläraja lasketaan (rajoitetaan puskurin kapasiteettiin). Tausta: suurissa näkymissä (esim. 1 545 kuvan droonilento → 158 K SfM-init) T62 = 150 000 on liian alhainen — density-control ei pystyisi kasvamaan lainkaan. Kertoimella 3.0 yläraja skaalautuu tässä esimerkissä arvoon 474 K (158 K × 3.0). Scene-Class-esiasetukset käyttävät näkymäkohtaisia arvoja: ulkotila hyötyy suuresta kertoimesta (5.32 → ~830 K yläraja 156 K:n init-pisteellä), sisätila tyytyy arvoon 1.76 (seinät saturoituvat nopeammin). Ylärajan täydellinen määrittely löytyy -metodista.

T73mcmcAutoScaleByScene

TIEDOT

Oletus: true (Initializer + kaikki MCMC-esiasetukset) Vaihteluväli: boolean

TEKNINEN

1.4.5-ominaisuus: pääkytkin näkymätietoiselle ylärajalogiikalle (katso T72 +). Kun arvo on false, ylärajana käytetään yksinomaan arvoa T62 mcmcMaxGaussians (paluu 1.4.4-käytökseen). Oletuksena päällä, koska muuten suurien näkymien massasukupuutto-ongelmat 1.4.3:sta palaisivat. Poista käytöstä manuaalisesti vain, jos haluat nimenomaan asettaa kiinteän ylärajan — esim. kouluttaaksesi 150 K:n variantin, jonka lopullinen koko on ennakoitavissa.

Mip-Splatting (T74–T76)

Tila: Mip-Splatting ei ole käytännössä tuonut laadullista parannusta ja on joissakin ulkotiloissa jopa heikentänyt tulosta. Kentät jäävät opt-in -tyyppisiksi kokeiluja varten; kaikissa toimitetuissa esiasetuksissa Mip-Splatting on pois päältä.

T74useMipSplatting

TIEDOT

Oletus: false (kaikki tuotantoesiasetukset), true (.fullMCMCMip — tutkimussisarversio) Vaihteluväli: boolean

TEKNINEN

Ottaa käyttöön Mip-Splattingin (Yu et al.~CVPR 2024): 3D-pehmennyssuodatin + 2D-suodatin + α-kompensaatio, joka rajoittaa Gaussian-kohtaisen taajuuden tiheimmän harjoituskameran näytteenottotaajuuden Nyquist-rajaan. Teoreettinen tavoite: aliasingin poistaminen renderöitäessä harjoitusskaalan ulkopuolisilla skaaloilla (0.5× tai 2× harjoitusresoluutiosta). Tämä on käytössä ja toiminnallisesti oikein esikäsittely- ja backward-projection-varjostimissa. Käytännössä toivottu laadun paraneminen kuitenkin jäi saamatta: harjoitusresoluutiolla renderöitäessä käytännössä mikään ei muutu, ja ulkotilaskenissa kuva jopa huononee. Yksi selitys tälle: 3D-pehmennys toimii MCMC-relokaatiota vastaan heti, kun mukana on paljon Gaussianeja. Kenttä jää saataville omiin monimittakaavakokeiluihin.

T75mipSmoothing3DScale

TIEDOT

Oletus: 0.2 (paperin oletusarvo) Vaihteluväli: 0.05 – 1.0

TEKNINEN

3D-pehmennyksen skaalaparametri (Yu et al.~§3.3, paperin oletusarvo 0.2). Suurempi = enemmän maailma-avaruuden pehmennystä per Gaussian (= enemmän anti-aliasingia, mutta myös enemmän sumeutta oletusskaalassa), pienempi = terävämpi mutta alttiimpi aliasingille. Konsultoidaan vain, kun T74 useMipSplatting = true. Ei jatko-optimoitu — jo paperin oletusarvolla 0.2 Mip-Splatting ei tuo mitään hyötyä.

T76mipFilter2DVariance

TIEDOT

Oletus: 0.3 (= täsmälleen aiempi käytös) Vaihteluväli: 0.1 – 1.0

TEKNINEN

2D-mip-suodattimen varianssi, joka lisätään Σ_2D-diagonaaliin (suoraan varianssina, ei neliöitynä). 0.3 on täsmälleen se arvo, joka oli ennen Mip-Splattingia kiinteästi ytimessä. Jos T74 useMipSplatting = false, ydin jättää tämän arvon täysin huomiotta ja käyttää kovakoodattua arvoa 0.3 — joten aiempi käytös pysyy taatusti muuttumattomana. Jos se on käytössä, käytetään tässä asetettua arvoa. Jää kenttäluetteloon mip-sweeppejä varten.

Adaptiivinen tihentäminen (T77–T79)

T77adaptiveDensification

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Rolling-Median-Tracker vaihtoehtona kiinteälle T11 densifyGradThreshold-arvolle. Jos true, jokaisessa Densify-vaiheessa nykyinen kynnysarvo ylikirjoitetaan arvolla median(viimeiset N avgGrad-näytettä) × T79 adaptiveDensifyMultiplier. N = T78 adaptiveWindow. Tiukempi kuin T52:n p98-variantti, joka laukaisee siellä massakarsinnan (Mass-Pruning): mediaani kertaa 2 asettuu vakiintuneessa tilassa suunnilleen gradienttijakauman p70–p80-kohtaan. Yksinään päälle kytkettynä kenttä ei tuo laatuparannusta; yhdessä curriculumin (katso T80/T81) kanssa kylläkin — siellä curriculum tuottaa hyödyn, tämä kenttä pikemminkin vakauden. Tälle ei ole erillistä säädintä käyttöliittymässä: kenttä on pois päältä kaikissa preseteissä ja sen voi asettaa vain muokatun preset-tiedoston kautta.

T78adaptiveWindow

TIEDOT

Oletus: 1 000 Alue: 100 – 10 000 Määritelty kohdassa:

TEKNINEN

Rolling-Median-Window Densification-tapahtumina (EI iteraatioina — jokainen T13 densifyInterval-vaihe tuottaa yhden näytteen). Oletusarvolla 1 000 — tämä tarkoittaa, että viimeiset 100 000 harjoitusiteraatiota vaikuttavat mediaaniin, eli tyypillisesti koko harjoitushistoria tähän asti. Varhaisessa vaiheessa (ennen T78 näytettä): tracker palauttaa nil → fallback kiinteään kynnysarvoon T11. Merkityksellinen vain jos.

T79adaptiveDensifyMultiplier

TIEDOT

Oletus: 2.0 Alue: 1.0 – 4.0

TEKNINEN

Kerroin rolling-mediaanille adaptiivista kynnysarvoa varten. Oletus 2.0 vastaa suunnilleen tyypillisen gradienttijakauman p70–p80-kohtaa. Matalampi = aggressiivisempi kasvu (enemmän klooneja), korkeampi = tiukempi (vähemmän klooneja). Alueella 1.5–3.0 paras arvo on 2.0. Merkityksellinen vain jos.

Curriculum (T80–T81)

T80curriculumResolutionRamp

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Koulutuksen resoluutio alkaa arvosta 0.5× ja vaihtuu kohdassa T50 positionLRScheduleEndIteration / 2 (tai T1 maxIterations / 2, jos T50 ei ole asetettu) arvoon T22 trainingRenderScale. Ohittaa asetuksen T23 resolutionWarmupScale, kun se on käytössä. Kahdesta adaptiivisesta lisäominaisuudesta (katso T77) juuri tämä curriculum tuottaa varsinaisen laatuhyödyn — vaiheittainen resoluution nosto antaa sovellukselle aikaa löytää karkea geometria matalammalla resoluutiolla, ennen kuin se siirtyy hienon yksityiskohdan viimeistelyyn. Ei säädettävissä käyttöliittymässä — vain muokatun preset-tiedoston kautta, ja silloin järkevintä on ottaa se käyttöön yhdessä T81:n kanssa.

T81curriculumSHProgression

TIEDOT

Oletus: false Alue: boolean

TEKNINEN

Ohittaa asetuksen T21 shDegreeUpgradeIterations arvoilla [maxIter/4, maxIter/2, maxIter*3/4], eli jakaa SH-tason nostot tasaisesti koko koulutusajalle sen sijaan, että ne painottuisivat alkuun. Hypoteesi: vakaa geometria muodostuu ennen väri-yksityiskohtien räjähdystä, mikä sijoittaa katselusuunnasta riippuvat kiilto-efektit tarkemmin. Yhdessä T77:n kanssa tämä tuottaa hyödyn joissakin kohtauksissa; hyödyn tuo tämä kenttä, pelkkä T77 ei riitä. Ei säädettävissä käyttöliittymässä — vain muokatun preset-tiedoston kautta.

Staattiset esiasetukset (TP1–TP9)

Tässä vain rakenteelliset erot Initializerin oletusarvoihin verrattuna. Yksitoista käyttöliittymän esiasetuksen P1–P11 täydelliset markkinointikuvaukset löydät luvusta 7.

TP1.preview

TIEDOT

Diagnoosi-/esikatseluesiasetus järjestelmille ≥ 10 Gt RAM. Muutokset Initializeriin verrattuna:

  • maxIterations 30 000 → 5 000
  • densifyUntilIteration 15 000 → 3 500 (70 % arvosta maxIter)
  • positionLearningRateFinal 1.6e-6 → 1.6e-5 (10× korkeampi, vähemmän aggressiivinen decay)
  • shDCLearningRate, shRestLearningRate, opacityLearningRate, scaleLearningRate, rotationLearningRate kukin 2×
  • opacityResetInterval 3 000 → 100 000 (käytännössä pois päältä — resetointi tuhoaisi lyhyet harjoitusajot)
  • shDegreeUpgradeIterations [1K, 2K, 3K][1K, 2K] (aste 3 ei konvergoidu näin lyhyissä ajoissa)
  • trainingRenderScale 1.0 → 0.5

TP2.full

TIEDOT

Tuotantolaatuinen Classic. Muutokset:

  • maxIterations 30 000 → 35 000 (tämän yli ylikoulutuksen riski kasvaa: enemmän Gaussianeja ilman laatuhyötyä)
  • densifyUntilIteration 15 000 → 5 000 (koeteltu arvo; myöhempi pysäytys on huonompi)
  • Kaikki oppimisnopeudet 2×
  • positionLearningRateFinal 1.6e-6 → 1.6e-5 (10× korkeampi kuin paperin oletusarvo)
  • densifyGradThreshold 2e-6 → 1.1e-6 (kalibroitu 1.0× resoluutiolle)
  • densifyInterval 100 → 200
  • pruneOpacityThreshold 0.005 → 0.001
  • opacityResetInterval 3 000 → 100 000 (käytännössä pois käytöstä)
  • shDegreeUpgradeIterations [1K, 2K, 3K][2K, 5K, 8K] (myöhäistetty korotus)
  • opacityDecayFactor 0.0 → 0.9995 (HTGS-skeema, selvä laatuhyöty)
  • opacityDecayInterval 50 (ennallaan)
  • mergeAfterDensification false → true
  • positionLRScheduleEndIteration 0 → 20 000
  • postTrainingCompactification true (jo Initializerin oletus .full-tilassa)

TP3.fullClassicPaper

TIEDOT

TP2:n paperiuskollinen Classic-versio. Muutokset TP2:een verrattuna:

  • maxIterations 35 000 → 30 000 (paperin standardi)
  • densifyUntilIteration 5 000 → 15 000 (paperi: 50 % arvosta maxIter)
  • positionLearningRateFinal 1.6e-5 → 1.6e-6 (paperin oletusarvo)
  • opacityLearningRate, scaleLearningRate, rotationLearningRate takaisin paperin oletusarvoihin (0.05, 0.005, 0.001)
  • densifyGradThreshold 1.1e-6 → 2e-7 (kalibroitu ~1–2 M Gs:lle Bicycle-aineistolla)
  • densifyInterval 200 → 100 (paperi)
  • pruneOpacityThreshold 0.001 → 0.005 (paperin oletusarvo)
  • opacityResetInterval 100 000 → 3 000 (paperi §5.2, riskialtis — maksaa laatua RadianceKitin asetuksessa)
  • opacityDecayFactor 0.9995 → 0.0 (paperissa ei ole decayta)
  • positionLRScheduleEndIteration 20 000 → 30 000 (cosine kulkee 100 %:iin arvosta maxIter)

TP4.fullMCMC

TIEDOT

Tuotantolaatuinen MCMC. Muutokset Initializeriin verrattuna:

  • maxIterations 30 000 → 200 000 (MCMC tarvitsee noin 5× enemmän iteraatioita kuin Classic)
  • densifyUntilIteration 15 000 → 160 000 (80 % arvosta maxIter)
  • positionLearningRateFinal 1.6e-6 → 1.6e-5
  • Oppimisnopeuksien aikataulu kuten TP2:ssa (kaikki 2×)
  • ssimWeight 0.2 → 0.05 (MCMC tarvitsee vahvemman L1-signaalin)
  • shDegreeUpgradeIterations [1K, 2K, 3K][2K, 5K, 8K]
  • densificationStrategy .classic.mcmc
  • mcmcMaxGaussians 150 000 (jo Initializerissa, esiasetuksessa vahvistettu)
  • mcmcNoiseScale 5e-5 (paperin arvo, koeteltu)
  • mcmcDeadOpacityThreshold 0.005 → 0.01
  • mcmcNoiseDecayEnd 0 → 160 000 (80 % arvosta maxIter)
  • mcmcCapMultiplier 3.0 (jo Initializerissa)
  • mcmcAutoScaleByScene true (jo Initializerissa)
  • opacityResetInterval 3 000 → 200 000 (käytännössä pois päältä, MCMC käyttää Relocia resetoinnin sijaan)

TP5.fullMCMCMip

TIEDOT

TP4:n Mip-Splatting-versio alkuperäisen paperin Gaussian-budjetilla. Muutokset TP4:ään verrattuna:

  • mcmcMaxGaussians 150 000 → 1 500 000 (10×, paperin suuruusluokka)
  • useMipSplatting false → true (Mip päällä)

TP6.classicBalanced

TIEDOT

Keskitason Classic. Muutokset TP2:een verrattuna:

  • maxIterations 35 000 → 20 000 (tuottaa käytännössä saman kuin 30 000, huomattavasti lyhyemmällä odotusajalla)
  • positionLRScheduleEndIteration 20 000 → 0 (cosine kulkee arvoon maxIter = 20K, ei pidennettyä vaihetta)

TP7.mcmcPreview

TIEDOT

MCMC-diagnoosi. Muutokset TP4:ään verrattuna:

  • maxIterations 200 000 → 60 000
  • densifyUntilIteration 160 000 → 48 000 (80 %)
  • mcmcMaxGaussians 150 000 → 100 000
  • mcmcNoiseDecayEnd 160 000 → 40 000
  • mcmcCapMultiplier 3.0 → 2.0 (esikatselu skaalaa varovaisemmin)

TP8.mcmcBalanced

TIEDOT

Keskitason MCMC. Muutokset TP4:ään verrattuna:

  • maxIterations 200 000 → 120 000
  • densifyUntilIteration 160 000 → 96 000 (80 %)
  • mcmcNoiseDecayEnd 160 000 → 96 000 (80 %)
  • mcmcCapMultiplier 3.0 → 2.5 (Previewn 2.0 ja Fullin 3.0 välissä)

TP9.quickTest

TIEDOT

Puhdas toimintotesti. Muutokset Initializeriin verrattuna:

  • maxIterations 30 000 → 1 000
  • densifyUntilIteration 15 000 → 500
  • densifyGradThreshold 2e-6 → 4e-6 (kalibroitu 0.25× resoluutiolle)
  • densifyInterval 100 → 50
  • opacityResetInterval 3 000 → 100 000 (pois päältä, koska liian lyhyt)
  • trainingRenderScale 1.0 → 0.25

Miten sovellus määrittää Gaussian-katon

Sitova vastaus kysymykseen "kuinka moneksi Gaussianiksi MCMC saa enintään kasvaa?". Mukaan lasketaan kolme suuretta: asetettu arvo kohdasta T62 mcmcMaxGaussians, scenesi SfM-alkupisteiden määrä sekä ennalta varattu buffer-kapasiteetti. Sovellus laskee tässä järjestyksessä:

+ Lähtöarvo on T62. Jos se on 0, sovellus asettaa arvoksi 150 000 — tämä turvaraja estää kohdassa 1.4.3 kuvatun mass-extinction-tapauksen. + Jos T73 mcmcAutoScaleByScene on käytössä ja T72 mcmcCapMultiplier suurempi kuin 0, sovellus vertaa lähtöarvoa lausekkeeseen "init-pisteet × T72" ja käyttää näistä kahdesta suurempaa arvoa. + Lopuksi se rajoittaa tuloksen buffer-kapasiteettiin.

Esimerkki: Bicycle (Mip-NeRF 360, 194 valokuvaframea) → SfM-init n. 156 K pistettä, T62 = 150 000, T72 = 5.32, auto-scale päällä, buffer-kapasiteetti 8 M. 156 K × 5,32 on 830 K, mikä on enemmän kuin 150 000 ja vähemmän kuin 8 M — efektiivinen katto on siis 830 K. Tähän rajaan MCMC-relocation pitäytyy.

Laskee todellisen enimmäissplat-määrän MCMC:tä käytettäessä. Sovellus ottaa asetuksesi "Max Gaussians", katsoo, kuinka monta pistettä scenesi alussa sisältää, ja skaalaa kertoimella, jos "Auto-scale by scene" on käytössä. Näin katto mukautuu sceneen sen sijaan, että pienelle ja valtavalle scenelle pakotettaisiin sama arvo. Sinun ei tarvitse tehdä tämän eteen mitään — sovellus laskee sen itse koulutuksen alkaessa.

Mikä kenttä mihinkin? (Pikaohje)

TavoiteSäädettävät kentät
Enemmän yksityiskohtia kaukanaT62 mcmcMaxGaussians korkealle, T72 mcmcCapMultiplier 5+
Enemmän yksityiskohtia yleisesti (Classic)T1 maxIterations korkealle (≤ 40K), T2 densifyUntilIteration ≤ 14 % T1:stä
Kelluvien pisteiden vähentäminen dronekuvauksissaT43 frustumCullEnabled päälle, T20 skyMaskingEnabled päälle, T45 skyDomeEnabled päälle
Kaunis taivas ulkokohtauksissaT45 skyDomeEnabled päälle, T47 skyDomeRadiusMultiplier 30–60
Pienempi vientitiedostostrategia .mcmc (T61), T56 postTrainingCompactification päälle, T62 mcmcMaxGaussians ≤ 200K
Nopeampi harjoitusT22 trainingRenderScale 0.5, T1 maxIterations puolitettuna — mutta ei molempia samaan aikaan!
Paremmat kiillotT21 shDegreeUpgradeIterations arvolla [2K, 5K, 8K] (ei aikaista kasautumista), MCMC + 200K iteraatiota
Live-esikatselu useamminT59 livePreviewInterval arvoon 50 — tiheimpiin arvoihin, joita Asetukset → Harjoitus tarjoaa
Pehmeämmät siirtymät varjoissaT17 ssimWeight hieman korkealle (0.15–0.25), mutta ei yli 0.3
Sisätilojen pitäminen kompaktinaP10 Sisätila-esiasetus (, T72 = 1.76)

Vaaralliset kentät

Nämä kentät voivat väärin konfiguroituna aiheuttaa OOM:n, sovelluksen kaatumisen, Gaussianien joukkotuhon tai käyttökelvottomia benchmark-tietoja. Käsittele varoen:

- T11 densifyGradThreshold — puolittaminen voi tuottaa 2–4-kertaisen määrän Gaussianeja, mikä täyttää GPU-muistin nopeasti. Huomioi myös: on sovitettava T22 trainingRenderScale-arvoon (1.0× → 1e-6, 0.5× → 2e-6, 0.25× → 4e-6). - T72 mcmcCapMultiplier — suurissa näkymissä, joissa on > 200 K SfM-alustuspistettä ja kerroin > 5, syntyy miljoonien Gaussianien resolved-cap-arvo. 36 Gt RAM -Maceilla OOM on mahdollinen. Ulkotila-arvo 5.32 toimii vain siksi, että vastaavassa referenssinäkymässä on noin 156 K alustuspistettä → 830 K cap. - T39 testViewIndices — manuaalinen asettaminen preset-tiedostossa voi tehdä laadunmittauksesta käyttökelvottoman (kaikki indeksit > N → ei holdout-kuvia). Jätä lista tyhjäksi. - T64 mcmcOpacityRegWeight ja T65 mcmcScaleRegWeight — versiossa 1.4.3-Beta asetettu arvoon 0.01, mikä johti joukkotuhoon (460 K → 5 Gaussiania yhdessä iteraatiossa). Versiosta 1.4.4 alkaen kiinnitetty arvoon 0.0, mutta manuaalinen suurentaminen voi toistaa ongelman. - T15 opacityResetInterval — jos arvo ei ole 100 000+ (käytännössä pois päältä) ja koulutus on lyhyempi kuin 10 000 iteraatiota, reset tuhoaa konvergenssin. .preview pitää sen siksi arvossa 100 000 huolimatta maxIterations = 5 000-asetuksesta. - T54/T55 densifyPhase2* — Toinen densifikaatiovaihe päätyy kaskadiin aina nollaan Gaussianiin asti. Jätä molemmat arvoon 0. - T74 useMipSplatting — ei tuo laatuhyötyä ja voi joissakin ulkotilanäkymissä jopa heikentää kuvanlaatua. Oletuksena pois päältä, käytä vain kokeiluihin.

Jos jokin kenttä on tällä listalla ja haluat muuttaa sitä, tee ensin varmuuskopio nykyisestä presetistäsi (vie JSON-muodossa) ja mieti, pystytkö mittaamaan tuloksen toistettavasti — muuten et jälkikäteen tiedä, aiheutitko parannuksen vai heikennyksen.