Gaussian splatting u pregledniku 2026.: kako WebGPU mijenja ulogu WebGL‑a

Gaussian splatting u pregledniku 2026.: kako WebGPU mijenja ulogu WebGL‑a

Gaussian splatting dolazi u mainstream preglednika

Gaussian splatting u posljednje dvije godine postao je standardna tehnika za realističan prikaz scena dobivenih iz NeRF‑ova i drugih neuralnih reprezentacija. Umjesto klasičnih trokuta, scena se opisuje kao skup gusto raspoređenih Gaussovih „splatova” – elipsoida koji se preklapaju u prostoru i stvaraju kontinuiranu sliku. To omogućuje vrlo detaljne rekonstrukcije stvarnih prostora, ali i proceduralnih scena koje je teško opisati tradicionalnim mesh‑evima.

U praksi je to značilo da su web vieweri za takav sadržaj dugo bili kompromis. Rani eksperimenti oslanjali su se na WebGL pipeline uz teške prilagodbe: više rendering passova, kompleksno sortiranje točaka na CPU‑u, agresivno downsamplingiranje i ograničenja u rezoluciji. Drugi pristup bili su specifični hardverski setupi, eksperimentalne ekstenzije ili prilagođeni preglednici koji nisu bili realno rješenje za produkcijske web aplikacije.

Novi radovi, poput WebSplattera, mijenjaju tu sliku. Ciljaju izravno WebGPU API u pregledniku i koriste compute shadere te fleksibilniji pipeline. Rezultat su ubrzanja od 1,2x do 4,5x u odnosu na postojeće web preglednike za Gaussian splatting, uz manju potrošnju memorije. Ključni elementi su agresivan frustum i occlusion culling, prilagođeno sortiranjem primitiva u compute fazi i optimizirani layout podataka za GPU keš.

Što to znači za WebGL ekosustav

Pojava WebGPU‑baziranih rješenja ne znači kraj WebGL‑a. Umjesto toga, sve se jasnije profilira podjela uloga između dva API‑ja. WebGPU preuzima compute‑intenzivne zadatke i specijalizirane render pipelineove, dok WebGL ostaje stabilan, široko podržan sloj za integraciju s postojećim engineima, UI‑jem i klasičnim PBR scenama.

U tipičnoj 3D web aplikaciji danas se pojavljuju hibridni pristupi. Neuralne scene i Gaussian splatting renderiraju se u WebGPU‑u, u zasebnom render targetu ili teksturi visoke rezolucije. Nakon toga se rezultat kompozitira u WebGL framebufferu, gdje se dodaju klasični elementi: UI slojevi, mesh‑based objekti, refleksije, post‑proces efekti i HUD.

Takav model omogućuje timovima da iskoriste snagu WebGPU‑a bez potpunog napuštanja provjerenih WebGL alata. Primjerice, postojeći Three.js ili Babylon.js projekti mogu zadržati svoj PBR pipeline, dok se Gaussian splatting dodaje kao dodatni rendering pass koji se ponaša poput „super detaljne” pozadinske ili okolne scene.

Babylon.js 8.0 kao pokazatelj smjera

Babylon.js 8.0 vrlo jasno ilustrira smjer u kojem ide 3D web. Engine službeno podržava WebGL 1/2 i WebGPU unutar istog koda. Aplikacija može u hodu odlučiti koji backend koristiti, ovisno o mogućnostima preglednika i hardvera. To je posebno važno za projekte koji ciljaju širok spektar uređaja – od mobilnih preglednika do desktop radnih stanica.

Nova podrška za WGSL u Node Material Editoru i Node Render Graphu znači da se materijali i render pipeline mogu definirati na razini čvorova, a zatim kompajlirati za različite backende. Isti konceptualni shader graf može se prevesti u GLSL za WebGL ili WGSL za WebGPU, uz minimalne prilagodbe. To olakšava eksperimentiranje s neuralnim slojevima i Gaussian‑splat materijalima bez dupliciranja logike.

Za timove s postojećom bazom WebGL koda to otvara realnu mogućnost da Gaussian splatting uvedu kao dodatni rendering pass ili sloj. Primjerice, neuralna rekonstrukcija interijera može se renderirati u WebGPU‑u, dok interaktivni 3D produkti, UI elementi i klasični modeli ostaju u WebGL pipelineu. Node Render Graph omogućuje da se sve to posloži u jedan konzistentan flow: prvo compute faza u WebGPU‑u (sortiranje splatova, culling), zatim render Gaussian elipsoida, pa kompozicija s WebGL sadržajem.

Kako se pripremiti: čišćenje WebGL render pipelinea

Za developere WebGL projekata ključna je poruka: sada je pravo vrijeme za čišćenje render pipelinea. Cilj je jasna separacija dijelova koji su strogo vezani uz WebGL API od onih koji se mogu preformulirati kao generičan GPU posao. To povećava šansu da će se buduće WebGPU funkcionalnosti moći dodati bez radikalne refaktorizacije.

Nekoliko praktičnih smjernica:

  • Izbjegavati nepotrebne WebGL specifične ekstenzije. Ekstenzije poput specifičnih texture formata ili vendor‑specifičnih proširenja mogu dugoročno vezati projekt za uski skup uređaja. Koristite ih samo kada su stvarno nužne za FPS ili kvalitetu prikaza.
  • Uvesti apstrakcije za buffer management. Umjesto da se vertex buffer, index buffer i uniform buffer kreiraju i pune izravno kroz WebGL pozive na svakom mjestu, uvedite sloj koji opisuje resurse na apstraktnoj razini. Taj sloj kasnije može dobiti WebGPU implementaciju bez mijenjanja viših razina aplikacije.
  • Odvojiti draw pozive od logike scene. Logika scene (što se prikazuje, koji entiteti su aktivni, LOD sustavi) ne bi smjela biti čvrsto vezana uz gl.drawElements ili gl.drawArrays. Umjesto toga, neka generira listu „draw komandi” koje kasnije backend prevodi u konkretne WebGL ili WebGPU pozive.
  • Standardizirati formate podataka. Layout Gaussian splatova, particle sustava ili instanciranih objekata treba biti definiran tako da ga lako može čitati i WebGL i WebGPU. Primjerice, struktura s pozicijom, kovarijancijom, bojom i dodatnim atributima može biti pohranjena u interleaved bufferu s jasno dokumentiranim offsetima.

Takav pristup omogućuje da se teški dijelovi pipelinea – poput per‑frame sortova, masivnog particle renderinga ili neuralnih rekonstrukcija – kasnije prebace na WebGPU, dok ostatak aplikacije nastavlja koristiti WebGL.

Gaussian splatting kao primjer hibridnog pipelinea

Gaussian splatting je dobar konkretan primjer kako bi hibridni WebGL/WebGPU pipeline mogao izgledati 2026. godine. U tipičnoj implementaciji, pipeline se sastoji od nekoliko faza:

  • Priprema podataka. Gaussian splatovi (pozicije, kovarijance, boje, eventualno normalizirani koeficijenti) učitavaju se s poslužitelja i spremaju u GPU buffere. Ova faza može biti zajednička za WebGL i WebGPU.
  • Compute faza u WebGPU‑u. Compute shaderi provode frustum culling, occlusion testove i sortiranje splatova po dubini ili plošnoj projekciji. Ovdje WebGPU ima jasnu prednost jer omogućuje fleksibilne compute pipelineove, barijere i rad s velikim brojem threada.
  • Render Gaussian elipsoida. Nakon sortiranja, specijalizirani shader projicira Gaussove elipsoide na ekran, akumulira doprinos u framebufferu i brine o ispravnom blendanju. Ovaj korak može biti u WebGPU‑u, ali se uz određene kompromise može realizirati i u WebGL‑u.
  • Kompozicija u WebGL‑u. Dobiveni render Gaussian scene prenosi se kao tekstura u WebGL kontekst. Tamo se kombinira s postojećim PBR scenama, UI‑jem i efektima post‑procesiranja u jednom ili više rendering passova.

Ovaj model omogućuje da se Gaussian splatting tretira kao „specijalizirani modul” koji živi u WebGPU‑u, dok ostatak aplikacije ostaje u poznatom WebGL okruženju. Za korisnika je iskustvo neprimjetno: scena se brže učitava, frame pacing je stabilniji, a FPS viši, osobito na jačim GPU‑ima.

Dugoročna održivost 3D web aplikacija

Ključno pitanje za većinu timova nije samo performanse, nego i održivost. Kako izbjeći da se postojeći WebGL projekti pretvore u teško održivi „legacy” kod, dok se nova generacija tehnika razvija isključivo za WebGPU?

Odgovor leži u projektiranju formata podataka i apstrakcija koje su kompatibilne i s WebGL‑om i s WebGPU‑om. Ako je format Gaussian splatova, mesh‑eva, materijala i instanci dizajniran tako da ga može čitati više backenda, tada se prelazak na WebGPU svodi na implementaciju novih render i compute faza, a ne na migraciju cijele aplikacije.

Primjer dobre prakse je definiranje jasnih granica između slojeva:

  • Sloj scene. Opisuje entitete, njihove transformacije, LOD pravila, veze s UI‑jem i interakcijom. Ne zna ništa o WebGL‑u ili WebGPU‑u.
  • Render sloj. Pretvara scenu u listu draw i compute poslova. Zna da postoje različiti backendi i može odlučiti koji posao ide u WebGPU (npr. sort Gaussian splatova), a koji ostaje u WebGL‑u (npr. UI overlay).
  • Backend sloj. Implementira konkretne API pozive za WebGL i WebGPU. Ovdje žive sve specifičnosti poput shader jezika, formata tekstura i ograničenja buffera.

U tom modelu Gaussian splatting i druge neuralne tehnike postaju samo još jedan tip render posla, a ne poseban „eksperimentalni” modul koji traži potpuno odvojenu kodnu bazu. Time se smanjuje rizik od dupliranja logike, a olakšava se eksperimentiranje s novim WebGPU mogućnostima.

Što očekivati do 2026.

Do 2026. realno je očekivati da će WebGPU biti dostupan u svim glavnim preglednicima i na većini desktop i mobilnih platformi. Gaussian splatting i srodne tehnike neuralnog renderinga vjerojatno će postati standardni dio alata za vizualizaciju prostora, digitalne tvornice, kulturne baštine i igara u pregledniku.

WebGL pritom ostaje važan: kao kompatibilni sloj za starije uređaje, kao brza ruta za klasične PBR scene i kao integracijska točka za postojeće enginee, UI sustave i poslovnu logiku. Projekti koji danas počnu čistiti svoj render pipeline, uvoditi apstrakcije i standardizirati formate podataka bit će u najboljoj poziciji da iskoriste WebGPU „tešku artiljeriju” za Gaussian splatting i druge compute‑intenzivne zadatke – bez da žrtvuju stabilnost i održivost svojih WebGL aplikacija.

Natrag na vrh