Porady

Poznajmy technologie: Jak działa karta graficzna?

1 lipca 2015, Aktualizacja 20 marca 2018Lenovo

Codziennie wyświetlają obraz na naszych monitorach. Jak działa karta graficzna?

Kiedy gramy czy obrabiamy zdjęcia nie zastanawiamy się zwykle co tak naprawdę stoi za obrazem wyświetlanym na ekranie ani ile mocy obliczeniowej potrzeba na to, aby wygenerować wszystko to, co oglądamy. Za wszystko to odpowiadają karty graficzne – zgodnie z nazwą: układy odpowiedzialne w komputerach, tabletach i smartfonach za renderowanie grafiki i przekazywanie tych informacji do wyświetlacza.

Trochę historii

Nie zawsze było tak pięknie, jak to, co możemy obserwować dziś. Pierwsze karty graficzne pracowały wyłącznie w trybie tekstowym. Nie były w stanie wykonać nic więcej jak wyświetlanie na ekranie znaków alfabetu łacińskiego, które definiowane były za pomocą generatora znaków umieszczonego w pamięci karty. Standard MDA powalał na wyświetlenie 25 linii po 80 znaków w każdej z nich. Wraz z kolejną generacją kart i wprowadzonym w nich trybem graficznym na ekranach zagościły piksele. Znaczącym osiągnięciem była zademonstrowana w 1981 r. karta CGA (Color Graphics Adapter). Technologia IBM pozwalała na generowanie obrazu o maksymalnie 16 kolorach, o śmiesznie małej jak na dzisiejsze standardy rozdzielczości 160 x 100 pikseli lub 320 x 200 pikseli, z tym, że dla wyższej z nich jednocześnie można było korzystać z 4 barw. Następnie przyszła kolej na standard EGA (Enhanced Graphics Adapter) oraz ustanowiony w 1987 r. VGA (Video Graphics Array), który oferował maksymalnie 256 kolorów (dla rozdzielczości 320 x 200 pikseli) oraz rozdzielczość 640 x 400 pikseli.

Czas na trzy wymiary

Początek lat 90. to okres panowania takich kart graficznych jak S3 ViRGE, Ati Rage czy Matrox Mystique. Były to układy znacznie mocniejsze niż poprzednio i radziły sobie już z wyświetlaniem grafiki zarówno dwu- jak i trójwymiarowej. Pionierem był tu Matrox Millenium. Karty te wspomagały procesor, biorąc na siebie część obliczeń. Wciąż jednak zaawansowana grafika 3D była dla nich nie lada wyzwaniem. Na przykład w przypadku karty S3 ViRGE obrazowanie czysto programowe było szybsze niż sprzętowe.

Lekarstwem na tę bolączkę stały się akceleratory graficzne. Najważniejszym z nich była karta rozszerzeń 3dfx Voodoo. Pierwsze takie urządzenia nie potrafiły samodzielnie wyświetlać obrazu – wspomagały wyłącznie tworzenie grafiki przestrzennej. Do działania były im potrzebne standardowe karty zgodne z VGA.

Skok technologiczny dokonał się w roku 1997, kiedy to zadebiutowała pierwsza karta graficzna niemal w tej postaci, w jakiej dziś znamy te urządzenia. NVIDIA RIVA 128 (Real-time Interactive Video and Animation) była zarówno akceleratorem grafiki dwu- jak i trójwymiarowej. Przez jakiś czas te dwie technologie konkurowały z sobą a na rynek trafiały karty takie jak 3dfx Voodoo 2, NVIDIA RIVA TNT, S3 Savage 3D, RIVA TNT 2 i Voodoo3. Konkurencja pewnie trwałaby nadal gdyby nie pojawiło się pierwsze GPU z prawdziwego zdarzenia – GeForce.

Era GPU

Termin GPU (Graphics Processing Unit) pojawił się wraz z debiutem układu NVIDIA GeForce 256. „Ge” w nazwie pochodzi od „geometry” nawiązującej do zastosowanego tu procesora geometrii, potocznie zwanego jednostką transformacji i oświetlenia, który zdejmował z barków głównego procesora komputera konieczność wykonywania obliczeń dla transformacji i wspomnianego już oświetlenia obiektów. Taki podział sił skutkował nie tylko lepszą grafiką ale też zwiększeniem wydajności całego komputera. Z biegiem czasu karty graficzne stawały się coraz mocniejsze i brały na siebie coraz więcej obliczeń związanych z generowaniem obrazu. Potrafiły też coraz więcej bo producenci wyposażali je w coraz bardziej zaawansowane technologie sprzętowe pozwalające na uzyskanie np. cieni, odbić, rozmycia obiektów podczas ich poruszania się po ekranie czy pełnoekranowego wygładzania krawędzi.

Budowa i możliwości

Większość kart graficznych zbudowana jest według tego samego schematu. Składają się nań GPU czyli procesor graficzny generujący obraz, pamięć obrazu czyli bufor ramki (frame buffer) przechowujący informacje o obrazie, teksturach czy geometrii, pamięć ROM przechowująca zazwyczaj firmware karty oraz dwa interfejsy, z których pierwszy służy do komunikacji zresztą komputera a drugi do podłączenia wyświetlacza. W znacznej ilości kart graficznych stosowany jest także układ RAMDAC czyli konwerter analogowo-cyfrowy za pomocą którego generowany jest sygnał dla ekranów analogowych.

Budowa wszystkich współczesnych kart jest funkcjonalnie niemal identyczna. W zależności od zastosowania różnią się one jednak budową fizyczną. Kartę graficzną najczęściej kojarzymy z zewnętrzną kartą umieszczaną na płycie głównej komputera stacjonarnego. Na rynku występują także ich inne warianty takie jak GPU zintegrowane z procesorem czyli APU oraz mające już marginalne znaczenie i będące tak naprawdę etapem przejściowym pomiędzy typową kartą graficzną a APU – karty zintegrowane z płytą główną a dokładnie z jej mostkiem północnym.

Najważniejsze funkcje współczesnych akceleratorów grafiki to filtrowanie anizotropowe (metoda poprawy jakości tekstur, stosowana dla obiektów, które obserwujemy pod małymi kątami a znajdujących się w dużej odległości od kamery), mapowanie wypukłości (symuluje niewielkie wypukłości na powierzchni wyświetlanego obiektu, nadając mu większego realizmu), efekty cząsteczkowe (symuluje tak złożone zjawiska jak deszcz, śnieg, dym i płomienie poprzez wyświetlanie niewielkich obiektów podlegających interakcji z otoczeniem), pełnoekranowe wygładzanie krawędzi, HDR (renderowanie scen z wykorzystaniem zwiększonego zakresu tonalnego używane do symulowania natężenia światła niemożliwego do osiągnięcia na ekranie – np. oślepiania przez słońce), Pixel Shader i Vertex Shader (cieniowanie pikseli i cieniowanie wierzchołkowe, pozwalające na skomplikowane modelowanie oświetlenia uwzględniające m.in. refrakcję, odbicia lustrzane, oświetlenie HDR i mapy przemieszczeń) oraz PhysX (nadaje obiektom podstawowe własności fizyczne takie jak masa, prędkość oraz przyspieszenie, naśladując ich rzeczywiste zachowanie i zwiększając tym samym realizm wyświetlanej grafiki).

Jak powstaje obraz

Sercem karty graficznej jest GPU. Układ ten działa podobnie do procesora czyli do CPU, ale wyposażony jest w szereg wyspecjalizowanych funkcji – instrukcji, których CPU nie posiada albo których obsługę trzeba wcześniej zaprogramować.

Pomiędzy programem komputerowym a kartą graficzną pośredniczy program sterujący. Dla platformy Windows jest to DirectX, wspomagający renderowanie grafiki dwu- i trójwymiarowej. Dostarczone przez niego informacje tłumaczone są na formę zrozumiałą dla karty graficznej. Zajmuje się tym sterownik grafiki.

Jak działa karta graficzna?

Pierwszym krokiem potoku graficznego są obliczenia wstępne wykonywane przez procesor wstępny, który rozpoznaje typ danych (wektory, obrazy, kod programu) i przygotowuje je do dalszej obróbki. W kolejnym kroku budowany jest obraz wyświetlany na ekranie. Składa się on z trójwymiarowych brył, z których każda składa się z trójkątów. Im ich więcej tym dokładniej odwzorowany jest jej kształt. Do tak wstępnie zbudowanego obiektu zabierają się shadery. W zależności od zamierzonego efektu może to być Pixel Shader odpowiadający za zmiany powierzchni i koloru obiektów, uwzględniając przy tym oświetlenie, odbicia i cienie. Vertex Shader z kolei oblicza pozycję obiektów dbając przy okazji o właściwe oświetlenie natomiast Geometry Shader dba o właściwe odwzorowanie geometrii w zależności od tego jak obiekt się porusza i jak daleko od kamery się znajduje. Pixel Shader i Vertex Shader nadają także obiektom subtelne struktury zwiększające realizm wyświetlanej grafiki, takie jak np. drobne załamania faktury stroju wygenerowanej wcześniej postaci.

Na tak dokładnie zbudowany obiekt nakładane są tekstury. Odpowiada za to jednostka teksturująca. Po zakończeniu mapowania tekstur, bo tak dokładnie nazywa się ten proces, obraz wędruje do procesora operacji rastrowych, gdzie obraz jest powiększany do zadanej rozdzielczości. W tym miejscu przydaje się antyaliasing rozpoznający i wygładzający krawędzie obiektów. Tak stworzony obraz trafia do bufora ramki a stamtąd, po odpowiednim przetworzeniu – prosto na ekran. Proces ten powtarzany jest dla każdej klatki obrazu. Wymaga to ogromnych nakładów mocy obliczeniowej – ludzkie oko odbiera ruch jako płynny od 25 klatek na sekundę a największy realizm osiąga się przy 60 klatkach na sekundę.

W najnowszych generacjach kart graficznych Vertex Shader, Pixel Shader oraz Geometry Shader były osobnymi blokami obliczeniowymi. W aktualnych generacjach GPU stosuje się nieco inne rozwiązanie. Ich funkcje realizowane są w jednym bloku ale współczesne karty takich bloków, nazywanych rdzeniami wykorzystują setki a czasami tysiące – np. jedna z najmocniejszych dostępnych aktualnie kart, GeForce GTX Titan X dysponuje aż 3072 jednostkami CUDA (Compute Unified Device Architecture).

Nie tylko grafika

Wielordzeniowa architektura współczesnych kart graficznych opiera się na wyposażeniu ich w jednostki, które nie są wysoko wyspecjalizowane za to potrafią wykonywać wiele różnych obliczeń. Mają one często ogromne moce obliczeniowe, wielokrotnie przewyższające moc CPU, z którymi współpracują. Widać to wyraźnie na przykładzie procesorów Intel Core i7, które w 2010 roku osiągały ok. 50 miliardów operacji na sekundę tymczasem współczesna im karta graficzna GeForce GTX 285 wykonywała ich aż bilion. Nic dziwnego więc, że karty wykorzystuje się także do innych zadań niż samo generowanie grafiki. Umożliwiają to technologie Stream (ATI, obecnie AMD) oraz NVIDIA CUDA. GPGPU (general-purpose computing on graphics processing units) polega na tym, że nieobciążone shadery udostępniane są do wykonywania zadań takich jak wspieranie procesora w przeliczaniu filmów wideo czy wykonywania dodatkowych obliczeń w grach komputerowych. Z tych nietypowych możliwości współczesnych GPU korzysta wiele aplikacji obecnych w naszych domach – np. Adobe Photoshop wykorzystuje je do przyspieszania operacji na dużych obrazach bitmapowych a także do zmiany rozmiaru i obszaru pola roboczego.

Dowiedz się, jak działa akumulator!



Udostępnij

Powiązane Artykuły

Poznajmy technologię: Jak działa pamięć RAM?

Lenovo

Poznajmy technologie: Jak działa wyświetlacz LCD?

Lenovo

Poznajmy technologię – jak działa smartwatch?

Lenovo

Komentarze do artykułu


widget instagram lenovo
widget twitter lenovo
widget facebook lenovo
widget youtube lenovo
Przeczytaj poprzedni wpis:
Gdzie oglądać filmy i seriale? HelpZone #10

Zastanawialiście się kiedyś, gdzie oglądać filmy i seriale? Dziesiąty odcinek HelpZone przybywa z odpowiedzią!   W tym odcinku serii HelpZone przedstawimy wam...

Zamknij