WebGL direct oferă control deplin asupra hardware-ului grafic. Au existat multe versiuni de OpenGL. WebGL 1.0 se bazează pe OpenGL ES 2.0, o versiune concepută pentru utilizarea pe sisteme încorporate, cum ar fi telefoanele inteligente și tabletele. OpenGL ES 1.0 a fost foarte asemănător cu OpenGL 1.1, pe care l-am studiat în Capitolul 3 și Capitolul 4. Cu toate acestea, versiunea 2.0 a OpenGL ES a introdus schimbări majore. Este de fapt un API mai mic, mai simplu, care pune mai multă responsabilitate asupra programatorului. De exemplu, funcțiile pentru lucrul cu transformări, cum ar fi glRotatef și glPushMatrix, au fost eliminate din API, făcându-l pe programator responsabil pentru urmărirea transformărilor. WebGL nu folosește glBegin/glEnd pentru a genera geometrie și nu folosește funcții precum glColor* sau glNormal* pentru a specifica atributele vârfurilor. Cu toate acestea, se va dovedi că o mare parte din ceea ce ați învățat în capitolele anterioare se va transfera pe WebGL.
Orice program WebGL are două laturi. O parte a programului este scrisă în JavaScript, limbajul de programare pentru web. A doua parte este scrisă în GLSL, un limbaj pentru scrierea programelor „shader” care rulează pe GPU.
Pipeline programabilă
OpenGL 1.1 a folosit o pipeline cu funcție fixă pentru procesarea grafică. Datele sunt furnizate de un program și trec printr-o serie de etape de procesare care în cele din urmă produc culorile pixelilor văzute în imaginea finală. Programul poate activa și dezactiva unii dintre pașii procesului, cum ar fi testul de adâncime și calculele de iluminare. Dar nu există nicio modalitate de a schimba ceea ce se întâmplă în fiecare etapă. Funcționalitatea este fixă.
OpenGL 2.0 a introdus o pipeline programabilă. A devenit posibil ca programatorul să înlocuiască anumite etape din pipeline cu propriile programe. Acest lucru oferă programatorului control complet asupra a ceea ce se întâmplă în acea etapă. În OpenGL 2.0, programabilitatea era opțională; pipeline completă cu funcții fixe era încă disponibilă pentru programele care nu aveau nevoie de flexibilitatea programabilității. WebGL folosește o pipeline programabilă și este obligatorie. Nu există nicio modalitate de a utiliza WebGL fără a scrie programe pentru a implementa o parte a pipeline de procesare grafică.
Programele care sunt scrise ca parte a pipeline se numesc shadere. Pentru WebGL, trebuie să scrieți un shader vertex, care este numit o dată pentru fiecare vârf dintr-o primitivă, și un shader fragment, care este numit o dată pentru fiecare pixel din primitiv. Pe lângă aceste două etape programabile, pipeline WebGL conține și mai multe etape din pipeline originală cu funcție fixă. De exemplu, testul de adâncime este încă parte din funcționalitatea fixă și poate fi activat sau dezactivat în WebGL în același mod ca în OpenGL 1.1.
Sursa: David J. Eck, Introduction to Computer Graphics (Eck), LibreTexts, licența CC BY-NC-SA 4.0. Traducere și adaptare Nicolae Sfetcu
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.



Lasă un răspuns