PlayCanvas kao ogledni primjer hibridnog 3D enginea
PlayCanvas u 2026. godini funkcionira kao svojevrsni laboratorij za budućnost 3D weba. Engine se eksplicitno pozicionira kao runtime izgrađen na WebGL2 i WebGPU‑u, s automatskim odabirom optimalnog API‑ja ovisno o mogućnostima preglednika. Za krajnjeg korisnika to izgleda kao „jedna“ aplikacija, ali ispod haube postoje dva render backenda i sloj apstrakcije koji ih povezuje.
Ovakva arhitektura omogućuje da isti kodni bazen cilja moderne GPU značajke – poput compute shadera, naprednog upravljanja memorijom i fleksibilnih buffer layoutova – kada je WebGPU dostupan. Istovremeno, engine pouzdano radi na starijim uređajima, starijim verzijama preglednika i embedded okruženjima (integrirani preglednici u aplikacijama, industrijski paneli, infotainment sustavi) gdje je WebGPU još uvijek isključen, eksperimentalan ili ograničen.
Za 3D web timove to je izravna poruka: tranzicija prema WebGPU‑u ne mora biti „veliki prasak“ koji prekida podršku za postojeće korisnike. Umjesto toga, PlayCanvas pokazuje model u kojem WebGL2 i WebGPU koegzistiraju, s jasnim pravilima tko što radi bolje.
Gaussian splatting kao stres‑test hibridne arhitekture
Gaussian splatting – tehnika prikaza scena kroz oblak gusto raspoređenih 3D Gaussovih volumena umjesto klasične mreže poligona – idealan je stres‑test za ovakvu hibridnu arhitekturu. Riječ je o iznimno podatkovno i računski zahtjevnom pristupu, koji brzo pokazuje granice pipelinea.
U PlayCanvasu, Gaussian splatting je integriran kroz SuperSplat alatni lanac i poseban renderer. U verziji 2.18 WebGPU renderer donosi do tri puta bolje performanse za 3D Gaussian splats u odnosu na WebGL2, posebno na modernim desktop GPU‑ovima i novijim mobilnim čipsetima. Razloga je više:
- compute shaderi omogućuju efikasniju pripremu i sortiranje splatova po dubini
- brži upload i streaming velikih oblaka podataka iz CPU‑a na GPU
- fleksibilniji pristup bufferima i strukturiranim podacima
Ipak, WebGL2 renderer i dalje ostaje prva linija kompatibilnosti. Na starijim mobilnim uređajima, poslovnim laptopima s konzervativnim IT politikama ili kiosk‑sustavima gdje je WebGPU onemogućen, Gaussian splatting i dalje radi preko optimiziranog WebGL2 puta, uz niži FPS, ali bez funkcionalnog regresiranja.
SuperSplat: WebGPU kao akcelerator, ne kao ovisnost
SuperSplat poboljšanja u PlayCanvasu ilustriraju kako koristiti WebGPU bez vezivanja cijelog enginea za njega. GPU‑pogonjena histogram analiza, napredno generiranje kolizija i filtriranje točaka implementirani su tako da koriste WebGPU compute gdje je moguće, ali su konceptualno odvojeni od samog render backenda.
To znači da se ista logika može, po potrebi, izvesti i u WebGL2 svijetu, ali možda u više render passova ili s većim oslanjanjem na CPU. Za developere je to praktična lekcija: skupa, eksperimentalna računanja guraju se prema WebGPU‑u, dok se glavni render path zadržava stabilan i optimiziran u WebGL2.
Capabilities‑driven dizajn: kako engine bira render path
Ključna arhitektonska odluka u PlayCanvasu je capabilities‑driven grafički sloj. Engine pri pokretanju:
- ispituje koje grafičke API kombinacije su dostupne (WebGPU, WebGL2, u krajnjem slučaju WebGL1)
- provjerava ekstenzije, ograničenja buffera, podršku za određene formate tekstura
- na temelju toga bira optimalan render path i konfiguraciju pipelinea
Ovaj pristup je bitno drugačiji od tipičnog WebGL projekta u kojem se unaprijed pretpostavlja „imamo WebGL2, možda par ekstenzija“ i sav je kod direktno vezan uz taj API. U capabilities‑driven modelu, gornji slojevi enginea – scena, entiteti, materijali, fizika, UI – ne znaju i ne moraju znati preko čega se renderira.
Što to znači za vlastite WebGL projekte
Za timove koji danas rade isključivo u WebGL2, PlayCanvasova arhitektura daje jasne smjernice:
- uvodite sloj apstrakcije za GPU resurse (bufferi, teksture, render targeti, pipeline state)
- definirajte interne formate shadera i materijala koji se mogu prevesti u GLSL, a sutra u WGSL
- odvojite inicijalizaciju API‑ja (kontekst, swap chain, dubinski buffer) od game logike i scene
- tretirajte mogućnosti GPU‑a kao skup feature flagova, ne kao tvrde pretpostavke
Takva modularizacija omogućuje da se kasnije doda paralelni WebGPU backend bez razbijanja postojećeg koda. Poslovna logika, mrežni sloj, sustav entiteta i komponenti ostaju isti; mijenja se samo način na koji engine komunicira s GPU‑om.
WebGL2 optimizacija kao i dalje obavezna disciplina
PlayCanvas ne tretira WebGL2 kao „legacy“ koji se održava tek toliko. Naprotiv, WebGL2 path je i dalje agresivno optimiziran jer nosi najveći dio korisničke baze. Tipične tehnike uključuju:
- smanjivanje broja draw callova kroz instancing i batching
- pažljiv raspored uniform buffera i tekstura radi boljeg iskorištenja cachea
- minimiziranje promjena stanja (state changes) unutar jednog framea
- korištenje vertex i index buffera koji se rijetko mijenjaju
U praksi to znači da je WebGL2 renderer dizajniran kao „stabilna baza“: predvidljiv FPS, dobro poznata ograničenja, široka kompatibilnost. Za mnoge komercijalne 3D web aplikacije – konfiguratore proizvoda, edukativne simulacije, B2B alate – ovo je i dalje dominantni scenarij, posebno u okruženjima gdje se ne može kontrolirati verzija preglednika ili GPU‑a.
WebGPU kao turbo‑sloj za compute‑intenzivne zadatke
U WebGPU modu iste scene dobivaju dodatni „turbo“. Compute shaderi preuzimaju poslove koji su u WebGL2 morali biti razlomljeni na više rendering passova ili gurani na CPU. Primjeri uključuju:
- sortiranje i filtriranje velikih skupova objekata (splatovi, čestice, instancirani objekti)
- generiranje i ažuriranje LOD struktura u letu
- napredne post‑processing efekte s višestrukim prolazima i povratnom spregom
- lokalne simulacije fizike ili deformacije geometrije na GPU‑u
PlayCanvas pri tome pazi da se viši slojevi enginea ne mijenjaju. Materijali, editor, scene i asset pipeline rade isto, bez obzira na to je li ispod WebGL2 ili WebGPU. Tako se nove tehnike mogu uvoditi iterativno: prvo kao eksperimentalne WebGPU značajke, zatim, po potrebi, kao optimizirane WebGL2 verzije ili hibridne kombinacije.
Dugoročna strategija: WebGL danas, paralelni WebGPU sutra
Za većinu 3D web timova, ključna poruka iz 2026. nije „prestanite koristiti WebGL“, nego „prestanite pisati ne‑modularni WebGL“. PlayCanvasov primjer sugerira sljedeću dugoročnu strategiju:
- nastaviti graditi u WebGL2 jer osigurava najveći doseg publike i stabilan FPS na raznolikom hardveru
- svaki novi modul dizajnirati tako da može imati dvojnika: WebGL implementaciju danas, WebGPU implementaciju sutra
- izbjegavati direktno vezanje poslovne logike za WebGL API pozive
- planirati shader pipeline tako da se GLSL može mapirati na WGSL ili na interni, TSL‑sličan jezik
Konkretnije, umjesto da se u game kodu svuda poziva gl.drawArrays ili se ručno upravlja uniform lokacijama, uvodi se interni render interfejs. Taj interfejs nudi operacije na višoj razini: „nacrtaj mesh s ovim materijalom“, „izvrši compute pass nad ovim bufferom“, „osvježi shadow mapu“. Iza njega može stajati WebGL2 ili WebGPU implementacija, bez promjene ostatka sustava.
Kako PlayCanvasov model mijenja očekivanja od browser enginea
PlayCanvasov razvojni ritam – kontinuirane grafičke nadogradnje, integracija Gaussian splattinga, SuperSplat alati – sugerira model u kojem se browser engine više ne promatra kao statični „WebGL renderer“, nego kao slojeviti sustav.
- WebGL2 je stabilna, battle‑tested baza za masovnu distribuciju
- WebGPU je akcelerator za specifične, računovno intenzivne dijelove render pipelinea
- edge uređaji, embedded preglednici i stariji sustavi ostaju u igri kroz WebGL2 fallback
- novi efekti i tehnike se prvo pojavljuju u WebGPU modu, zatim se selektivno portaju u WebGL2 gdje ima smisla
Za developere to je operativna strategija kako preživjeti tranziciju: ne čekati da WebGPU postane „svugdje dostupan“, nego već danas dizajnirati engine kao hibridni sustav. Svaki novi rendering pass, svaka nova shader tehnika i svaki novi alat u editoru treba se promatrati kroz pitanje: može li ovo sutra imati WebGPU verziju, bez da razbijemo postojeći WebGL2 kod?
Zaključak: hibrid kao novi standard za 3D web
PlayCanvas u 2026. praktično demonstrira da je hibridni WebGL2/WebGPU pristup ne samo moguć, nego i komercijalno održiv. Gaussian splatting i SuperSplat pokazuju kako se WebGPU može koristiti kao turbo‑sloj za compute‑intenzivne zadatke, dok WebGL2 ostaje temelj kompatibilnosti i stabilnih performansi.
Za dugoročni dizajn 3D enginea u pregledniku to znači sljedeće: WebGL nije mrtav, ali monolitni WebGL enginei jesu. Budući enginei moraju biti capabilities‑driven, s jasnim render apstrakcijama i planom za paralelni WebGPU backend. Timovi koji danas modulariziraju svoje WebGL renderere bit će u najboljoj poziciji da iskoriste WebGPU val – bez da žrtvuju postojeće korisnike, postojeće projekte ili poslovne modele.



