PlayCanvas danas: dvije engine grane, dva svijeta
PlayCanvas je u verzijama 2.x jasno usmjerio razvoj prema WebGPU-u, ali WebGL 2 i dalje ostaje glavni produkcijski backend. U praksi, ekosustav je podijeljen na dvije engine grane:
- Engine V1 – podržava WebGL 1 i WebGL 2, ali je u fazi održavanja. Dobiva samo kritične ispravke i sigurnosne zakrpe.
- Engine V2 – cilja WebGL 2 i WebGPU, bez podrške za WebGL 1. Dobiva nove značajke, optimizacije i promjene u API-ju.
Editor omogućuje odabir između tih grana. Novi projekti se potiču na V2, dok se postojeći WebGL 1 projekti praktično „zamrzavaju” na zadnjoj stabilnoj 1.x verziji. To ne znači da prestaju raditi, ali znači da ostaju izvan glavnog razvojno-optimizacijskog toka.
Za timove koji održavaju dugovječne 3D web aplikacije, ova podjela je ključna. Odabir grane više nije samo tehničko pitanje, nego i strateška odluka o tome koliko ste spremni ulagati u refaktor i dugoročnu održivost.
Što konkretno znači kraj WebGL 1 podrške u V2
PlayCanvas V2 potpuno uklanja WebGL 1 iz rendererskog pipelinea. To ima nekoliko vrlo konkretnih posljedica:
- Ne možete više ciljati starije preglednike i uređaje koji podržavaju samo WebGL 1.
- Shaderi, materijali i render konfiguracije pretpostavljaju WebGL 2 značajke (VAO, instancing, uniform bufferi…).
- Engine može agresivnije optimizirati rendering passove jer ne mora podržavati starije ograničene GPU pipelineove.
Na strani koda, to otvara prostor za modernije tehnike. Primjerice, lakše je graditi napredne post-processing lance, koristiti više render targeta ili raditi sofisticiranije culling strategije. No za timove koji su se dugo oslanjali na WebGL 1 kompatibilnost, to znači da moraju jasno odlučiti: ostati na V1 i prihvatiti tehnološki dug ili krenuti u refaktor.
Migracija s V1 na V2: više od obične nadogradnje
Migracija na PlayCanvas Engine V2 nije „drop-in” update. Radi se o nizu breaking promjena koje zahvaćaju cijeli rendering pipeline:
- uklanjanje zastarjelih komponenti i deprecated API poziva
- promjene u načinu definiranja materijala i shader varijanti
- drugačiji pristup inicijalizaciji grafičkog uređaja i odabiru backenda
- čišćenje starog koda koji je zaobilazio WebGL 1 ograničenja
Za ozbiljnije projekte migracija traži planirani refaktor. Tipičan scenarij uključuje:
- Inventuru prilagođenih shader programa, render targeta i post-processing efekata.
- Provjeru svih mjesta gdje se izravno pristupa WebGL kontekstu ili niskorazinskim bufferima.
- Postupno prebacivanje na službene V2 API-je za materijale, geometriju i render tokove.
- Paralelno testiranje na WebGL 2 i WebGPU backendu, s fokusom na razlike u ponašanju.
U praksi, mnogi timovi biraju hibridni pristup: ključne funkcionalnosti prebacuju na V2, dok dio starog koda ostaje u izoliranim modulima koji se kasnije dodatno moderniziraju. Cilj je zadržati stabilan FPS i dobar frame pacing tijekom cijelog prijelaza.
Backendovi u PlayCanvasu: WebGL 2, WebGPU i „null” uređaj
PlayCanvas V2 danas nudi tri glavna backenda za rendering:
- WebGL 2 – primarni produkcijski backend. Podržan u većini modernih preglednika, s provjerenim performansama i stabilnim driverima.
- WebGPU (beta) – novi API s nižim driver overheadom, boljom kontrolom nad GPU pipelineom i podrškom za compute shadere.
- „Null” uređaj – headless backend za testiranje, server-side rendering i automatizirane testove bez stvarnog GPU-a.
Engine automatski bira najbolji dostupni backend. Ako WebGPU nije dostupan ili je nestabilan, sustav se vraća na WebGL 2. To je važno za timove koji ciljaju širok spektar uređaja: desktop preglednike, mobilne telefone, embedded uređaje u kiosk rješenjima ili VR headsetove.
U praksi, većina produkcijskih projekata i dalje će isporučivati WebGL 2 build. WebGPU se koristi kao eksperimentalni kanal: za internu validaciju novih tehnika, A/B testiranje performansi i pripremu za buduće generacije preglednika.
Multi-draw i nove optimizacije: što dobiva WebGL 2
Jedna od zanimljivijih novijih značajki u PlayCanvasu je podrška za višestruko crtanje, odnosno multi-draw. Cilj je jasan: smanjiti broj draw poziva po frameu i bolje iskoristiti GPU.
U klasičnom WebGL 2 scenariju, engine mora za svaku instancu objekta slati zaseban draw poziv. Kod scena s tisućama objekata to stvara značajan CPU overhead i usporava cijeli pipeline. Multi-draw omogućuje grupiranje tih poziva u jedan batched rendering pass.
Za WebGL 2 projekte to znači:
- manje draw poziva po frameu
- bolji FPS na CPU-limitiranim scenama
- stabilniji frame pacing u scenama s velikim brojem malih objekata (npr. čestice, vegetacija, crowds simulacije)
Iako je multi-draw dizajniran s WebGPU-om na umu, donosi mjerljiva ubrzanja i u postojećim WebGL 2 projektima. Razlika je u tome što WebGPU, uz compute shadere i fleksibilnije upravljanje bufferima, otvara dodatne mogućnosti:
- napredni GPU-based culling (frustum, occlusion, LOD odluke na GPU-u)
- proceduralno generiranje geometrije i instanci na samom GPU-u
- dinamičko sortiranje draw poziva prema materijalima i stateu bez povratka na CPU
Za timove koji danas rade ozbiljne WebGL 2 projekte, isplati se već sada razmišljati o strukturi podataka i scene tako da se mogu lako prebaciti na GPU-driven pipeline.
WebGPU kao „beta” cilj: što realno možete očekivati
WebGPU u PlayCanvasu je još uvijek označen kao beta. To znači da:
- API se može mijenjati, posebno oko naprednih mogućnosti poput compute shader pipelinea.
- Podrška u preglednicima nije ujednačena; neke kombinacije OS-a i GPU drivera još uvijek imaju bugove.
- Alati za profiliranje i debuggiranje WebGPU-a još su u razvoju, što otežava detaljnu analizu performansi.
Ipak, već danas se WebGPU može koristiti za konkretne eksperimente. Primjerice:
- testiranje GPU-based culling algoritama na složenim scenama
- usporedba performansi istog shader koda na WebGL 2 i WebGPU backendu
- prototipiranje naprednih efekata (volumetrija, fizički točniji lighting modeli) koji su teški za izvesti u WebGL 2 ograničenjima
Bitno je da produkcijska očekivanja ostanu realna. WebGPU danas nije zamjena za WebGL 2 u širokoj distribuciji, ali jest važan pokazatelj kamo ide cijeli 3D web ekosustav.
Strategija za timove: pisati za WebGL 2, razmišljati o WebGPU-u
Za većinu razvojnih timova najrazboritiji pristup izgleda ovako:
- Primarni cilj: WebGL 2 – optimizirati rendering pipeline, smanjiti draw pozive, paziti na bandwidth i veličinu tekstura.
- Struktura koda: backend-agnostična – ne oslanjati se na direktan pristup WebGL kontekstu, već koristiti službene PlayCanvas apstrakcije.
- Shaderi: modularni – pisati shadere tako da se lako prilagode različitim backendovima i ograničenjima.
- Testiranje: dualni backend – redovito testirati isti projekt na WebGL 2 i WebGPU-u kako bi se rano uočile razlike u ponašanju i performansama.
Na taj način, projekti koji danas startaju na modernom WebGL 2 kodu neće biti zaključani u zastarjeli pipeline za nekoliko godina. Kada WebGPU postane standardni dio preglednika i alata, prelazak će se svesti na prilagodbu pojedinih dijelova koda, a ne na potpunu rekonstrukciju engine integracije.
Dugoročne posljedice za WebGL ekosustav
PlayCanvas 2.x dobro ilustrira kako će vjerojatno izgledati tranzicijsko razdoblje za cijeli WebGL ekosustav. WebGL 2 će još godinama ostati „radni konj” za produkciju, posebno u scenarijima gdje je važna široka kompatibilnost: edukativne aplikacije, B2B konfiguratori, industrijske vizualizacije, interaktivni marketing.
Istovremeno, WebGPU će se koristiti kao paralelni put za projekte kojima je ključna maksimalna iskorištenost GPU-a: složene simulacije, AAA web igre, masivni digitalni tvornicki „digital twin” modeli ili VR/AR iskustva s visokim zahtjevima na FPS i latenciju.
Za današnje WebGL timove poruka je jasna: nije nužno odmah prebaciti sve na WebGPU, ali jest nužno prestati graditi nove sustave oko WebGL 1 i zastarjelih API-ja. Investicija u moderni WebGL 2 kod, automatizirano testiranje i backend-agnostičnu arhitekturu danas, izravno smanjuje tehnološki dug sutra.
Zaključak: konkretne promjene koje treba planirati danas
PlayCanvas V2 i WebGPU ne mijenjaju preko noći način na koji se isporučuju WebGL projekti, ali mijenjaju pravila igre za buduće generacije 3D web aplikacija. Ključne točke za planiranje:
- WebGL 1 je praktično na izlaznim vratima u modernim engineovima. Novi razvoj treba ciljati WebGL 2.
- PlayCanvas V2 donosi breaking promjene i traži planirani refaktor, posebno za prilagođene shadere i render tokove.
- Multi-draw i slične optimizacije već danas daju dobitke u WebGL 2 projektima, a sutra će biti temelj GPU-driven pipelinea na WebGPU-u.
- Najbolja strategija je pisati za WebGL 2, ali dizajnirati arhitekturu tako da može iskoristiti WebGPU čim postane standard.
Timovi koji se na vrijeme prilagode ovom dvostrukom svijetu – stabilni WebGL 2 za produkciju i eksperimentalni WebGPU za inovacije – bit će u najboljoj poziciji kada se ravnoteža konačno pomakne prema novom API-ju.



