WebGPU je svugdje – ali još nije svugdje spreman
WebGPU je službeno dostupan u svim glavnim preglednicima: Chromeu, Edgeu, Firefoxu i Safariju. To je važan trenutak za 3D grafiku i računalno intenzivne zadatke u pregledniku. Po prvi put web dobiva API koji je dizajnom blizak modernim nativnim grafičkim API‑jima poput Direct3D 12, Vulkana i Metala.
Ipak, univerzalna dostupnost ne znači i univerzalnu zrelost. Na dijelu platformi WebGPU je još uvijek iza eksperimentalnih flagova. Na nekim Linux distribucijama i starijim macOS ili Android verzijama podrška je ograničena ili nestabilna. Verzije drajvera, GPU arhitekture i sigurnosne politike preglednika i dalje uvode fragmentaciju.
Za većinu razvojnih timova to znači jedno: WebGL neće nestati preko noći. Naprotiv, WebGL ostaje jedini realni „baseline” za masovnu publiku. Ako vam je cilj da aplikacija radi na starijim laptopima, korporativnim instalacijama s konzervativnim IT politikama ili jeftinim Android uređajima, WebGL 1/2 i dalje je temelj kompatibilnosti.
Što WebGPU konkretno donosi u odnosu na WebGL
WebGPU eksponira moderni GPU model. To znači:
- bliže mapiranje na nativne API‑je (D3D12, Metal, Vulkan)
- niži CPU overhead kod velikog broja draw callova
- bolju kontrolu nad memorijom i resursima (buffere, teksture, bind grupe)
- prirodnu podršku za compute shadere, bez hackova preko fragment shader pipelinea
U praksi to omogućuje tehnike koje su u WebGL‑u teške ili skupe:
- velike PBR scene s desecima tisuća objekata i instancingom
- složeni post‑processing lanci s više rendering passova i velikim frame bufferima
- napredni algoritmi osvjetljenja (clustered/forward+ rendering, tiled shading)
- AI/ML zadaci na GPU‑u, fizika, simulacije čestica i fluid dinamika kroz compute pipeline
Međutim, sve to dolazi uz cijenu: WebGPU API je složeniji. Za razliku od WebGL‑a, koji je dizajniran kao relativno jednostavan „state machine” model, WebGPU traži:
- dublje razumijevanje resursnog modela i sinkronizacije
- planiranje layouta buffera i bind grupa unaprijed
- više boilerplate koda za inicijalizaciju pipelinea i render passa
- više vremena za alatni lanac, testiranje i profiliranje na različitim GPU‑ovima
Za jednostavne 3D prikaze proizvoda, interaktivne infografike ili manje vizualizacije, WebGL 2 i dalje je brži za implementaciju i sasvim dovoljan. U tim slučajevima glavni problemi nisu CPU overhead ili compute pipeline, nego vrijeme razvoja, UX i integracija s ostatkom web aplikacije.
Stanje ekosustava: Three.js, Babylon.js i drugi enginei
Najpopularniji JavaScript enginei već reagiraju. Three.js, Babylon.js, PlayCanvas i drugi uvode WebGPU kao novi backend. Neki nude eksperimentalne renderere, drugi već imaju produkcijski spremne WebGPU module.
Ipak, gotovo svi ozbiljniji primjeri i dalje se oslanjaju na WebGL kao primarni ili barem fallback backend. Razlog je jednostavan: publika je fragmentirana, a WebGPU implementacije se razlikuju po platformama, GPU‑ovima i verzijama preglednika.
Tipičan obrazac danas izgleda ovako:
- aplikacija detektira podršku za WebGPU pri pokretanju
- ako je WebGPU dostupan i stabilan, engine koristi WebGPU renderer
- ako nije, automatski se prebacuje na WebGL 2 backend
Za timove koji koriste ove enginee to je dobra vijest. Ne moraju ručno pisati dva potpuno odvojena renderera. Umjesto toga, fokus je na dizajnu scene, materijala i efekata, dok engine rješava detalje oko konkretnog API‑ja.
Međutim, i dalje je važno razumjeti ograničenja. Neki WebGPU featurei još nisu izloženi na razini enginea. Napredne compute mogućnosti, custom render pipelineovi ili vrlo specifične optimizacije i dalje traže ručni rad i dublje poznavanje WebGPU‑a.
Gdje WebGPU donosi najveću razliku u performansama
Najveći dobici WebGPU‑a u odnosu na WebGL vide se u scenarijima gdje WebGL već sada „škripi”:
Složene scene i veliki broj draw callova
Veliki broj objekata, instanci i materijala u WebGL‑u brzo dovodi do visokog CPU overheada. Svaki draw call ima trošak, a JavaScript dodatno povećava latenciju. WebGPU omogućuje učinkovitije grupiranje draw callova, bolje upravljanje pipeline stateom i smanjenje CPU opterećenja. Rezultat je stabilniji FPS i bolji frame pacing kod velikih scena.
Napredni PBR materijali i post‑processing
Realistični PBR materijali, HDR rendering, volumetrijski efekti, screen‑space refleksije i slični efekti traže više rendering passova i velike frame buffere. WebGPU ovdje daje veću kontrolu nad formatima, layoutima i prijelazima resursa između stanja. To se pretvara u efikasniji render pipeline i mogućnost agresivnije optimizacije memorije.
Compute zadaci, AI i simulacije
U WebGL‑u su mnogi nelinearni zadaci hackirani kroz fragment shadere i render‑to‑texture tehnike. WebGPU uvodi pravi compute pipeline. To omogućuje:
- GPU‑akcelerirane ML inference modele u pregledniku
- fiziku čestica i cloth simulacije s višestrukim iteracijama po frameu
- generiranje geometrije i LOD‑ova na GPU‑u
- obradu velikih datasetova (npr. znanstvene vizualizacije) direktno na GPU‑u
U tim slučajevima prelazak na WebGPU može donijeti višestruke dobitke u performansama. Ali samo ako je projekt dovoljno zahtjevan da iskoristi novi model. Za jednostavne vizualizacije i statične scene, razlika će često biti zanemariva u odnosu na trošak migracije.
Što znači „hibridni” render pipeline u praksi
Za većinu postojećih WebGL aplikacija prvi korak nije potpuna migracija. Razumniji pristup je refaktoriranje render pipelinea tako da postane svjestan obje platforme.
To obično uključuje:
- odvajanje dijela koda koji upravlja scenom, logikom i UI‑jem od dijela koji komunicira s grafičkim API‑jem
- uvođenje apstrakcijskog sloja za resurse (buffere, teksture, shadere), tako da isti koncepti mogu imati WebGL i WebGPU implementaciju
- definiranje jasnih granica između „core” logike i API‑specifičnih optimizacija
Primjerice, engine može imati zajednički opis materijala (albedo, roughness, normal mapa, emissive), dok konkretna implementacija shader programa i bindinga ovisi o tome koristi li se WebGL ili WebGPU. Isto vrijedi za post‑processing lance: struktura efekata ostaje ista, ali način na koji se kreiraju i vežu render targeti razlikuje se po backendu.
Takav hibridni pristup omogućuje da se WebGPU uvodi selektivno. Najzahtjevniji dijelovi aplikacije – npr. editor scena, heavy analitički prikaz, kompleksni simulacijski mod – mogu koristiti WebGPU, dok manje kritični dijelovi i fallback scenariji ostaju na WebGL‑u.
Strategija za nove projekte: WebGPU‑prvi, ali ne WebGL‑slijepi
Za nove, visoko zahtjevne 3D web aplikacije i alate, strateški pristup danas izgleda ovako:
- planirati arhitekturu kao da je WebGPU primarni cilj
- odmah predvidjeti WebGL 2 fallback za širu kompatibilnost
- koristiti engine ili internu apstrakciju koja podržava oba backenda
To znači da dizajn render pipelinea, odabir formata, struktura materijala i način na koji se planiraju compute zadaci kreću od WebGPU‑a. Ali se istovremeno pazi da postoji razumna degradacija kvalitete i funkcionalnosti kada aplikacija padne na WebGL.
Tipični kompromisi uključuju:
- jednostavnije PBR materijale u WebGL modu
- manji broj post‑processing efekata ili niže rezolucije frame buffera
- izostavljanje najtežih compute efekata na starijim uređajima
Ključno je da korisnik i dalje dobije upotrebljivo iskustvo, čak i ako ne vidi „full” WebGPU verziju. Time se smanjuje rizik da dio publike potpuno izgubi pristup aplikaciji zbog hardverskih ili softverskih ograničenja.
Što napraviti s postojećim WebGL projektima
Za postojeće WebGL projekte pitanje nije „kada ugasiti WebGL”, nego „gdje WebGPU ima mjerljiv učinak”. Pragmatičan plan može izgledati ovako:
- Audit performansi – identificirati gdje CPU overhead i GPU ograničenja stvarno bole (FPS dropovi, loš frame pacing, duge frame time spikeove).
- Odvojiti API‑specifičan kod – refaktorirati tako da WebGL pozivi budu koncentrirani u ograničenom sloju, a ostatak logike ostane neutralan.
- Eksperimentirati s WebGPU modulima – za najzahtjevnije dijelove (npr. compute‑intenzivne simulacije) uvesti WebGPU kao opcionalni modul, uz jasne metrike koristi.
- Postepeno širiti WebGPU upotrebu – tek kada se pokaže da WebGPU donosi stabilne dobitke i da je podrška publike dovoljno široka.
Za mnoge poslovne aplikacije – npr. B2B konfiguratore proizvoda, GIS preglednike ili industrijske dashboarde – WebGL će još godinama biti glavni konj za vuču. WebGPU će ući ondje gdje donosi jasnu poslovnu vrijednost: brže analize, bogatije vizualizacije, mogućnost zamjene desktop alata web rješenjem.
Zaključak: WebGPU kao nadogradnja, ne kao trenutni nasljednik
Unatoč bombastičnim naslovima, WebGPU danas nije „ubojica WebGL‑a”. Realnija slika je koegzistencija. WebGPU je sloj dodatnih mogućnosti za projekte koji su spremni investirati u kompleksniji GPU model i ciljaju zahtjevne scenarije. WebGL ostaje temeljna tehnologija za široku distribuciju 3D sadržaja na webu.
U sljedećih nekoliko godina najuspješniji timovi bit će oni koji prihvate hibridni pristup. Novi projekti će dizajnirati pipeline s WebGPU‑om na umu, ali neće ignorirati WebGL fallback. Postojeći WebGL projekti će WebGPU uvoditi selektivno, ondje gdje donosi mjerljivu razliku u performansama ili funkcionalnosti.
Tek kada se hardver, drajveri i preglednici dodatno ujednače, a WebGPU ekosustav alata sazrije, možemo očekivati da WebGPU postane stvarni „default” za 3D web. Do tada, WebGL ostaje ključni dio 3D web ekosustava – i to je dobra vijest za sve koji već imaju značajna ulaganja u postojeće WebGL projekte.



