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