Documente Academic
Documente Profesional
Documente Cultură
OpenGL specifică exact care ar trebui să fie rezultatul/ieșirea fiecărei funcții și cum ar trebui
să se comporte aceasta. Depinde apoi de dezvoltatorii care implementează această specificație
să vină cu o soluție privind modul în care ar trebui să funcționeze. Deoarece specificația
OpenGL nu ne oferă detalii de implementare, versiunile OpenGL dezvoltate efectiv pot avea
implementări diferite, atâta timp cât rezultatele lor sunt în conformitate cu specificația (și,
prin urmare, sunt identice pentru utilizator).
Persoanele care dezvoltă bibliotecile OpenGL actuale sunt, de obicei, producătorii de plăci
grafice. Fiecare placă grafică pe care o cumpărăm suportă versiuni specifice de OpenGL,
adică versiunile de OpenGL dezvoltate special pentru acea placă (sau serie de plăci). În cazul
în care se utilizează un sistem Apple, biblioteca OpenGL este întreținută chiar de ei, iar sub
Linux există o combinație între versiunile furnizorilor de soluții grafice și adaptările acestor
biblioteci realizate de pasionați. Acest lucru înseamnă, de asemenea, că ori de câte ori
OpenGL prezintă un comportament ciudat pe care nu ar trebui să îl aibă, cel mai probabil este
vina producătorilor de plăci grafice (sau a celui care a dezvoltat/întreținut biblioteca).
Khronos găzduiește în mod public toate documentele de specificații pentru toate versiunile
OpenGL.
OpenGL este în sine o mare mașină de stare: o colecție de variabile care definesc modul în
care OpenGL ar trebui să funcționeze în prezent. Starea OpenGL este denumită în mod
obișnuit contextul OpenGL. Atunci când utilizăm OpenGL, deseori îi schimbăm starea prin
setarea unor opțiuni, manipularea unor buffere și apoi redarea folosind contextul curent.
Ori de câte ori îi spunem lui OpenGL că acum dorim să desenăm linii în loc de triunghiuri, de
exemplu, schimbăm starea OpenGL prin modificarea unei variabile de context care stabilește
modul în care OpenGL ar trebui să deseneze. De îndată ce schimbăm contextul spunându-i
lui OpenGL că ar trebui să deseneze linii, următoarele comenzi de desen vor desena acum
linii în loc de triunghiuri.
Atunci când lucrăm în OpenGL, vom întâlni mai multe funcții de schimbare a stării care
schimbă contextul și mai multe funcții de utilizare a stării care efectuează anumite operații pe
baza stării curente a OpenGL. Atâta timp cât țineți cont de faptul că OpenGL este practic o
mare mașină de stare, majoritatea funcționalităților sale vor avea mai mult sens.
OpenGL este cel mai larg adoptat API grafic 2D și 3D din industrie, aducând mii de aplicații
pe o mare varietate de platforme.
Succesorul lui OpenGL - Vulkan
Vulkan, anunțat pentru prima dată de Khronos Group în cadrul Game Developers Conference
din 2015, este o interfață de programare a aplicațiilor cross-platform care îmbunătățește tot
ceea ce pot face plăcile grafice actuale.
Fiind un API cu costuri reduse, Vulkan reprezintă următorul pas înainte pentru API-ul Mantle
al AMD, care, la rândul său, a fost un succesor spiritual al interfeței OpenGL. Deși este
construit pe Mantle, la care AMD a contribuit, Grupul Khronos este în mare parte responsabil
pentru dezvoltarea Vulkan.
AMD a introdus Mantle în 2013 și, odată cu acesta, a adus schimbări semnificative la
platforma OpenGL. Mantle a contribuit la unificarea piețelor de console și PC-uri sub o
arhitectură grafică comună. Co-creat împreună cu DICE de la EA, studioul din spatele
Battlefield, Mantle a adaptat avantajele multi-core ale consolelor și le-a adus pe hardware-ul
mai robust al PC-ului.
Potrivit lui Robert Hallock, șeful departamentului de marketing tehnic global al AMD, AMD
a contribuit cu platforma Mantle la Khronos "pentru a demara procesul de trecere a familiei
OpenGL la o abordare cu costuri reduse" — "La vremea sa, Mantle a fost API-ul grafic
pentru PC cel mai rapid adoptat de la DirectX 9 încoace", a declarat Hallock. Vulkan preia
această bază și se bazează pe ea, realizând o platformă open-source de nouă generație pentru
a duce jocurile mai departe decât a fost vreodată. Potrivit lui Antal Tungler, Senior Manager
of Public Relations la AMD, Vulkan aduce "aproximativ aceleași beneficii pe care le aduce
DirectX 12" față de predecesorul său.
Ambele oferă dezvoltatorilor mai mult control decât predecesorii. Ambele oferă îmbunătățiri
măsurabile în ceea ce privește eficiența. Dar aspectul cross-platform al Vulkan înseamnă că
jocurile vor rula pe Windows 7, 8 sau 10 și Linux, cu ceea ce Hallock numește "în esență
aceeași bază de cod".