Wat is 3D WebGL ™?
De webgebaseerde grafische bibliotheek (WebGL ™) is een abstracte programmeerinterface (API) die is ontworpen om het gebruik van driedimensionale (3D) afbeeldingen rechtstreeks in een webbrowser mogelijk te maken zonder dat software of plug-ins nodig zijn los van de kernbrowser . Het verschil tussen 3D WebGL ™ en andere grafische browsergebaseerde 3D-talen - zoals de virtual reality markup language (VRML) - is dat 3D WebGL ™ directe toegang tot de grafische verwerkingseenheid (GPU) op de hardwareweergavekaart in de computer. Een ander verschil is dat 3D WebGL ™ geen afzonderlijke taal is, maar een API die wordt geïmplementeerd via de JavaScript®-scripttaal die native wordt begrepen door bijna alle webbrowsers. Hoewel dit type directe toegang op laag niveau tot de hardware van het computersysteem een van de sterke punten van WebGL ™ is, is het ook een van de grotere problemen, omdat het een reeks beveiligingsproblemen oplevert die niet gemakkelijk kunnen worden opgelost.
Een belangrijke ontwikkeling die 3D WebGL ™ mogelijk heeft gemaakt, is de introductie van het canvas-element in de HyperText Markup Language-specificatie versie 5 (HTML5). Het canvas-element biedt toegang op laag niveau tot een viewport die kan worden getekend en onderhouden in een stijl die consistent is met bestaande typen rendering-API's in andere computerprogrammeertalen. De WebGL ™ API werkt met dit versnelde canvas om complexe scènes zeer snel weer te geven zonder afhankelijk te zijn van software-emulatie op verschillende platforms of implementaties.
De 3D WebGL ™ API maakt niet alleen gebruik van het canvas-element, maar is ook gebaseerd op de Open Graphics Library for Embedded Systems (OpenGL ES®). Dit is een draagbare versie van de standaard OpenGL®-bibliotheek die is ontworpen om niet alleen draagbaar te zijn tussen verschillende computerbesturingssystemen, maar ook op elk apparaat dat het gebruik van 3D-grafische afbeeldingen op laag niveau vereist. Dankzij deze kleine voetafdruk kan de bibliotheek worden geïntegreerd in elke browser voor vrijwel elk apparaat.
De implementatie van 3D WebGL ™ maakt de ontwikkeling mogelijk van interactieve programma's die rechtstreeks vanuit een website kunnen worden uitgevoerd of kunnen worden gedownload en als een zelfstandige toepassing in de webbrowser kunnen worden uitgevoerd. Het kan worden gebruikt om 3D-videogames, educatieve software, simulaties en 3D-visualisatiesoftware te maken voor zakelijk en wetenschappelijk onderzoek. Door de browser als wrapper-toepassing te gebruiken, kunnen de 3D-omgevingen worden ontwikkeld zonder dat u zich zorgen hoeft te maken over repetitieve boilerplate-code voor basisinterfaces.
Een van de grootste nadelen van het gebruik van 3D WebGL ™, en een die de brede acceptatie ervan bij bepaalde software- en hardwarefabrikanten voorkomt, is het beveiligingsrisico dat het met zich meebrengt. De mogelijkheid voor een programma om toegang te krijgen tot de GPU kan een schadelijk programma de mogelijkheid geven om het hostcomputersysteem te dwingen schadelijke code uit te voeren. Er is ook aangetoond dat DOS-aanvallen (Denial of Service) mogelijk zijn met behulp van de WebGL ™ API. Om deze reden zijn er enkele grote computerbedrijven die weigeren WebGL ™ volledig te ondersteunen in hun producten.