Na początku zacznijmy od wyjaśnienia, czym są w ogóle biblioteki graficzne i do czego się je stosuje. Większość z Was zapewne słyszała nie tylko o DirectX, ale również o OpenGL. Obydwa programy to tak naprawdę moduły interfejsu programistycznego API. W API zawarte są wszystkie procedury, funkcje i interfejsy umożliwiające komunikację z systemem operacyjnym, bibliotekami lub sterownikami zewnętrznymi w stosunku do korzystającej z API aplikacji. Innymi słowy, zarówno DirectX, jak i OpenGL pośredniczą w komunikacji między np. grą a sterownikami karty graficznej zainstalowanej w komputerze i jednocześnie unifikują polecenia i procedury związane ze wszystkimi aspektami tworzenia grafiki 3D. Istnienie takich bibliotek jest bardzo ważne z punktu widzenia programistów, gdyż korzystają oni wyłącznie z poleceń zawartych w API i nie muszą pisać kilku niekompatybilnych wersji tej samej gry, powiedzmy na karty NVIDII, ATI czy układy firmy Intel lub S3.

Elementy składowe i moduły wykonawcze z potoku graficznego w DirectX 10; źródło: NVIDIA
Elementy składowe i moduły wykonawcze z potoku graficznego w DirectX 10; źródło: NVIDIA

Tak wiec z jednej strony bibliotek graficznych mamy aplikację, z drugiej zaś sterownik karty. Do zadań drivera należy między innymi tłumaczenie ciągu instrukcji i danych płynących z interfejsu API na wewnętrzny język poleceń zrozumiały dla układu graficznego 3D. Wynika z tego, że sterownik karty graficznej powinien być dostarczony bezpośrednio przez producenta układu graficznego, gdyż tylko on najlepiej zna poszczególne funkcje układu i dokładnie wie, jak realizowane jest przetwarzanie potoku graficznego (ciągu następujących po sobie zdarzeń prowadzących do wygenerowania sceny 3D) wewnątrz GPU.