From Wikipedia, the free encyclopedia
WebGL (Veb Grafik kutubxonasi) — plaginlardan foydalanmasdan har qanday veb-brauzerda interaktiv 2D va 3D grafiklarni koʻrsatish uchun JavaScript API.[2] WebGL boshqa veb-standartlar bilan toʻliq integratsiyalashgan boʻlib, fizika va tasvirni qayta ishlash va veb-sahifalar sifatida effektlardan GPU tomonidan tezlashtirilgan foydalanish imkonini beradi. WebGL elementlari boshqa HTML elementlari bilan aralashtirilishi va sahifaning boshqa qismlari yoki sahifa foni bilan birlashtirilishi mumkin.[3]
Turi | API, web API, dasturiy ta'minot va programmalash tili[1] |
---|---|
Qachon asos solingan | 2011-yil 3-mart |
Vebsayti | https://www.khronos.org/webgl/ |
Til(lar)i | Ingliz tili |
WebGL dasturlari JavaScriptda yozilgan va C yoki C++ ga oʻxshash OpenGL ES Shading Language (GLSL ES) tilida yozilgan va kompyuterning grafik ishlov berish blokida (GPU) bajariladigan kodidan iborat. WebGL notijorat Khronos Group tomonidan ishlab chiqilgan va yuritiladi.
2022-yil 9-fevralda Khronos Group barcha asosiy brauzerlar uchun WebGL 2.0 foydalanishini eʼlon qildi.[4]
WebGL 1.0 OpenGL ES 2.0 ga asoslangan va 3D grafika uchun API taqdim etadi. U HTML5 kanvas elementidan foydalanadi va unga Document Object Model (DOM) interfeyslari yordamida kirish mumkin.
WebGL 2.0 OpenGL ES 3.0 ga asoslangan va WebGL 1.0 ning ko‘plab kengaytmalari mavjudligini kafolatlaydi va yangi API’larni taqdim etadi. Avtomatik xotira boshqaruvi JavaScript tomonidan bilvosita taqdim etiladi.
OpenGL ES 2.0 kabi WebGL ham OpenGL 1.0 da kiritilgan va OpenGL 3.0 da eskirgan funksiyali API larga ega emas. Agar kerak boʻlsa, ushbu funksiya shader kodini taqdim etish va JavaScriptda maʼlumotlar ulanishlarini sozlash orqali oxirgi dasturchi tomonidan amalga oshirilishi kerak.
WebGLdagi shaderlar toʻgʻridan-toʻgʻri GLSLda ifodalanadi va WebGL APIga matnli satrlar sifatida uzatiladi. WebGL ilovasi ushbu shader koʻrsatmalarini GPU kodiga kompilyatsiya qiladi. Ushbu kod API orqali yuborilgan har bir tepalik uchun va ekranga rasterlangan har bir piksel uchun bajariladi.
WebGL Mozillaʼda Vladimir Vukićević tomonidan boshlangan Canvas 3D tajribalaridan kelib chiqadi. Vukićević birinchi marta 2006-yilda Canvas 3D prototipini namoyish qilgan. 2007-yil oxiriga kelib, Mozilla[5] va Opera[6] ham oʻzlarining alohida dasturlarini yaratdilar.
2009-yil boshida Khronos Group notijorat texnologiya konsorsiumi Apple, Google, Mozilla, Opera va boshqalar ishtirokida WebGL ishchi guruhini boshladi. WebGL spetsifikatsiyasining 1.0 versiyasi 2011-yil mart oyida chiqarilgan. 2012-yil mart oyidan boshlab ishchi guruh rahbari Ken Rassell hisoblanadi.
WebGL ning dastlabki ilovalariga Zygote Body kiradi.[7][8] 2012-yil noyabr oyida Autodesk oʻz ilovalarining koʻpchiligini mahalliy WebGL mijozlarida ishlaydigan tizimga oʻtkazganligini eʼlon qildi. Bu dasturlarga Fusion 360 va AutoCAD 360 kiradi.[9] WebGL 2 spetsifikatsiyasini ishlab chiqish 2013-yilda boshlangan va 2017-yil yanvarida yakunlangan.[10] Ushbu spetsifikatsiya OpenGL ES 3.0 ga asoslangan.[11] Birinchi ilovalar Firefox 51, Chrome 56 va Opera 43 da mavjud edi.[12]
Native Graphics Layer Engine (ANGLE) WebGL 1.0 (ES 3.0 ga chambarchas mos keladigan 2.0) va OpenGL ES 2.0 va 3.0 standartlarini amalga oshiradigan ochiq kodli grafik mexanizmidir. Bu Windows platformalarida Google Chrome va Mozilla Firefox uchun ishlatish imkonsiz boʻlib, WebGL va OpenGL chaqiruvlarini mavjud platformaga xos API’larga tarjima qilish orqali ishlaydi. ANGLE hozirda OpenGL ES 2.0 va 3.0 dan ish stoli OpenGL, OpenGL ES, Direct3D 9 va Direct3D 11 API lariga kirish imkonini beradi.[13] ″(Google) Chrome Windows tizimidagi barcha grafik tasvirlar, jumladan Canvas2D mukammallashtirilgan ilovasi va Native Client sinov muhiti uchun ANGLEdan foydalanadi.″[14]
WebGL zamonaviy brauzerlar tomonidan keng qoʻllab-quvvatlanadi. Biroq, uning mavjudligi uni qoʻllab-quvvatlaydigan GPU kabi boshqa omillarga bogʻliq. Rasmiy WebGL veb-sayti oddiy test rejimini taqdim etadi.[15] Batafsil maʼlumot (masalan, brauzer qaysi render qiluvchi dasturdan foydalanishi va qanday kengaytmalar mavjudligi) uchinchi tomon veb-saytlarida taqdim etiladi.[16][17]
Oʻz-oʻzidan kerakli 3D grafikalarni tezda ishlab chiqarishni taʼminlaydigan WebGL API ning past darajadagi turi odatda 3D grafikalarda narsalarni yaratish uchun foydalaniladigan toʻplamlarni yaratishga yordam berdi (masalan, shaderlar uchun koʻrish oʻzgarishlari, view frustum va boshqalar). Ommabop sanoat formatlarida sahna grafiklari va 3D obyektlarni yuklash kabi asosiy vazifalar qoʻshimcha funksiyalarni taʼminlash uchun kutubxonalar tomonidan (ularning baʼzilari boshqa tillardan JavaScriptga koʻchirilgan) mavhumlashtiriladi. Koʻpgina yuqori darajadagi xususiyatlarni taʼminlovchi kutubxonalarning toʻliq boʻlmagan roʻyxatiga A-Frame (VR), BabylonJS, PlayCanvas, three.js, OSG, JS va CopperLicht kiradi. X3D shuningdek, X3D va VRML kontentini WebGL da ishlaydigan qilish uchun X3DOM deb nomlangan loyihani yaratdi. 3D modeli HTML5 da <X3D>
XML tegida va interaktiv skript JavaScript va DOM dan foydalanadi. BS Content Studio va InstantReality X3D eksportchisi X3Dni HTML formatida eksport qilishi va WebGL orqali ishlashi mumkin.
Shuningdek, WebGL uchun 2D va 3D[50], jumladan Unreal Engine 4 va Unity uchun oʻyin mexanizmlari tez paydo boʻldi.[51] Stage3D /Flash asosidagi Away3D yuqori darajali kutubxonasi TypeScript orqali WebGL uchun portga ham ega.[52][53] Shaderlar uchun faqat vektor va matritsali matematik yordam dasturlarini taqdim etuvchi yengilroq yordamchi kutubxona bu sylvester.js.[54][55] U baʼzan glUtils.js deb nomlangan WebGL maxsus kengaytmasi bilan birgalikda ishlatiladi.[54][56]
Bundan tashqari, Cocos2d -x yoki Pixi.js kabi WebGL ustiga qurilgan baʼzi 2D kutubxonalar mavjud boʻlib, ular Flash dunyosida Stage3D orqali Starling Framework bilan sodir boʻlgan voqealarga oʻxshash harakatda ishlash sabablari tufayli shu tarzda amalga oshirilgan. WebGLga asoslangan 2D kutubxonalari WebGL mavjud boʻlmaganda HTML5ga qaytadi.
GPUga deyarli toʻgʻridan-toʻgʻri kirishni taʼminlash orqali renderlash muammosini bartaraf etish JavaScript dasturlarida ishlash cheklovlarini ham yuzaga keltirdi. Ulardan baʼzilari asm.js va WebAssembly tomonidan koʻrib chiqildi (xuddi shunday, CrossBridge kabi loyihalar tomonidan hal qilingan ActionScriptda Stage3Dning taʼsir koʻrsatish muammolari paydo boʻldi).
Boshqa har qanday grafik API kabi, WebGL sahnalari uchun kontent yaratish oddiy 3D kontent yaratish vositasidan foydalanishni va sahnani tomoshabin yoki yordamchi kutubxona tomonidan oʻqilishi mumkin boʻlgan formatga eksport qilishni talab qiladi. Buning uchun Blender, Autodesk Maya yoki SimLab Composer kabi ish stoli 3D mualliflik dasturidan foydalanish mumkin. Xususan, Blend4Web WebGL sahnasini toʻliq Blenderda yaratish va hatto mustaqil veb-sahifa sifatida ham bir marta bosish bilan brauzerga eksport qilish imkonini beradi.[57] CopperCube va WebGLga asoslangan Clara.io onlayn muharriri kabi WebGLga xos dasturlar ham mavjud. Sketchfab va Clara.io kabi onlayn platformalar foydalanuvchilarga oʻzlarining 3D modellarini toʻgʻridan-toʻgʻri yuklash va ularni joylashtirilgan WebGL koʻrish vositasi yordamida namoyish qilish imkonini beradi.
Bundan tashqari, Mozilla Foundation oʻzining Firefox brauzerida 27-versiyadan boshlab, vertex va fragment shaderlarini tahrirlash imkonini beruvchi oʻrnatilgan WebGL vositalarini joriy qildi.[58] Bir qator boshqa nosozliklarni tuzatish va profillash vositalari ham paydo boʻldi.[59]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.