Što je WebGL?

WebGL je besplatan višeplatformski web standard za API trodimenzionalne grafike niske razine, a temeljen je na OpenGL-u ES 2.0.

Prikazuje se unutar HTML5 Canvas elementa kao DOM (Document Object Model) objekt. Temelji se na shaderima koristeći GLSL (OpenGL Shading Language) s konstruktima semantički sličnim onima u OpenGL ES 2.0

WebGL ima specifikaciju koja je vrlo slična specifikaciji OpenGL ES 2.0, s nekima razlikama bitnim za programski jezik JavaScript, koji se koristi za programiranje kod WebGL-a.

WebGL zapravo donosi 3D grafiku na web s time da nije potrebno imati instaliran neki plugin za to, već je grafika implementirana u samom web pregledniku. Gotovo svi vodeći web preglednici omogućuju WebGL i sudjeluju u razvoju istog.

WebGL praktički proizlazi iz OpenGL-a te omogućuje slične funkcionalnosti renderiranja, no u HTML kontekstu.

Ključne prednosti

Iz razloga što je baziran na OpenGL-u, a također je integriran u gotovo sve web preglednike, pruža veći broj prednosti, od koji su neke:

  • API baziran na poznatom i široko prihvaćenom 3D grafičkom standardu
  • cross-browser i cross-platform
  • Integracija s HTML sadržajem, interakcija s drugim HTML elementima, kao i standardno HTML upravljanje događajima
  • Hardware-accelerated 3D grafika u web pregledniku

Nedostaci

No, s obzirom da je to API niske razine, potrebno je ručno programiranje shadera, a naučili smo se na to da OpenGL za nas sam radi upravo to.

Uz ručno programiranje shadera potrebno je i napraviti određene matrične tranformacije koje reprezentiraju neke transformacije i animacije.

Pregledavanje programskog koda primjera

Što se primjera u ovom radu tiče, svaki primjer sadrži izvorni kod u zasebnoj JavaScript datoteci, tako primjerice Primjer 1 svoj programski kod ima u datoteci primjer01.js.

OpenGL

Grafički 3D standard koji se sastoji od mnoštva funkcija za kreiranje kompleksnih 3D scena s osnovnim geometrijskim elementima.

GLSL

OpenGL Shading Language. Programski jezik temeljen na sintaksi C programskog jezika, a napravljen je zbog toga da developerima ponudi veću kontrolu nad grafičkim cjevovodima.

HTML5 Canvas

Element HTML-a za crtanje grafike koristeći skriptiranje, i to najčešće JavaScript. Canvas element zapravo predstavlja "container" za grafiku, a skriptni programski jezik se koristi za crtanje.