Karty graficzne
Zasada działania karty graficznej
Karta sterownika graficznego ma za zadanie zarówno wyświetlanie obrazu, jak i aktywne współuczestnictwo w jego tworzeniu, a nawet zupełne wyręczanie w tej materii glówny procesor komputera. Wyświetlaniem obrazu zajmuje się układ przetwornika RAMDAC. Odpowiednio zaprogramowany, w celu ustawienia parametrów właściwego trybu graficznego, odczytuje on zawarte w pamięci karty bajty opisujące kolory poszczególnych pikseli (to w trybach graficznych; w trybach tekstowych z pamięci czytane są kody znaków oraz ich atrybuty-kolor, migotanie, itp. -a informacja o ich wyglądzie pochodzi z generatora znaków ). Na podstawie odczytanych informacji RAMDAC generuje sygnały elektryczne sterujące monitorem. Za budowanie obrazu w pamięci karty odpowiada jej procesor-wyspecjalizowany układ scalony, zwany także akceleratorem. Na żądanie drivera ( sterownika programowego) potrafi on wykonać podstawowe i najczęściej używane operacje graficzne, np.: kreślenie odcinków, rysowanie prostokątów, wypełnianie i kopiowanie obszarów, co przyspiesza nie tylko działanie programów użytkowych, ale także-a może przedewszystkim-graficznych interfejsów użytkownika ( Windows). W praktyce nierzadko zdarza się, że akcelerator działa tylko w niektórych wyższych trybach, zaś w trybach o gorszych parametrach karta działa jako tzw. bufor ramki ( frame buffer)- wszystkie operacje graficzne wykonuje główny procesor komputera. Obraz jest wyświetlany dopiro wtedy, gdy cały jest już narysowany.
Trzecim elementem karty jest pamięć obrazu, przy czym występuje kilka jej rodzajów. Pamięć graficzna jest najczęściej widocznaw systemie jako jeden ciągły obszar ( linear frame buffer). Procesor może zatem przesyłać obrazy za pomocą normalnego odwołania do pamięci. Dawniej najczęściej spotykanym jest DRAM. Pamięć taka zwana jest pamięcią jednoportową, ponieważ zarówno zapis, jak i odczyt informacji dokonywany jest przez to samo wyprowadzenie układu. Gdy DRAM pracuje w charakterze pamięci operacyjnej komputera, takie rozwiązanie w niczym nie przeszkadza. Jednak w przypadku sterownika graficznego powoduje to konieczność dzielenia dostępu do pamięci między RAMDAC i procesorem, co zmniejsza wydajność systemu. Aby uniknąć takich konfliktów dostępu skonstruowano pamięci dwuportowe, których najczęściej spotykanym typem jest VRAM (Video Ram). Pamięci takie mają osobne wejście (dla procesora) i wyjście (dla przetwornika). Pojawiły się również inne dwuportowe pamięci dla kart graficznych nazwane WRAM ( Window RAM ), różniące się od VRAM sposobem dostępu, nieco większą szybkością. Obecnie takie układy raczej nie są już stosowane. Nie stosuje się już także układów SDRAM. Wszystkie układy wyparło DDRAM, charaktyzujące się pracą z podwójną częstotliwością.
Dawnij stosowano układy z 2,4,8,16 MB RAM na karcie. Obecnie za niezbędne minimum uważa się 64 MB. Wynika to z ciągłego postępu w dziedzinie modelowania obrazów. Oczywiście przy pracy w edytorach tekstu, bazach danych czy arkuszach kalkulacyjnych, w zupełności wystarcza 32 MB, ale producenci kart graficznych tworzą swoje najnowsze podzespoły dla graczy oraz profesjonalistów.
Po włożeniu nowej karty w slot AGP lub PCI nie ma potrzeby przestawiania żadnych zworek, gdyż wszystko jest robione automatycznie. Wszystko to powoduje że obecne karty graficzne są szybsze i mogą być wyposażone w procesory już nie tylko 32-, ale 64- i 128-bitowe, bo istnieje już możliwość szybkiego przesyłania dużej liczby danych pomiędzy procesorem i sterownikiem. Nawet najlepsza karta graficzna nie zadziła dobrze bez odpowiednich sterowników. System operacyjny nie mając zainstalowanych odpowiednich sterowników pozwoli karcie graficznej tylko na pracę w podstawowych trybach.
Układ RAMDAC we współczesnych kartach graficznych zintegrowany jest z procesorem graficznym (zestawienie procesorów graficznych). Od szybkości pracy tego układu uzależnione są rozdzielczość obrazu i częstotliwość odchylania pionowego (odświeżania obrazu). Dla przykładu: przy rozdzielczości 1280 x 1024 i przy częstotliwości odchylania pionowego 100Hz częstotliwość układu RAMDAC nie może być mniejsza niż 173 MHz.
Istotnym parametrem kart graficznych są częstotliwości generowanych przez nie impulsów synchronizacji odchylania poziomego i pionowego.
Karta graficzna poza sygnałami RGB, odpowiedzialnymi za sterowanie trzema katodami kineskopu, generuje jeszcze impulsy synchronizacji poziomej HS i pionowej VS, Które synchronizują pracę generatorów odchylania w monitorze ekranowym (tzn. inicjują początek kreślenia nowej linii lub ramki).
Częstotliwość odchylania pionowego f/VS (zwana też częstotliwością odświeżania obrazu) ma wpływ na zjawisko migotania obrazu. Im wyższa częstotliwość odchylania pionowego tym słabszy efekt migotania. Częstotliwość ta może przyjmować następujące wartości, częściowo standaryzowane: 56, 60, 65, 70, 72, 75, 80, 85, 90, 95, 100, 110, 120, 140, 144, 150, 170, 200, 240 i 250 Hz (wyświetlanych obrazów na sekundę). Standard VESA zaleca częstotliwość odświeżania ekranu wynoszącą minimum 72 Hz.
Częstotliwość odchylania poziomego monitorów wzrasta wraz z rozdzielczością, dla której monitor może wyświetlać dane. Dla rozdzielczości 800 x 600 i częstotliwości odchylania pionowego 72Hz (zalecanej przez VESA), wymagana częstotliwość odchylania poziomego wyniesie 48 kHz. Aby zapewnić rozdzielczość 1024 x 768 (przy f/VS =72 Hz), częstotliwość f/HS musi mieć wartość 58 kHz. Częstotliwość odchylania poziomego współczesnych monitorów wynosi od 30 do 94 kHz.
Karta VGA
Standardy trącone rydwanem czasu...
Aby móc powiedzieć coś na temat kart VGA należy wspomnieć o poprzednikach standardu VGA. Wszystko zaczęło się w roku 1975, kiedy to firma IBM rozpoczęła sprzedaż pierwszego komputera osobistego IBM 5100. Cały kombajn posiadał 16kB pamięci operacyjnej i potrafił wyświetlić na ekranie monitora 16 lini, a w każdej po 64 znaki. Dopiero 6 lat później w roku 1981 w sprzedaży ukazał się IBM 5150 Personal Computer (stąd IBM PC) uznawany za pradziadka dzisiejszych pecetów. Gwoli informacji w tym komputerze po raz pierwszy zastosowano szesnastobitowy procesor INTEL 8088. Tenże komputer wyposażono w zaawansowany adapter graficzny: MDA (Monochrome Display Adapter), któy wyświetlał aż(!) 25 linii, w każdej po 80 znaków na znak przeznaczając matrycę 9 na 14 pikseli. MDA wyświetlał 4 kolory: szary, biały, czarny i... podkreślenie (uznane za czwarty kolor). Jednak adapter MDA wysyłał cyfrowy sygnał i wymagał specjalnych monochromatycznych monitorów TTL. Monitory te niekoniecznie potrafiły wyświetlać tylko kolory czarny i biały. Spotykano monitory zielono-czrne, oraz bursztynowo-czarne. Komputer IBM PC miał otwartą architekturę. Wszystkie jego komponenty miały postać kart rozszerzeń w standardzie ISA. Takżę MDA był kartą ISA
Niebawem po premierze swojego PC, IBM zaproponował kolorową kartę graficzną CGA (Color Graphics Adapter), któa poza trybem tekstowym zaoferowała także tryb graficzny.
Za standard przyjął się wówczas tryb 320 x 200 przy 4 kolorach. Kolory można było wybrać zestawami:
- pierwszy - biały, czarny, różowy i jasno niebieski
- drugi - żółty, czarny, zielony i czerwony
CGA oferował także tryb wysokiej rozdzielczości 640 x 200, jednak tylko w dwóch kolorach czarnym i białym.
W roku 1982 powstał Hercules Graphic Controller (HGC) czyli poprostu Hercules. Oferował tryb tekstowy znany z MDA (80 x 25 znaków) oraz tryb graficzny 720 x 348, oczywiście monochromatyczny. Nie potrafił generować innych kolorów, tak jak CGA, jednak nad CGA miał przewagę w pełnej zgodności z MDA. Jednak na rynku pojawiło siędużo aplikacji przeznaczonych dla CGA, a Hercules nie był zgodny z CGA na poziomie sprzętowym, ktoś sprytny napisał jednak programy emulator CGA dla HGC. Oczywiście bez możliwości wyświetlenia kolorów znanych z CGA.
W 1984 narodził się przyzwoity jak na tamte czasy standard EGA (Enchanced Graphics Adapter). Był on zgodny z MDA i CGA wprowadzając jednocześnie tryby 320 x 200 i 640 x 350, z wyświetlaniem 16 kolorów dostępnych z palety 64-kolorowej. EGA była także cyfrową kartą graficzną wymagającą monitorów TTL.
W roku 1987 pojawiła się karta PGA oferująca tylko jeden tryb: 640 x 480 przy 256 kolorach. Mimo takich możliwości karta nie przyjęła się na rynku i szybko odeszła w zapomnienie.
Narodziny VGA
Parametry, które oferowała karta EGA, zdecydowanie zwiększały walory użytkowe komputera z kolorowym monitorem, w stosunku do parametrów karty CGA. Nadal jednak nie był to sprzęt o cechach, które pozwalałyby na prowadzenie prac projektowych wspomaganych komputerem (CAD). Do tego celu miedzy innymi opracowano kartę VGA (ang. Video Graphics Array). Była ona zgodna ze standardami CGA, MDA i EGA (ale nie Hercules!). Oryginalna karta VGA może pracować w wielu trybach graficznych, np.: 16 kolorów z rozdzielczością 640 x 480 punktów (tryb 12) lub 256 kolorów z rozdzielczością 320 x 200 punktów (tryb 13). Możliwość uzyskania tak szerokiej liczby palety kolorów (256K=262144) wynika z faktu, iż karta VGA wyposażona jest w konwertory C/A. Karta VGA wymaga współpracy z monitorami o specjalnych parametrach: częstotliwości odchylenia poziomego równej 31,5 kHz, wejść analogowych RGB, itd
Zasadę pracy karty ilustruje poniższy rysunek.
Pamięć obrazu RAM podzielona jest na cztery mapy bitowe (ang. Bit Planes) po 64 KB każda. Czterobitowa informacji CO - C3 wybiera jeden z 16 rejestrów palety. Rejestry te (podobnie jak w EGA) zawierają 6-bitowe numery kolorów (R'G'B'RGB). W ośmiu pierwszych rejestrach znajduje się informacja o następujących kolorach: w rej. 0 - kolor czarny (R'G'B'RGB = 000000), rej 1 - kolor niebieski (000001), rej. 2 - kolor zielony (000010), rej. 3- kolor cyan (000011), rej. 4 - kolor czerwony (000100), rej. 5 - kolor purpurowy (000101), rej. 6 - kolor brązowy (000110), rej. 7 - kolor biały (000111). W rejestrach o numerach 8-15 znajdują się te same kolory w wersji rozjaśnionej (na pozycjach R'G'B' w rejestrach 8 - 15 ustawione są jedynki logiczne). Sześciobitowa kombinacja (R'G'B'RGB = P5, P4, P3, P2, P1, P0) wybranego rejestru palety (zaadresowanego bitami C0 - C3) adresuje 1 z 64 rejestrów z zestawu 256 rejestrów 18-bitowych w jakie wyposażony jest VIDEO - konwerter cyfrowo - analogowy (ang. VIDEO-Digital-to-Analog Converter, VIDEO-DAC). Każdy rejestr tego zestawu podzielony jest na trzy 6-bitowe części. Pierwsza część zawiera informacje o kolorze czerwonym, druga - o zielonym, trzecia - o niebieskim. Każdy więc podstawowy kolor opisany jest za pomocą 6 bitów, co pozwala (po konwersji w przetwornikach DAC) uzyskać 64 poziomy napięć sterujących każdą katodą RGB.
Dzięki temu na ekranie można uzyskać 64 poziomy nasycenia każdego podstawowego koloru (RGB), co po zmieszaniu daje 64*64*64 = 262144 kolory. Oczywiście w trybie EGA można wybrać maksymalnie 16 z 262144 kolorów. Sześciobitowa informacja binarna na wejściu przekształcana jest na jeden z możliwych 64 poziomów napięcia na wyjściu układu, sterujących jedną z katod RGB. Zapewnia to 64 odcienie podstawowego koloru RGB.
W trybie 13 VGA (patrz tablica) każdemu punktowi na ekranie przyporządkowano 1 bajt pamięci obrazu RAM. Bajt ten wyczytany z pamięci i przesłany poprzez rejestry palety (bity P0, P1, P2, P3) oraz Rejestr Wyboru Kolorów (bity P4, P5, P6, P7) na wejście konwertera VIDEO-DAC, adresuje 1 z 256 rejestrów 18-bitowych. W rejestrach tych zawarte są 6-bitowe informacje o podstawowych kolorach. W trybie 13 VGA może więc uzyskać na ekranie 256 z 262144 możliwych kolorów. Karta VGA zawiera specjalizowany układ scalony tzw. Video Graphics Controller, zawierający kontroler CRT, kontroler graficzny, kontroler atrybutów i układy sekwencyjne.
Uproszczony schemat blokowy karty VGA ilustruje powyższy rysunek. Karta posiada pamięć dynamiczną obrazu RAM o pojemności 256 KB. Tego typu pamięć charakteryzuje się multipleksowym wyprowadzaniem adresu ze względu na mała liczbę wyprowadzeń. Adres z kontrolera jest podawany za pomocą magistrali MD w dwóch fazach: część adresu (dla RAS=0 - ang. Row Address Strobe) jest wpisywana do rejestru adresowego wierszy wewnątrz pamięci, a pozostała (dla CAS=0 - ang. Column Address Strobe) do rejestru adresowego kolumn. W ten sposób, za pomocą ośmiu linii (np. MD0-MD7) można przesłać 16-bitowy adres. Po przesłaniu adresu, magistrala MD wykorzystywana jest do przesłania danych (za pomocą magistrali MD0 - MD31 można jednocześnie przesłać 4 bajty danych z/do 4 bloków pamięci). Graficzny kontroler scalony generuje również impulsy synchronizacji poziomej HS i pionowej VS oraz steruje pracą konwertera VIDEO-DAC (liniami P0 - P7 adresuje 1 z 256 rejestrów wewnętrznych DAC, natomiast linią PCLK - Pixel Clock dostarcza impulsów zegarowych). Karta VGA połączona jest z procesorem za pomocą 19-bitowej magistrali adresowej i 8-bitowej magistrali danych. W trybie tekstowym rolę generatora znaków pełni blok pamięci RAM oznaczony na rysunku symbolem PLANE 2. Blok ten ładowany jest przez system BIOS kilkoma zbiorami znaków o różnych krojach. Na rysunku 11 pokazano również uproszczony schemat blokowy scalonego sterownika VIDEO-GRAPHICS CONTROLLER. Układ ten zawiera kontroler CRT, do którego zadań należy adresowanie pamięci RAM podczas odświeżania ekranu. Magistralą MEMORY ADDR. (MA) poprzez multiplekser adresowy wysyłany jest adres, który za pomocą MD0-MD31 wybiera żądaną komórkę w pamięci RAM.(256 KB). Kontroler CRT generuje również impulsy synchronizacji VS i HS. Dane odczytane z pamięci obrazu, ładowane są za pomocą układów odczytu RAM do rejestrów R.Latch.
W trybie tekstowym rolę generatora znaków pełni blok pamięci PLANE 2. Dane z tego bloku magistralą MD16 - MD23 poprzez rejestry R.Latch (uzupełniane w układach Blink-Logic i Cursor-Logic o informację o migotaniu znaku i sposobie wyświetlania kursora) ładowane do rejestru przesuwnego, skąd przesyłane są szeregowo na jedno z wejść adresowych multipleksera atrybutów (S0). Multiplekser ten wykorzystuje trzy wejścia 4-bitowe, adresowane sygnałami S1 i S0. Gdy sygnał S1=0 (tryb tekstowy), szeregowa informacja z rejestru przesuwnego poprzez wejście S0 adresuje jedno z dwu wejść: 00 lub 01 multipleksera. Na wejścia te podawany jest kod atrybutu (informacja o kolorze znaku - na wejście 01, natomiast na wejście 00 - informacja o kolorze tła). Na wyjściu multipleksera atrybutów pojawi się więc na przemian informacja o kolorze znaku lub tła, w zależności od wartości bitu na wejściu S0.
W trybie graficznym dane wyczytane z pamięci RAM przesyłane są magistralą MD0 - MD31 do rejestrów przesuwnych grafiki (R0 - R3), w których następuje zamiana na postać szeregową. Cztery bity C0 - C3 z wyjść szeregowych rejestrów, przesyłane są na wejście 1X multipleksera atrybutów. Wejście to adresowane jest bitem S1 (GRAPH = "1") dla trybu graficznego. Wyjście multipleksera atrybutów adresuje jeden z 16 rejestrów 6-bitowych. W trybie EGA na wyjściach P0 - P5 pojawia się zawartość wybranego rejestru. W trybie VGA tylko cztery bity P0 - P3 pobierane są z rejestrów palety. Pozostałe P4 - P7 pochodzą z rejestru wyboru kolorów. Bajt P0 - P7 adresuje jeden z 256 rejestrów w zewnętrznym konwerterze VIDEO-DAC. W trybach kolorowej grafiki CGA (numery trybów - 4 i 5) do przechowywania informacji o obrazie, wykorzystywane są tylko dwie mapy bitowe: PLANE 0 i PLANE 1; stąd też użyte będą tylko dwa rejestry przesuwane grafiki R0 i R1; pojawią się więc tylko dwa sygnały C0 i C1, które mogą zaadresować cztery pierwsze rejestry palety. Zawartości tych rejestrów adresują 4 spośród 256 rejestrów konwertera VIDEO-DAC. Na ekranie możemy więc uzyskać tylko cztery kolory z 262144 możliwych. W trybie graficznym numer 7 informacja o treści obrazu przechowywana jest w jednej mapie bitowej PLANE 0. W trybach graficznych D, E, 10 i 12 (Hex) do przechowywania treści obrazu wykorzystywana jest cała pamięć RAM (wszystkie cztery mapy bitowe), co pozwala czterema bitami C0 - C3 zaadresować 16 rejestrów palety i tym samym uzyskać 16 kolorów na ekranie. W trybie 13 H pozwala uzyskać aż 256 kolorów , gdyż każdemu elementowi obrazu przypisano bajt danych w pamięci RAM. Bajt ten przesyłany jest z pamięci w następujący sposób: cztery młodsze bity (P0 - P3) pochodzą z rejestrów palety (w trybie tym zawartości rejestrów równe są ich numerom); cztery starsze bity (P4 - P7) przesyłane są poprzez rejestr wyboru kolorów.
Tryb 13 H przy 256 kolorach na ekranie, zapewnia rozdzielczość 320x200 punktów. Aby tę rozdzielczość poprawić należy użyć pamięci o mniejszym czasie dostępu. Czas wyświetlania jednego elementu obrazu (punktu) wynosi ok. 39 ns, przy rozdzielczości 640 punktów w linii. Ponadto należy zwiększyć pojemność pamięci obrazu. Karty VGA mogą również współpracować z monitorami monochromatycznymi typu Mono-VGA. Dzięki temu, na ekranie można uzyskać 64 poziomy szarości. Do sterowania takim monitorem wykorzystywane jest wyjście analogowe G karty VGA (sygnał intensywności koloru zielonego). Oczywiście, w tym przypadku niezbędna jest korekcja zawartości rejestrów przetwornika VIDEO-DAC. Korekcja ta polega na wyliczeniu ważonej sumy intensywności kolorów podstawowych RGB, zgodnie ze wzorem:
Poziom szarości=0,3R+0,59G+0,11B
Karta VGA była ostatnią uznaną kartą za tzw. standard przemysłowy. Parametry tej karty szybko przestały wystarczać użytkownikom, wobec powyższego wiele firm rozpoczęło produkcję kart oferujących coraz wyższe rozdzielczości i coraz szerszą paletę kolorów. Karty te (zwane popularnie kartami SVGA) pracują we wszystkich trybach oryginalnej karty VGA i posiadają ponadto dodatkowe niestandardowe tryby pracy. Mogą mieć od 256 KB do kilkunastu MB własnej pamięci RAM. Karta z pamięcią o pojemności 1 MB może wyświetlać obraz o rozdzielczości 1024 x 768 w 256 kolorach lub 1280 x 1024 w 16 kolorach.
Do obliczania wymaganej pojemności pamięci obrazu karty graficznej wykorzystje się wzór:
Gdzie:
X max - maksymalna liczba punktów (pixeli) współrzędnej poziomej
Y max - maksymalna liczba punktów (pixeli) współrzędnej pionowej
Spróbujmy obliczyć niezbędną minimalną pojemność pamięci karty graficznej o wymaganej rozdzielczości 1024 x 768 i 256 kolorach, zgodnie z powyższym wzorem:
Aby uzyskać te parametry karta musi być wyposażona w 1 MB pamięci. Tabela prezentuje zalecane pojemności pamięci dla wymaganych rozdzielczości i liczby kolorów
Współczesne karty graficzne
Wszystkie karty graficzne można podzielić na dwie główne grupy:
- Pierwsza z nich, to kary zajmujące się wyłącznie wyświetlaniem danych przetworzonych przez główny procesor komputera; są to tzw. bufory ramki (ang. Frame Buffers); do grupy tej należą karty omówione wcześniej (EGA i standardowa VGA).
- Druga grupa to tzw. akceleratory (ang. Accelerators), które zawierają specjalizowany układ scalony (tzw. procesor graficzny) wykonujący kilka podstawowych funkcji graficznych, takich jak kreślenie linii, wypełnianie zamkniętych obszarów, obcinanie obrazu do okna mieszczącego się na ekranie, sprzętowa obsługa kursora, adresowanie liniowe, wypełnianie wielokątów, operacje rastrowe itp.
Zanim przejdziemy do omawiania szczegółowo wspólczesnych kart warto zapoznać się z kilkoma pojęciami.
Akceleratory 3D
Od paru lat obserwujemy gwałtowny postęp w dziedzinie ogólnodostępnych i tanich akceleratorów grafiki. Nie da się ukryć, że zmianę tę zapoczątkowały dwa rodzaje oprogramowania: graficzne systemy operacyjne, oraz gry komputerowe. Bowiem w zastosowaniach profesjonalnych, gdzie cena nie ma znaczenia, szybkie układy dostępne były już dawno a rozwiązania w nich stosowane z czasem przechodziły do zwykłych produktów z przedziału ok. 1000 złotych.
Skok w trzeci wymiar
Zmiany jakościowe, jakie nastąpiły na polu programów graficznych a szczególnie gier związane były początkowo z rozwojem sprzętu, jednak obecnie wydaje się, że to nowe programy wymuszają powstawanie specjalistycznych rozwiązań, a nie na odwrót. Początkowo gry bazowały na płaskiej, dwuwymiarowej grafice. Wszelkie rysowane obiekty były jednoznacznie określone współrzędnymi x i y. Podczas przetwarzania danych w dwóch wymiarach najczęściej wykonywane były funkcje odpowiedzialne za przenoszenie odpowiednich bitmap z jednego obszaru pamięci w inny. Dodatkowo bitmapy te można było wzbogacić różnymi efektami specjalnymi związanymi np.: z paletą kolorów. Można też było używając odpowiednich masek bitowych dokonywać prostych transformacji. Operacje na takich elementach graficznych były i są proste, nie wymagają ogromnych mocy obliczeniowych (przynajmniej jak na dzisiejsze komputery). Niestety, w środowisku 3D sprawy znacznie się komplikują. Tutaj każda wyświetlana ramka wymaga przeglądnięcia i odpowiedniego przetworzenia bazy modelowanych obiektów. W przypadku grafiki dwuwymiarowej wystarczała ingerencja tylko w ten obszar pamięci obrazu, gzie następowała zmiana np.: położenia obiektu. W środowisku 3D prosta zmiana położenia obiektu powoduje konieczność przetworzenia dużo większej ilości informacji, niekiedy przebudowania całej trójwymiarowej sceny. Związane jest to zarówno z obecnością dodatkowych atrybutów, takich jak oświetlenie (cieniowanie) oraz z samym sposobem przechowywania modelowanych obiektów w tzw. Z-buforze. Transformacja geometrii modelowanego świata, wyznaczenie nowych współrzędnych x, y, z pozwala dopiero na wygenerowanie odpowiedniego obrazka.
Przetwarzanie scen 3D - ukrywanie niewidocznego
Szybkie rysowanie trójwymiarowych, skomplikowanych obiektów wymaga przetworzenia ich do postaci, w której będą mogły być rysowane i zrozumiałe dla akceleratorów 3D. Podstawowym obiektem jaki może być przekształcany i wyświetlany na ekranie monitora, jest wielokąt (polygon) lub trójkąt, jako że każdy wielokąt można podzielić na trójkąty. Przekształcanie bardziej skomplikowanych obiektów do postaci trójkątów nosi nazwę triangulacji. Podczas wyświetlenia obrazu przedstawiającego pewien fragment trójwymiarowego środowiska program, czy też odpowiedni akcelerator musi zadecydować, który obiekt lub jego część jest zasłonięta, a która widoczna. Pozwala to już na początku zminimalizować liczbę odpowiednich obliczeń niezbędnych do wykonania w następnych etapach. Trójkąty, które zostaną utworzone na etapie triangulacji są odrzucane, jeśli nie znajdują się w polu widzenia kamery (culling) lub jeśli są odwrócone tyłem do kamery (back face culling). Następnie są przycinane do krawędzi ekranu (clipping).
Większość istniejących obecnie rozwiązań bazuje na wspomnianym wcześniej pomyśle Z-bufora. Obiekty 3D budowane są zazwyczaj z dużej liczby trójkątów, co w zupełności wystarcza do modelowania bardziej złożonych obiektów. Wybranie trójkąta jako elementarnego wielokąta, z którego składane są większe figury ma tę zaletę, że umożliwia w miarę proste teksturowanie i cieniowanie. Projekcja takiego trójwymiarowego świata polega w dużym przybliżeniu polega na takim rysowaniu trójkątów lub ich części, żeby na ekranie wyświetlone były elementy znajdujące się bliżej obserwatora, natomiast elementy ukryte za nimi zostały zignorowane. Najczęściej, żeby to zrealizować, do informacji o kolorze każdego punktu dodaje się dodatkową informację oznaczoną jako Z. Wartość ta, zwana głębokością, informuje o położeniu w trzecim wymiarze związanego z nią piksela. Jej istnienie pozwala stwierdzić, który z punktów (należących do różnych wielokątów) o tych samych współrzędnych xy ma być narysowany.
Jak łatwo zauważyć Z-bufor zużywa dużo dodatkowej pamięci: dodatkowa informacja o głębokości, nawet w swym najmniejszym 8-mio bitowym wariancie zajmie całkiem sporo pamięci, gdy tylko ilość punktów obrazu będzie duża. Szczególnie w połączeniu z pełnym 24-bitowym formatem RGB 888 (po 8 bitów na kolor) otrzymamy łącznie 32 bity na piksel. W przypadku formatu 565 (po 5 bitów na czerwony i niebieski oraz 6 na zielony) można zastosować bardziej precyzyjny opis głębokości przeznaczając na niego 16 z 32 bitów. Dostępne na rynku akceleratory umożliwiają współpracę także z 24 bitowym Z-buforem oraz różnymi formami reprezentacji kolorów. Obok Z-bufora istnieją inne metody przechowywania informacji o trójwymiarowych obiektach polegające na przykład na rozdzieleniu wszystkich modelowanych elementów i posortowaniu ich według głębokości. Wadą tej metody jest zwiększone zapotrzebowanie na moc obliczeniową potrzebną na podział i sortowanie kompleksów wielokątów.
Teksturowanie
Następną fazą tworzenia obrazu jest oświetlenie i pokrycie teksturami każdego trójwymiarowego obiektu. Proces nakładania tekstur (texture mapping) to jeden z podstawowych efektów stosowanych w grafice trójwymiarowej. Dzięki niemu bezbarwne zarysy obiektów stają się realistycznymi przedmiotami. Zamiast modelować skomplikowane obiekty aż do najdrobniejszych szczegółów, co pochłania dużo czasu i miejsca w pamięci, proste, bezbarwne bryły geometryczne pokrywa się dwuwymiarowymi bitmapami nadając im żądany wygląd. Sięgnijmy po przykład: aby przedstawić na ekranie wieżowiec widziany z zewnątrz, wystarczy zwykły prostopadłościan i po jednej teksturze do zrzutowania na każdą z pięciu ścian budynku (jeśli chcemy by ściany różniły się).
Tekstury są zazwyczaj normalnymi obrazami 2D, służącymi do efektownego dekorowania przestrzennej scenerii oraz do nadania jej realistycznego wyglądu. W typowych scenach 3D są to bitmapy, służące pokrywaniu np.: sufitów, podłóg, drzwi, okien i innych przedmiotów. Są one przechowywane w specjalnie do tego celu wydzielonym obszarze pamięci (tzw. pamięci tekstur) i na ich podstawie tworzone są teksele (TEXELS), czyli poszczególne piksele pochodzące z mapy bitowej tekstury. Właśnie teksele są używane do teksturowania każdego punktu zanim zostanie on umieszczony w buforze wyświetlacza (frame buffer). Zależnie od użytej techniki pokrywania teksturami, liczba tekseli potrzebnych do wyświetlenia wyjściowego piksela jest różna. Na przykład najprostsza metoda, tak zwane punktowe dobieranie tekstur (point sample texturing), używa pojedynczego teksela z danej bitmapy, co daje dobre przybliżenie pojedynczego wyjściowego piksela. Nie wymaga też dużo obliczeń, dzięki czemu można osiągnąć dobrą wydajność, bez konieczności uciekania się do rozwiązań sprzętowych. Zasadniczą wadą tej metody jest to, że ten sam pojedynczy teksel może zostać użyty do pokrycia kilku wyjściowych pikseli. Ostatecznym efektem jest bardzo nieprzyjemny wygląd obiektów w zbliżeniu. Objawia się to "wielkimi kwadratami", które pojawiają się np. przy patrzeniu z bliska na ściany pomieszczeń w grach 3D. W bardziej zaawansowanych technikach teksturowania wykorzystuje się interpolację. Pomiędzy kilkoma tekselami oblicza się w przybliżeniu ich wartości, co pozwala otrzymać lepsze przybliżenie tekstury dla wyjściowego piksela. Szeroko obecnie stosowana technika bilinearnego teksturowania, używa czterech wybranych tekseli do obliczenia wyjściowej wartości piksela. Rezultatem tej techniki jest efekt rozmycia bitmapy pokrywającej wielokąt oraz całkowite odfiltrowanie efektu "wielkich pikseli". Wadą bilinearnego filtrowania tekstur jest czterokrotny wzrost ilości przesyłanych informacji z pamięci.
Inną zaawansowaną techniką jest MIP mapping. Zamiast obliczać na bieżąco interpolowane wartości, postanowiono przechowywać gotowe, dokładniejsze wersje tekstur (MIP map), które są podstawiane w miejsce mniej dokładnych bowiem im większa jest odległość pomiędzy obserwatorem a obiektem, tym mniej dokładny musi być wygląd tekstury pokrywającej ten obiekt. Program nie zleca jednak realizacji takiego efektu chipowi graficznemu, lecz przekazuje mu już obliczone, nieostre tekstury, odpowiadające różnym odległościom od obserwatora. Na podstawie położenia obiektu chip samodzielnie decyduje, którą teksturę należy wykorzystać. MIP mapping pozwala prawidłowo odwzorowywać obiekty niezależnie od tego, jak daleko znajdują się od obserwatora Skrót MIP pochodzi od łacińskiego zwrotu "multum in parvo" (wiele w małym) i oznacza, że do wizualizacji wykorzystuje się tekstury o różnym stopniu rozdzielczości. Nim trafią do mechanizmu skalującego zaimplementowanego w procesorze graficznym, są one poddawane skalowaniu wstępnemu w wysokojakościowym programie graficznym. Procesorowi graficznemu pozostaje dokonanie marginalnych przeróbek. W następstwie zmniejsza się liczba błędów występujących przy powiększaniu i zmniejszaniu tekstur. Obiekty wyglądają bardziej realistycznie, a wizualizacja odbywa się nieco szybciej. Oprócz tego MIP mapping eliminuje powstawanie niepożądanych, poząbkowanych linii, które nie występują na teksturach źródłowych. Dlatego też efekt ten zalicza się do technik anti-aliasingu. W praktyce stosowane są także różne kombinacje zaprezentowanych technik. Na przykład tzw. linear MIP mapping wykorzystuje liniowe filtrowanie tekstur dla odpowiednich MIP map.
Dla dwóch MIP map użyte zostaną dwa teksele (po jednym z każdej) dla wyjściowego piksela. Możliwe jest także stosowanie bilinearnej interpolacji w jednej z MIP map oraz liniowego teksturowania w drugiej. Aby przeprowadzić taką operację, dla każdego wyjściowego piksela zostanie pobranych pięć tekseli. Alternatywną i bardziej złożoną metodą jest bilinearna interpolacja dla obydwu MIP map, co wymaga aż ośmiu punktów pobranych z bitmap dla jednego punktu wyświetlanego na ekranie. Metoda ta często nazywana jest trilinearnym filtrowaniem tekstur.
Więcej światła
Układy graficzne obliczają także rozkład oświetlenia obiektów. Wykorzystywane w tym celu techniki to: flat oraz Gouraud. Cieniowanie powierzchni metodą Gourauda powoduje, że modelowane obiekty nie sprawiają wrażenia kanciastych jak, spotykane w prostych animacjach i grafice komputerowej. Przyczyną tworzenia nierównych powierzchni jest stosowanie prymitywnych algorytmów do modelowania oświetlenia. Najbardziej trywialnym jest tzw. Cieniowanie płaskie (flat shading), gdzie każdemu wielokątowi przypisuje się tylko jeden stopień jasności na całej jego powierzchni. Modelowanie oświetlenia w opisany sposób jest bardzo szybkie i ekonomiczne, lecz ma zasadniczą wadę: bardzo uwydatnia kontury wielokątów. Tymczasem w renderingu Gourauda stopień jasności jest obliczany dla każdego wierzchołka wielokąta, a natężenie oświetlenia dla reszty powierzchni wyznacza się za pomocą aproksymacji. Dzięki temu obiekty wydają się gładsze (brak "skoków" pomiędzy barwami), a zarysy poszczególnych wielokątów stają się niewidoczne. Podsumowując: w przypadku efektu flat cała powierzchnia trójkąta ma jednakową jasność, która jest obliczana tylko na podstawie jego nachylenia do źródła światła. Cieniowanie Gouraud'a jest stosowane wtedy, gdy układ cieni ma podkreślić zaokrąglenie obiektu.
Innym rodzajem cieniowania jest metoda Ditheringu, która to odpowiedzialna jest za zacieranie ostrych przejść pomiędzy następującymi po sobie barwami. Bezstopniowe cieniowanie można uzyskać tylko przy 24-bitowej reprezentacji kolorów, czyli przy 16,7 milionach barw. Mniej więcej taką głębię kolorów rozróżnia bowiem ludzkie oko. Im mniej kolorów, tym bardziej widoczne są różnice między nimi. Lecz z drugiej strony bogata paleta barw pochłania dużo miejsca w pamięci, a jej przetwarzanie trwa dłużej. Dithering pozoruje istnienie znacznie większej liczby kolorów niż to ma miejsce w rzeczywistości. Wykorzystuje w tym celu fakt, że oko człowieka ma ograniczone zdolności percepcyjne względem rozdzielczości: gdy piksele są tak blisko siebie, że oko postrzega je jako jeden, algorytm ujednolica intensywność ich barw.
Aby zasymulować odbijanie się sceny na powierzchni obiektów o właściwościach jak dla zwierciadeł stosuje się Environment mapping. Dzięki niemu niebo odbija się na powierzchni szyby, co pozwala tworzyć znacznie bardziej realne obrazy. W odróżnieniu od nakładania stałych tekstur wygląd powierzchni lustrzanych jest dopasowywany do środowiska, na przykład: gdy samochód zwalnia, również chmury odbijające się w tylnej szybie pojazdu "przesuwają" się odpowiednio wolniej. A gdy wjedzie do tunelu, na szybie zamiast chmur pojawi się odbite światło lamp usytuowanych pod sklepieniem tunelu - także tym razem tekstura zmienia się zależnie od prędkości pojazdu. Dzięki nakładaniu dynamicznych tekstur będących odbiciem środowiska, animacja staje się nie tylko żywsza, lecz także bardziej realistyczna.
Efekt zwany Alpha blending pozwala wizualizować (także częściowo) przezroczyste obiekty, także jak woda czy szkło By teksel - czyli piksel tekstury - wyglądał jak prześwitujący, oprócz standardowych informacji dołącza się jeszcze jedną - tzw. kanał alfa (alpha-channel). Obok kolorów czerwonego, zielonego i niebieskiego (RGB) programista ma zatem do dyspozycji dodatkowy parametr alfa (RGBA). Najczęściej stosuje się format RGBA 4444, co oznacza, że każdy parametr jest przetwarzany z dokładnością czterech bitów. Umożliwia to precyzyjną reprezentację przezroczystości - no i poszczególnych kolorów składowych - w szesnastu stopniach.
Jednym z ostatnich, ale jakże ważnych efektów jest korekcja perspektywy (perspective correction). Zapobiega ona zniekształceniom teksturowanych obiektów, które prowadzą z pierwszego na dalszy plan trójwymiarowej sceny. Oderwane od realiów "powyginane" powierzchnie powstają w sytuacjach, gdy tekstury pokrywające dany wielokąt są skalowane względem jednego czynnika. Przyczynia się to do powstawania absolutnie nierealnych powiększeń tekstur między poszczególnymi wielokątami. Rozwiązanie jest dość proste, aczkolwiek szalenie intensywne: tekstury znajdujące się w tyle muszą mięć mniejszy poziom szczegółów niż te z przodu. Właśnie to realizuje korekcja perspektywy. Pojedyncze tekstury są skalowane we właściwej perspektywie zależnie od kąta widzenia i odległości danego obiektu od obserwatora.
Po oświetleniu i nałożeniu tekstur na wielokąty, często chcemy zasymulować dodatkowo takie parametry obiektu jak gładkość czy też porowatość. Żeby osiągnąć wybrany efekt nie używa się jednak dodatkowego modelowania porowatej powierzchni, gdyż mogłoby to się okazać zbyt skomplikowane obliczeniowo. W rzeczywistości modyfikowana jest jedynie intensywność oświetlenia poszczególnych pikseli, co pozwala stworzyć iluzję np. gładkiej powierzchni. W przeciwieństwie do Z-buforowania i teksturowania, operacja cieniowania nie wymaga dodatkowego dostępu do pamięci.
Po przeprowadzeniu powyższych operacji, odpowiednio spreparowany piksel może zostać zapisany do bufora wyświetlacza (frame buffer), jednak w przypadku gdy wielokąt jest w jakimś stopniu przezroczysty, poprzednia wartość tego samego piksela musi najpierw zostać odczytana z bufora wyświetlacza, odpowiednio przetworzona z nową i dopiero wtedy wpisana na miejsce. Tak generowany jest pojedynczy trójwymiarowy obrazek. Jak widać jest to dość skomplikowany proces, wymagający dużej mocy obliczeniowej.
Zaprezentowane powyżej metody są konwencjonalnymi sposobami generowania obrazu 3D. Producenci dedykowanych sprzętowo akceleratorów często nieco modyfikują algorytmy (najczęściej po prostu je upraszczają), dostosowując w ten sposób do specyficznych cech własnych produktów. Pomimo tego w obecnie spotykanych rozwiązaniach bazuje się na opisanych trzech etapach tworzenia obrazu 3D: usuwaniu niewidocznych elementów, pokrywaniu teksturami oraz cieniowaniu.
Superskalarny procesor potokowy
Specjalizowany procesor obsługujący grafikę 3D jest realizowany w charakterystycznej dla konstrukcji RISC architekturze potokowej. Dzięki rozłożeniu bardziej skomplikowanych instrukcji na kilka faz potoku (tzw. kolejek), w każdym cyklu zegara zostaje zakończone wykonywanie kolejnej instrukcji, a zatem, patrząc od zewnątrz, procesor wykonuje w jednym cyklu zegara co najmniej jedną instrukcję, podczas gdy faktycznie instrukcja wykonywana jest w kilku fazach kolejki, zajmując kilka cykli zegarowych. Długość kolejki określa maksymalną złożoność realizowanych przez procesor instrukcji - im dłuższa kolejka, z tym większej liczby operacji może się składać pojedyncza instrukcja. W procesorach uniwersalnych długość kolejki w potoku przetwarzania jest ograniczona kompromisem między wynikającą ze złożoności operacji "siły" poszczególnych instrukcji a prawdopodobieństwem występowania rozgałęzień (skoków i instrukcji warunkowych) w programie. Zbyt długi potok pociągałby za sobą obniżenie wynikowej wydajności ze względu na utratę danych zawartych w kolejce podczas wykonywania instrukcji warunkowych i skoków stąd maksymalna długość kolejki w procesorach uniwersalnych sięga 32 faz.
W procesie konstrukcji i przetwarzania grafiki obrabiany jest ciągły strumień danych, bez skoków i rozgałęzień. Pozwala to na prawie nieograniczone wydłużanie potoków, dzięki czemu procesor jest w stanie realizować nawet bardzo złożone instrukcje, zawierające dziesiątki elementarnych operacji; dlatego też kolejki wykonawcze procesorów graficznych mają nawet 128 faz operacji.
Kolejnymi sposobami zwiększania wydajności są: wydłużanie przetwarzanego słowa i tworzenie równoległych potoków przetwarzania. Niestety nie oznacza to proporcjonalnego zwiększenia wydajności, przykładowo podwojenie długości słowa z 64 na 128 bitów nie podwaja osiągów, jest wręcz nieopłacalne. Pomimo to producenci idą na całość montując - 128 bitowe słowo jest podstawą ale nikt nie planuje wydłużania go. Wynika to przede wszystkim z faktu, że podstawową jednostką przetwarzanych danych jest 32 bitowy piksel, zaś równoległa obróbka większej liczby pikseli zwiększa wydajność ale kosztem jakości obrazu.
Jeszcze jedną popularną techniką zwiększania wydajności procesorów jest zwielokrotnienie potoków przetwarzania, czyli superskalarność. Zdaje się ona nie mieć ograniczeń i stwarza dodatkowe możliwości takie jak np. usprawnienie filtrowania tekstur dzięki korekcie międzypikselowej, czyli uwzględnieniu wpływu optycznego pomiędzy sąsiednimi pikselami. Niestety na razie nikt nie wyszedł poza 2 równoległe potoki i chyba nieprędko to nastąpi, gdyż powierzchnia chipów graficznych osiągnęła granicę opłacalności, a niestety od powierzchni układu zależy prawdopodobieństwo napotkania defektu podczas produkcji.
Ewolucja i relikty minionej epoki 
Jeszcze do nie dawna za absolutny megahit w dziedzinie kart graficznych uważano akcelerator firmy 3Dfx VooDoo, był to początek roku 1997. Warto przypomnieć iż była to osobna karta do instalacji na płycie głównej, współpracująca z zainstalowaną kartą grafiki i połączona z nią kablem. Zaimplementowano na niej 4 MB pamięci RAM a procesor VooDoo pracował z częstotliwością 60 MHz. Dziś w roku 2003 królem grafiki 3D jest procesor firmy ATI - R300 znany pod handlową nazwą RADEON 9700. Kombajn ten pracuje przy częstotliwości nieco ponad 300MHz, a jej RAM w technologii DDR liczony jest na 256 MB i taktowany zagarem 310 MHz, co umożliwia układowi przepływność ponad 20GB/s. Natomist zastosowane złącze przystosowane do AGP 8x pozwala na uzyskanie przepływności rzędu 2,1 GB/s
Dodatkowe funkcje kart graficznych
Większość współczesnych kart graficznych wyposażanych jest w dodatkowe układy, umożliwiające współpracę z odbiornikiem TV, magnetowidem i kamerą. Jednym z tych układów jest dekoder, służący do zamiany analogowego sygnału Video (pochodzącego np. z kamery lub magnetowidu) na sygnał cyfrowy; drugi natomiast, zwany enkoderem, realizuje funkcję odwrotną - zamienia sygnał cyfrowy obrazu (wytworzony przez procesor graficzny karty) na sygnał analogowy.
Dekoder (ang. Video Decoder) realizuje zamianę sygnału analogowego, wg standardu S-Video i Composite Video, pochodzącego z odbiornika TV, kamery lub magnetowidu, na sygnał cyfrowy wg standardu YUV. Enkoder (ang. Video Encoder) realizuje funkcje odwrotną - zamienia sygnał cyfrowy YUV (wytworzony przez procesor graficzny), na sygnał analogowy (wg standardu S-Video i Composite Video), umożliwiający wyświetlanie obrazu za pomocą odbiornika TV lub zapis tego obrazu na taśmie magnetowidowej. Większość dekoderów i enkoderów dokonuje obróbki sygnału telewizyjnego zapisanego w obu systemach telewizji kolorowej: NTSC i PAL. System NTSC (stosowany w Stanach Zjednoczonych i Japonii), generuje obraz z rozdzielczością 640 x 480 (lub 720 x 480 wg standardu CCIR601) i z częstotliwością 30 klatek na sekundę. W systemie PAL (stosowanym w Europie) obraz posiada rozdzielczość 768 x 576 (lub 720 x 576 wg standardu CCIR601) oraz częstotliwość wyświetlania klatek rzędu 25 Hz.
Każda karta graficzna posiada 15-stykowe zewnętrzne złącze VGA, umożliwiające podłączenie monitora. Karta wyposażona dodatkowo w dekoder i enkoder video, powinna posiadać złącza umożliwiające podłączenie źródeł sygnału (magnetowid, kamera, tuner TV) oraz odbiorników sygnału video (magnetowid lub odbiornik TV). Mogą; być to złącza:
- S-Video (wejściowe, input) i Composite Video (wejściowe, input),
- S-Video (wyjściowe, output) i Composite Video (wyjściowe, output).
|
 |
Współczesna karta graficzna może posiadać jeszcze następujące dodatkowe złącza rozszerzeń, znajdujące się na płytce karty:
- złącze 26-stykowe VFC {ang. Video Feature Connector), pozwalające dołączyć np. zewnętrzny moduł enkodera, umożliwiający wyświetlanie obrazu na ekranie odbiornika TV,
- złącze 66-stykowe VMI (ang. Video Module Interface), służące do podłączenia np. dekodera MPEG lub modułu współpracującego z odtwarzaczem DVD.
Współpraca kart graficznych z monitorami ekranowymi
Komunikacja karta-monitor odbywa się poprzez złącze na "śledziu" karty. Tu spotyka się najczęściej wyjścia: D-Sub (do podłączania analogowych monitorów kineskopowych - CRT), DVI (do podłączenia monitoró cyfrowych-LCD) oraz wyjście s-video do podłączenia telewizora
Monitor tylko w połowie decyduje o wyświetlanym obrazie. Drugą połowę stanowi karta graficzna, która zawiera elektronikę odpowiedzialną za wygląd ekranu. Jak już wiemy, do karty graficznej jest podłączony monitor. Aby wyświetlić obraz, procesor komputera wysyła informację do karty graficznej, która z kolei przesyła dane do monitora. Zatem warto wiedzieć, jakie parametry winny posiadać monitory współpracujące z różnymi typami kart graficznych, ponieważ monitor i karta muszą być wzajemnie „dopasowane”, co niezawsze jest sprawą oczywistą. Musimy przestrzegać zasady pełnej kompatybilności tych urządzeń.
Bardzo ważnym parametrem, na który należy zwrócić uwagę, przy doborze monitora jest częstotliwość odchylenia poziomego i pionowego. Eksploatacja kompu-tera będzie niemożliwa w przypadku różnych częstotliwości w monitorze i w karcie graficznej.
Tabela prezentuje częstotliwości odchylenia poziomego fHS dla różnych typów kart.
Z tabeli wynika, że każda karta wymaga współpracy z monitorem o innej częstotliwości odchylenia poziomego.
Drugim istotnym parametrem monitora jest pasmo przepustowe toru wizji. Szerokość pasma ma wpływ na ostrość obrazu zwłaszcza dla wyższych rozdzielczości. Karta CGA winna współpracować z monitorem o szerokości pasma co naj-mniej 14 Mhz, karta Hercules 18 Mhz, natomiast karta VGA 30 Mhz.
Obecnie produkowane są monitory, mogące współpracować z każdą kartą graficzną, które automatycznie dostrajają częstotliwości odchylenia do wymagań karty. Należą do nich monitory MULTISYNC, których częstotliwość odchylenia poziomego może zmieniać się w zakresie od kilkanastu do kilkudziesięciu kHz.
Częstotliwość odchylania pionowego fvs, zwana też częstotliwością odświeżania obrazu, ma wpływ na zjawisko migotania obrazu. Im wyższa częstotliwość odchylenia pionowego, tym słabszy efekt migotania, ale z kolei im wyższa częstotliwość odchylenia pionowego, tym wyższa musi być częstotliwość odchylenia poziomego - uzyskanie której sprawia wiele problemów producentom monitorów. Z reguły monitory pracują z częstotliwościami fvs równymi 56-70 Hz. Standard Vesa zaleca częstotliwość 72 Hz.
Częstotliwość odchylania poziomego monitorów wzrasta wraz z rozdzielczością, dla której monitor może wyświetlać dane. Dla rozdzielczości 800x600 i częstotliwości odchylania pionowego 72 Hz (zalecanej przez VESA), wymagana czę-stotliwość odchylania poziomego wynosi 48 kHz. Aby zapewnić rozdzielczość 1024x768 (przy FfVS=72 Hz), częstotliwość fHS musi mieć wartość 58 kHz. Monitory z tak wysokimi częstotliwościami odchylania poziomego są bardziej skomplikowane i kosztowne, dlatego też przy dużych rozdzielczościach stosowane jest wybieranie międzyliniowe, które pozwala stosować monitory o dwukrotnie niższej częstotliwości odchylania poziomego.
Większość kart graficznych i monitorów ekranowych dla trybów o rozdzielczości poniżej 800 600 pracuje z wybieraniem kolejno liniowym. Przy wyższych rozdzielczościach konieczne jest niestety stosowanie wybierania międzyliniowego, które powoduje niewielkie drganie obrazu.
Złącza kart graficznych
Początkowo karty graficzne SVGA posiadały złącze ISA. Jest to magistrala o maksymalnej teoretycznej szybkości transmisji danych wynoszącej 8 MB/s. Dla współczesnych kart szybkość ta jest zdecydowanie za niska. Aby na ekranie monitora stało się możliwe wyświetlanie filmów z prędkością 30 klatek w ciągu sekundy, należy odświeżać pamięć karty graficznej 30 razy/sekundę. Wymagana więc szybkość wymiany informacji poprzez złącze przykładowej karty wyposażonej w pamięć o pojemności 4 MB, wyniesie (30 obrazów w ciągu sekundy pomnożone przez 4 MB) 120 MB/s. Oczywiście takiego transferu nie zapewni złącze ISA.
Współczesne akceleratory wyposażane są w złącze AGP (lub rzadziej PCI) zapewniające wystarczającą szybkość transmisji dla kart współpracujących z urządzeniami multimedialnymi. Złącze to zapewnia transfer danych z szybkościami: 264 MB/s (AGP lx), 528 MB/s (AGP 2x) lub 1056 MB/s (AGP 4x) oraz 2112 MB/s (AGP 8x)
Złącze PCI umożliwia transfer danych z szybkością 132 MB/s. W zależności od typu procesora graficznego, na kartach mogą być instalowane pamięci typu DRAM, lub szybsze: SDRAM, SGRAM ewentualnie dwuportowe pamięci VRAM. Procesory graficzne muszą być chłodzone za pomocą radiatorów lub wentylatorów

Na rynek profesjonalny konstruowane są karty graficzne wykorzystujące jednocześnie nawet dwa złącza: AGP i PCI. Do ich budowy wykorzystywane są specjalne kości.
Do niektórych kart graficznych można podłączyć okulary zapewniające wrażenie percepcji prawdziwie trójwymiarowego świata.
do góry
|