WebGL

Allikas: Vikipeedia
Mine navigeerimisribale Mine otsikasti
WebGL
WebGL Logo.svg
Autor Mozilla Foundation
Arendaja Khronos WebGL Working Group
Esmaväljalase 3. märts 2011[1]
Viimane väljalase 2.0
Platvorm Cross-platform
Keeled inglise
Suunitlus rakendusliides
Veebisait www.khronos.org/webgl/

WebGL ehk Web Graphics Library on JavaScripti rakendusliides, mis aitab renderdada interaktiivset 2D- ja 3D-graafikat läbi veebibrauseri ilma pistikprogrammideta.[2]

WebGL-i elemente saab segada kokku HTML-elementidega ning kompositeerida teiste osadega lehest või lehe taustast.[3] WebGL programmid koosnevad kontrollkoodist, mis on kirjutatud JavaScriptis, ning varjutaja koodist, mis on kirjutatud C ja C++ keeltega sarnases ESSL-is (OpenGL ES Shading Language), ning WebGLi käitatakse arvuti graafikakaardi abil. WebGL-i haldab mittetulundusühendus Khronos Group.[4]

WebGL põhineb OpenGL ES-i programmil ning kasutab HTML5 lõuendi elementi, ning sellele pääseb ligi läbi dokumendi objektimudeli (DOM) liideste. Kuna tegemist on JavaScripti rakendusliidesega, pärinevad WebGL-i mälukoristusvahendid JavaScriptist.[5][6]

Ajalugu[muuda | muuda lähteteksti]

WebGL kasvas välja eksperimentaalsest tarkvarast Canvas 3D, mille arendamisega tegeles Mozillas 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 ka Opera.[8]

Canvas 3D põhjal alustas mittetulundusühing Khronos Group 2009. aasta algul töörühma WebGL Working Group, milles osalesid ka Apple, 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 olid Firefoxi versioonis 51, Chrome'i versioonis 56 ja Opera versioonis 43.[11]

Tarkvara[muuda | muuda lähteteksti]

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]

Töölauabrauserid[muuda | muuda lähteteksti]

  • Google Chrome – WebGL 1.0 on toetatud alates versioonist 9, mis ilmus 2011. aasta veebruraris.[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 versioonid OS X Mountain Lioni ning Mac OS X Lioni peal pakuvad WebGL 1.0 toetust, samuti Safari 5.1 ning uuemad versioonid Mac OS X Snow Leopardil, kuid enne Safari versiooni 8.0 oli WebGL vaikimisi välja lülitatud.[17][18][19][20][21] Safari versioon 12 macOS 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 toetatud versioonis 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 alates Chromiumi baasil töötavast versioonist 76.[27]

Mobiilsed brauserid[muuda | muuda lähteteksti]

  • Androidi brauser – pole pakkunud kunagi ametlikult WebGL-i toetust. Mõningad Sony Xperia ning Samsungi 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]
  • Firefox for Android – WebGL 1.0 on toetatud alates versioonist 4.[29][30]WebGL 2.0 on toetatud alates versioonist 68.[31]
  • 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]
  • iOS Safari – WebGL on toetatud alates iOS versioonist 8.[35][30] WebGL 2.0 toetust ei ole.[31]

Kasutus ja pistikprogrammid[muuda | muuda lähteteksti]

Tõhususe parandamine[muuda | muuda lähteteksti]

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äiteks A-Frame[36], Babylon.js[37], PlayCanvas[38], three.js[39], OSG.JS[40] ja CopperLicht[41].

Mängumootorid[muuda | muuda lähteteksti]

WebGL-i jaoks on loodud ka mitmeid mängumootoreid, nii 2D- kui 3D-graafikaga veebimängude loomiseks.[42] Nii Unreal Engine 4 kui ka Unity 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]

Vaata ka[muuda | muuda lähteteksti]

Viited[muuda | muuda lähteteksti]

  1. 1,0 1,1 "Khronos Releases Final WebGL 1.0 Specification". Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  2. Gregg Tavares. "WebGL Fundamentals". HTML5 Rocks, 9. veebruar 2012. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  3. Tony Parisi. "WebGL: Up and Running". O'Reilly Media, Incorporated, 15. august 2012. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  4. 4,0 4,1 "WebGL – OpenGL ES 2.0 for the Web". Khronos.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  5. "WebGL Specification". Khronos.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  6. "WebGL 2.0 Specification". Khronos.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  7. "Canvas 3D: GL power, web-style". blog.vlad1.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  8. "Taking the canvas to another dimension". my.opera.com, 26. november 2007. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  9. "Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet". Khronos.org, 4. august 2009. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  10. "WebGL 2 Specification". khronos.org, 26. september 2013. Vaadatud 4. jaanuar 2020.
  11. 11,0 11,1 11,2 11,3 "WebGL - Web APIs". MDN. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  12. "WebGL test page". webgl.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  13. "WebGL Report". webglreport.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  14. "WebGL Browser Report — WebGL Detection — WebGL Tester — BrowserLeaks". browserleaks.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  15. "WebGL in Chrome Stable! - Learning WebGL". learningwebgl.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  16. "Mozilla Firefox 4 Release Notes". Mozilla.com, 22. märts 2011. Vaadatud 4. jaanuar 2020.
  17. "New in OS X Lion: Safari 5.1 brings WebGL, Do Not Track and more". fairerplatform.com, 3. mai 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  18. "Enable WebGL in Safari". Ikriz.nl, 23. august 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  19. "Getting a WebGL Implementation". Khronos.org, 13. jaanuar 2012. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  20. "Implementations/WebKit". Khronos.org, 3. september 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  21. "WebGL Now Available in WebKit Nightlies". Webkit.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  22. "WebGL and Hardware Acceleration". my.opera.com, 28. veebruar 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  23. "Introducing Opera 12 alpha". my.opera.com, 13. oktoober 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  24. "WebGL (Windows)". Microsoft. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  25. "Internet Explorer 11 to support WebGL and MPEG Dash". Engadget, 26. juuni 2013. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  26. "IEWebGL". GitHub. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  27. "The status of WebGL 2.0 in Microsoft Edge is Under Consideration". Microsoft Edge Development. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  28. "Xperia™ phones first to support WebGL™ – Developer World". blogs.sonyericsson.com, 29. november 2011. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  29. "Mobile HTML5 compatibility on iPhone, Android, Windows Phone, BlackBerry, Firefox OS and other mobile devices". Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  30. 30,0 30,1 30,2 30,3 "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  31. 31,0 31,1 31,2 31,3 "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  32. Jason Kersey. "Chrome Beta for Android Update". Chrome Releases Blog. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  33. "Dev guide: WebGL – Microsoft Edge Development". Microsoft. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  34. "Opera Mobile 12". Opera Software. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  35. Andrew Cunningham. "iOS 8, Thoroughly Reviewed". Ars Technicae, 17. september 2014. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  36. "Introduction". A-Frame. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  37. "Babylon.js: Powerful, Beautiful, Simple, Open - Web-Based 3D At Its Best". Babylon.js. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  38. 38,0 38,1 "PlayCanvas WebGL Game Engine". PlayCanvas. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  39. "Creating a scene - three.js docs". three.js. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  40. "OSG.JS". OSG.JS. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  41. "CopperLicht - JavaScript/WebGL 3D library". CopperLicht. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  42. Tony Parisi (2014). Programming 3D Applications with HTML5 and WebGL: 3D Animation and Visualization for Web Pages. O'Reilly Media, Inc.. Lk 364–366. ISBN 978-1-4493-6395-6. inglise keeles. 
  43. Stephen Barrett. "Tegra K1 Lands in Acer's Newest Chromebook". anandtech.com. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.
  44. "The WebGL potential - TypedArray.org". typedarray.org. Vaadatud 4. jaanuar 2020. Inglise keeles keeles.

Välislingid[muuda | muuda lähteteksti]