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
Tip de API
Autor Fundația Mozilla
Dezvoltator Grupul Khronos
Sistem de operare multiplatformă
Prima editie 3 martie 2011
ultima versiune 2.0 [1] ( 30 august 2018 )
Licență Variat
Site-ul web khronos.org/webgl/
 Fișiere media la Wikimedia Commons

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

Implementare

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

  1. Specificații WebGL 2.0 . Data accesului: 8 februarie 2017. Arhivat din original pe 28 ianuarie 2017.
  2. 1 2 WebGL - OpenGL ES 2.0 pentru Web . Khronos.org. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012.
  3. 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.
  4. Prezentare generală WebGL . Data accesului: 12 decembrie 2009. Arhivat din original la 15 decembrie 2009.
  5. Specificații WebGL . Khronos.org. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012.
  6. Specificații WebGL . Data accesului: 8 februarie 2017. Arhivat din original pe 27 martie 2017.
  7. Specificații WebGL 2 . Data accesului: 8 februarie 2017. Arhivat din original pe 28 ianuarie 2017.
  8. Note de lansare a Mozilla Firefox 4 (link nu este disponibil) . Preluat la 29 august 2011. Arhivat din original la 23 martie 2011. 
  9. Google lansează Chrome 9; vine cu Google Instant, WebGL - FierceCIO:TechWatch (downlink) . Preluat la 29 august 2011. Arhivat din original la 25 octombrie 2011. 
  10. WebGL (Windows) . Data accesului: 16 ianuarie 2014. Arhivat din original la 16 ianuarie 2014.
  11. suihkulokki. WebGL pe N900 . Suihkulokki.blogspot.com (7 iunie 2010). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012.
  12. 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.
  13. 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.
  14. iclkevin. WebGL pe dispozitive mobile . iChemLabs (12 noiembrie 2011). Consultat la 25 noiembrie 2011. Arhivat din original la 12 martie 2013.
  15. 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.
  16. Opera Mobile 12 . Software Opera. Data accesului: 27 februarie 2012. Arhivat din original la 12 martie 2013.
  17. WebGL pe iOS 8 Safari și webview (downlink) . Preluat la 9 iulie 2014. Arhivat din original la 14 iulie 2014. 
  18. 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
  19. Canvas 3D: GL power, web-style . blog.vlad1.com. Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012.
  20. 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.
  21. 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.
  22. 1 2 Standardul web WebGL 3D ajunge la fazele de proiect Arhivat 15 decembrie 2009 la Wayback Machine // Techradar
  23. 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.
  24. 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. 
  25. Specificații WebGL 2 . khronos.org (5 iulie 2017). Preluat la 16 august 2017. Arhivat din original la 8 august 2017.
  26. WebGL - Web API-uri . MDN . Preluat la 16 august 2017. Arhivat din original la 28 august 2017.
  27. WebGL considerat dăunător . Microsoft (16 iunie 2011). Consultat la 16 iunie 2011. Arhivat din original la 12 aprilie 2012.
  28. Mozilla respinge critica Microsoft la adresa WebGL . The Inquirer (20 iunie 2011). Consultat la 29 iunie 2011. Arhivat din original la 12 aprilie 2012.
  29. 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.
  30. 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.
  31. OneGeek/WebGLU GitHub . Consultat la 15 martie 2013. Arhivat din original pe 16 martie 2013.
  32. Benjamin DeLillo. Prima lansare WebGL . Bjatr.blogspot.com (2 octombrie 2009). Preluat la 14 mai 2011. Arhivat din original la 12 aprilie 2012.
  33. CopperLicht - JavaScript 3D Engine utilizând WebGL . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013.
  34. gwt-g3d - Bibliotecă 3D pentru GWT - Google Project Hosting . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013.
  35. OSG.JS de cedricpinson . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013.
  36. cjcliffe/CubicVR.js GitHub . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013.
  37. Site oficial Blend4Web - Despre proiect . Blend4web.com. Data accesului: 3 iulie 2015. Arhivat din original la 1 iulie 2015.
  38. Verge3D . Soft8Soft. Preluat la 14 iunie 2018. Arhivat din original la 14 iunie 2018.
  39. angleproject - ANGLE: Almost Native Graphics Layer Engine - Google Project Hosting . Consultat la 14 martie 2013. Arhivat din original pe 16 martie 2013.

Link -uri