Jakie są rodzaje sterowników OpenGL®?

OpenGL®, język otwartej grafiki, to standard open source i abstrakcyjny interfejs programowania (API) do programowania grafiki trójwymiarowej (3D) w programach komputerowych. Aby interfejs API działał po skompilowaniu i uruchomieniu, komputer wykonujący program musi mieć zainstalowane prawidłowe sterowniki OpenGL®. Istnieje wiele typów sterowników, ale wszystkie służą jednemu celowi działania jako interfejs między kodem napisanym przy użyciu interfejsu API OpenGL® a sprzętem renderującym grafikę. Sterowniki OpenGL® nie są opracowywane ani wydawane przez osoby, które utrzymują interfejs API OpenGL®; zamiast tego są wydawane przez producentów sprzętu wewnątrz komputera. W rzeczywistości jedyną różnicą między różnymi typami sterowników OpenGL® jest kod sprzętu, z którym się on łączy.

Standard dla OpenGL® ostatecznie stał się zunifikowaną, prostą platformą i w większości niezależną od języka implementacją podstawowych funkcji grafiki 3D, która może być używana jako bardzo niskopoziomowy sposób łączenia się ze sprzętem. Posunął się w tym kierunku dzięki rosnącej liczbie zastrzeżonych interfejsów API 3D, z których każdy miał inną filozofię projektowania i sygnatury funkcji. API zostało zaadoptowane zarówno przez programistów, jak i producentów sprzętu, ponieważ było to oprogramowanie typu open source i nie wymagało zakupu licencji na użytkowanie, tak jak robiły to inne systemy operacyjne lub interfejsy API specyficzne dla języka.

Podstawowe sterowniki OpenGL® są produkowane przez producentów kart graficznych, kart rozszerzeń i akceleratorów graficznych. Oznacza to, że każdy sterownik jest napisany zgodnie z dokładnymi i dokładnymi specyfikacjami sprzętu docelowego i że sprzęt może być produkowany z optymalizacją ukierunkowaną na sterownik w celu zwiększenia wydajności. Powszechna akceptacja interfejsu API i stosunkowo niskie koszty ogólne, które się z nim wiążą, sprawiły, że jest to cenny wybór dla wysokowydajnych aplikacji graficznych, a to z kolei skłoniło producentów sprzętu do dążenia do optymalizacji niskiego poziomu w celu uzupełnienia tej wydajności za pomocą ich kart .

W odpowiedzi na wysiłki producentów sprzętu, twórcy OpenGL® udostępnili mechanizm, który pozwalałby sterownikom na implementację niestandardowych operacji, które można by zakodować w sterownikach OpenGL®. Te specjalne cechy różnych elementów sprzętowych mogą być zawarte w API OpenGL®. Umożliwiłoby to producentowi posiadanie karty graficznej obsługującej funkcje przyspieszane sprzętowo, takie jak algorytmy symulacji tkaniny, oraz umożliwiłoby interfejsowi API OpenGL® wywoływanie i łączenie się z tą funkcją. Rozszerzenia te zapewniły mechanizm, dzięki któremu sterowniki i interfejs API OpenGL® mogły stać się płynnym, rozszerzalnym mechanizmem programowania grafiki 3D.

Od 2011 roku sterowniki OpenGL® są indywidualne dla każdego sprzętu obsługującego ten standard. Nie może być jednego, zunifikowanego sterownika, ponieważ każdy element sprzętu jest wyraźnie inny i czasami wykorzystuje zastrzeżone informacje. Oznacza to, że chociaż technicznie istnieje wiele typów sterowników OpenGL® — po jednym dla każdej karty sprzętowej — wszystkie pełnią dokładnie tę samą funkcję z perspektywy programowania.