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.
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.
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.
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.
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.
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.
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.