WebGL (скраћено од Web Graphics Library) је JavaScript API за приказивање интерактивне 2Д и 3Д графике у оквиру било ког компатибилног веб претраживача без употребе додатака. WebGL је у потпуности интегрисан са другим веб стандардима, омогућавајући GPU-убрзану употребу физике, обраде слика и ефеката у HTML платну. WebGL елементи се могу мешати са другим HTML елементима и састављати са другим деловима странице или позадином странице.

WebGL програми се састоје од контролног кода написаног у JavaScript-у и кода за шејдер написаног у OpenGL ES, језику сличном C или C++. WebGL код се извршава на GPU рачунара.

WebGL је дизајнирао и одржава непрофитна организација Khronos Group. Khronos Group је 9. фебруара 2022. најавила подршку за WebGL 2.0 из свих главних претраживача.

Историја WebGL је еволуирао из Canvas 3D експеримената које је започео Владимир Вукићевић у Мозили. Вукићевић је први пут демонстрирао Canvas 3D прототип 2006. До краја 2007. и Мозила и Опера су направили своје засебне имплементације.

Почетком 2009. непрофитни технолошки конзорцијум Khronos Group покренуо је WebGL радну групу, са почетним учешћем Епла, Гугла, Мозиле, Опере и других. Верзија 1.0 WebGL спецификације је објављена у марту 2011.

Софтвер WebGL је широко подржан од стране модерних претраживача. Међутим, његова доступност зависи и од других фактора, на пример да ли га GPUподржава. Званична веб локација WebGL нуди једноставну тест страницу. Детаљније информације (као што је рендерер који прегледач користи и која су проширења доступна) могу се наћи на веб локацијама трећих страна.

Google Chrome – WebGL 1.0 омогућена је на свим платформама које имају одговарајућу графичку картицу са ажурираним драјверима од верзије 9, објављене у фебруару 2011. Подразумевано укључено у Windows, Chrome користи ANGLE (Almost Native Graphics Layer Engine) рендерер за превођење OpenGL ES у Direct X 9.0c или 11.0, који имају бољу подршку за драјвер. У Linux Mac OS X системима, подразумевани рендерер је OpenGL. Такође је могуће користити OpenGL као рендерер за Windows. Од септембра 2013., Chrome има новији Direct3D 11 рендерер, што захтева новију графичку картицу. Chrome 56+ подржава WebGL 2.0. Firefox – WebGL 1.0 је омогућен на свим платформама које имају одговарајућу графичку картицу са ажурираним драјверима од верзије 4.0. Од 2013. Firefox такође користи DirectX на Windows-у преко ANGLE. Firefox 51+ подржава WebGL 2.0. Safari – Safari 6.0 и новије верзије инсталиране на OS X Mountain Lion, Mac OS X Lion и Safari 5.1 на Mac OS X Snow Leopard имплементирана је подршка за WebGL 1.0, што је раније било подразумевано онемогућено Safari 8.0. Safari 12 (доступан на MacOS Mojave) има доступну подршку за WebGL 2.0 као „експериментална“ функција. Safari 15 омогућава WebGL 2.0 за све коринсике. Opera – WebGL 1.0 је имплементиран у Opera 11 и 12, али је подразумевано онемогућен 2014. Opera 43+ подржава WebGL 2.0. Internet Explorer – WebGL 1.0 делимично је подржан у Internet Explorer 11. Internet Explorer у почетку није прошао већину званичних тестова усаглашености са WebGL-ом, али је Microsoft касније објавио неколико ажурирања. WebGL 0.94 тренутно пролази ≈97% Khronos тестова. WebGL Подршка се такође може ручно додати у старије верзије помоћу додатака трећих страна као што су IEWebGL. Microsoft Edge – за Microsoft Edge Legacy, Почетно стабилно издање подржава WebGL верзију 0.95 (контекстни назив: „experimental-webgl“) са транспилером отвореног кода GLSL у HLSL. Верзија 10240+ подржава WebGL 1.0. Најновији Edge базиран на Chromium-у подржава WebGL 2.0.

Мобилни претраживачи Android Browser – WebGL 1.0 is supported on Android as of Chrome 25. WebGL 2.0 is supported on Android as of Chrome 114. Chrome is used for the Android system webview as of Android 5. BlackBerry 10 – WebGL 1.0 is available for BlackBerry devices since OS version 10.00 BlackBerry PlayBook – WebGL 1.0 is available via WebWorks and browser in PlayBook OS 2.00 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. Firefox OS Google Chrome – WebGL 1.0 is available for Android devices since Google Chrome 25 and enabled by default since version 30. Maemo – In Nokia N900, WebGL 1.0 is available in the stock microB browser from the PR1.2 firmware update onwards. MeeGo – WebGL 1.0 is unsupported in the stock browser "Web." However, it is available through Firefox. Microsoft Edge – Prefixed WebGL 1.0 is available on Windows 10 Mobile. Opera Mobile – Opera Mobile 12 supports WebGL 1.0 (on Android only). Safari on iOS – WebGL 1.0 is available for mobile Safari in iOS 8. WebGL 2.0 is available for mobile Safari in iOS 15. Sailfish OS – WebGL 1.0 is supported in the default Sailfish browser. Tizen – WebGL 1.0 is supported

Алатке и екосистем Корисност Низак ниво природе WebGL API-ја, што сам по себи пружа мало за брзо креирање пожељне 3Д графике, мотивисало је креирање библиотека вишег нивоа које апстрахују уобичајене операције (нпр. учитавање графикона сцене и 3Д објеката у одређеним форматима; примена линеарних трансформација на шејдере или приказе фростума). Неке такве библиотеке су пренете на JavaScript из осталих језика. Примери библиотека које пружају функције високог нивоа укључују A-Frame, BabylonJS, PlayCanvas, three.js, OSG.JS и CopperLicht.

Креирање садржаја Као и са било којим другим графичким API-јем, креирање садржаја за WebGL сцене захтевају коришћење алата за креирање 3Д садржаја и извоз сцене у формат који може да чита прегледач или помоћна библиотека. Софтвер за 3Д ауторинг за десктоп рачунаре, као што су Blender или Autodesk Maya се могу користити у ову сврху.

Алати засновани на окружењу Почевши од Firefox 27, Mozilla је Firefox-у дала уграђене WebGL алате који омогућавају уређивање чворова и фрагментних шејдера. Појавио се и низ других алата за отклањање грешака и профилисање.

Референце

Спољашње везе

WebGL

at the Mozilla Developer Network

Категорија:Виртуелна стварност Категорија:Веб развој Категорија:Графичке библиотеке Категорија:Вишеплатформски софтвер