WebGL-i elemente saab segada kokkuHTML-elementidega ning kompositeerida teiste osadega lehest või lehe taustast.[3] WebGL programmid koosnevad kontrollkoodist, mis on kirjutatud JavaScriptis, ningvarjutaja koodist, mis on kirjutatudC jaC++ keeltega sarnasesESSL-is (OpenGL ES Shading Language), ning WebGLi käitatakse arvutigraafikakaardi abil. WebGL-i haldabmittetulundusühendusKhronos Group.[4]
WebGL kasvas välja eksperimentaalsest tarkvarast Canvas 3D, mille arendamisega tegelesMozillas Vladimir Vukićević. Vukićević demonstreeris Canvas 3D prototüüpi esimest korda 2006. aastal. 2007. aasta lõpuks olid oma implementatsioonid Canvas 3D-st loonud nii Mozilla[7] kui kaOpera.[8]
Canvas 3D põhjal alustas mittetulundusühing Khronos Group 2009. aasta algul töörühma WebGL Working Group, milles osalesid kaApple,Google, Mozilla, Opera ja teised.[4][9] WebGL spetsifikatsiooni versioon 1.0 ilmus 2011. aasta märtsis.[1]
Versiooni 2.0 loomine algas 2013. aastal ning spetsifikatsioon ilmus 2017. aasta jaanuaris.[10] Esimesed implementatsioonid WebGL versioonist 2.0 olidFirefoxi versioonis 51,Chrome'i versioonis 56 ja Opera versioonis 43.[11]
WebGL on tänapäevastes veebibrauserites laialdaselt toetatud. Siiski võib selle kättesaadavus oleneda ka riistvaralistest teguritest, eelkõige seoses graafikakaardiga. WebGL ametlikul veebisaidil leidub lihtne test, mis aitab kindlaks teha, kas WebGL on toetatud.[12] Detailsemat infot WebGL implementatsiooni ja muu kohta leiab kolmandate osapoolte loodud veebilehtedelt.[13][14]
Google Chrome – WebGL 1.0 on toetatud alates versioonist 9, mis ilmus 2011. aasta veebruaris.[15] WebGL 2.0 on toetatud alates versioonist 56.[11]
Mozilla Firefox – WebGL 1.0 on toetatud alates versioonist 4.0.[16] WebGL 2.0 on toetatud alates versioonist 51.[11]
Safari – Safari 6.0 ning uuemad versioonidOS X Mountain Lioni ningMac OS X Lioni peal pakuvad WebGL 1.0 toetust, samuti Safari 5.1 ning uuemad versioonidMac OS X Snow Leopardil, kuid enne Safari versiooni 8.0 oli WebGL vaikimisi välja lülitatud.[17][18][19][20][21] Safari versioon 12macOS Mojave peal pakub WebGL 2.0 toetust, kuid toetus on märgitud kui "eksperimentaalne" funktsioon.
Opera – WebGL 1.0 implementeeriti versioonides 11 ja 12, kuid oli vaikimisi välja lülitatud.[22][23] WebGL 2.0 on toetatud alates versioonist 43.[11]
Internet Explorer – WebGL 1.0 on osaliselt toetatudversioonis 11.[24][25] Varasemad Internet Exploreri versioonid toetavad WebGL-i kolmandate osapoolte loodud pistikprogrammide, nagu IEWebGL abil.[26]
Microsoft Edge – WebGL 1.0 on toetatud alates versioonist 10240. WebGL 2.0 on toetatud alatesChromiumi baasil töötavast versioonist 76.[27]
Androidi brauser – pole pakkunud kunagi ametlikult WebGL-i toetust. MõningadSony Xperia ningSamsungi telefonid toetavad WebGL-i osaliselt. Suuremas osas Androidi telefonides asendati brauser Google Chrome'iga, mis WebGL-i toetab, kuid ei ole Androidi brauseri enda versioon.[28]
Google Chrome – WebGL 1.0 on toetatud alates versioonist 25[30] ja vaikimisi sisse lülitatud alates versioonist 30.[32] WebGL 2.0 on toetatud alates versioonist 78.[31]
Microsoft Edge – WebGL 1.0 on toetatud alatest Windows 10 Mobile versioonist.[33]
Opera Mobile – WebGL on implementeeritud alates versioonist 12, kuid ainult Androidil.[34][30] Alates versioonist 46 on toetatud ka WebGL 2.0.[31]
iOSSafari – WebGL on toetatud alates iOS versioonist 8.[35][30] WebGL 2.0 toetust ei ole.[31]
WebGL on iseenesest madaltasemeline, mistõttu on temaga kiire 3D-graafika loomine üpriski keeruline, seetõttu on loodud mitmeid teeke, mis aitavad 3D-graafika loomisele kaasa. Mõned teegid, mis lisavad kõrgetasemelisi funktsioone, on näiteksA-Frame[36],Babylon.js[37],PlayCanvas[38],three.js[39],OSG.JS[40] jaCopperLicht[41].
WebGL-i jaoks on loodud kamängumootoreid nii 2D- kui 3D-graafikaga veebimängude loomiseks.[42] NiiUnreal Engine 4 kui kaUnity mängumootor töötavad WebGL-iga[43], samuti on loodud WebGL-ile spetsiaalseid mängumootoreid, nagu PlayCanvas.[38]
2D-graafikale orienteeritud teekide, näiteks Cocos2d või Pixi.js, eelis on ka see, et neil on võimalik kasutada WebGL-i puudumise korral tagavarana ka HTML5 lõuendi elementi.[44]
↑Gregg Tavares (9. veebruar 2012)."WebGL Fundamentals".HTML5 Rocks (inglise keeles). Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
↑Tony Parisi (15. august 2012)."WebGL: Up and Running".O'Reilly Media, Incorporated (inglise keeles). Originaali arhiivikoopia seisuga 1. veebruar 2013. Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link) CS1 hooldus: tundmatu keel (link)
↑"Enable WebGL in Safari".Ikriz.nl (inglise keeles). 23. august 2011.Originaali arhiivikoopia seisuga 4. märts 2012. Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
↑"Opera Mobile 12".Opera Software (inglise keeles).Originaali arhiivikoopia seisuga 1. märts 2012. Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
↑Andrew Cunningham (17. september 2014)."iOS 8, Thoroughly Reviewed".Ars Technicae (inglise keeles). Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
↑"Introduction".A-Frame (inglise keeles). Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
↑"OSG.JS".OSG.JS (inglise keeles).Originaali arhiivikoopia seisuga 29. märts 2013. Vaadatud 4. jaanuaril 2020.{{netiviide}}: CS1 hooldus: tundmatu keel (link)