Karta graficzna

Karta graficzna, często określana też mianem akcelerator grafiki, to element

komputera tworzący sygnał dla monitora.

Podstawowym zadaniem karty graficznej jest przechowywanie informacji o tym jak

powinien wyglądać obraz na ekranie monitora i odpowiednim sterowaniu monitorem.

Pierwsze karty graficzne potrafiły jedynie wyświetlać znaki alfabetu łacińskiego ze

zdefiniowanego w pamięci karty generatora znaków - tryb tekstowy. Kolejna

generacja kart graficznych potrafiła już wyświetlać w odpowiednim kolorze

poszczególne punkty (piksele) - tryb graficzny. Nowoczesne procesory graficzne

udostępniają wiele funkcji ułatwiających i przyśpieszających pracę programów.

Możliwe jest narysowanie odcinka, trójkąta, wieloboku, wypełnienie ich zadanym

kolorem lub wzorem, tzw. akceleracja 2D. Większość kart na rynku posiada również

wbudowane funkcje ułatwiające tworzenie obrazu przestrzeni trójwymiarowej, tzw.

akceleracja 3D. Niektóre posiadają zaawansowane algorytmy potrafiące na przykład

wybrać tylko widoczne na ekranie elementy z przestrzeni.

Na rynku pojawia się coraz więcej nowych rozwiązań technicznych do kart grafiki,

przedstawicielami najwydajniejszych kart graficznych są obecnie konstrukcje oparte

na układach nVidia GeForce 8800GTX oraz ATi Radeon X1950XTX.

Budowa

Elementy karty graficznej

Procesor graficzny (GPU)

Odpowiedzialny jest za sprzętowe wspomaganie wyświetlania obrazu. Oblicza operacje

graficzne, efekty (np. antialiasing) i zajmuje się wyświetlaniem obrazu 2D oraz 3D.

Posiada instrukcje, których brak procesorowi komputera, co pozwala na renderowanie

zaawansowanych obrazów. Procesory graficzne mają określoną bitowość. Jest ona

związana z wielkością paczek, które wymieniane są między GPU a pamięcią karty. Tak,

więc karty 64-bitowe przesyłają paczki 8 bajtowe, 128-bitowe: 16 bajtowe i analogicznie

256 bitowe: paczki 32 bajtowe. Bitowość ta nie ma jednak znaczącego wpływu na

szybkość wyświetlania obrazu. Różnice pojawiają się w wyższych rozdzielczościach.

Nazwa GPU użyta po raz pierwszy przez nVidię w roku 1999.

RAMDAC

Układ odpowiedzialny na zamianę sygnału cyfrowego na analogowy. Dane o kolorach

wysyłane przez procesor graficzny trafiają do RAMDAC i przetwarzane są na sygnał,

który następnie trafia do monitora. Układ RAMDAC składa się z kościa pamięci

SDRAM, w której przechowywane są dane o kolorach, a także z 3 przetworników

cyfrowo-analogowych (C/A) po jednym dla każdego koloru RGB. Im szybszy jest ten

układ, tym większa ilość danych przesyłana jest do monitora w ciągu 1 sekundy, więc

zwiększa się też częstotliwość odświeżania. Jest to o tyle ważne, że przy wyższych

częstotliwościach nasze oczy męczą się o wiele mniej.

Pamięć RAM

Przechowywane są w niej dane o położeniu pikseli, tekstury oraz informacje o głębi

3D. Nowsze karty posiadają nawet 512 MB tej pamięci.

Pamięć musi w jednym momencie być odczytywana oraz zapisywana. W przeciwnym

wypadku przetwornik musiałby czekać, aż cały pakiet zostanie wczytany do pamięci. Z

tego też powodu podzielona jest na dwa jednakowe bufory (Double Buffering). Back

Buffer jest odpowiedzialny za zapisywanie danych w pamięci. W tym czasie Front

Buffer zajmuje się odczytywaniem danych przez RAMDAC. Przełączanie buferów musi

występować dokładnie w chwili, gdy oba z nich skończą swoją pracę. Możliwa jest też

praca na trzy bufory (Triple Buffering). W tym przypadku istnieje dodatkowy bufor, do

którego trafiają wyniki obliczeń. Skutkiem tego jest jednak brak synchronizacji

impulsów, przez co częstotliwość odświerzania obrazu jest zmienna. Bufor Z -

przechowuje dane o tym, jak każdy piksel położony jest w przestrzeni

trójwymiarowej.

Elementy karty graficznej

Gniazdo zasilania

Występuje w kartach, które mają bardzo dużą moc obliczeniową i potrzebują do

działania dodatkowego zasilania.

Gniazdo monitora SVGA Jest przeznaczone do podłączenia monitora CRT. Jest to

złącze posiadające 15 pinów. Gniazdo DVI Gniazdo przeznaczone do przesyłania

sygnału cyfrowego. Najczęściej podłącza się do niego monitory LCD, jednak, jeśli jest

to gniazdo typu DVI-I to możliwe jest podłączenie monitora CRT przez specjalną

przejściówkę. Istnieje także typ DVI-A przesyłający jedynie analogowy sygnał. Złącze

DVI posiada dwa kanały przesyłowe, co podwaja pasmo przenoszenia. Wyjście TV

Pozwala na podłączenie naszego Peceta do telewizora. Można wyświetlić na nim obraz

identyczny z tym, co widzimy na monitorze, lub też to, co sami zechcemy wyświetlać,

np. film. Możliwa jest także zmiana rozdzielczości osobno dla każdego z ekranów.

Twórcy kart

ATI

ATI Technologies Inc. (gdzie ATI jest skrótem od Array Technologies

Incorporated) (NASDAQ: ATYT) - to kanadyjski producent układów scalonych,

znany głównie ze swoich kart graficznych. Notowany na giełdach w Toronto i

NASDAQ.

ATI udało się przełamać monopol NVIDII na akceleratory 3D do komputerów typu

desktop, wprowadzając na rynek, jako konkurencję dla kart GeForce, karty graficzne

seri Rage, a później dużo wydajniejsze Radeony. Około roku 2003 ATI zaczęło

sprzedawać swoje chipsety do płyt głównych (mostki południowy/północny), a

wcześniej dostarczała zintegrowane układy graficzne.

W lipcu 2006 ATI zostało przejęte przez firmę AMD za 5, 4 miliarda dolarów. Intel

przewidując wykupienie ATI przez AMD, konkurencyjne dla tej pierwszej, nie

przedłużył licencji ATI na produkcję chipsetów dla swoich mikroprocesorów

nVidia

Firma Nvidia została założona w roku 1993 przez Jen-Hsun Huanga, Chrisa

Malachowsky'ego, i Curtisa Priema, byłych pracowników SGI. Siedziba znajduje się w

USA, a dokładniej w Santa Clara w stanie Kalifornia. Z założenia Nvidia miała

produkować układy graficzne, jednak po późniejszym sukcesie zajęła się także

chipsetami płyt głównych. Pierwszą ofensywę rynku Nvidia rozpoczęła od

opracowania układu NV1 użytego w konsoli Sega Saturn. Niestety NV1 nie przyjął się

ze względu na problemy z obsługą. W czasach, gdy nVidia próbowała wchłonąć jakoś

w rynek kart graficznych, był on zdominowany niemal całkowicie przez 3Dfx. nVidia

opracowała jednak bardzo wydajne karty Riva128 oraz Riva TNT, które bardzo szybko

opanowały rynek i dały firmie dobrą pozycję. W 2000 roku pozycja 3Dfx znacznie

osłabła przez nieudane dwu- oraz cztero-układowe Voodoo. nVidia wykupiła

upadającą firmę wraz z jej patentem na SLI, który kilka lat później okazał się

doskonałym rozwiązaniem.

Karty i układy graficzne opracowane przez nVidia: NV1 Riva Riva 128 Riva 128ZX

Riva TNT Riva TNT2 GeForce GeForce 256 GeForce2 GeForce3 GeForce4 GeForce FX

GeForce 6xxx GeForce 7xxx GeForce 8xxx

Inne: Quadro - karty do zastosowań profesjonalnych RSX (Reality Synthesizer) -

Układ znajdujący się w konsoli Sony Playstation 3 XGPU - układ opracowany na

potrzeby konsoli XBOX

Matrox Electronic Systems Ltd

Kanadyjska firma z siedzibą w Dorval w prowincji Quebec. Założona przez Lorne'a

Trottier'a i Branka Matić'a. Matrox słynie ze swoich kart o profesjonalnym

zastosowaniu. Jako pierwsza firma wprowadziła możliwość pracy na kilku monitorach.

Jej produkty używane są w armi , medycynie, nauce. Karty Matroxa charakteryzują się

najwyższą, jakością obrazu 2D.

Złącza

ISA

ISA ( Industry Standard Architecture ) Złącze ISA zostało wprowadzone początkowo

jako 8-bitowe w roku 1981 dla komputerów IBM PC, a w dwa lata później dla

architektury XT. W roku 1984 opracowany został standard 16-bitowy. Pierwsza z

opracowanych wersji pracowała na częstotliwości 4,77 MHz, a druga 8 MHz. Wadą

złącza ISA było to, że aby podłączyć do komputera jakiekolwiek nowe urządzenie

należało najpierw odpowiednio przygotować do tego system, co wymagało

znajomości informacji o dodawanym sprzęcie. Należało skonfigurować IRQ, I/O oraz

DMA. Aby rozwiązać ten problem opracowano ISA PnP, system plug-n-play

samoczynnie konfigurujący nowe urządzenie podłączone do komputera. 8-bit ISA

(architektura szyny XT) 8-bitowa wersja ISA używana była głównie przy procesorach

Intel 8086 oraz 8088. Szyna ta posiada cztery kanały DMA. Trzy z nich zostały

przeniesione na slot rozszerzenia.

Kanał DMA Rozszerzenie Funkcja 0 nie odświeżanie RAM 1 tak dodawanie kart 2

tak kontroler flopa 3 tak kontroler HDD Informacje techniczne Szerokość magistrali

- 8 Bit Kompatybilność - 8 Bit ISA Ilość pinów - 62 Napięcie - +5 V, -5 V, +12 V,

-12 V Taktowanie - 4,77 MHz

Local Bus

VESA Local Bus (Video Electronics Standards Association Local Bus) - nazywana

także VL Bus lub VLB. Złącze to po raz pierwszy pojawiło się na rynku

komputerowym w roku 1992 i bardzo szybko zdobyło popularność. Zostało

zaprojektowane, aby rozszerzyć możliwości wyświetlania obrazu w komputerach PC.

VLB było w pełni kompatybilne ze starszymi kartami typu ISA, lecz było przy tym

także o wiele szybsze. Działo się tak dzięki temu, że złącze VLB stało się

rozszerzeniem standardowego interfejsu ISA. Dodano jedynie trzecią część złącza,

mającą obsługiwać 32-bitowe karty. Standardowa szybkość pracy złącza wynosiła

33MHz, lecz na niektórych komputerach mogła wynosić nawet 50 MHz. VL Bus

zostało wyparte przez wprowadzone w 1994 roku Intelowskie złącze PCI, po dzień

dzisiejszy będące standardem w komputerach PC. Szyna Local Bus była używana

jedynie w komputerach seri 486.

PCI

PCI ( Peripheral Component Interconnect )

Prace nad pierwszą wersją PCI

zostały rozpoczęte już w 1990 roku, a ostateczny ich wynik ogłoszony 22 czerwca

1992 roku. W 1992 roku utworzona została grupa PCI-SIG (PCI Special Interest

Group), dzięki czemu technologia PCI uległa standaryzacji. PCI-SIG już rok później,

30 kwietnia 1993 ogłosiła specyfikację wersji 2.0 tego złącza. Do jednej magistrali

można podłączyć nawet 5 urządzeń, a po zastosowaniu, tzw. mostków o wiele więcej.

Zaletą PCI jest to, że do komputera można podłączyć wiele urządzeń pracujących na

tym złączu w jednym czasie. Nie ma także znaczenia, do czego służy podłączana

przez nas karta, ważne jest tylko, że pracuje na tym złączu. Nie musimy także

pamiętać, aby posiadać kartę przystosowaną do danej wersji PCI, wystarczy, aby

pasowała napięciowo. Dzięki ingerencji PCI-SIG starsze karty bez problemu radzą

sobie w nowych komputerach. Pierwotnie złącze PCI pracowało na taktowaniu 33

MHz i 32-bitowej szerokości magistrali. Dało to przepustowość rzędu 132 MB/s. Była

to przyzwoita prędkość, lecz jednak za mała dla wielu użytkowników. Wersja 2.1 dała

przepustowość 528 MB/s. Jest to wynikiem pracy na magistrali 64-bitowej i

taktowaniu 66MHz. Bardzo ważnym elementem przy projektowaniu PCI było

przystosowanie złącza do pracy PnP (Plug and Play). Możliwość tą wykorzystano

dopiero w roku 1995, w nowym systemie Microsoft'u, czyli Windowsie 95. Działanie

PnP polega na tym, że na karcie zapisany jest specjalny 16-bitowy numer ID

odmienny dla każdego urządzenia. System posiadający obsługę PnP odczytuje ten

numer i potrafi poprawnie obsłużyć kartę.

Złącza pochodne: PCI-X 1.0 Data wprowadzenia: 1999r. Szyna danych: 64-

bit Taktowanie: 133MHz Napięcie: 3,3V Wynikowa przepustowość: 1064 MB/s

PCI-X 2.0 Data wprowadzenia: 2002r. Szyna danych: 64-bit Taktowanie:

266MHz / 533MHz Napięcie: 3,3V / 1,5V Wynikowa przepustowość: 2128 MB/s /

4256 MB/s Inne: 16-bitowy wariant dla napięcia 1,5V

AGP

AGP ( Accelerated Graphics Port ) AGP to złącze zaprojektowane głównie z myślą o

połączeniu między kartą graficzną a płytą główną. Jest to zmodernizowana wersja

Intelowskiego PCI. Pierwsza specyfikacja AGP (1.0) została ogłoszona w 1997 roku.

Od tego czasu powstały jeszcze trzy główne typy AGP. Rozróżniamy cztery typy AGP:

AGP 1x Używa 32-bitowej magistrali przy częstotliwości 66 MHz. Maksymalna

przepustowość tej wersji wynosi 264 MB/s. Jest to podwojona wartość

przepustowości możliwej do osiągnięcia na złączu PCI o magistrali 32-bitowej i

taktowaniu 33 MHz. Złącze AGP 1x pracuje na napięciu 3,3V. AGP 2x Bitowość

magistrali i częstotliwość pozostają takie same jak w poprzedniej wersji, lecz transfer

jest podwojony przez pracę na obu zboczach zegara sygnałowego i wynosi 528 MB/s.

Napięcie pozostaje takie samo. AGP 4x Taktowanie zostaje zwiększone do 133 MHz,

co umożliwia osiągnięcie przepustowości rzędu 1056 MB/s. Napięcie pracy zostaje

obniżone do 1,5 V. AGP 8x Częstotliwość ponownie zostaje podwojona, transfer

osiąga więc poziom 2112 MB/s. Napięcie zostaje obniżone do 0,8 V.

Karty oraz złącza AGP są kompatybilne, lecz z pewnymi zasadami. Karty działające na

napięciu 3,3V nie będą pasować na przykład do slotu 1,5V. To samo dzieje się w

drugą stronę. Są jednak uniwersalne złącza AGP, które obsługują każdy typ karty.

Należy też zaznaczyć, że profesjonalne karty nie zostaną uruchomione na

uniwersalnych złączach, lecz jednak zwykłe karty można uruchamiać na

profesjonalnych złączach. Jedną z największych zalet złącza AGP jest system DIME

(Direct Memory Execute) umożliwiający bezpośredni dostęp do pamięci operacyjnej

komputera. Dzięki temu karta może używać pamięci RAM jako bufor tekstur. Ze

strony chipsetu do obsługi pamięci używana jest funkcja GART (Graphics Address

Remapping Table).

PCI Express

PCI Express ( inaczej 3GIO - 3rd Generation I/O ) Choć w nazwie występuje nazwa

"PCI", złącze PCI Express działa na całkowicie innej zasadzie. Używa ono szeregowy

protokół przesyłania danych. Taktowanie szyny jest o wiele wyższe niż w przypadku

PCI i wynosi aż 2,5GHz. Zaletą PCIE jest dwukierunkowe połączenie point-to-point

(punkt do punktu), przez co przepustowość nie jest dzielona w zależności od kierunku

(jest taka sama w obie strony). Przypadłością równoległego PCI było dzielenie

przepustowości między wszystkimi urządzeniami. W PCIE nie występuje to dzięki

połączeniu szeregowemu. Do każdych 8 bitów dodane są dodatkowe 2. Nazwa

danego typu PCIE wskazuje nam, ile dane złącze zawiera, lini którymi przesyłane są

dane. Tak więc złącze x8 posiada ich 8, a złącze x16 - 16. Długość slotu także zależna

jest od jego typu. Im więcej lini przesyłowych tym dłuższe złącze.

Efekty graficzne

Antialiasing Anisotropic filtering Bump mapping Mipmapping Inne efekty

Antialiasing

Mówiąc jak najprościej - jest to efekt wygładzania krawędzi. Spróbujmy jednak

przyjrzeć się bliżej zasadzie działania tej funkcji. Rozpatrzymy ją na dwóch

przykładach. Zaczniemy od najprostszego przykładu, jakim będzie litera. Poniższy

rysunek przedstawia ją z wyłączoną funkcją antialiasingu. Obok ta sama litera w

powiększeniu 500%. Jak widać nie wygląda to za pięknie. Przyjrzyjmy się więc tej

samej literze z włączonym wygładzaniem krawędzi: Problem zostaje rozwiązany

przez dodanie dodatkowych pikseli w przejściu między krawędzią i tłem. Dzięki temu

krawędzie wydają się być pozbawione niemiłych "ząbków" i wyglądają o wiele lepiej.

Anisotropic filtering

Filtrowanie anizotropowe (Anisotropic filtering) jest to najbardziej efektywna forma

filtrowania tekstur. Wyostrza tekstury znajdujące się w dalszej części sceny. Polega

ono na tym, że teksele nie są już symetrycznymi figurami. Mają określony kształt

zależny od perspektywy obrazu i kąta, pod jakim pada teksel. Dzięki temu

zlikwidowany zostaje efekt zniekształcenia kształtów.

Filtrowanie anizotropowe może mieć różne poziomy z różnymi ilościami tekseli branymi

pod uwagę: 1x - 8 tekseli 2x - 16 tekseli 4x - 32 tekseli 8x - 64 tekseli 16x - 128

tekseli Filtrowanie anizotropowe zawsze występuje w duecie z filtrowaniem dwu- lub

trójliniowym. Niestety, choć z filtrowaniem dwuliniowym wydajność jest o wiele

większa, występuje tu ta sama przypadłość, czyli widoczne połączenia między

teksturami.

Filtrowanie trój liniowe jest bardziej popularne i wygląda o wiele lepiej, jednak na

poziomie 16x potrzeba dużo mocy obliczeniowej, aby je obsłużyć.

Bump mapping

Bump mapping (inaczej Multi-Pass Alpha Blended Bump Mapping) jest funkcją, dzięki

której możemy zobaczyć wypukłości na powierzchni tekstur. Daje to złudzenie, że

widziany obraz nie jest złożony z płaskich elementów. Większość ludzi nie zauważa,

że na krawędziach wypukłości tych brakuje. Bump mapping działa na zasadzie

dodania dodatkowej tekstury, określającej wysokość każdego teksela. Światło pada

na powierzchnię obiektu i niektóre miejsca są bardziej, a inne mniej oświetlone.

Widzimy, więc wypukłości. Istnieją różne typy bump mappingu: Emboss Mapping

To najprostsze z możliwych rozwiązań. Działa tak, że tworzona zostaje

monochromatyczna wersja tekstury, która następnie zostaje nałożona na obiekt.

Końcowy efekt wygląda mizernie ze względu na brak uwzględnienia padającego

światła. Ten rodzaj bump mappingu posiada wiele ograniczeń. Dodatkową wadą jest

duże obciążenie procesora. Environment Mapping Najbardziej efektywna metoda

bump mappingu. Wymyślona przez BitBoys Oy i pierwszy raz wprowadzona w kartach

Matrox G400. Polega na tym, że użyte zostają trzy osobne mapy. Pierwsza mapa

(texture map) bazuje na oryginalnych kolorach tekstury. Druga (bump map) jest to

mapa posiadająca zapisane informacje o wysokości każdego teksela. Trzecia mapa

(Environment map) może mieć różne zastosowania. Najczęściej określa padające na

teksturę światło, ale możliwości jest bardzo dużo. Można użyć także przeźroczystości

czy też odbić światła. Możliwe jest także tworzenie dynamicznych map, których

efektem mogą być np. fale na morzu. Ta metoda mappingu jest najbardziej

popularna.

Mipmapping

Mipmappi ng polega na użyciu różniących się wielkościowo wersji tej samej tekstury

wraz ze zwiększającą się odległością. Bez tej funkcji obraz wydaje się być bardzo

ostry, ale także niemiły dla oka. Zdaje nam się wtedy, że piksele migotają, co jest

skutkiem tego, że na mały obszar który widzimy na ekranie przypada duża tekstura i

każdy teksel na obszarze może przyjąć dużą ilość kolorów znajdującą się w

określonym miejscu na teksturze. Dlatego także mipmapping jest podstawową

fuknkcją, bez której oglądanie obrazów 3D staje się męczące. Na screenie tym

zaznaczyłem czerwonymi miejscami dwa miejsca, aby lepiej zobrazować na czym

polega mipmapping. Większy obszar pokazuje miejsce, w którym tekstura ma duży

rozmiar. Wraz z oddalającymi częściami ulicy tekstury maleją. Tekstura drugiego

zaznaczonego obrazu powinna być już około 6 razy mniejsza. Różne rozmiary

określane są jako LOD (Level of Detail). Tekstury są pomniejszane zawsze podwójnie,

czyli jeśli tekstura ma 512x512 px to jej mniejsza wersja będzie miała wielkość

256x256 px. Tekstury pomniejszane są aż do wielkości 1x1 px. Tekstury takie można

robić ręcznie, lecz w czasach dzisiejszych zajmuje się tym już procesor graficzny, co

bardzo ułatwia sprawę programistom.

Inne efekty

*3D clipping usuwanie części obiektu, który znajduje się poza sceną.

*Alpha blending technika służąca do obliczania przeźroczystości każdego piksela

znajdującego się na ekranie. Działa na zasadzie przypisania dodatkowej wartości

Alpha każdemu pikselowi tekstury. Wartość ta mieści się w przedziale od 0 do 255

(czyli 8 bitów) przy czym pierwsza wartość oznacza brak widoczności piksela a drugi

pełną jego widoczność.

*Double buffering (podwójne buforowanie) polega na tym, że w buforze tworzony

jest obraz, początkowo niewidoczny, który ma zostać za chwilę wyświetlony. Po

wyświetleniu w buforze ponownie tworzony jest następny obraz.

*Interpolacja obraz zostaje rozciągnięty do odpowiedniej wielkości, przy czym

tworzone są nowe piksele o kolorach tak dobranych, aby przejście pomiędzy pikselami

było jak najbardziej łagodne.

*Shading obiekt dzieli się na wiele trójkątów. Dla każdego trójkąta nadany zostaje

odpowiedni kolor, dzięki temu zakrzywiony obiekt robi wrażenie realistycznego.

*Fog (mgła) pozwala uzyskać efekt mgły, dzięki czemu można zobaczyć bardzo

realistyczne sceny. Często efekt ten używany jest także do odciążenia procesora

graficznego, ponieważ nie musi on wyświetlać obiektów znajdujących się za mgłą, co

jest dużo efektywniejsze.

*HDR (High Dynamic Range) jedna z nowszych funkcji, dzięki której scena posiada

bardzo realistyczne oświetlenie. Efekt końcowy jest bardzo ciekawy.

Document Outline

  • Karta graficzna
    • Karta graficzna, często określana też mianem akcelerator grafiki, to element komputera tworzący sygnał dla monitora.
    • Podstawowym zadaniem karty graficznej jest przechowywanie informacji o tym jak powinien wyglądać obraz na ekranie monitora i odpowiednim sterowaniu monitorem. Pierwsze karty graficzne potrafiły jedynie wyświetlać znaki alfabetu łacińskiego ze zdefiniowanego w pamięci karty generatora znaków - tryb tekstowy. Kolejna generacja kart graficznych potrafiła już wyświetlać w odpowiednim kolorze poszczególne punkty (piksele) - tryb graficzny. Nowoczesne procesory graficzne udostępniają wiele funkcji ułatwiających i przyśpieszających pracę programów. Możliwe jest narysowanie odcinka, trójkąta, wieloboku, wypełnienie ich zadanym kolorem lub wzorem, tzw. akceleracja 2D. Większość kart na rynku posiada również wbudowane funkcje ułatwiające tworzenie obrazu przestrzeni trójwymiarowej, tzw. akceleracja 3D. Niektóre posiadają zaawansowane algorytmy potrafiące na przykład wybrać tylko widoczne na ekranie elementy z przestrzeni.
    • Na rynku pojawia się coraz więcej nowych rozwiązań technicznych do kart grafiki, przedstawicielami najwydajniejszych kart graficznych są obecnie konstrukcje oparte na układach nVidia GeForce 8800GTX oraz ATi Radeon X1950XTX.
  • Budowa
    • Elementy karty graficznej
  • Procesor graficzny (GPU)
    • Odpowiedzialny jest za sprzętowe wspomaganie wyświetlania obrazu. Oblicza operacje graficzne, efekty (np. antialiasing) i zajmuje się wyświetlaniem obrazu 2D oraz 3D. Posiada instrukcje, których brak procesorowi komputera, co pozwala na renderowanie zaawansowanych obrazów. Procesory graficzne mają określoną bitowość. Jest ona związana z wielkością paczek, które wymieniane są między GPU a pamięcią karty. Tak, więc karty 64-bitowe przesyłają paczki 8 bajtowe, 128-bitowe: 16 bajtowe i analogicznie 256 bitowe: paczki 32 bajtowe. Bitowość ta nie ma jednak znaczącego wpływu na szybkość wyświetlania obrazu. Różnice pojawiają się w wyższych rozdzielczościach. Nazwa GPU użyta po raz pierwszy przez nVidię w roku 1999.
  • RAMDAC
    • Układ odpowiedzialny na zamianę sygnału cyfrowego na analogowy. Dane o kolorach wysyłane przez procesor graficzny trafiają do RAMDAC i przetwarzane są na sygnał, który następnie trafia do monitora. Układ RAMDAC składa się z kościa pamięci SDRAM, w której przechowywane są dane o kolorach, a także z 3 przetworników cyfrowo-analogowych (C/A) po jednym dla każdego koloru RGB. Im szybszy jest ten układ, tym większa ilość danych przesyłana jest do monitora w ciągu 1 sekundy, więc zwiększa się też częstotliwość odświeżania. Jest to o tyle ważne, że przy wyższych częstotliwościach nasze oczy męczą się o wiele mniej.
  • Pamięć RAM
    • Przechowywane są w niej dane o położeniu pikseli, tekstury oraz informacje o głębi 3D. Nowsze karty posiadają nawet 512 MB tej pamięci.
    • Pamięć musi w jednym momencie być odczytywana oraz zapisywana. W przeciwnym wypadku przetwornik musiałby czekać, aż cały pakiet zostanie wczytany do pamięci. Z tego też powodu podzielona jest na dwa jednakowe bufory (Double Buffering). Back Buffer jest odpowiedzialny za zapisywanie danych w pamięci. W tym czasie Front Buffer zajmuje się odczytywaniem danych przez RAMDAC. Przełączanie buferów musi występować dokładnie w chwili, gdy oba z nich skończą swoją pracę. Możliwa jest też praca na trzy bufory (Triple Buffering). W tym przypadku istnieje dodatkowy bufor, do którego trafiają wyniki obliczeń. Skutkiem tego jest jednak brak synchronizacji impulsów, przez co częstotliwość odświerzania obrazu jest zmienna. Bufor Z - przechowuje dane o tym, jak każdy piksel położony jest w przestrzeni trójwymiarowej.
  • Elementy karty graficznej
    • Gniazdo zasilania
    • Występuje w kartach, które mają bardzo dużą moc obliczeniową i potrzebują do działania dodatkowego zasilania.
    • Gniazdo monitora SVGA Jest przeznaczone do podłączenia monitora CRT. Jest to złącze posiadające 15 pinów. Gniazdo DVI Gniazdo przeznaczone do przesyłania sygnału cyfrowego. Najczęściej podłącza się do niego monitory LCD, jednak, jeśli jest to gniazdo typu DVI-I to możliwe jest podłączenie monitora CRT przez specjalną przejściówkę. Istnieje także typ DVI-A przesyłający jedynie analogowy sygnał. Złącze DVI posiada dwa kanały przesyłowe, co podwaja pasmo przenoszenia. Wyjście TV Pozwala na podłączenie naszego Peceta do telewizora. Można wyświetlić na nim obraz identyczny z tym, co widzimy na monitorze, lub też to, co sami zechcemy wyświetlać, np. film. Możliwa jest także zmiana rozdzielczości osobno dla każdego z ekranów.
  • Twórcy kart
  • ATI
    • ATI Technologies Inc. (gdzie ATI jest skrótem od Array Technologies Incorporated) (NASDAQ: ATYT) - to kanadyjski producent układów scalonych, znany głównie ze swoich kart graficznych. Notowany na giełdach w Toronto i NASDAQ.
    • ATI udało się przełamać monopol NVIDII na akceleratory 3D do komputerów typu desktop, wprowadzając na rynek, jako konkurencję dla kart GeForce, karty graficzne serii Rage, a później dużo wydajniejsze Radeony. Około roku 2003 ATI zaczęło sprzedawać swoje chipsety do płyt głównych (mostki południowy/północny), a wcześniej dostarczała zintegrowane układy graficzne.
    • W lipcu 2006 ATI zostało przejęte przez firmę AMD za 5, 4 miliarda dolarów. Intel przewidując wykupienie ATI przez AMD, konkurencyjne dla tej pierwszej, nie przedłużył licencji ATI na produkcję chipsetów dla swoich mikroprocesorów
  • nVidia
    • Firma Nvidia została założona w roku 1993 przez Jen-Hsun Huanga, Chrisa Malachowsky'ego, i Curtisa Priema, byłych pracowników SGI. Siedziba znajduje się w USA, a dokładniej w Santa Clara w stanie Kalifornia. Z założenia Nvidia miała produkować układy graficzne, jednak po późniejszym sukcesie zajęła się także chipsetami płyt głównych. Pierwszą ofensywę rynku Nvidia rozpoczęła od opracowania układu NV1 użytego w konsoli Sega Saturn. Niestety NV1 nie przyjął się ze względu na problemy z obsługą. W czasach, gdy nVidia próbowała wchłonąć jakoś w rynek kart graficznych, był on zdominowany niemal całkowicie przez 3Dfx. nVidia opracowała jednak bardzo wydajne karty Riva128 oraz Riva TNT, które bardzo szybko opanowały rynek i dały firmie dobrą pozycję. W 2000 roku pozycja 3Dfx znacznie osłabła przez nieudane dwu- oraz cztero-układowe Voodoo. nVidia wykupiła upadającą firmę wraz z jej patentem na SLI, który kilka lat później okazał się doskonałym rozwiązaniem.
    • Karty i układy graficzne opracowane przez nVidia: NV1 Riva Riva 128 Riva 128ZX Riva TNT Riva TNT2 GeForce GeForce 256 GeForce2 GeForce3 GeForce4 GeForce FX GeForce 6xxx GeForce 7xxx GeForce 8xxx
    • Inne: Quadro - karty do zastosowań profesjonalnych RSX (Reality Synthesizer) - Układ znajdujący się w konsoli Sony Playstation 3 XGPU - układ opracowany na potrzeby konsoli XBOX
  • Matrox Electronic Systems Ltd
    • Kanadyjska firma z siedzibą w Dorval w prowincji Quebec. Założona przez Lorne'a Trottier'a i Branka Matić'a. Matrox słynie ze swoich kart o profesjonalnym zastosowaniu. Jako pierwsza firma wprowadziła możliwość pracy na kilku monitorach. Jej produkty używane są w armii, medycynie, nauce. Karty Matroxa charakteryzują się najwyższą, jakością obrazu 2D.
  • Złącza
  • ISA
    • ISA ( Industry Standard Architecture ) Złącze ISA zostało wprowadzone początkowo jako 8-bitowe w roku 1981 dla komputerów IBM PC, a w dwa lata później dla architektury XT. W roku 1984 opracowany został standard 16-bitowy. Pierwsza z opracowanych wersji pracowała na częstotliwości 4,77 MHz, a druga 8 MHz. Wadą złącza ISA było to, że aby podłączyć do komputera jakiekolwiek nowe urządzenie należało najpierw odpowiednio przygotować do tego system, co wymagało znajomości informacji o dodawanym sprzęcie. Należało skonfigurować IRQ, I/O oraz DMA. Aby rozwiązać ten problem opracowano ISA PnP, system plug-n-play samoczynnie konfigurujący nowe urządzenie podłączone do komputera. 8-bit ISA (architektura szyny XT) 8-bitowa wersja ISA używana była głównie przy procesorach Intel 8086 oraz 8088. Szyna ta posiada cztery kanały DMA. Trzy z nich zostały przeniesione na slot rozszerzenia.
    • Kanał DMA Rozszerzenie Funkcja 0 nie odświeżanie RAM 1 tak dodawanie kart 2 tak kontroler flopa 3 tak kontroler HDD Informacje techniczne Szerokość magistrali - 8 Bit Kompatybilność - 8 Bit ISA Ilość pinów - 62 Napięcie - +5 V, -5 V, +12 V, -12 V Taktowanie - 4,77 MHz
  • Local Bus
    • VESA Local Bus (Video Electronics Standards Association Local Bus) - nazywana także VL Bus lub VLB. Złącze to po raz pierwszy pojawiło się na rynku komputerowym w roku 1992 i bardzo szybko zdobyło popularność. Zostało zaprojektowane, aby rozszerzyć możliwości wyświetlania obrazu w komputerach PC. VLB było w pełni kompatybilne ze starszymi kartami typu ISA, lecz było przy tym także o wiele szybsze. Działo się tak dzięki temu, że złącze VLB stało się rozszerzeniem standardowego interfejsu ISA. Dodano jedynie trzecią część złącza, mającą obsługiwać 32-bitowe karty. Standardowa szybkość pracy złącza wynosiła 33MHz, lecz na niektórych komputerach mogła wynosić nawet 50 MHz. VL Bus zostało wyparte przez wprowadzone w 1994 roku Intelowskie złącze PCI, po dzień dzisiejszy będące standardem w komputerach PC. Szyna Local Bus była używana jedynie w komputerach serii 486.
  • PCI
    • PCI ( Peripheral Component Interconnect ) Prace nad pierwszą wersją PCI zostały rozpoczęte już w 1990 roku, a ostateczny ich wynik ogłoszony 22 czerwca 1992 roku. W 1992 roku utworzona została grupa PCI-SIG (PCI Special Interest Group), dzięki czemu technologia PCI uległa standaryzacji. PCI-SIG już rok później, 30 kwietnia 1993 ogłosiła specyfikację wersji 2.0 tego złącza. Do jednej magistrali można podłączyć nawet 5 urządzeń, a po zastosowaniu, tzw. mostków o wiele więcej. Zaletą PCI jest to, że do komputera można podłączyć wiele urządzeń pracujących na tym złączu w jednym czasie. Nie ma także znaczenia, do czego służy podłączana przez nas karta, ważne jest tylko, że pracuje na tym złączu. Nie musimy także pamiętać, aby posiadać kartę przystosowaną do danej wersji PCI, wystarczy, aby pasowała napięciowo. Dzięki ingerencji PCI-SIG starsze karty bez problemu radzą sobie w nowych komputerach. Pierwotnie złącze PCI pracowało na taktowaniu 33 MHz i 32-bitowej szerokości magistrali. Dało to przepustowość rzędu 132 MB/s. Była to przyzwoita prędkość, lecz jednak za mała dla wielu użytkowników. Wersja 2.1 dała przepustowość 528 MB/s. Jest to wynikiem pracy na magistrali 64-bitowej i taktowaniu 66MHz. Bardzo ważnym elementem przy projektowaniu PCI było przystosowanie złącza do pracy PnP (Plug and Play). Możliwość tą wykorzystano dopiero w roku 1995, w nowym systemie Microsoft'u, czyli Windowsie 95. Działanie PnP polega na tym, że na karcie zapisany jest specjalny 16-bitowy numer ID odmienny dla każdego urządzenia. System posiadający obsługę PnP odczytuje ten numer i potrafi poprawnie obsłużyć kartę.
    • Złącza pochodne: PCI-X 1.0 Data wprowadzenia: 1999r. Szyna danych: 64-bit Taktowanie: 133MHz Napięcie: 3,3V Wynikowa przepustowość: 1064 MB/s PCI-X 2.0 Data wprowadzenia: 2002r. Szyna danych: 64-bit Taktowanie: 266MHz / 533MHz Napięcie: 3,3V / 1,5V Wynikowa przepustowość: 2128 MB/s / 4256 MB/s Inne: 16-bitowy wariant dla napięcia 1,5V
  • AGP
    • AGP ( Accelerated Graphics Port ) AGP to złącze zaprojektowane głównie z myślą o połączeniu między kartą graficzną a płytą główną. Jest to zmodernizowana wersja Intelowskiego PCI. Pierwsza specyfikacja AGP (1.0) została ogłoszona w 1997 roku. Od tego czasu powstały jeszcze trzy główne typy AGP. Rozróżniamy cztery typy AGP: AGP 1x Używa 32-bitowej magistrali przy częstotliwości 66 MHz. Maksymalna przepustowość tej wersji wynosi 264 MB/s. Jest to podwojona wartość przepustowości możliwej do osiągnięcia na złączu PCI o magistrali 32-bitowej i taktowaniu 33 MHz. Złącze AGP 1x pracuje na napięciu 3,3V. AGP 2x Bitowość magistrali i częstotliwość pozostają takie same jak w poprzedniej wersji, lecz transfer jest podwojony przez pracę na obu zboczach zegara sygnałowego i wynosi 528 MB/s. Napięcie pozostaje takie samo. AGP 4x Taktowanie zostaje zwiększone do 133 MHz, co umożliwia osiągnięcie przepustowości rzędu 1056 MB/s. Napięcie pracy zostaje obniżone do 1,5 V. AGP 8x Częstotliwość ponownie zostaje podwojona, transfer osiąga więc poziom 2112 MB/s. Napięcie zostaje obniżone do 0,8 V.
    • Karty oraz złącza AGP są kompatybilne, lecz z pewnymi zasadami. Karty działające na napięciu 3,3V nie będą pasować na przykład do slotu 1,5V. To samo dzieje się w drugą stronę. Są jednak uniwersalne złącza AGP, które obsługują każdy typ karty. Należy też zaznaczyć, że profesjonalne karty nie zostaną uruchomione na uniwersalnych złączach, lecz jednak zwykłe karty można uruchamiać na profesjonalnych złączach. Jedną z największych zalet złącza AGP jest system DIME (Direct Memory Execute) umożliwiający bezpośredni dostęp do pamięci operacyjnej komputera. Dzięki temu karta może używać pamięci RAM jako bufor tekstur. Ze strony chipsetu do obsługi pamięci używana jest funkcja GART (Graphics Address Remapping Table).
  • PCI Express
    • PCI Express ( inaczej 3GIO - 3rd Generation I/O ) Choć w nazwie występuje nazwa "PCI", złącze PCI Express działa na całkowicie innej zasadzie. Używa ono szeregowy protokół przesyłania danych. Taktowanie szyny jest o wiele wyższe niż w przypadku PCI i wynosi aż 2,5GHz. Zaletą PCIE jest dwukierunkowe połączenie point-to-point (punkt do punktu), przez co przepustowość nie jest dzielona w zależności od kierunku (jest taka sama w obie strony). Przypadłością równoległego PCI było dzielenie przepustowości między wszystkimi urządzeniami. W PCIE nie występuje to dzięki połączeniu szeregowemu. Do każdych 8 bitów dodane są dodatkowe 2. Nazwa danego typu PCIE wskazuje nam, ile dane złącze zawiera, lini którymi przesyłane są dane. Tak więc złącze x8 posiada ich 8, a złącze x16 - 16. Długość slotu także zależna jest od jego typu. Im więcej linii przesyłowych tym dłuższe złącze.
  • Efekty graficzne
    • Antialiasing Anisotropic filtering Bump mapping Mipmapping Inne efekty
  • Antialiasing
    • Mówiąc jak najprościej - jest to efekt wygładzania krawędzi. Spróbujmy jednak przyjrzeć się bliżej zasadzie działania tej funkcji. Rozpatrzymy ją na dwóch przykładach. Zaczniemy od najprostszego przykładu, jakim będzie litera. Poniższy rysunek przedstawia ją z wyłączoną funkcją antialiasingu. Obok ta sama litera w powiększeniu 500%. Jak widać nie wygląda to za pięknie. Przyjrzyjmy się więc tej samej literze z włączonym wygładzaniem krawędzi: Problem zostaje rozwiązany przez dodanie dodatkowych pikseli w przejściu między krawędzią i tłem. Dzięki temu krawędzie wydają się być pozbawione niemiłych "ząbków" i wyglądają o wiele lepiej.
  • Anisotropic filtering
    • Filtrowanie anizotropowe (Anisotropic filtering) jest to najbardziej efektywna forma filtrowania tekstur. Wyostrza tekstury znajdujące się w dalszej części sceny. Polega ono na tym, że teksele nie są już symetrycznymi figurami. Mają określony kształt zależny od perspektywy obrazu i kąta, pod jakim pada teksel. Dzięki temu zlikwidowany zostaje efekt zniekształcenia kształtów.
    • Filtrowanie anizotropowe może mieć różne poziomy z różnymi ilościami tekseli branymi pod uwagę: 1x - 8 tekseli 2x - 16 tekseli 4x - 32 tekseli 8x - 64 tekseli 16x - 128 tekseli Filtrowanie anizotropowe zawsze występuje w duecie z filtrowaniem dwu- lub trójliniowym. Niestety, choć z filtrowaniem dwuliniowym wydajność jest o wiele większa, występuje tu ta sama przypadłość, czyli widoczne połączenia między teksturami.
    • Filtrowanie trój liniowe jest bardziej popularne i wygląda o wiele lepiej, jednak na poziomie 16x potrzeba dużo mocy obliczeniowej, aby je obsłużyć.
  • Bump mapping
    • Bump mapping (inaczej Multi-Pass Alpha Blended Bump Mapping) jest funkcją, dzięki której możemy zobaczyć wypukłości na powierzchni tekstur. Daje to złudzenie, że widziany obraz nie jest złożony z płaskich elementów. Większość ludzi nie zauważa, że na krawędziach wypukłości tych brakuje. Bump mapping działa na zasadzie dodania dodatkowej tekstury, określającej wysokość każdego teksela. Światło pada na powierzchnię obiektu i niektóre miejsca są bardziej, a inne mniej oświetlone. Widzimy, więc wypukłości. Istnieją różne typy bump mappingu: Emboss Mapping To najprostsze z możliwych rozwiązań. Działa tak, że tworzona zostaje monochromatyczna wersja tekstury, która następnie zostaje nałożona na obiekt. Końcowy efekt wygląda mizernie ze względu na brak uwzględnienia padającego światła. Ten rodzaj bump mappingu posiada wiele ograniczeń. Dodatkową wadą jest duże obciążenie procesora. Environment Mapping Najbardziej efektywna metoda bump mappingu. Wymyślona przez BitBoys Oy i pierwszy raz wprowadzona w kartach Matrox G400. Polega na tym, że użyte zostają trzy osobne mapy. Pierwsza mapa (texture map) bazuje na oryginalnych kolorach tekstury. Druga (bump map) jest to mapa posiadająca zapisane informacje o wysokości każdego teksela. Trzecia mapa (Environment map) może mieć różne zastosowania. Najczęściej określa padające na teksturę światło, ale możliwości jest bardzo dużo. Można użyć także przeźroczystości czy też odbić światła. Możliwe jest także tworzenie dynamicznych map, których efektem mogą być np. fale na morzu. Ta metoda mappingu jest najbardziej popularna.
  • Mipmapping
    • Mipmappiing polega na użyciu różniących się wielkościowo wersji tej samej tekstury wraz ze zwiększającą się odległością. Bez tej funkcji obraz wydaje się być bardzo ostry, ale także niemiły dla oka. Zdaje nam się wtedy, że piksele migotają, co jest skutkiem tego, że na mały obszar który widzimy na ekranie przypada duża tekstura i każdy teksel na obszarze może przyjąć dużą ilość kolorów znajdującą się w określonym miejscu na teksturze. Dlatego także mipmapping jest podstawową fuknkcją, bez której oglądanie obrazów 3D staje się męczące. Na screenie tym zaznaczyłem czerwonymi miejscami dwa miejsca, aby lepiej zobrazować na czym polega mipmapping. Większy obszar pokazuje miejsce, w którym tekstura ma duży rozmiar. Wraz z oddalającymi częściami ulicy tekstury maleją. Tekstura drugiego zaznaczonego obrazu powinna być już około 6 razy mniejsza. Różne rozmiary określane są jako LOD (Level of Detail). Tekstury są pomniejszane zawsze podwójnie, czyli jeśli tekstura ma 512x512 px to jej mniejsza wersja będzie miała wielkość 256x256 px. Tekstury pomniejszane są aż do wielkości 1x1 px. Tekstury takie można robić ręcznie, lecz w czasach dzisiejszych zajmuje się tym już procesor graficzny, co bardzo ułatwia sprawę programistom.
  • Inne efekty
    • 3D clipping usuwanie części obiektu, który znajduje się poza sceną.
    • Alpha blending technika służąca do obliczania przeźroczystości każdego piksela znajdującego się na ekranie. Działa na zasadzie przypisania dodatkowej wartości Alpha każdemu pikselowi tekstury. Wartość ta mieści się w przedziale od 0 do 255 (czyli 8 bitów) przy czym pierwsza wartość oznacza brak widoczności piksela a drugi pełną jego widoczność.
    • Double buffering (podwójne buforowanie) polega na tym, że w buforze tworzony jest obraz, początkowo niewidoczny, który ma zostać za chwilę wyświetlony. Po wyświetleniu w buforze ponownie tworzony jest następny obraz.
    • Interpolacja obraz zostaje rozciągnięty do odpowiedniej wielkości, przy czym tworzone są nowe piksele o kolorach tak dobranych, aby przejście pomiędzy pikselami było jak najbardziej łagodne.
    • Shading obiekt dzieli się na wiele trójkątów. Dla każdego trójkąta nadany zostaje odpowiedni kolor, dzięki temu zakrzywiony obiekt robi wrażenie realistycznego.
    • Fog (mgła) pozwala uzyskać efekt mgły, dzięki czemu można zobaczyć bardzo realistyczne sceny. Często efekt ten używany jest także do odciążenia procesora graficznego, ponieważ nie musi on wyświetlać obiektów znajdujących się za mgłą, co jest dużo efektywniejsze.
    • HDR (High Dynamic Range) jedna z nowszych funkcji, dzięki której scena posiada bardzo realistyczne oświetlenie. Efekt końcowy jest bardzo ciekawy.