Što najnoviji Babylon.js releasovi znače za dugoročnu ulogu WebGL‑a u eri WebGPU‑a

Što najnoviji Babylon.js releasovi znače za dugoročnu ulogu WebGL‑a u eri WebGPU‑a

WebGPU je standard, ali WebGL još ne izlazi iz igre

WebGPU je do 2026. postao de facto novi grafički standard u modernim preglednicima. Donosi nižu razinu pristupa GPU‑u, bolji multithreading i znatno veću kontrolu nad pipelineom. Ipak, najnoviji releasovi Babylon.js‑a pokazuju da WebGL još dugo neće nestati iz ozbiljnih 3D web projekata.

Babylon.js 9.0, objavljen krajem ožujka 2026., donosi veliki skok u kvaliteti osvjetljenja i PBR‑a (physically based rendering). Ključna poruka: iste napredne značajke rade i na WebGPU‑u i na WebGL 2 backendu. Time engine svjesno cilja široku bazu hardvera, a ne samo najnovije GPU‑ove i najmodernije preglednike.

U praksi to WebGL pozicionira kao stabilan, dugoročni „lowest common denominator” za korisnike koji još nemaju pouzdanu WebGPU podršku. WebGPU preuzima ulogu „turbo sloja”, ali WebGL ostaje temeljna, provjerena platforma.

Babylon.js 9.0: zajednički PBR i osvjetljenje za WebGPU i WebGL

Najveća promjena u Babylon.js 9.0 je način na koji engine tretira materijale, osvjetljenje i shading pipeline. Novi PBR modeli, poboljšane refleksije, podrška za složenije IBL (image based lighting) postavke i naprednije shadow mape rade identično na WebGPU‑u i na WebGL 2.

Za razvojne timove to znači da više nema potrebe održavati dvije odvojene biblioteke materijala ili dva seta shader koda. Primjer tipične scene:

  • e‑commerce konfigurator automobila s lakiranim karoserijama, metalnim felgama i staklenim površinama
  • industrijski prikaz stroja s metalnim, plastificiranim i gumiranim dijelovima
  • arhitektonski prikaz interijera s kombinacijom drva, stakla, tkanine i metala

U svim tim slučajevima isti PBR materijali i isti shader graf rade preko dva backenda. Na skupljim GPU‑ovima i preglednicima s WebGPU podrškom engine koristi WebGPU pipeline. Na starijim laptopima, starijim mobilnim uređajima i korporativnim okruženjima s konzervativnim IT politikama, ista scena se vrti na WebGL 2.

Za korisnika je iskustvo u oba slučaja vizualno vrlo slično. Razlika se vidi u maksimumu koji se može izvući iz hardvera: WebGPU omogućuje više svjetala u sceni, kompleksnije post‑processing efekte i bolji frame pacing pri višim rezolucijama, dok WebGL pruža stabilan minimum.

WebGL više nije „legacy”, već ravnopravan backend

Ključni koncept u Babylon.js‑u 9.0 je tretiranje WebGL‑a kao strateškog backenda, a ne kao nužnog zla. Engine interno nudi više backenda:

  • WebGPU engine, optimiziran za moderne GPU‑ove i napredne značajke
  • WebGL 2 engine, fokusiran na široku kompatibilnost i stabilnost

Iznad njih stoji zajednički API za scene, materijale, kamere, mesh objekte i post‑processing. Aplikacijski kod uglavnom ne mora znati koristi li se WebGPU ili WebGL. Odabir backenda radi se pri inicijalizaciji, često automatski:

  • pokušaj pokretanja WebGPU backenda
  • ako nije dostupan, automatski fallback na WebGL 2

U većim timovima to drastično smanjuje tehnički dug. Nema paralelnih implementacija istog featurea, nema razdvojenih bug‑ticketova „WebGL verzija” i „WebGPU verzija”. Jedan kod, dva backenda.

Specifične optimizacije i dalje postoje. Primjer su WebGPU‑specifične tehnike poput compute shader‑a ili naprednih render bundleova. No te razlike su skrivene unutar enginea. Aplikacijski sloj ostaje čist i dugoročno održiv.

Snapshot rendering: gdje WebGPU bježi WebGL‑u

Jedna od najzanimljivijih novih optimizacija u Babylon.js‑u je snapshot rendering način rada. On izravno naglašava razliku u mogućnostima između WebGPU‑a i WebGL‑a.

Snapshot rendering koristi WebGPU render bundleove i unaprijed pripremljene command buffere kako bi statične ili polustatične scene renderirao znatno brže. Tipični primjeri su:

  • e‑commerce konfiguratori proizvoda gdje se mijenja samo materijal ili boja, dok geometrija ostaje ista
  • 3D prezentacije proizvoda na landing stranicama s minimalnom interakcijom
  • virtualni showroomi s rijetkim promjenama scene

U tim scenarijima broj draw callova i trošak CPU‑a na pripremu svakog framea postaju usko grlo. WebGPU može unaprijed spakirati velik dio posla u render bundleove. Rezultat je viši FPS i bolji frame pacing, posebno na slabijim CPU‑ovima.

U WebGL modu ista opcija nema stvarni učinak, jer WebGL API ne nudi ekvivalentnu razinu kontrole nad command bufferima. Ipak, aplikacijski kod ostaje identičan. Engine interno bira optimalnu strategiju ovisno o backendu.

To WebGL projektima otvara „besplatan” upgrade put. Jednom kada većina korisnika prijeđe na preglednike s WebGPU‑om, ista baza koda automatski dobiva više FPS‑a, više dinamičkih svjetala, kvalitetnije sjene i kompleksnije post‑processing efekte, bez refaktora cijelog renderinga.

Arhitektura „WebGPU‑first, WebGL‑always”

Za timove koji rade na dugovječnim 3D web aplikacijama, poruka je jasna: WebGL i dalje zaslužuje prvo mjesto u planiranju kompatibilnosti, ali više ne mora ograničavati dizajn enginea.

Preporučeni pristup može se sažeti u formulu „WebGPU‑first, WebGL‑always”:

  • projekt se od početka dizajnira tako da maksimalno iskoristi WebGPU kada je dostupan
  • istovremeno se osigurava da ista scena, isti materijali i isti asseti rade i na WebGL 2 backendu

Na razini API‑ja i scena razmišlja se o zajedničkim PBR materijalima, instanciranju, LOD‑ovima i strukturiranom shader grafu. Razlike između WebGL‑a i WebGPU‑a povlače se u sloj enginea i konfiguracije.

Primjer arhitekture za veći projekt:

  • jedan glavni scene graph, bez WebGL/WebGPU specifičnih čvorova
  • jedan sustav materijala s parametrima (roughness, metalness, normal map, emissive…)
  • konfiguracijski profil „performance” za WebGPU (više svjetala, viša rezolucija sjena, napredni post‑processing)
  • konfiguracijski profil „compatibility” za WebGL (ograničen broj svjetala, jednostavniji post‑processing, niža razina detalja)

Prebacivanje između profila može biti automatsko, na temelju detekcije backenda i performansi uređaja. Korisnik na starijem laptopu vidi vizualno nešto skromniju, ali i dalje funkcionalnu verziju scene. Korisnik s modernim GPU‑om dobiva puni WebGPU tretman.

Takav pristup smanjuje tehnički dug. Nema potrebe voditi dva odvojena projekta, „legacy WebGL” i „moderni WebGPU”. Umjesto toga postoji jedan hibridni projekt, s jasnim razdvajanjem odgovornosti po slojevima.

Što to znači za optimizaciju: ulaganje u WebGL se isplati

Trend hibridnih enginea ne zaustavlja se na Babylon.js‑u. Three.js već nudi WebGPURenderer koji po defaultu bira WebGPU kada je dostupan i automatski pada natrag na WebGLRenderer. Khronos grupa, koja stoji iza specifikacije WebGL‑a, u zadnjim osvrtima naglašava da će preglednici nastaviti održavati i optimizirati WebGL implementacije.

Za WebGL developere to je jasan signal. Ulaganje u kvalitetan WebGL kod nije kratkoročna investicija, već baza za budući WebGPU projekt. Konkretno, isplati se ulagati u:

  • čiste, dobro organizirane scene s jasnim hijerarhijama i minimalnim brojem draw callova
  • efikasne materijale i teksture, optimizirane rezolucije i pravilno korištenje mipmapova
  • optimizirane shadere bez nepotrebnih grananja i s pažljivim korištenjem petlji
  • instanciranje i LOD sustave za velike scene s puno ponovljenih objekata

Sve te tehnike jednako vrijede i na WebGL‑u i na WebGPU‑u. Razlika je u plafonu performansi, ne u principima optimizacije. Dobar WebGL shader gotovo uvijek će biti dobar i WebGPU shader, uz minimalne prilagodbe sintakse i API‑ja.

Posebno u enterprise i industrijskim projektima, gdje aplikacije žive pet ili više godina, stabilnost WebGL‑a ostaje važan faktor. Mnogi korisnici koriste starije preglednike, zaključane OS verzije ili specijalizirane industrijske uređaje. U takvom okruženju WebGL je i dalje jedini realni put do 3D‑a u pregledniku.

Dugoročna uloga WebGL‑a u WebGPU eri

Babylon.js 9.0 jasno pokazuje smjer u kojem se kreće cijeli ekosustav. WebGPU preuzima ulogu napredne grafičke platforme koja otključava nove efekte, bolji FPS i sofisticiraniji rendering pipeline. No WebGL ne nestaje. On postaje stabilan, pouzdan sloj kompatibilnosti, integriran u iste enginee i iste API‑je.

Za arhitekte sustava poruka je pragmatična:

  • planirajte WebGPU kao cilj, ali računajte na WebGL kao nužan i dugotrajan dio strategije
  • birajte enginee koji nude ravnopravnu podršku za oba backenda i zajednički API
  • gradite scene, materijale i shadere tako da budu prenosivi između WebGL‑a i WebGPU‑a

U takvom modelu WebGL nije kočnica, već osiguranje. Omogućuje da 3D web aplikacije ostanu dostupne širokoj publici, dok se istovremeno iskorištava puni potencijal WebGPU‑a tamo gdje je to moguće.

Najnoviji Babylon.js releasovi zato nisu samo priča o novim PBR značajkama. Oni su signal da je era WebGPU‑a zapravo era hibridnih WebGPU/WebGL enginea, u kojoj se kvalitetan WebGL kod i dalje isplati – možda više nego ikad.

Natrag na vrh