WebGL
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 2 decembrie 2021; verificările necesită
2 modificări .
WebGL ( Web-based Graphics Library ) este un API multiplatformă pentru grafică 3D în browser dezvoltat de organizația non-profit Khronos Group . WebGL folosește limbajul de programare GLSL shader [1] Arhivat 13 octombrie 2018 la Wayback Machine . WebGL rulează ca un element HTML5 și, prin urmare, este o parte completă a modelului de obiecte document (DOM API) al browserului . Poate fi folosit cu orice limbaj de programare care poate funcționa cu API-ul DOM, cum ar fi JavaScript , Rust [2] Arhivat 17 iunie 2018 la Wayback Machine , Java , Kotlin [3] Arhivat 13 octombrie 2018 la Wayback Machine și altele . Toți cei mai importanți dezvoltatori de browsere Google ( Chrome ), Mozilla ( Firefox ) și Apple ( Safari ) sunt membri Khronos și implementează WebGL în browserele lor. Datorită utilizării suportului OpenGL de nivel scăzut, o parte a codului WebGL poate fi executată direct pe plăcile video . WebGL este contextul elementului HTML canvas , care oferă un API grafic 3D fără utilizarea pluginurilor [2] . Prima specificație a fost lansată pe 3 martie 2011. Versiunea actuală 2.0 (incompatibilă cu versiunea 1.0) este disponibilă din 27 februarie 2017 [3] [4] .
Principii
API-ul se bazează pe OpenGL ES 2.0 și permite implementarea graficii 3D [5] în browser, utilizează elementul canvas HTML5 și funcționează , de asemenea, cu DOM . Gestionarea automată a memoriei este asigurată de limbajul JavaScript [2] .
Versiuni
- WebGL 1.0 - Construit pe OpenGL ES 2.0, GLSL ES versiunea 1.00 [6] este acceptat pentru shadere .
- WebGL 2.0 - Construit pe OpenGL ES 3.0, versiunile GLSL ES 1.00 și 3.00 [7] sunt acceptate pentru shadere .
Implementare
- Mozilla Firefox - WebGL a fost activat pe toate platformele care au placa grafică corectă cu drivere actualizate începând cu versiunea 4.0 [8] .
- Google Chrome - WebGL este activat implicit în toate versiunile începând cu 9 [9] .
- Safari - Acceptă WebGL în mod experimental începând cu versiunea 5.1, suport complet implementat și activat implicit în versiunea 8.0.
- Opera - WebGL este implementat în Opera 12.0, dar este dezactivat implicit.
- Internet Explorer - Începând cu Internet Explorer 11 , WebGL este acceptat oficial [10] . Înainte de versiunea 11, pluginurile Chrome Frame și IEWebGL au fost lansate de dezvoltatori independenți pentru a oferi opțiunile necesare pentru a accepta WebGL în Internet Explorer.
Browsere mobile
Grupul de lucru
Grupul de lucru care elaborează standardul include: Khronos Group , dezvoltatori de browsere Apple Safari , Google Chrome , Mozilla Firefox și Opera , precum și specialiști de la AMD și Nvidia [18] .
Istorie
WebGL a apărut din experimentarea cu Canvas 3D de către Vladimir Vukićević de la Mozilla , care a dezvoltat prototipul Canvas 3D în 2006. La sfârșitul anului 2007, atât Mozilla [19] , cât și Opera [20] și-au creat propriile implementări separate.
Mozilla și Khronos au format WebGL Working Group [21] la începutul anului 2009 , iar pe 10 decembrie 2009 consorțiul a publicat primul proiect de specificație WebGL [18] [22] . Președintele echipei Arun Ranganathan a declarat că specificația este de așteptat să fie finalizată în primul trimestru al anului 2010 [18] [22] . Revizuirea finală a primei ediții a specificațiilor a fost prezentată pe 3 martie 2011 la San Francisco [23] [24] .
Dezvoltarea următoarei versiuni a specificației a început în 2013. Standardul WebGL 2.0, bazat pe OpenGL ES 3.0, a fost ratificat de consorțiul Khronos în ianuarie 2017 [25] . Noua versiune a standardului a fost implementată în Firefox 51, Chrome 56 și Opera 43 [26] .
Securitate
În iunie 2011, Microsoft și-a exprimat îngrijorarea cu privire la securitatea tehnologiei WebGL, invocând ceea ce a considerat drept drepturi de acces excesive la hardware și mecanisme de protecție nesigure de tip Denial of Service ( DoS ). [27] Vicepreședintele Mozilla Mark Shaver a respins criticile Microsoft, considerând exagerate argumentele prezentate. El a mai menționat că Microsoft are propria tehnologie web 3D , Silverlight 5, bazată pe aceleași principii ca și WebGL, pe care, totuși, Microsoft o consideră destul de fiabilă. [28] Ulterior, Microsoft și-a schimbat atitudinea față de tehnologia WebGL, implementând suportul său în browserul său Internet Explorer 11. [29]
Apple Corporation , în ciuda amânării deciziei de a sprijini WebGL în browserul Safari din motive de securitate, a anunțat această decizie la conferința WWDC din 2014. [30]
Biblioteci
Pentru a simplifica dezvoltarea aplicațiilor WebGL, există diverse cadre și biblioteci . Prima bibliotecă publică a fost WebGLU [31] [32] . Alte biblioteci pentru WebGL includ GLGE , C3DL , Copperlicht [33] , SpiderGL, gwt-g3d [34] (wrapper pentru GWT ), SceneJS , X3DOM , Processing.js , Babylon.js , Three.js , Turbulenz, OSGJS [35 ] , XB PointStream și CubicVR.js [36] .
Blend4Web vă permite să editați vizual conținutul WebGL în pachetul de modelare și animație 3D open source Blender și să îl exportați pentru a funcționa în browsere într-o singură operațiune [37] .
Verge3D este un redator WebGL care exportă scene direct din editorii standard (suportați de Autodesk 3ds Max și Blender ) cu posibilitatea de a adăuga scripturi interactive fără programare [38] .
Stratul de compatibilitate ANGLE
ANGLE (Almost Native Graphics Layer Engine) [39] este o bibliotecă cu licență BSD care vă permite să traduceți conținut WebGL în OpenGL ES 2.0, să apelați API-uri DirectX 9 și 11 care interacționează cu platformele Microsoft Windows fără a fi nevoie de drivere OpenGL suplimentare . Folosit implicit în browserele Google Chrome și Firefox.
Vezi și
Note
- ↑ Specificații WebGL 2.0 . Data accesului: 8 februarie 2017. Arhivat din original pe 28 ianuarie 2017. (nedefinit)
- ↑ 1 2 WebGL - OpenGL ES 2.0 pentru Web . Khronos.org. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Khronos dezvăluie actualizări API și noi grupuri de lucru la GDC . Consultat la 12 octombrie 2018. Arhivat din original la 8 martie 2017. (nedefinit)
- ↑ Prezentare generală WebGL . Data accesului: 12 decembrie 2009. Arhivat din original la 15 decembrie 2009. (nedefinit)
- ↑ Specificații WebGL . Khronos.org. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Specificații WebGL . Data accesului: 8 februarie 2017. Arhivat din original pe 27 martie 2017. (nedefinit)
- ↑ Specificații WebGL 2 . Data accesului: 8 februarie 2017. Arhivat din original pe 28 ianuarie 2017. (nedefinit)
- ↑ Note de lansare a Mozilla Firefox 4 (link nu este disponibil) . Preluat la 29 august 2011. Arhivat din original la 23 martie 2011. (nedefinit)
- ↑ Google lansează Chrome 9; vine cu Google Instant, WebGL - FierceCIO:TechWatch (downlink) . Preluat la 29 august 2011. Arhivat din original la 25 octombrie 2011. (nedefinit)
- ↑ WebGL (Windows) . Data accesului: 16 ianuarie 2014. Arhivat din original la 16 ianuarie 2014. (nedefinit)
- ↑ suihkulokki. WebGL pe N900 . Suihkulokki.blogspot.com (7 iunie 2010). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Halevy, Ronen PlayBook OS 2.0 Developer Beta Include WebGL, Flash 11 și AIR 3.0 . BerryReview . Consultat la 15 noiembrie 2011. Arhivat din original pe 12 martie 2013. (nedefinit)
- ↑ Brandon Jones. Obține WebGL să lucreze pe Android Chrome Beta . Tojicode (10 ianuarie 2013). Consultat la 12 februarie 2013. Arhivat din original pe 12 martie 2013. (nedefinit)
- ↑ iclkevin. WebGL pe dispozitive mobile . iChemLabs (12 noiembrie 2011). Consultat la 25 noiembrie 2011. Arhivat din original la 12 martie 2013. (nedefinit)
- ↑ Telefoanele Xperia™ sunt primele care acceptă WebGL™ – Developer World . blogs.sonyericsson.com . Programul pentru dezvoltatori Sony Ericsson (29 noiembrie 2011). Preluat la 5 decembrie 2011. Arhivat din original la 12 martie 2013. (nedefinit)
- ↑ Opera Mobile 12 . Software Opera. Data accesului: 27 februarie 2012. Arhivat din original la 12 martie 2013. (nedefinit)
- ↑ WebGL pe iOS 8 Safari și webview (downlink) . Preluat la 9 iulie 2014. Arhivat din original la 14 iulie 2014. (nedefinit)
- ↑ 1 2 3 Khronos a publicat o versiune nefinalizată a copiei WebGL Archival din 9 septembrie 2015 la Wayback Machine // Lenta.ru , 12/11/2009
- ↑ Canvas 3D: GL power, web-style . blog.vlad1.com. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Ducerea pânzei într-o altă dimensiune . My.opera.com (26 noiembrie 2007). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Khronos detaliază inițiativa WebGL pentru a aduce pe Internet grafică 3D accelerată de hardware . Khronos.org (4 august 2009). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ 1 2 Standardul web WebGL 3D ajunge la fazele de proiect Arhivat 15 decembrie 2009 la Wayback Machine // Techradar
- ↑ Kurt Bakke. WebCL pentru a activa aplicațiile web accelerate de GPU . ConceivablyTech (3 martie 2011). Preluat la 4 martie 2011. Arhivat din original la 12 aprilie 2012.
- ↑ Accent. Khronos publică specificația WebGL 1.0 - accelerare grafică 3D pentru pagini web fără pluginuri (link nu este disponibil) . iXBT.com (3 martie 2011). Consultat la 4 martie 2011. Arhivat din original pe 6 martie 2011. (Rusă)
- ↑ Specificații WebGL 2 . khronos.org (5 iulie 2017). Preluat la 16 august 2017. Arhivat din original la 8 august 2017. (nedefinit)
- ↑ WebGL - Web API-uri . MDN . Preluat la 16 august 2017. Arhivat din original la 28 august 2017. (nedefinit)
- ↑ WebGL considerat dăunător . Microsoft (16 iunie 2011). Consultat la 16 iunie 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Mozilla respinge critica Microsoft la adresa WebGL . The Inquirer (20 iunie 2011). Consultat la 29 iunie 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ Microsoft (în sfârșit) confirmă suportul WebGL pentru Internet Explorer 11 . TechCrunch (26 iunie 2013). Preluat la 7 iulie 2015. Arhivat din original la 9 iulie 2015. (nedefinit)
- ↑ Safari pe iOS8 acceptă WebGL - Noua era poate începe acum . I Programator (4 iunie 2014). Preluat la 7 iulie 2015. Arhivat din original la 7 iulie 2015. (nedefinit)
- ↑ OneGeek/WebGLU GitHub . Consultat la 15 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
- ↑ Benjamin DeLillo. Prima lansare WebGL . Bjatr.blogspot.com (2 octombrie 2009). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012. (nedefinit)
- ↑ CopperLicht - JavaScript 3D Engine utilizând WebGL . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
- ↑ gwt-g3d - Bibliotecă 3D pentru GWT - Google Project Hosting . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
- ↑ OSG.JS de cedricpinson . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
- ↑ cjcliffe/CubicVR.js GitHub . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
- ↑ Site oficial Blend4Web - Despre proiect . Blend4web.com. Data accesului: 3 iulie 2015. Arhivat din original la 1 iulie 2015. (nedefinit)
- ↑ Verge3D . Soft8Soft. Preluat la 14 iunie 2018. Arhivat din original la 14 iunie 2018. (nedefinit)
- ↑ angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013. (nedefinit)
Link -uri