[go: up one dir, main page]

Mine sisu juurde

WebGL

Allikas: Vikipeedia
WebGL
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]

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]

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 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 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 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]

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

Välislingid

[muuda | muuda lähteteksti]