Koje su različite vrste OpenGL® knjižnica?

Postoji nekoliko vrsta knjižnica Open Graphics Library® (OpenGL®) koje se mogu instalirati i koristiti na računalnim sustavima, a većina njih služi specifičnim potrebama grafičkih programera. Prvi tip uključuje osnovne, jezgrene OpenGL® knjižnice, koje sadrže otprilike 120 naredbi za omogućavanje pristupa grafičkom hardveru, iako se te OpenGL® knjižnice mogu dalje podijeliti ovisno o platformi na kojoj su namijenjene za rad. Stvorene su mnoge uslužne knjižnice — od kojih neke gotovo uvijek koriste OpenGL® programeri — kako bi se pomoglo grupirati funkcije vrlo niske razine u pojedinačne pozive više razine radi praktičnosti i jasnoće koda. Povremeno postoje OpenGL® biblioteke koje su razvili određeni proizvođači grafičkog hardvera kako bi pomogli u poboljšanju performansi ili podržali posebne efekte koje hardver izvodi izvorno. Tu su i knjižnice koje su kreirali korisnici na vrlo visokoj razini koje su proizašle iz većih projekata i distribuirane kako bi pomogle u brzom razvoju aplikacija.

Jezgrene knjižnice OpenGL® potrebne su za razvoj i implementaciju programa koji koriste OpenGL® za renderiranje grafike. Oni omogućuju programima korištenje zajedničkog apstraktnog programskog sučelja (API) za pozivanje funkcija unutar OpenGL® biblioteke, nakon čega će knjižnica izravno komunicirati s hardverskim upravljačkim programima. Upravljački programi tada izravno pristupaju hardveru, što uzrokuje povećanje brzine prikaza. Sve ostale OpenGL® knjižnice temelje se na osnovnim knjižnicama.

Mnoge naredbe koje koriste osnovne knjižnice prilično su niske razine, pa je stvoren niz pomoćnih knjižnica, koje se također nazivaju setovi alata. One spajaju osnovne naredbe u funkcionalnije rutine koje oduzimaju velik dio ponavljanja korištenja OpenGL®-a. Jedan primjer korištenja knjižnice pomoćnih programa uključuje crtanje kruga, koji bi mogao potrajati nekoliko redaka koda samo s jezgrom OpenGL®-a, ali se može sažeti u jednu optimiziranu rutinu unutar knjižnice pomoćnih programa kao što je OpenGL® Utility Toolkit (GLUT). Povremeno, neke knjižnice dijele isto ime, ali se prenose za korištenje na različitim operativnim sustavima ili za različite jezične veze, a mogu sadržavati različite funkcionalnosti.

Neke OpenGL® biblioteke zapravo proizvode proizvođači hardvera. Proširenim knjižnicama može se pristupiti putem mehanizma proširenja OpenGL® ili izravno putem API-ja koje osiguravaju proizvođači. Ove vrste knjižnica nisu uvijek široko rasprostranjene zbog svojih uskih ciljnih platformi i zato što su vrlo popularna proširenja često presavijena u osnovne knjižnice.

Također postoje OpenGL® knjižnice koje stvaraju programeri i korisnici koji nisu povezani s osnovnim knjižnicama ili bilo kojim hardverom. Te se knjižnice često izdaju tako da drugi programeri koji stvaraju određene vrste znanstvenih, matematičkih ili zabavnih aplikacija mogu imati koristi od okvira na kojem će se graditi. Tu su i knjižnice koje proizlaze iz zajednice koje na praktičan način dodaju interaktivnost i programsku logiku drugim knjižnicama.