Budowa i
działanie kart
graficznych
Budowa karty graficznej
(Pamięć)
RAM
Karty
graficznej
Układ
graficzny
i
RAMDAC
Wyjście
monit.
D-Sub
BIOS
kwarc
(układ
taktujący)
Łącze
karty
graficzne
j
BIOS
• BIOS jest to ROM który można
modyfikować
• W BIOS-ie zapisane są podstawowe
instrukcje potrzebne do działania
karty graficznej
Łącza karty graficznej
• Łącza starego typu
– ISA 8 bitowe (przepustowośc 8 Mb)
– ISA 16 bitowe(przepustowośc 16 Mb)
– VESA Local Bus
(przepustowośc ok. 132 Mb)
– PCI
(przepustowośc 132 Mb)
• Łącza nowego typu
– AGP x1 (przepustowośc 264 Mb 32bity x66MHz)
– AGP x2 (przepustowośc 528 Mb)
– AGP x4 (przepustowośc 1 Gb)
– AGP x8 (przepustowośc 2 Gb)
– PCI Express x16
(przepustowośc 4Gb w kazdą stronę
16 bitów x 2,5 GHz)-na każde 10 bitów przesyłane są 2
bity transmisji czyli -20%
Łącza karty graficznej
Łącza kart graficznych ewoluowały wraz
rozwojem komputerów, każda ich
następna generacja potrafi szybciej
przesłać dane przez co przyspiesza
generowanie grafiki ale wymaga
odpowiedniej płyty głównej z danym
typem łącza co często wymusza
wymianę płyty i nierzadko procesora
RAM
• Taktowanie pamięci (MHz)
– Często taktowanie DDR RAM jest podawane mylnie, aby
uzyskać rzeczywistą prędkość pracy należy podzielić przez dwa
częstotliwość podawaną przez producenta
• Rodzaj pamięci (SDR, DDR, DDR2)
– SDR przesyła 1 bit na takt zegarowy
– DDR i DDR2 przesyła 2 bity na takt zegarowy
• Szerokość szyny pamięci (32,64,128,256 bit)
Zamieszczone parametry mają wpływ na szybkość
pracy karty graficznej
RAM
np.
(
166 MHz x 64 bity / 8 = 1328 MB )
Model karty
graficznej
Częstotliwoś
ć
Szerokość
szyny
Rodzaj
pamięci
Przepustowość
GF 2 MX 200
166 MHz
64 bity
SDR
1328 MB
GF 2 MX
166 MHz
128 bit
SDR
2656 MB
GF 2 MX 400
166 MHz
64 bit
DDR
2656 MB
GF 5900 XT
350 MHz
256 bit
DDR
22400 MB
(21,8 GB)
Ilość pamięci potrzebnej
dla danego trybu
graficznego
Ilosć bitów / bajtów
na pixel
1 bajt =
8
pixseli
1 bajt =
4 pixsele
1 bajt =
2
pixele
1 bajt =
1 pixel
2 bajty =
1
pixel
3 bajty =
1
pixel
Liczba kolorów
2 kolory
4 kolory
16
kolorów
256
kolorów
65 tysiecy
kolorów
16,7
miliona
kolorów
R
o
zd
zi
e
lc
zo
ś
ć
e
k
ra
n
u
640 x 480
37,5 KB
75 KB
150 KB
300 KB
600 KB
900 KB
800 x 600 58 KB
117 KB
234 KB
468 KB
968 KB
1,37 MB
1024 x
768
96 KB
192 KB
384 KB
768 KB
1,5 MB
2,25 MB
1280 x
1024
160 KB
320 KB
640 KB
1,25 MB
2,5 MB
3,75 MB
RAM
• Obecne karty graficzne posiadają 128
lub 256 MB RAM, dlaczego ?
– Karta graficzna w trybie 3D wykorzystuje
też pamięć na tzn. Bufor–Z który zajmuje
w zależności od trybu graficznego i jego
głębokości (16,24,32 bity) tyle co bufor
ramki
– Druga ważna rzecz to w pamięci karty
graficznej przechowywane są tekstury
wykorzystywane w programach 3D
Bufor – Z ilość pamięci
Głębokość
bufora
Rozdzielczość
16 bit
24 bity
32 bity
640 x 480
600 KB
900 KB
1,17 MB
800 x 600
968 KB
1,37 MB
1,82 MB
1024 x 768
1,5 MB
2,25 MB
3 MB
1280 x 1024
2,5 MB
3,75 MB
5 MB
Bufor – Z
Ma za zadanie
wyeliminować
niewidoczne punkty
tekstury które
„znajdują się dalej
od obserwatora” i są
zasłonięte przez
inne, by układ
graficzny mógł
przyspieszyć
obróbkę kolejnej
klatki obrazu
Tekstury
• Tekstury to bitmapy nakładane
na obiekt
• Karta graficzna dla ułatwienia
tworzenia obrazu tworzy
bitmapy w różnych rozmiarach
które są nakładane na
odpowiedniej wielkosci trójkąt
tworzący szkielet sceny 3D
• Dla przykładu tekstura
1024x1024 punkty i 24
bitowej wartości koloru plus 8
bitowej wartości
przeżroczystości tzw. Kanał
alfa zajmuje 4 MB
Wyświetlanie kolorów
• Przy ilości kolorów 256 lub mniej
RAMDAC pobiera dane z RAMu karty
graficznej (bufora ramki) gdzie jest
zapisany numer rejestru koloru z
którego ma pobrać pełną 24 bitową
daną o kolorze
Wyświetlanie kolorów
• Przy 16 bitowym kolorze dane o
kolorze znajdują się w pamięci karty
ale nie ma on pełnej skali barw
– R
5 bit (32 możliwości)
– G
6 bit (64 możliwości)
– B
5 bit (32 możliwości)
• Co daje 32 x 64 x 32 = 65536 kolorów
Wyświetlanie kolorów
• Przy 24 bitowym kolorze (3 bajty)
– R
8 bit (256 możliwości)
– G
8 bit (256 możliwości)
– B
8 bit (256 możliwości)
• Co daje 256 x 256 x 256 = 16777216
kolorów
– Czym wyższa wartość bajta tym na wyjściu
RAMDAC generuje wyższe napięcie co odpowiada
jaśniejszemu kolorowi składowej punktu
RAMDAC
• RAMDAC wg zadanych parametrów o
rozdzielczości i odświeżaniu obrazu na monitorze
cały czas pobiera dane cyfrowe o obrazie z
pamięci karty graficznej (tzw. Bufor ramki) i
generuje analogowy sygnał do monitora
osobnymi liniami by powstał tam obraz.
– R kolor czerwony
– G kolor zielony
– B kolor niebieski
– Odchylanie poziome
– Odchylanie pionowe
RAMDAC
• Przy rozdzielczości 800 x 600 ,16 bitowym
kolorze ( 65536 kolorów) i odświeżaniu 75 Hz
RAMDAC w ciągu sekundy potrzebuje
odczytać 800 x 2 bajty (16 bit) x 800 =
960000 bajtów x 75 Hz = 72.000.000 bajtów
(68,6 MB).
• Jego częstotliwość pracy powinna wynosić
ok. 800 x 600 x 75 Hz + 5% =38 MHz
• Wyższa częstotliwość pracy RAMDAC
umożliwia wyższe częstotliwości odświeżania
przy wyższych rozdzielczościach.
Budowa karty graficznej
Budowa karty graficznej
• Jednostka Transform & Lighting odciąża
procesor komputera od obliczeń związanych z
transformacjami geometrycznymi i
oświetleniem danej sceny
• Jednostki Vertex Shader służą do
modyfikacji wierzchołków siatek obiektów
• Jednostki Pixel Shader służą do modyfikacji
tekstur nakładanych na obiekty
• Jednostki Rastrujace zajmują się
obrabianiem tekstur i rasteryzacją sceny
Budowa karty graficznej
• Częstotliwość pracy układu
graficznego
• Ilość jednostek rastrujących
• Ilość jednostek vertex i pixel Shader
• Jakość sterowników
• mają wpływ na wydajność karty
graficznej
• Karta graficzna, aby
wyświetlić na
ekranie gotowy
obraz, musi
wykonać szereg
czynności na
danych
otrzymanych od
aplikacji 3D. Te
realizowane kolejno
kroki obliczeniowe
nazywane są
strumieniem
graficznym (ang. 3D
Graphics Pipeline)
Strumień graficzny można
podzielić na trzy główne fazy
obliczeń :
A Operacje geometryczne, takie jak
skalowanie obiektów wraz z
kalkulacjami oświetlenia
B Rendering czyli proces nakładania
tekstur i cieniowania
C Rasteryzacja polegająca na
przygotowaniu gotowego obrazu
do wyświetlenia na monitorze
• Pierwszym krokiem przy tworzeniu obrazu 3D jest
wyznaczenie współrzednych X,Y,Z dla wszystkich punktów
opisujących obiekty znajdujące się na scenie
• Kolejnym krokiem jest teselacja, czyli pogrupowanie węzłów
w trójki, na których przeprowadza się dalsze obliczenia
• Następną czynnością jest ustawienie geometrii polegające
na dopasowaniu sceny 3D do punktu patrzenia.
Następnym
elementem jest
kadrowanie sceny ,
umożliwia to
przyspieszenie
obróbki strumienia
graficznego poprzez
zmniejszenie
obliczeń
wykonywanych
przez karte
graficzną (jednostka
T&L) bądź procesor
komputera
• Kalkulacja oświetlenia polega na przypisaniu każdemu węzłowi
wektora o wartościach odpowiadających natężeniu, kierunkowi i
barwie światła padającego na dany wierzchołek oświetlonej bryły
• Dynamiczne operacje modyfikacji położenia węzłów siatki i zmiany
wartości wektorów oświetlenia wykonywane są dzięki modułom
Vertex Shader
• Teksturowanie - karta
graficzna przygotowuje
odpowiednie wielkości
bitmapy.
• Następną czynnością
jest wycinanie
odpowiedniego
fragmentu pasującego
do mapowanego
trójkąta. Operacja ta
nazywa się clippingiem.
• Mając przygotowane
tekstury karta przystępuje
do ich nakładania. Proces
ten nazywa się
mapowaniem.
• Powierzchnia może
posiadać kilka na siebie
nałożonych warstw tekstur,
niektóre z nich mogą być
półprzeźroczyste.
• Podczas mapowania
przeprowadzane są
również inne procesy takie
jak filtrowanie tekstur.
Podczas generowania
sceny 3D wszystkie
przetwarzane obiekty sa
w trójwymiarowej
przestrzeni. Pózniej będą
one wyświetlone na
płaskim ekranie
monitora. Aby uniknąć
zniekształceń na
ekranie monitora stosuje
się tzw. algorytmy
korekcji perspektywy.
• Ostatnią fazą
teksturowania są
modyfikacje nałożonych
już na obiekty bitmap.
Akcelerator wykonuje
je, wykorzystując do
tego celu jednostki
Pixel Shader.
Otrzymany efekt
końcowy zależy od
fantazji programisty.
Instrukcje shaderowe
mogą na przykład
rozkruszyć cegłę, jak na
przykładzie obok.
• Sama, nawet najlepsza tekstura nie
odtworzy gry świateł i cieni,
obserwowanej w codziennym życiu,
aby to uzyskać potrzebne jest
cieniowanie.
• Cieniowanie polega na zamianie
wektorów natęzenia światła
obliczonych dla każdego trójkąta a
więc i tekstury nakładanej na niego.
Sposoby cieniowania a
wrażenie gładkości powierzchni
• Cieniowanie płaskie
(najprostsze)
• Cieniowanie Gourauda
• Cieniowanie Phonga
(złożone, daje refleksy
światła)
• Ostatnim etapem jest rasteryzacja
czyli zamiana gotowej sceny
trójwymiarowej na zbiór pikseli
(bitmapę), które wyświetlone zostaną
na ekranie monitora.
• W czasie procesu rasteryzacji jest
wykorzystywany Z-bufor.
• Można również wykorzystać metodę
antyaliasingu czyli odpowiednim
rozmyciu krawędzi wzdłuż rysowanej
lini czy granicy kolorów.
• Po rasteryzacji w buforze
ramki mamy
przygotowaną do
wyświetlenia na na
ekranie scenę 3D, w
zależności od ilości
szczegółów, wielkości
sceny 3D i szybkości
pracy karty graficznej na
ekranie monitora
uzyskujemy mniej lub
bardziej płynną animacje
o mniejszej lub większej
liczbie szczegółów