Care sunt diferitele tipuri de biblioteci OpenGL®?

Există mai multe tipuri de biblioteci Open Graphics Library® (OpenGL®) care pot fi instalate și utilizate pe sisteme informatice, iar cele mai multe dintre ele servesc nevoilor specifice ale programatorilor de grafică. Primul tip include bibliotecile de bază OpenGL® de bază, care conțin aproximativ 120 de comenzi pentru a permite accesul la hardware-ul grafic, deși aceste biblioteci OpenGL® pot fi împărțite în continuare în funcție de platforma pe care sunt destinate să funcționeze. Au fost create multe biblioteci de utilitate – dintre care unele sunt aproape întotdeauna folosite de programatorii OpenGL® – pentru a ajuta la gruparea funcțiilor de nivel foarte scăzut în apeluri unice de nivel superior pentru comoditate și claritate a codului. Există ocazional biblioteci OpenGL® care sunt dezvoltate de producătorii specifici de hardware grafic pentru a ajuta la creșterea performanței sau pentru a susține efectele speciale pe care hardware-ul le realizează nativ. Există, de asemenea, biblioteci la nivel foarte înalt create de utilizatori care au apărut din proiecte mai mari și sunt distribuite pentru a ajuta la dezvoltarea rapidă a aplicațiilor.

Bibliotecile de bază OpenGL® sunt necesare pentru dezvoltarea și implementarea programelor care utilizează OpenGL® pentru a reda grafica. Acestea permit programelor să folosească o interfață de programare abstractă (API) comună pentru a apela funcțiile din interiorul bibliotecii OpenGL®, după care biblioteca va interacționa direct cu driverele hardware. Driverele accesează apoi hardware-ul direct, provocând o creștere a vitezei de afișare. Toate celelalte biblioteci OpenGL® se bazează pe bibliotecile de bază.

Multe dintre comenzile utilizate de bibliotecile de bază au un nivel destul de scăzut, așa că au fost create o serie de biblioteci de utilitate, numite și truse de instrumente. Acestea grupează comenzile de bază în rutine mai funcționale care elimină o mare parte din repetarea utilizării OpenGL®. Un exemplu de utilizare a unei biblioteci de utilitate implică desenarea unui cerc, care ar putea avea mai multe linii de cod doar cu OpenGL® de bază, dar poate fi condensat într-o rutină optimizată într-o bibliotecă de utilitate, cum ar fi OpenGL® Utility Toolkit (GLUT). Ocazional, unele biblioteci au același nume, dar sunt portate pentru utilizare pe sisteme de operare diferite sau pentru legături de limbi diferite și pot conține funcționalități diferite.

Unele biblioteci OpenGL® sunt de fapt produse de producători de hardware. Bibliotecile extinse pot fi accesate prin mecanismul de extensii OpenGL® sau direct cu API-urile furnizate de producători. Aceste tipuri de biblioteci nu sunt întotdeauna utilizate pe scară largă din cauza platformelor țintă înguste și pentru că extensiile foarte populare sunt adesea pliate în bibliotecile de bază.

Există, de asemenea, biblioteci OpenGL® care sunt create de programatori și utilizatori care nu sunt asociate cu bibliotecile de bază sau cu orice hardware. Aceste biblioteci sunt adesea lansate, astfel încât alți programatori care creează anumite tipuri de aplicații științifice, matematice sau de divertisment pot beneficia de un cadru pe care să se bazeze. Există, de asemenea, biblioteci derivate din comunitate care adaugă interactivitate și logica programelor celorlalte biblioteci într-un mod practic.