Jakie są różne typy bibliotek OpenGL®?

Istnieje kilka typów bibliotek Open Graphics Library® (OpenGL®), które można instalować i używać w systemach komputerowych, a większość z nich służy specyficznym potrzebom programistów graficznych. Pierwszy typ obejmuje podstawowe, podstawowe biblioteki OpenGL®, które zawierają około 120 poleceń umożliwiających dostęp do sprzętu graficznego, chociaż te biblioteki OpenGL® można dalej podzielić w zależności od platformy, na której mają działać. Utworzono wiele bibliotek narzędzi — z których niektóre są prawie zawsze używane przez programistów OpenGL® — aby pomóc grupować funkcje bardzo niskiego poziomu w pojedyncze wywołania wyższego poziomu dla wygody i przejrzystości kodu. Od czasu do czasu istnieją biblioteki OpenGL® opracowane przez konkretnych producentów sprzętu graficznego w celu zwiększenia wydajności lub obsługi efektów specjalnych, które sprzęt wykonuje natywnie. Istnieją również biblioteki bardzo wysokiego poziomu tworzone przez użytkowników, które powstały z większych projektów i są dystrybuowane, aby pomóc w szybkim rozwoju aplikacji.

Podstawowe biblioteki OpenGL® są niezbędne do opracowywania i wdrażania programów korzystających z OpenGL® do renderowania grafiki. Umożliwiają one programom używanie wspólnego abstrakcyjnego interfejsu programowania (API) do wywoływania funkcji w bibliotece OpenGL®, po czym biblioteka będzie współdziałać bezpośrednio ze sterownikami sprzętu. Następnie sterowniki uzyskują bezpośredni dostęp do sprzętu, powodując wzrost szybkości wyświetlania. Wszystkie inne biblioteki OpenGL® są oparte na bibliotekach podstawowych.

Wiele poleceń używanych przez podstawowe biblioteki jest dość niskiego poziomu, dlatego stworzono wiele bibliotek narzędzi, zwanych także zestawami narzędzi. Łączą one podstawowe polecenia w bardziej funkcjonalne procedury, które eliminują wiele powtórzeń podczas używania OpenGL®. Jednym z przykładów użycia biblioteki narzędziowej jest narysowanie okręgu, który może zająć kilka wierszy kodu z samym rdzeniem OpenGL®, ale można go skondensować w jednej zoptymalizowanej procedurze w bibliotece narzędziowej, takiej jak OpenGL® Utility Toolkit (GLUT). Czasami niektóre biblioteki mają tę samą nazwę, ale są przenoszone do użytku w różnych systemach operacyjnych lub dla różnych powiązań językowych i mogą zawierać różne funkcje.

Niektóre biblioteki OpenGL® są w rzeczywistości produkowane przez producentów sprzętu. Dostęp do rozszerzonych bibliotek można uzyskać za pośrednictwem mechanizmu rozszerzeń OpenGL® lub bezpośrednio za pomocą interfejsów API dostarczonych przez producentów. Tego typu biblioteki nie zawsze są szeroko stosowane ze względu na wąskie platformy docelowe i dlatego, że bardzo popularne rozszerzenia są często składane w podstawowe biblioteki.

Istnieją również biblioteki OpenGL® tworzone przez programistów i użytkowników, które nie są powiązane z podstawowymi bibliotekami ani żadnym sprzętem. Biblioteki te są często publikowane, aby inni programiści, którzy tworzą określone typy aplikacji naukowych, matematycznych lub rozrywkowych, mogli czerpać korzyści z posiadania struktury, na której można budować. Istnieją również biblioteki społecznościowe, które w praktyczny sposób dodają interaktywność i logikę programu do innych bibliotek.