Grafika komputerowa
Wprowadzenie do grafiki komputerowej
Rados#aw Mantiuk
Wydzia# Informatyki
Zachodniopomorski Uniwersytet Technologiczny
Grafika komputerowa
Grafika komputerowa (ang. computer graphics)
Algorytmy
grafiki komputerowej
(Rendering)
Dane wej"ciowe
scena
Dane wyj"ciowe
obraz 2D
Potok graficzny (ang. graphics pipeline)
Rodzaje algorytmów grafiki komputerowej:
• grafika czasu rzeczywistego (grafika interaktywna),
• grafika realistyczna,
• grafika nierealistyczna (ang. non-realistic computer graphics),
• grafika 2D i 3D,
• grafika rastrowa i wektorowa,
• wizualizacja danych.
Przetwarzanie obrazów
(ang. Image processing)
Analiza obrazów
(ang. Image analysis)
Urz$dzenia
wy"wietlaj$ce
Urz$dzenia
rejestruj$ce
Grafika komputerowa
Grafika komputerowa - Geneza
• Lata 60-te - wy"wietlacze znakowe.
• Programy CAD i CAM (General Motors -
projektowanie samochodów, Itek Digitek -
projektowanie soczewek).
• Wektorowe urz$dzenia wy"wietlaj$ce.
• Lata 80-te - monitory rastrowe (Apple,
IBM PC).
• 1984 Silicon Graphics - grafika 3D.
• Karty graficzne 3D (ATI, nVidia).
Rozwój urz$dze% wy"wietlaj$cych.
Grafika komputerowa
Grafika komputerowa - Zastosowania (2)
Produkcja filmowa i telewizyjna.
• filmy rysunkowe
• efekty specjalne
• du!e bud!ety
• podej"cie artystyczne
• ró!ne technologie
• postprodukcja
Grafika komputerowa
Grafika komputerowa - Zastosowania (3)
Gry komputerowe.
• grafika interaktywna
• olbrzymi rynek
Grafika komputerowa
Grafika komputerowa - Zastosowania (4)
Medycyna.
• wizualizacja danych trójwymiarowych
• wysoka precyzja wizualizacji
• bardzo du!e zbiory danych
• algorytmy Volume Rendering’u
Grafika komputerowa
Grafika komputerowa - Zastosowania (5)
Systemy CAD/CAM.
• precyzyjna wizualizacja
• z#o!one i prezycyjne modele
• zaawansowane oprogramowanie do modelowania
• wizualizacja realistyczna
Grafika komputerowa
Grafika komputerowa - Zastosowania (6)
Wizualizacja naukowa.
• z#o!one modele danych
Grafika komputerowa
Grafika komputerowa - Zastosowania (7)
Interfejsy graficzne (GUI - Graphics User Interface).
• grafika 2D
• interfejsy 3D
• interfejsy oparte na GPU
Grafika komputerowa
Grafika komputerowa - Zastosowania (8)
Systemy GIS
Grafika komputerowa
Grafika komputerowa - Zastosowania
• Gry komputerowe.
• Graficzne interfejsy u!ytkownika (ang. Graphics User Interface).
• Wizualizacja danych medycznych (ang. volume rendering).
• Wizualizacja danych w biznesie i technice.
• Systemy GIS (ang. Geographics Information Systems).
• Systemy CAD.
• Produkcja filmowa i telewizyjna.
• Systemy internetowe.
• Systemy multimedialne.
• Wirtualna rzeczywisto"&.
• Sztuka (np. fotografia).
• Nauka (np. rysowanie wykresów funkcji, wizualizacja zjawisk fizycznych).
• Urz$dzenia przeno"ne (PDA, telefony komórkowe).
Grafika komputerowa
Programowanie grafiki komputerowej
• Algorytmy grafiki realistycznej
• struktury danych
• algorytmy probabilistyczne
• optymalizacje
• Grafika czasu rzeczywistego
• gry komputerowe
• programowanie telefonów i urz$dze% PDA
• symulacje czasu rzeczywistego
• programowanie GPU (ang. Graphics Processor Unit)
• GPGPU (ang. General Purpose GPU)
• Przetwarzanie i analiza obrazów
• fotografia cyfrowa
• technologie HDRI (ang. High Dynamic Range Imaging)
• Graficzne interfejsy u!ytkownika (ang. GUI: Graphics User Interface)
• wspomaganie rysowania GUI
Grafika komputerowa
Obraz rastrowy
Obraz rastrowy - dwuwymiarowa macierz pikseli (bitmapa)
Piksel (ang. pixel) - punkt obrazu (próbka, nie ma wymiaru, nie zajmuje obszaru)
• po#o!enie w rastrze
• kolor
Kolor piksela
• wektor RGBA (Red, Green, Blue, Alpha), ka!da sk#adowa kodowana niezale!nie
• “true color” - 8 bitów na sk#adow$ koloru (32 bity na piksel)
Rozdzielczo"# obrazu (ang. spatial resolution) - liczba pikseli w poziomie i pionie
Aspekt obrazu (ang. aspect ratio) - stosunek wymiarów poziomych do pionowych
Grafika komputerowa
System graficzny (1)
Karta graficzna - podsystem komputera przeznaczony do generowania obrazu,
posiadaj$cy w#asny procesor i pami'&.
CPU
pami'&
RAM
GPU
bufor ramki
(ang. frame buffer)
monitor
CPU nie jest w stanie generowa# obrazu z wymagan$ pr%dko"ci$ ze wzgl%du na
specyficzny charakter algorytmów generowania obrazu i zbyt du!$ liczb% danych.
•
Procesor GPU
(ang. Graphics Procesor Unit) “rysuje” obraz poprzez wype#nianie
odpowiednich komórek pami'ci VRAM.
• Obraz przechowywany jest we
frame buffer’ze
znajduj$cym si' w VRAM’ie. Wielko"&
frame buffer’a zale!y od rozdzielczo"ci obrazu i sposobu kwantyzacji koloru.
Grafika komputerowa
Karta graficzna (1)
pami'& VRAM
(frame buffer)
zegary
Projekt i wykonanie Bogdan Olech
procesor
GPU
slot
koprocesora
RAMDAC
uk#ad
steruj$cy
Grafika komputerowa
Karta graficzna (2)
Cechy karty graficznej:
• procesor GPU (ang. Graphics Procesor Unit) - architektura SIMD, brak skoków i p'tli,
bardzo du!a wydajno"& arytmetyczna, wielopotokowo"&,
• pami'& VRAM (ang. Video RAM) - bardzo szybki dost'p sekwencyjny do pami'ci,
• magistrala - bardzo du!y transfer danych,
• RAMDAC - generowanie analogowych sygna#ów wideo (przetwornik DA),
• zegary - taktowanie procesora i monitora,
• uk#ad steruj$cy - komunikacja procesora z pami'ci$, komunikacja z CPU.
• RAMDAC “czyta” odpowiedni obraz z pami%ci VRAM, przetwarza go na sygna&
analogowy i przesy&a do monitora.
Grafika komputerowa
Kwantyzacja koloru
Liczba bitów na sk#adow$ okre"la dok#adno"& kwantyzacji pewnego zakresu luminancji.
Dla standardowych monitorów LDR (ang. Low Dynamic Range) wystarczy 8 bitów na
sk#adow$, nie wida& wtedy przej"& pomi'dzy odcieniami danej sk#adowej.
5 bitów na sk#adow$
7 bitów na sk#adow$
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Kodowanie koloru (1)
Courtesy of MIT (Lecture Notes 6.837)
• Podanie warto"ci trzech sk#adowych koloru RGB (“true color”).
Grafika komputerowa
Kodowanie koloru (1)
Courtesy of MIT (Lecture Notes 6.837)
• Podanie indeksu do tabeli zawieraj$cej trzy warto"ci sk#adowych RGB (nie stosowane).
LUT - Look-Up Table
Grafika komputerowa
Monitor
• Rozdzielczo"#
• wielko"& piksela obrazu (ang. pitch) ~0.1-0.3 [mm]
• liczba pikseli na cal, np. 80 DPI (ang. Dots per Inch), zmienna dla CRT
• Wymiary ekranu (przek$tna)
• Odwzorowanie koloru (sk#adowe RGB)
• Cz%stotliwo"# od"wie!ania (pionowa i pozioma)
• Wspó&czynnik gamma (nieliniowe mapowanie napi'cia na luminancj')
• Minimalna i maksymalna luminancja (kontrast) - dynamika monitora (maksymalna
luminancja podzielona przez minimaln$ luminancj')
Rastrowe urz$dzenie wy"wietlaj$ce obraz 2D.
Grafika komputerowa
Monitory LCD (ang. Liquid Crystal Display) (3)
Monitory medyczne
• 10-, 12-bitów na
sk#adow$ koloru,
• skalowanie DICOM
Grafika komputerowa
Monitory LCD (ang. Liquid Crystal Display) (1)
Monitor ciek&okrystaliczny
Ciek#y krysz#a powoduje zmian' polaryzacji "wiat#a w zale!no"ci od przy#o!onego do
niego napi'cia.
Courtesy of MIT (Lecture Notes 6.837)
Grafika komputerowa
Monitory LCD (ang. Liquid Crystal Display) (3)
• Sterowanie polaryzacj$ ciek#ego kryszta#u odbywa si' za pomoc$ tranzystorów
zamocowanych w matrycy (technologia TFT - Thin Film Transistor).
• Punkt ekranu LCD zachowuje swój stan w zale!no"ci od ustawienia tranzystora (nie
nast%puje ga"niecie punktu z up#ywem czasu).
• Pr'dko"& od"wie!ania to pr%dko"# zmiany stanu polaryzacji ciek&ego kszryszta&u.
• Odcienie szaro"ci uzyskuje si' poprzez czasowe w#$czanie/wy#aczanie polaryzacji
ciek#ego kryszta#u.
• Barwy uzyskuje si' poprzez stosowanie filtrów i zwi'kszenie rozdzielczo"ci matrycy
(trzy komórki na jeden kolorowy punkt obrazu).
• Stosuje si' sztuczne pod"wietlenie matrycy w celu zwi'kszenia kontrastu.
• K$t patrzenia na monitor jest ograniczony przez mo!liwo"ci polaryzacji "wiat#a.
Grafika komputerowa
Korekcja gamma (1)
Zale!no"# pomi%dzy warto"ciami pikseli (RGB) a luminancj$ punktów na monitorze
NIE jest liniowa (je!eli zwi'kszymy warto"& koloru z 100 do 200 nie uzyskamy
dwukrotnego wzrostu luminancji).
Nieliniowa charakterystyka
monitora wynika z faktu
nieliniowej zale!no"ci
pomi'dzy warto"ci$ napi'cia
na katodzie i luminancj$ punktu
na monitorze:
!
L = V
"
,
" #< 1.4,2.8 >
Korekcja gamma
- zmiana
warto"ci pikseli prowadz$ca do
liniowej zale!no"ci pomi'dzy
warto"ciami pikseli i
luminancj$.
Grafika komputerowa
Korekcja gamma (2)
Grafika komputerowa
Kodowanie koloru - dithering (2)
Courtesy of MIT (Lecture Notes 6.837)
Dithering - aproksymacja koloru za pomoc$ wzoru sk#adaj$cego si' z
plamek innych kolorów
Grafika komputerowa
Literatura
• J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, R.L. Phillips, “Wprowadzenie do
grafiki komputerowej”, WNT, Warszawa 1995, ISBN 83-204-1840-213.
• Jan Zabrodzki (pz), “Grafika komputerowa metody i narz'dzia”, WNT, Warszawa 1994,
ISBN 83-204-1716-3.
• Andrew S. Glassner, "Principles of Digital Image Synthesis", Vol. I and II, Morgan
Kaufmann, 1995.