La libreria grafica basata sul Web (WebGL™) è un’interfaccia di programmazione astratta (API) progettata per consentire l’utilizzo di grafica tridimensionale (3D) direttamente in un browser Web senza la necessità di software o plug-in separati dal browser principale . La differenza tra 3D WebGL™ e altri linguaggi grafici 3D basati su browser, come il linguaggio di marcatura della realtà virtuale (VRML), è che 3D WebGL™ consente l’accesso diretto all’unità di elaborazione grafica (GPU) sulla scheda video hardware presente nel computer. Un’altra differenza è che 3D WebGL™ non è un linguaggio separato ma un’API implementata tramite il linguaggio di scripting JavaScript® che è compreso in modo nativo da quasi tutti i browser Web. Sebbene questo tipo di accesso diretto e di basso livello all’hardware del sistema informatico sia uno dei punti di forza di WebGL™, è anche uno dei problemi più grandi, perché presenta una serie di problemi di sicurezza che non sono facilmente risolvibili.
Uno sviluppo importante che ha reso possibile 3D WebGL™ è l’introduzione dell’elemento canvas nella specifica HyperText Markup Language versione 5 (HTML5). L’elemento canvas consente l’accesso di basso livello a una finestra che può essere disegnata e gestita in uno stile coerente con i tipi esistenti di API di rendering in altri linguaggi di programmazione per computer. L’API WebGL™ funziona con questa tela accelerata per fornire la capacità di eseguire il rendering di scene complesse molto rapidamente senza dover fare affidamento sull’emulazione software su diverse piattaforme o implementazioni.
L’API 3D WebGL™ non solo utilizza l’elemento canvas, ma si basa anche sulla Open Graphics Library for Embedded Systems (OpenGL ES®). Questa è una versione portatile della libreria standard OpenGL® progettata per essere portatile non solo tra diversi sistemi operativi di computer, ma anche su qualsiasi dispositivo che richieda l’uso di grafica 3D di basso livello. Questo ingombro ridotto consente di integrare la libreria in qualsiasi browser per quasi tutti i dispositivi.
L’implementazione di 3D WebGL™ consente lo sviluppo di programmi interattivi che possono essere eseguiti direttamente dall’interno di un sito Web o scaricati ed eseguiti come applicazione autonoma all’interno del browser Web. Può essere utilizzato per creare videogiochi 3D, software didattici, simulazioni e software di visualizzazione 3D per la ricerca scientifica e aziendale. Utilizzando il browser come applicazione wrapper, gli ambienti 3D possono essere sviluppati senza doversi preoccupare del codice boilerplate ripetitivo per le interfacce di base.
Uno dei maggiori svantaggi dell’utilizzo di 3D WebGL™, e uno che ne impedisce l’ampia accettazione presso alcune aziende produttrici di software e hardware, è il rischio per la sicurezza che presenta. La capacità di un programma di accedere alla GPU può fornire a un programma dannoso la capacità di forzare il sistema del computer host a eseguire codice dannoso. È stato inoltre dimostrato che gli attacchi Denial of Service (DOS) sono possibili utilizzando l’API WebGL™. Per questo motivo, alcune importanti aziende di computer si rifiutano di supportare completamente WebGL™ nei loro prodotti.