Schermata demo di WebGL Water di Evan Wallace
Il consorzio di sviluppatori Khronos Group ha annunciato che la tecnologia WebGL 2.0 per il rendering di grafica 2D e 3D interattiva senza plug-in è finalmente supportata in tutti i principali browser (verifica).
La specifica è supportata in Firefox e Chrome dal 2017. Tuttavia, questo non è stato sufficiente per la sua implementazione indolore. Il supporto è stato aggiunto a Edge nel 2020, con Safari 15 per macOS e iOS che è l'ultimo aggiornamento. Questo è successo dopo due anni di intenso lavoro da parte degli ingegneri di Apple WebKit, che hanno scelto un percorso non standard, ma molto piacevole per la comunità open source (ne parleremo più avanti).
Ora tutti gli sviluppatori possono in buona coscienza ignorare i fallback su 1.0, che semplificheranno notevolmente l'ecosistema grafico del web.
Khronos Group è un consorzio no-profit di oltre 150 sviluppatori nel campo della grafica 3D, VR/AR, programmazione parallela, acceleratori grafici e machine learning. Il consorzio crea e promuove standard grafici come Vulkan, OpenGL, WebGL, SPIR-V, OpenCL, OpenVX, OpenXR, ANARI e glTF.
Introdotto nel 2017, WebGL 2.0 è stato un significativo passo avanti in termini di capacità di computer grafica. Ha fornito il set di funzionalità OpenGL ES 3.0. Nuove funzionalità chiave:
feedback della trasformazione tramite l'oggetto TransformFeedback;
rendering istantaneo;
più destinazioni di rendering;
oggetti di buffer di memoria uniformi generali - Uniform Buffer Objects (UBO);
richieste di sovrapposizione;
supporto per le texture molto più ampio rispetto alla pipeline WebGL 1.0 originale.
La nuova specifica 2.0 è stata supportata da Firefox e Chrome fin dall'inizio, ma ci è voluto molto tempo per diffondersi a tutti gli sviluppatori WebGL. Per anni, gli sviluppatori hanno dovuto fornire un ripiego a WebGL 1.0 per coprire tutti i browser e i dispositivi più diffusi. Ora non lo è. Il lancio di WebGL 2.0 su tutti i browser è completo e gli autori delle applicazioni possono usarlo con sicurezza, afferma il consorzio Khronos Group.
Il lavoro serio sull'implementazione di WebGL 2.0 in Safari è iniziato a giugno 2019. Ciò ha portato a diversi piacevoli effetti collaterali per la comunità open source. È iniziato con il fatto che Apple ha deciso di utilizzare il motore ANGLE gratuito. Di conseguenza, il loro team di ingegneri ha trascorso innumerevoli ore a migliorare il backend di Metal.
Safari ora funziona con WebGL su Metal sui dispositivi iOS e macOS recenti. I team di ingegneri di Apple e Google hanno iniziato a collaborare per portare ANGLE in WebKit. Creano una base di codice comune per l'ulteriore sviluppo e la traduzione di Chrome anche nel backend ANGLE Metal.
WebGL Aquarium Demo, (c) Gregg Tavares, Human Engines
Questa demo può essere sincronizzata su più macchine tramite WebSocket.
Sebbene WebGL 2.0 abbia ottenuto un supporto diffuso in tutti i principali browser, il lavoro sulle specifiche continuerà a migliorare la compatibilità e la coerenza.
Il futuro è WebGPU
Pertanto, l'ecosistema grafico è diventato molto più semplice. L'ulteriore sviluppo di applicazioni web grafiche nei prossimi anni fornirà interfacce di programmazione WebGPU.
Lo sviluppo dell'API WebGPU è attivamente in corso nel relativo gruppo di lavoro W3C. L'ultima bozza è uscita il 14 gennaio 2022, cioè di recente. Ora è una bozza funzionante. La tecnologia fornisce ai browser le moderne capacità di computer grafica Direct3D 12, Metal e Vulkan.
L'implementazione completa di qualsiasi specifica richiede tempo. WebGL 1.0 è stato rilasciato a marzo 2011 e il supporto nell'80% dei browser è arrivato solo dopo 3,5 anni. Lo stesso è vero ora. WebGL 2.0 ha ottenuto lo stesso 80% nello stesso lasso di tempo. Il viaggio verso WebGL 2.0 e WebGPU continuerà anche dopo l'approvazione ufficiale delle specifiche WebGPU.
Nel frattempo, WebGL continua ad evolversi. Il gruppo Khronos ha recentemente annunciato la disponibilità di almeno un formato di texture compresso (ETC2 o S3TC) in tutti i browser, oltre a una nuova estensione multi-draw che migliora notevolmente le prestazioni di rendering mediante il batch della geometria. La funzionalità OES_draw_buffers_indexed consente tecniche di trasparenza avanzate indipendenti dall'ordine.
Infatti WebGL è oggi la piattaforma grafica 3D più diffusa e accessibile al mondo.
Il Gruppo Khronos incoraggia tutti gli sviluppatori a passare da WebGL 1.0 a WebGL 2.0 ea partecipare ad attività online. C'è una mailing list WebGL Dev List e una WebGL Chat su The Matrix (#webgl:mozilla.org).
bbabo.Net