Pređi na sadržaj

WebGL

S Vikipedije, slobodne enciklopedije
WebGL
Programer(i)Khronos WebGL Working Group
Stabilno izdanje
2.0 / 17. januar 2017; pre 9 godina (2017-01-17)
TipAPI


WebGL (skraćeno od Web Graphics Library) je JavaScript API za prikazivanje interaktivne 2D i 3D grafike u okviru bilo kog kompatibilnog veb pretraživača bez upotrebe dodataka.[1] WebGL je u potpunosti integrisan sa drugim veb standardima, omogućavajući GPU-ubrzanu upotrebu fizike, obrade slika i efekata u HTML platnu. WebGL elementi se mogu mešati sa drugim HTML elementima i sastavljati sa drugim delovima stranice ili pozadinom stranice.[2]

WebGL programi se sastoje od kontrolnog koda napisanog u JavaScript-u i koda za šejder napisanog u OpenGL ES, jeziku sličnom C ili C++. WebGL kod se izvršava na GPU računara.

WebGL je dizajnirao i održava neprofitna organizacija Khronos Group. Khronos Group je 9. februara 2022. najavila podršku za WebGL 2.0 iz svih glavnih pretraživača.[3]

Istorija

[uredi | uredi izvor]

WebGL je evoluirao iz Canvas 3D eksperimenata koje je započeo Vladimir Vukićević u Mozili. Vukićević je prvi put demonstrirao Canvas 3D prototip 2006. Do kraja 2007. i Mozila[4] i Opera[5] su napravili svoje zasebne implementacije.

Početkom 2009. neprofitni tehnološki konzorcijum Khronos Group pokrenuo je WebGL radnu grupu, sa početnim učešćem Epla, Gugla, Mozile, Opere i drugih. Verzija 1.0 WebGL specifikacije je objavljena u martu 2011.

Softver

[uredi | uredi izvor]

WebGL je široko podržan od strane modernih pretraživača. Međutim, njegova dostupnost zavisi i od drugih faktora, na primer da li ga GPUpodržava. Zvanična veb lokacija WebGL nudi jednostavnu test stranicu. [6] Detaljnije informacije (kao što je renderer koji pregledač koristi i koja su proširenja dostupna) mogu se naći na veb lokacijama trećih strana.[7] [8]

  • Google Chrome – WebGL 1.0 omogućena je na svim platformama koje imaju odgovarajuću grafičku karticu sa ažuriranim drajverima od verzije 9, objavljene u februaru 2011.[9][10] Podrazumevano uključeno u Windows, Chrome koristi ANGLE (Almost Native Graphics Layer Engine) renderer za prevođenje OpenGL ES u Direct X 9.0c ili 11.0, koji imaju bolju podršku za drajver.[11] U Linux Mac OS X sistemima, podrazumevani renderer je OpenGL.[12] Takođe je moguće koristiti OpenGL kao renderer za Windows.[11] Od septembra 2013., Chrome ima noviji Direct3D 11 renderer, što zahteva noviju grafičku karticu.[13][14] Chrome 56+ podržava WebGL 2.0.
  • Firefox – WebGL 1.0 je omogućen na svim platformama koje imaju odgovarajuću grafičku karticu sa ažuriranim drajverima od verzije 4.0.[15] Od 2013. Firefox takođe koristi DirectX na Windows-u preko ANGLE.[11] Firefox 51+ podržava WebGL 2.0.
  • Safari – Safari 6.0 i novije verzije instalirane na OS X Mountain Lion, Mac OS X Lion i Safari 5.1 na Mac OS X Snow Leopard implementirana je podrška za WebGL 1.0, što je ranije bilo podrazumevano onemogućeno Safari 8.0.[16][17][18][19][20] Safari 12 (dostupan na MacOS Mojave) ima dostupnu podršku za WebGL 2.0 kao „eksperimentalna“ funkcija. Safari 15 omogućava WebGL 2.0 za sve korinsike.[21]
  • Opera – WebGL 1.0 je implementiran u Opera 11 i 12, ali je podrazumevano onemogućen 2014.[22][23] Opera 43+ podržava WebGL 2.0.
  • Internet Explorer – WebGL 1.0 delimično je podržan u Internet Explorer 11.[24][25][26][27] Internet Explorer u početku nije prošao većinu zvaničnih testova usaglašenosti sa WebGL-om, ali je Microsoft kasnije objavio nekoliko ažuriranja. WebGL 0.94 trenutno prolazi ≈97% Khronos testova.[28] WebGL Podrška se takođe može ručno dodati u starije verzije pomoću dodataka trećih strana kao što su IEWebGL.[29]
  • Microsoft Edge – za Microsoft Edge Legacy, Početno stabilno izdanje podržava WebGL verziju 0.95 (kontekstni naziv: „experimental-webgl“) sa transpilerom otvorenog koda GLSL u HLSL.[30] Verzija 10240+ podržava WebGL 1.0. Najnoviji Edge baziran na Chromium-u podržava WebGL 2.0.

Mobilni pretraživači

[uredi | uredi izvor]
  • Android Browser – WebGL 1.0 is supported on Android as of Chrome 25.[31] WebGL 2.0 is supported on Android as of Chrome 114.[32] Chrome is used for the Android system webview as of Android 5.[32]
  • BlackBerry 10 – WebGL 1.0 is available for BlackBerry devices since OS version 10.00[33]
  • BlackBerry PlayBook – WebGL 1.0 is available via WebWorks and browser in PlayBook OS 2.00[34]
  • Internet Explorer – Prefixed WebGL 1.0 is available on Windows Phone 8.x (11+)
  • Firefox for mobile – WebGL 1.0 is available for Android and MeeGo devices since Firefox 4.[35][36]
  • Firefox OS[36]
  • Google Chrome – WebGL 1.0 is available for Android devices since Google Chrome 25 and enabled by default since version 30.[37]
  • Maemo – In Nokia N900, WebGL 1.0 is available in the stock microB browser from the PR1.2 firmware update onwards.[38]
  • MeeGo – WebGL 1.0 is unsupported in the stock browser "Web." However, it is available through Firefox.[36]
  • Microsoft Edge – Prefixed WebGL 1.0 is available on Windows 10 Mobile.[39]
  • Opera Mobile – Opera Mobile 12 supports WebGL 1.0 (on Android only).[40]
  • Safari on iOS – WebGL 1.0 is available for mobile Safari in iOS 8.[41] WebGL 2.0 is available for mobile Safari in iOS 15.[32]
  • Sailfish OS – WebGL 1.0 is supported in the default Sailfish browser.[42]
  • Tizen – WebGL 1.0 is supported[43]

Alatke i ekosistem

[uredi | uredi izvor]

Korisnost

[uredi | uredi izvor]

Nizak nivo prirode WebGL API-ja, što sam po sebi pruža malo za brzo kreiranje poželjne 3D grafike, motivisalo je kreiranje biblioteka višeg nivoa koje apstrahuju uobičajene operacije (npr. učitavanje grafikona scene i 3D objekata u određenim formatima; primena linearnih transformacija na šejdere ili prikaze frostuma). Neke takve biblioteke su prenete na JavaScript iz ostalih jezika. Primeri biblioteka koje pružaju funkcije visokog nivoa uključuju A-Frame, BabylonJS, PlayCanvas, three.js, OSG.JS i CopperLicht.

Kreiranje sadržaja

[uredi | uredi izvor]

Kao i sa bilo kojim drugim grafičkim API-jem, kreiranje sadržaja za WebGL scene zahtevaju korišćenje alata za kreiranje 3D sadržaja i izvoz scene u format koji može da čita pregledač ili pomoćna biblioteka. Softver za 3D autoring za desktop računare, kao što su Blender ili Autodesk Maya se mogu koristiti u ovu svrhu.

Alati zasnovani na okruženju

[uredi | uredi izvor]

Počevši od Firefox 27, Mozilla je Firefox-u dala ugrađene WebGL alate koji omogućavaju uređivanje čvorova i fragmentnih šejdera.[44] Pojavio se i niz drugih alata za otklanjanje grešaka i profilisanje.[45]

Reference

[uredi | uredi izvor]
  1. ^ „WebGL Fundamentals”. HTML5 Rocks. 
  2. ^ Parisi, Tony (2012-08-15). „WebGL: Up and Running”. O'Reilly Media, Incorporated. Архивирано из оригинала 2013-02-01. г. Приступљено 2012-07-13. 
  3. ^ „WebGL 2.0 Achieves Pervasive Support from all Major Web Browsers”. The Khronos Group (na jeziku: engleski). 2022-02-09. Приступљено 2022-02-13. 
  4. ^ „Canvas 3D: GL power, web-style”. Blog.vlad1.com. Архивирано из оригинала 2011-07-17. г. Приступљено 2011-05-14. 
  5. ^ „Taking the canvas to another dimension”. My.opera.com. 2007-11-26. Архивирано из оригинала 2007-11-17. г. Приступљено 2011-05-14. 
  6. ^ „WebGL test page”. webgl.org. 
  7. ^ „WebGL Report”. webglreport.com. 
  8. ^ „WebGL Browser Report — WebGL Detection — WebGL Tester — BrowserLeaks”. browserleaks.com. 
  9. ^ Mah, Paul (8. 2. 2011). „Google releases Chrome 9; comes with Google Instant, WebGL – FierceCIO:TechWatch”. FierceCIO. Архивирано из оригинала 2011-10-25. г. Приступљено 2012-03-20. 
  10. ^ „WebGL in Chrome Stable! - Learning WebGL”. learningwebgl.com. Архивирано из оригинала 2015-05-28. г. Приступљено 2014-08-07. 
  11. ^ a b v „(WebGL) How to Enable Native OpenGL in your Browser (Windows)”. geeks3d.com. 11. 6. 2013. 
  12. ^ „Chromium Blog: Introducing the ANGLE Project”. Chromium Blog. 
  13. ^ „WebGL around the net, 17 Oct 2013 - Learning WebGL”. learningwebgl.com. Архивирано из оригинала 8. 8. 2014. г. Приступљено 5. 8. 2014. 
  14. ^ „At last! Chrome D3D11 day has come!”. tojicode.com. 
  15. ^ „Mozilla Firefox 4 Release Notes”. Mozilla.com. 2011-03-22. Приступљено 2012-03-20. 
  16. ^ „New in OS X Lion: Safari 5.1 brings WebGL, Do Not Track and more”. Fairerplatform.com. 2011-05-03. Архивирано из оригинала 2012-03-19. г. Приступљено 2012-03-20. 
  17. ^ „Enable WebGL in Safari”. Ikriz.nl. 2011-08-23. Архивирано из оригинала 2012-03-04. г. Приступљено 2012-03-20. 
  18. ^ „Getting a WebGL Implementation”. Khronos.org. 2012-01-13. Приступљено 2012-03-20. 
  19. ^ „Implementations/WebKit”. Khronos.org. 2011-09-03. Приступљено 2012-03-20. 
  20. ^ „WebGL Now Available in WebKit Nightlies”. Webkit.org. Архивирано из оригинала 2012-03-08. г. Приступљено 2012-03-20. 
  21. ^ modeless (2021-09-24). „Safari 15 is released. WebGL 2 is now supported in every major browser and platform!”. r/webgl. Приступљено 2023-10-18. 
  22. ^ „WebGL and Hardware Acceleration”. My.opera.com. 2011-02-28. Архивирано из оригинала 2011-03-03. г. Приступљено 2012-03-20. 
  23. ^ „Introducing Opera 12 alpha”. My.opera.com. 2011-10-13. Архивирано из оригинала 2011-10-15. г. Приступљено 2012-03-20. 
  24. ^ „WebGL (Windows)”. microsoft.com. Microsoft. 
  25. ^ „Internet Explorer 11 Preview guide for developers”. Microsoft. 2013-07-17. Приступљено 2013-07-24. 
  26. ^ „WebGL”. Microsoft. 2013-07-17. Приступљено 2013-07-24. 
  27. ^ „Internet Explorer 11 to support WebGL and MPEG Dash”. Engadget. 2013-06-26. Приступљено 2013-06-26. 
  28. ^ „IE11 fails more than half tests in official WebGL conformance test suite”. Microsoft Connect. 
  29. ^ „IEWebGL”. Iewebgl. Приступљено 2014-08-14. 
  30. ^ „GitHub - Microsoft Edge WebGL Implementation”. Microsoft. 2016-06-04. Приступљено 2016-06-10. 
  31. ^ „WebGL: 2D and 3D graphics for the web - Web APIs - MDN”. Приступљено 2023-06-28. 
  32. ^ a b v „WebGL 2.0 - Can I use...”. Приступљено 2023-06-28. 
  33. ^ McDonough, Larry. „WebGL: 3D Gaming on the Web Arrives”. BerryReview. Архивирано из оригинала 2013-04-13. г. Приступљено 2013-04-09. 
  34. ^ Halevy, Ronen. „PlayBook OS 2.0 Developer Beta Includes WebGL, Flash 11, & AIR 3.0”. BerryReview. Приступљено 2011-11-15. 
  35. ^ „WebGL on Mobile Devices”. iChemLabs. 2011-11-12. Архивирано из оригинала 2013-01-27. г. Приступљено 2011-11-25. 
  36. ^ a b v „Mobile HTML5 compatibility on iPhone, Android, Windows Phone, BlackBerry, Firefox OS and other mobile devices”. Архивирано из оригинала 15. 04. 2022. г. Приступљено 2015-09-16. 
  37. ^ Kersey, Jason. „Chrome Beta for Android Update”. Chrome Releases Blog. Приступљено 2013-08-23. 
  38. ^ Voipio, Riku (2010-06-07). „WebGL on N900”. Suihkulokki.blogspot.com. Приступљено 2011-05-14. 
  39. ^ „Dev guide: WebGL – Microsoft Edge Development”. Microsoft. Архивирано из оригинала 2016-10-08. г. Приступљено 2016-06-10. 
  40. ^ „Opera Mobile 12”. Opera Software. Архивирано из оригинала 1. 3. 2012. г. Приступљено 27. 2. 2012. 
  41. ^ Cunningham, Andrew (2014-09-17). „iOS 8, Thoroughly Reviewed”. Ars Technica. Приступљено 2014-09-19. 
  42. ^ „HTML5test – How well does your browser support HTML5?”. Приступљено 2015-09-16. 
  43. ^ „HTML5test – How well does your browser support HTML5?”. Приступљено 2015-09-16. 
  44. ^ „Live editing WebGL shaders with Firefox Developer Tools – Mozilla Hacks - the Web developer blog”. Mozilla Hacks – the Web developer blog (na jeziku: engleski). Приступљено 2025-04-26. 
  45. ^ Eric (2013-11-19). Real-Time Rendering” (na jeziku: engleski). Приступљено 2025-04-26. 

Spoljašnje veze

[uredi | uredi izvor]

Arhivirano 2010-06-26 na sajtu Wayback Machine at the Mozilla Developer Network