WebGL (Web Graphics Library) adalah API JavaScript untuk rendering grafis 3D dan grafis 2D secara interaktif pada browser web yang kompatibel tanpa menggunakan plug-in. WebGL terintegrasi sepenuhnya ke semua browser web standar yang memungkinkan penggunaan GPU untuk perhitungan fisika, pengolahan gambar dan efek-efek sebagai bagian dari halaman kanvas web. Elemen WebGL dapat dicampur dengan elemen HTML lain dan dikombinasikan dengan bagian lain dari halaman atau halaman latar belakang. Program WebGL terdiri dari kode kontrol yang ditulis dalam JavaScript dan kode shader yang dieksekusi pada sebuah komputer Graphics Processing Unit (GPU). WebGL dirancang dan dikelola oleh organisasi non-profit Khronos Group.

Rancangan

WebGL didasarkan pada OpenGL ES 2.0 dan menyediakan API untuk grafis 3D [5] Untuk alasan keamanan, dibutuhkan GL_ARB_robustness (OpenGL 3.x) atau GL_EXT_robustness (OpenGL ES). Semua itu menggunakan elemen kanvas HTML5 dan diakses dengan menggunakan antar muka Document Object Model. Manajemen memori otomatis disediakan sebagai bagian dari bahasa JavaScript.

Sejarah

WebGL tumbuh dari eksperimen kanvas 3D dimulai oleh Vladimir Vukićević di Mozilla. Vukićević pertama menunjukkan prototipe 3D kanvas pada tahun 2006. Pada akhir tahun 2007, baik Mozilla dan Opera telah membuat implementasi mereka sendiri.

Pada awal 2009, konsorsium teknologi non-profit Khronos Group memulai Kelompok Kerja WebGL, dengan partisipasi awal dari Apple, Google, Mozilla, Opera, dan lain-lain. Versi 1.0 dari spesifikasi WebGL dirilis Maret 2011. Pada Maret 2012, kelompok kerja tersebut dipimpin oleh Ken Russell.

Aplikasi awal Terkemuka WebGL termasuk Google Maps dan Zygote Body.

Implementasi

Browser Desktop

  • Mozilla Firefox - WebGL telah didukung semua platform yang memiliki kemampuan kartu grafis dengan driver terperbaru sejak versi 4.0. Mozilla Firefox 8.0 dan versi yang lebih baru menggunakan Cross-origin resource sharing (CORS) untuk mengontrol semua tekstur lintas domain WebGL.
  • Google Chrome - WebGL telah didukung semua platform yang memiliki kemampuan kartu grafis dengan driver terperbaru sejak versi 9. Google Chrome 13.0 dan versi yang lebih baru menggunakan Cross-origin resource sharing (CORS) untuk mengontrol semua tekstur lintas domain WebGL
  • Safari - Safari 6.0 dan versi yang lebih baru yang diinstal pada OS X Mountain Lion, Mac OS X Lion dan Safari 5.1 pada Mac OS X Snow Leopard mendukung diimplementasikan WebGL, meskipun secara default dinonaktifkan
  • Opera - WebGL telah diimplementasikan di Opera 11 dan 12, meskipun dinonaktifkan secara default
  • Internet Explorer - Sebuah versi preview WebGL disertakan dalam Windows 8.1 Preview dengan Internet Explorer 11. Dukungan WebGL dapat ditambahkan secara manual ke Internet Explorer dengan menggunakan plugin pihak ketiga seperti IEWebGL.

Browser Mobile

  • Browser Android - Pada dasarnya tidak didukung, tetapi Sony Ericsson Xperia pada beberapa smartphone Android memiliki kemampuan WebGL setelah upgrade firmware. Smartphone Samsung juga telah mendukung WebGL (diverifikasi pada Galaxy SII (4.1.2) dan Galaxy Note 8.0 (4.2))
  • BlackBerry PlayBook - WebGL tersedia melalui WebWorks dan browser PlayBook OS 2.00
  • Firefox untuk mobile - WebGL yang tersedia untuk perangkat Android sejak Firefox 4.
  • Firefox OS
  • Google Chrome - WebGL yang tersedia untuk perangkat Android sejak Google Chrome 25
  • Maemo - Pada Nokia N900, WebGL tersedia di peramban MicroB dari update firmware PR1.2 dan seterusnya
  • Opera Mobile - Opera Mobile 12 mendukung WebGL (hanya pada Android)
  • Tizen 1.0
  • Ubuntu Touch
  • WebOS

Bagaimanapun juga ketersediaan WebGL tergantung pada faktor-faktor lain seperti GPU pendukungnya. Untuk memeriksa apakah perangkat yang ditentukan mendukung WebGL, siapa pun bisa pergi ke laman: Browser Anda mendukung WebGL.

Engine 3D JavaScript

WebGL adalah teknologi yang dirancang untuk bekerja secara langsung dengan GPU, hal ini sulit untuk menulis kode dibandingkan dengan standar web yang lebih mudah diakses lainnya, itu sebabnya banyak pustaka javascript telah muncul untuk memecahkan masalah ini diantaranya:

C3DL, CopperLicht, Curve3D, CubicVR, EnergizeGL, GammaJS, GLGE, GTW, JS3D, Kuda, O3D, OSG.JS, PhiloGL, Pre3d, SceneJS, SpiderGL, TDL, Three.js, X3DOM.

Diantara pustaka di atas, per Juni 2013 Three.js adalah yang paling populer dalam hal jumlah pengguna. Pustaka ini ringan dan memiliki tingkat kompleksitas rendah dibandingkan dengan spesifikasi WebGL asli.

Pembuatan konten

Adegan WebGL dapat dibuat tanpa pemrograman menggunakan alat pembuatan konten seperti Blender, CopperCube atau Autodesk Maya. Adegan tersebut kemudian diekspor ke WebGL menggunakan plug-in seperti Inka3D. Ada juga layanan untuk mempublikasikan konten 3D interaktif secara online menggunakan WebGL seperti p3d.in dan Sketchfab. Beberapa permainan dan simulasi alat authoring menggabungkan pembuatan model, pembuatan adegan dan pemrograman. AgentCubes adalah alat authoring perancang permainan 3D ditujukan untuk pengguna akhir tanpa pemodelan dan latar belakang pemrograman. Ini menggabungkan pembuatan model dan drag dan drop program untuk membuat permainan berbasis WebGL.

WebGL tertanam dalam sebuah chip

Seperti WebGL terutama dirancang untuk berjalan pada sisi klien dengan operasi render berat yang dilakukan oleh pengguna komputer GPU, kemampuan ini juga relatif mudah dimasukkan ke dalam chip misalnya mikrokontroler PIC, atau lainnya dengan penerapan TCP / IP stack, sehingga mikrokontroler akan bertindak sebagai server web dan semua tugas-tugas lain akan dilakukan pada sisi client, yang dapat digunakan untuk mengembangkan memantau tertanam dan sistem kontrol untuk berbagai aplikasi dan banyak tujuan lain.