Sunteți pe pagina 1din 3

Introducere la OpenGL

OpenGL este considerat în principal un API (o interfață de programare a aplicațiilor) care ne


oferă un set mare de funcții pe care le putem folosi pentru a manipula grafica și imaginile. Cu
toate acestea, OpenGL în sine nu este un API, ci doar o specificație, dezvoltată și întreținută
de Khronos Group.

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

Deoarece majoritatea implementărilor sunt realizate de producătorii de plăci grafice, ori de


câte ori există o eroare în implementare, aceasta se rezolvă de obicei prin actualizarea
driverelor plăcii video; aceste drivere includ cele mai noi versiuni de OpenGL pe care placa
video le suportă.

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.

Caracteristicile OpenGL: cartografierea texturilor și schimbarea texturii la apăsarea unei


taste, efect de filtru, efect de iluminare, implementarea diferitelor efecte cu ajutorul tastaturii,
efect de amestecare, mișcare într-o lume 3D (vedere cu camera), efect de ceață, sunet,
încărcare de obiecte cu ajutorul unui fișier, mișcare și acțiune cu ajutorul mouse-ului, camera
flare etc. Standardul OpenGL permite furnizorilor individuali să ofere funcționalități
suplimentare prin extensii, pe măsură ce sunt create noi tehnologii. Extensiile pot introduce
noi funcții și noi constante și pot relaxa sau elimina restricții asupra funcțiilor OpenGL
existente.

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.

Pe scurt, Vulkan este următorul pas în evoluția standardelor deschise popularizate de


OpenGL și este urmașul direct al API-ului Mantle de la AMD. Grafica arată mai bine, iar
jocurile rulează mai repede, atât pe DirectX 12, cât și pe Vulkan, însă, acesta are și avantaje
față de platforma Microsoft, dincolo de performanță.
Codul Vulkan este agnostic față de platformă, de la consolă, la PC, la smartphone, indiferent
de sistemul de operare. "De la un nivel foarte înalt", atât DirectX 12, cât și Vulkan "servesc
aceluiași scop", a declarat Hallock.

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

S-ar putea să vă placă și