Wykłady – Grafika komputerowa - GWSH

Transkrypt

Wykłady – Grafika komputerowa - GWSH
Wykłady –
Grafika komputerowa
Prowadzący: prof. UŚ. dr hab. inż. Wiesław Kotarski
Celem przedmiotu w części teoretycznej jest zapoznanie słuchaczy z podstawowymi zagadnieniami grafiki komputerowej i wizualizacji. Na zajęciach laboratoryjnych poznają oni trzy bezpłatne programy do tworzenia grafiki: bitmapowej
(GIMP), wektorowej (Inkscape) oraz Processing – środowisko do programowania grafiki interaktywnej. Słuchacze zdobędą niezbędną wiedzę do rozwiązywania standardowych problemów graficznych oraz posiądą praktyczne umiejętności
posługiwania się wymienionymi programami.
Materiały ilustracyjne do wykładu przygotował mgr Grzegorz T. Machnik
Wykład 1. Co to jest grafika komputerowa?
Podstawowe pojęcia
Grafika komputerowa jest działem informatyki zajmującym się wykorzystaniem
komputerów do generowania obrazów oraz wizualizacją rzeczywistych danych.
Jest ona powszechnie stosowana w nauce, technice, kulturze oraz rozrywce.
Grafika komputerowa korzysta z osiągnięć wielu dziedzin wiedzy. Przykładowo, do generowania fotorealistycznych obrazów niezbędna jest wiedza z zakresu fizyki o oddziaływaniu światła na przedmioty.
1
2
Obszary zastosowań grafiki:
• kartografia,
• interfejsy graficzne,
• wizualizacja danych pomiarowych,
• wizualizacja symulacji komputerowych,
• diagnostyka medyczna; tomografia komputerowa, komputerowe badanie
wzroku i słuchu, rezonans magnetyczny,
• kreślenie i projektowanie wspomagane komputerowo (CAD),
• przygotowanie publikacji (DTP),
• reklama,
• efekty specjalne w filmach,
• gry komputerowe.
Podział grafiki ze względu na sposób tworzenia i zapis informacji o
obrazie:
• Grafika rastrowa (bitmapowa) – obraz reprezentowany jest przez prostokątną matrycę punktów barwnych zwanych pikselami. Grafika rastrowa
stosowana jest wszędzie tam gdzie mamy do czynienia z fotografią. Przy
powiększeniach bitmapy następuje utrata jakości (efekt pikselizacji). Porównaj rys. 1a.
• Grafika wektorowa – obraz opisany jest za pomocą formuł matematycznych. Obraz składa się z różnego rodzaju krzywych. Przy powiększaniu
nie traci na jakości. Porównaj rys. 1b.
Podział grafiki ze względu na charakter danych:
• Grafika dwuwymiarowa – grafika 2D,
• Grafika trójwymiarowa – grafika 3D.
Podział grafiki ze względu sposób jej tworzenia:
3
(a)
(b)
Rysunek 1: Grafika: (a) rastrowa, (b) wektorowa.
• Grafika nieinterakcyjna,
• Grafika interakcyjna,
• Grafika czasu rzeczywistego.
Formaty grafiki bitmapowej:
• BMP,
• GIF,
• JPEG,
• PCX,
• PSD,
• PNG,
• TIFF.
Formaty grafiki wektorowej:
• SVG,
• CDR,
• EPS.
4
Barwa
Barwa jest wrażeniem wzrokowym wywołanym w mózgu przez padające na oko
promieniowanie świetlne.
Barwa ma trzy atrybuty:
• kolor,
• nasycenie,
• jasność.
Kolor (ang. Hue) (odcień, ton) mówi o różnicy jakościowej barwy. W widmie
światła białego występuje 7 barw prostych (monochromatycznych): czerwona,
pomarańczowa, żółta, zielona, niebieska, błękitna, fioletowa. Pozostałe barwy są
achromatyczne (szare).
Nasycenie (ang. Saturation) określa odstępstwo od barwy białej (np. czerwień, róż, biel). Barwy proste są nasycone. Po dodaniu barwy białej do barwy
prostej powstaje barwa nienasycona.
Jasność (ang. Brightness) określa jak wiele bieli zostało dodanej lub usuniętej z danej barwy. Albo jak wiele czerni dana barwa zawiera (np. czerwień,
brąz, czerń).
Rozróżniamy dwa rodzaje mieszania barw:
• mieszanie świateł – mieszanie addytywne, model RGB stosowany do wyświetlania obrazu na monitorze,
• mieszanie farb – mieszanie substraktywne, model CMY stosowany w wersji
CMYK do druku.
Podstawowe modele barw:
• RGB: Red – czerwony, Green – zielony, Blue – niebieski, jak na rys. 2a,
• La*b*,
• YIQ,
• HSB, jak na rys. 3a
• HSV, jak na rys. 3b
• CMY: Cyan – jasnoniebieski (morski), Magenta – purpura, Yellow – żółty,
jak na rys. 3b,
5
• CMYK: Cyan – jasnoniebieski (morski), Magenta – purpura, Yellow –
żółty, blacK – czarny.
(a)
(b)
Rysunek 2: Modele barw: (a) RGB, (b) CMY.
(a)
(b)
Rysunek 3: Modele barw: (a) HSB, (b) HSV.
Literatura zalecana:
[1] Zabrodzki J.(red), Grafika komputerowa – metody i narzędzia, WNT, Warszawa 1994.
[2] Pastuszak W., Barwa w grafice komputerowej, PWN, Warszawa 2000.
[3] http://pl.wikipedia.org/wiki/Grafika_komputerowa, (dostępna wrzesień 2009).
[4] http://wazniak.mimuw.edu.pl/index.php?title=Grafika_
komputerowa_i_wizualizacja, (dostępna wrzesień 2009).
6
Wykład 2. Grafika 2D
Obrazy cyfrowe – bitmapy
Obraz cyfrowy jest przybliżeniem ciągłotonalnego obrazu analogowego.
Składa się on z pikseli, które można uważać za małych rozmiarów kwadraty wypełnione jednakową barwą lub jednakowym odcieniem szarości. Obraz cyfrowy
reprezentowany jest przez tablicę, w której podane są jasności dla poszczególnych pikseli. W przypadku obrazu barwnego podaje się trzy tablice dla każdej
składowej barwy osobno tj. dla R, G i B.
Parametry obrazu
• rozdzielczość,
• głębia bitowa,
• rozmiary,
• format zapisu.
Rozdzielczość określa się w jednostkach ppi (pixel per inch), czyli podając
liczbę pikseli przypadających na cal (w przybliżeniu 1 cal = 2.54 cm). Często
przez rozdzielczość rozumie się też tryb pracy karty graficznej podając wtedy
liczbę pikseli w poziomie × liczba pikseli w pionie tworzących obraz na monitorze. Np. 800 × 600.
Głębia bitowa określa liczbę bitów wykorzystywaną do przechowywania informacji o barwie lub poziomie szarości pojedynczego piksela. Np. głębia jednobitowa oznacza, że piksel może być albo czarny albo biały, głębia 8-bitowa
oznacza, że pikselowi można przypisać 256 barw lub 256 odcieni szarości.
Rozmiary obrazu podawane są w pikselach, bądź jednostkach długości np. w
calach.
Format zapisu obrazu opisuje sposób zapisu informacji o obrazie (rastrowy,
wektorowy).
Wielkość pliku bitmapy
R2 · szer · wys · g
,
8192
gdzie, W – wielkość pliku w kB, R – rozdzielczość w ppi, szer, wys – rozmiary
obrazu w calach, g – głębia bitowa, 8192 – to liczba bitów w kB.
W =
7
Rozkład obrazu na kanały barwne
Zgodnie z Pierwszym Prawem Grassmana świat barw jest trójwymiarowy. Oznacza to, że każda barwa może być przedstawiona za pomocą trzech liniowo niezależnych barw. Zatem obraz barwny może być też przedstawiony za pomocą
trzech kanałów barwnych. Przykładowo na rys. 4a pokazano rozkład obrazu
Leny na trzy kanały barwne RGB. Do druku wykorzystuje się rozkład obrazu
na cztery kanały barwne CMYK (rys. 4b).
(a)
(b)
Rysunek 4: Rozkład obrazu na kanały: (a) RGB, (b) CMYK.
Histogram obrazu
Histogram obrazu to wykres słupkowy przedstawiający rozkład liczby pikseli
na obrazie o określonej jasności danej barwy, bądź poziomie szarości. Na rys. 5
przedstawiono obraz Leny i histogram dla tego obrazu. Histogramy dla kanałów
RGB pokazano na rys. 4a.
Przetwarzanie obrazu – filtry
Obraz cyfrowy może być modyfikowany za pomocą filtrów. Filtr działa w następujący sposób: maską, która jest tablicą o rozmiarach np. 3 × 3 wypełnioną
współczynnikami (wagami), nakrywamy przekształcany obraz. Przemnażamy
8
Rysunek 5: Histogram.
jasności pokrytych przez maskę pikseli przez odpowiadające pikselom wagi maski. Wyniki te sumujemy, następnie uśredniamy i średnią wstawiamy w miejsce
środkowego piksela (żeby nie wyjść poza zakres jasności dla obrazu 8-bitowego,
należy obliczyć mod(255) ze średniej). Przesuwamy następnie maskę wzdłuż obrazu, wykonując wcześniej opisane przekształcenia. W ten sposób można przekształcić wszystkie piksele obrazu (za wyjątkiem pikseli należących do brzegu
obrazu). Na rys. 6a przedstawiono przykłady przekształcenia obrazu Leny za
pomocą trzech wybranych filtrów.
Tworzenie obrazu cyfrowego. Warstwy
W programach graficznych do obróbki grafiki bitmapowej operuje się pojęciem
warstwy. Warstwę można wyobrazić sobie jako przeźroczystą folię, na której
znajduje się element obrazu np. tło, pierwszy plan, napis. Złożenie warstw powoduje powstanie obrazu wynikowego, jak np. na rys. 6b. Warstwy mogą być
ze sobą „mieszane” na różne sposoby, takie jak sumowanie, odejmowanie, przenikanie względem jaśniejszych bądź ciemniejszych elementów warstwy.
Kompresja obrazów
• kompresja JPEG.
Obrazy zawierają znaczną nadwyżkę informacji (redundancję). Dużą część
informacji, niemalże bez straty jakości, można z nich usunąć. Przy percepcji
obrazu ważniejsza jest jasność niż barwa. Stąd obszary kolorystycznie podobne
można zastąpić jedną barwą. Powoduje to zmniejszenie ilości informacji. Następnie, wykonuje się na obrazie tzw. dyskretną transformatę Fouriera. W wyniku
9
(a)
(b)
Rysunek 6: (a) Filtry, (b) warstwy.
dostaje się współczynniki rozwinięcia. Współczynniki z wyższych zakresów częstości, odpowiadające za szczegóły w obrazie, zostają wyzerowane w zależności
od przyjętego stopnia stratności. W ten sposób można regulować stopień kompresji obrazu. Tak w dużym przybliżeniu działa kompresja JPEG. Na rys. 7
przedstawiono obraz oryginalny Leny i jego wersje skompresowane z różnym
stopniem kompresji.
Animacja
Animacja jest iluzją ruchu. Jeśli obrazy (poszczególne klatki) będą zmieniały
się z szybkością 24 klatek/s, to wówczas na skutek bezwładności wzroku, obserwator odniesie wrażenie ciągłości ruchu. W ten sposób powstaje animacja.
Istnieją programy, które składają pojedyncze klatki w film (np. BMP to AVI
creator).
Podstawowe rodzaje animacji
• poklatkowa,
• animacja kształtu,
• animacja wzdłuż ścieżki.
10
Rysunek 7: Kompresja JPEG.
Animacje mogą być zintegrowane z dźwiękiem tworząc wideo. Sekwencję
wideo można rozpatrywać jako obraz wzbogacony o jeszcze jeden wymiar – czas.
Dlatego kompresja odbywa się oprócz przestrzeni również w czasie. Uwzględnia
się nie cały obraz od klatki do klatki ale tylko tą część, która się zmienia.
Niezmienione piksele nie są modyfikowane w kolejnych klatkach. Można także
zmniejszać liczbę klatek na sekundę (ang. frame rate), co wpływa na pogorszenie
płynności animacji.
Formaty plików wideo
• MPEG,
• AVI,
• MOV.
Literatura zalecana:
11
[1] Tadeusiewicz R., Korochoda P., Komputerowa analiza i przetwarzanie obrazów, Wydawnictwo Fundacji Postępu Telekomunikacji, Kraków 1997.
[2] Wróbel Z., Koprowski R., Przetwarzanie obrazu w programie MATLAB,
Problemy Współczesnej Nauki, Teoria i Zastosowania, Informatyka, EXIT,
Warszawa 2004.
[3] Skarbek W., Multimedia – Algorytmy i standardy kompresji, Akademicka
Oficyna PLJ, Warszawa 1998.
Wykład 3. Geometria 2D i 3D
W grafice komputerowej wszystkie przekształcenia reprezentowane są w sposób
zunifikowany – za pomocą macierzy. Składanie przekształceń polega na mnożeniu tych macierzy przez siebie w określonej kolejności. Przekształcenia 2D i
3D będą na ćwiczeniach laboratoryjnych demonstrowane za pomocą graficznego
API Processingu.
Przekształcenia 2D
Punkty na płaszczyźnie to wektory [x, y], które we współrzędnych jednorodnych
przedstawia się jako: [x, y, 1].
• translacja,
• skalowanie,
• rotacja względem początku układu współrzędnych.
Translacja o wektor [tx , ty ] przekształca punkt [x, y] w nowy punkt [x′ , y ′ ].
Zapisuje się to następująco:
 ′
 x = x + tx ,
y ′ = y + ty ,
(1)

1 = 1.
Wprowadzenie tożsamości 1 = 1 umożliwia przedstawienie translacji w postaci
macierzowej:


1 0 0
(2)
[x′ , y ′ , 1] = [x, y, 1] ·  0 1 0  = [x, y, 1] · T (tx , ty ),
tx ty 1
12
gdzie T (tx , ty ) jest operacją translacji z parametrami tx i ty .
Skalowanie ze współczynnikami skalowania sx i sy odpowiednio względem osi
OX i OY przekształca punkt [x, y] w nowy punkt [x′ , y ′ ]. Zapisuje się to w
postaci:


sy 0 0
[x′ , y ′ , 1] = [x, y, 1] ·  0 sy 0  = [x, y, 1] · S(sx , sy ),
(3)
0 0 1
gdzie S(sx , sy ) jest operatorem skalowania z parametrami sx i sy odpowiednio
względem osi OX i OY.
Rotacja punktu [x, y] o kąt ϕ względem początku układu współrzędnych przeprowadza go w nowy punkt [x′ , y ′ ]. Kąt obrotu jest dodatni, gdy obrót odbywa
się w kierunku przeciwnym do ruchu wskazówek zegara. Rotacja może być zapisana w postaci macierzowej:


cos ϕ sin ϕ 0
[x′ , y ′ , 1] = [x, y, 1] ·  − sin ϕ cos ϕ 0  = [x, y, 1] · R(ϕ),
(4)
0
0
1
gdzie R(ϕ) oznacza operator obrotu o kąt ϕ względem początku układu współrzędnych.
40
40
40
20
20
20
0
0
0
–20
–20
–20
–40
–40
–40
–20
0
20
40
(a)
–40
–40
–20
(b)
0
20
40
–40
–20
0
20
40
(c)
Rysunek 8: Przekształcenia 2D: (a) translacja, (b) skalowanie, (c) rotacja.
Przekształcenia 3D
Punkty w przestrzeni 3D to wektory wierszowe [x, y, z], które we współrzędnych
jednorodnych przedstawia się jako [x, y, z, 1].
13
• translacja,
• skalowanie,
• rotacja względem osi OX,
• rotacja względem osi OY ,
• rotacja względem osi OZ.
Translacja o wektor [tx , ty , tz ] przekształca punkt [x, y, z] w nowy punkt [x′ , y ′ , z ′ ].
Można to zapisać następująco:
 ′
x = x + tx ,


 ′
y = y + ty ,
(5)
z ′ = z + tz ,



1 = 1.
Wprowadzenie równoważności 1 = 1 umożliwia przedstawienie translacji 3D w
postaci macierzowej:


1 0 0 0
 0 1 0 0 

[x′ , y ′ , z ′ , 1] = [x, y, z, 1] · 
 0 0 1 0  = [x, y, z, 1] · T (tx , ty , tz ), (6)
tx ty tz 1
gdzie T (tx , ty , tz ) jest operatorem translacji z parametrami tx , ty , tz .
Skalowanie w przestrzeni 3D opisuje poniższa formuła:

sx

0
[x′ , y ′ , z ′ , 1] = [x, y, z, 1] · 
 0
0
0
sy
0
0
0
0
sz
0

0
0 
 = [x, y, z, 1] · S(sx , sy , sz ),
0 
1
(7)
gdzie S(sx , sy , sz ) jest operatorem skalowania ze współczynnikami skalowania
sx , sy , sz odpowiednio względem osi OX, OY, OZ.
W przestrzeni 3D można zdefiniować rotacje względem trzech osi układu
współrzędnych. Na rys. 9 przedstawiono prawoskrętny układ współrzędnych kartezjańskich. Strzałki wskazują dodatni kierunek obrotu względem osi. Poniżej
podano postacie macierzy definiujące odpowiednio rotacje o kąty ϕx , ϕy i ϕz
względem osi OX, OY i OZ.
14
Z
0
Y
X
Rysunek 9: Prawoskrętny układ współrzędnych kartezjańskich.
Rotacja względem osi OX
1
 0
′ ′ ′
[x , y , z , 1] = [x, y, z, 1] · 
 0
0

0
cos ϕx
− sin ϕx
0
0
sin ϕx
cos ϕx
0

0
0 

0 
1
(8)
= [x, y, z, 1] · Rx (ϕx ),
gdzie Rx (ϕx ) jest operatorem rotacji o kąt ϕx względem osi OX.
Rotacja względem osi OY
cos ϕy

0
[x′ , y ′ , z ′ , 1] = [x, y, z, 1] · 
 sin ϕy
0

0
1
0
0
− sin ϕy
0
cos ϕy
0

0
0 

0 
1
(9)
= [x, y, z, 1] · Ry (ϕy ),
gdzie Ry (ϕy ) jest operatorem rotacji o kąt ϕy względem osi OY.
Rotacja względem osi OZ
cos ϕz
 − sin ϕz
′ ′ ′
[x , y , z , 1] = [x, y, z, 1] · 

0
0

= [x, y, z, 1] · Rz (ϕz ),
sin ϕz
cos ϕz
0
0
0
0
1
0

0
0 

0 
1
(10)
15
gdzie Rz (ϕz ) jest operatorem rotacji o kąt ϕz względem osi OZ.
Rzuty
• równoległy,
• perspektywiczny.
Rzut równoległy charakteryzuje się tym, że wszystkie krawędzie równoległe rzutowanego obiektu po zrzutowaniu pozostają do siebie równoległe, jak
na rys. 10a.
Rzut perspektywiczny charakteryzuje się tym, że nie wszystkie krawędzie
równoległe rzutowanego obiektu po zrzutowaniu pozostają do siebie równoległe,
jak na rys. 10b.
Rzut perspektywiczny przedstawia bryły w sposób w jaki je widzi oko ludzkie, a rzut równoległy w sposób matematyczny, który ułatwia projektowanie.
(a)
(b)
Rysunek 10: Rzuty sześcianu: (a) równoległy, (b) perspektywiczny.
Tor wizualizacji
Na tor wizualizacji składa się ciąg operacji, które umożliwiają wyświetlenie
obrazu świata 3D na monitorze. Operacje te obejmują m.in.: rzutowanie, przejście z układu współrzędnych rzutni na układ współrzędnych monitora. Należy
16
podkreślić, że podczas rzutowania tracona jest informacja o głębi obiektu rzutowanego. Muszą też być z rzutów usunięte niewidoczne dla obserwatora krawędzie
i ścianki obiektu rzutowanego.
Literatura zalecana:
[1] Zabrodzki J.(red), Grafika komputerowa – metody i narzędzia, WNT, Warszawa 1994.
[2] http://wazniak.mimuw.edu.pl/index.php?title=Grafika_
komputerowa_i_wizualizacja, (dostępna wrzesień 2009).
Wykład 4. Elementy CAD
Modelowanie 2D
• krzywe Béziera.
Krzywe Béziera są to krzywe wielomianowe, których kształt determinowany
jest przez położenie skończonej liczby punktów kontrolnych. Krzywą kwadratową (rys. 11) określają 3 punkty kontrolne, zaś krzywą kubiczną (rys. 12) 4
punkty kontrolne. Przez zmianę położenia punktów kontrolnych można w sposób zgodny z intuicją modelować te krzywe, jak i kształty z nich zbudowane (np.
fonty).
Rysunek 11: Kwadratowe krzywe Béziera – zmiana położenia jednego z punktów
kontrolnych.
17
Rysunek 12: Kubiczne krzywe Béziera – zmiana położenia dwóch punktów kontrolnych.
Ścieżki
Tak jak warstwy są charakterystyczne dla grafiki bitmapowej, tak ścieżki –
dla grafiki wektorowej. Służą one do modelowania kształtu 2D przez wskazanie punktów należących do danego kształtu. Przez zmianę położenia punktów można edytować dowolne kształty za pomocą narzędzi tworzących krzywe
Béziera, krzywe odręczne, łączniki itp. Ścieżki wykorzystywane są także do wskazania toru ruch obiektu przy automatycznym tworzeniu animacji jak np. w programie Flash.
Modelowanie 3D
• płaty Béziera,
• technika CSG – konstrukcyjna geometria brył.
Płaty Béziera są uogólnieniem krzywych Béziera. Za pomocą skończonej liczby
punktów kontrolnych można w sposób zgodny z intuicją modelować płaty powierzchni. Dwukwadratowy płat Béziera określa 9 punktów kontrolnych, zaś
płat dwukubiczny 16 punktów kontrolnych (rys. 13). Z płatów mogą być modelowane powierzchnie bardziej skomplikowane, jak np. karoserie samochodowe.
Technika CSG opiera się na obiektach podstawowych takich jak: sześcian, walec, stożek, kula, z których stosując operacje boolowskie (union, difference, intersection) oraz przekształcenia geometryczne (skalowanie, translacja, obroty)
można zbudować obiekty złożone, jak przykładowo przedstawiony obiekt na
rys. 15. Na rys. 14 pokazano rezultat działania podstawowych operacji logicznych na dwóch kształtach – walec i kula.
18
Rysunek 13: Kubiczny płat Béziera.
Rysunek 14: Operacje logiczne na dwóch kształtach: walec i kula.
Literatura zalecana:
[1] Zabrodzki J.(red), Grafika komputerowa – metody i narzędzia, WNT, Warszawa 1994.
[2] http://wazniak.mimuw.edu.pl/index.php?title=Grafika_
komputerowa_i_wizualizacja, (dostępna wrzesień 2009).
Wykład 5. Realizm w grafice komputerowej
Określenie fotorealistyczny oznacza, że tworzony obiekt czy scena ma jakość
zbliżoną do fotografii tego samego modelu. Fotorealizm związany jest silnie z
wiernym przedstawieniem oddziaływania światła z obiektami sceny. Programy
do tworzenia grafiki 3D wykorzystują fotorealizm po to by uzyskać za ich pomocą
obrazy jak najwierniejsze rzeczywistym obiektom. Obrazy realistyczne są tworzone w takich dziedzinach jak symulacja, projektowanie, rozrywka i reklama,
badania i nauczanie oraz zarządzanie. Systemy symulacyjne tworzą sceny nie
19
Rysunek 15: Złożony obiekt otrzymany w oparciu o technikę CSG.
tylko realistyczne ale również zmieniające się dynamicznie (np. symulator lotu).
Najważniejszymi elementami odpowiedzialnymi za realizm są: oświetlenie, własności materiałów (z których są wykonane obiekty sceny), własności powierzchni
(chropowata, wypolerowana, przepuszczająca światło) itp.
Oświetlenie
• światło otoczenia (tła) – ambient,
• światło rozproszone – diffuse,
• odbicie zwierciadlane – specular.
Na rys. 16 przedstawiono efekty, które uzyskuje się stosując różne rodzaje
oświetlenia.
Cieniowanie
Obliczenie oświetlenia dla każdego punktu obiektu jest czasowo bardzo kosztowne. Stąd redukuje się ilość tych obliczeń stosując uproszczenia wprowadzane
przez różne modele. Efekty które można uzyskać przedstawiono na rys. 17.
• Cieniowanie – płaskie (flat),
• Cieniowanie – wg. składowej z,
• Model Gourada,
20
Rysunek 16: Rodzaje oświetlenia.
• Model Phonga.
Cieniowanie płaskie polega na wypełnieniu ścianki obiektu jedną intensywnością barwy. Zmniejsza to w istotny sposób nakład obliczeń oświetlenia, gdyż
obliczenie oświetlenia przeprowadza się tylko dla jednego piksela ścianki obiektu.
W przypadku np. sześcianu cieniowanie płaskie daje dobre efekty wizualne. Dla
powierzchni krzywoliniowych już nie, gdyż powstaje wtedy nieciągłość oświetlenia (tzw. efekt Macha).
Cieniowanie wg. składowej z polega na wypełnieniu ścianki obiektu intensywnością barwy zmieniającej się wraz ze zmianą jej odległości od źródła światła.
Model Gourada – oświetlenie w nim zmienia się w obrębie ścianki. Wykorzystuje się interpolację liniową wielkości natężenia oświetlenia w wierzchołkach
ścianki. Model Gourada daje bardziej realistyczny wygląd obiektów krzywoliniowych w porównaniu z cieniowaniem płaskim. Niestety, na gładkich powierzchniach metalowych tworzą się odblaski o nienaturalnie wyglądających kształtach.
Model Phonga – zmniejsza wady modelu Gourada. W nim, stosuje się interpolację wektorów normalnych. Kosztem zwiększonego nakładu obliczeń uzyskuje
21
się bardziej realistyczne wizualizacje niż w przypadku modelu Gourada.
Rysunek 17: Cieniowanie.
Własności materiałów
Programy graficzne umożliwiają realistyczne przedstawienie przedmiotów wykonanych z różnych materiałów takich jak: szkło, metal, drewno. Przykład zastosowania różnych materiałów pokazano na rys. 18.
22
Rysunek 18: Przykład zastosowanie różnych materiałów.
Tekstury
Ponadto, na powierzchnie materiałów można nałożyć różne tekstury imitujące
np. nierówności powierzchni. Można też na te powierzchnie nałożyć tekstury imitujące odbłyski, bez przeliczania oświetlenia za pomocą np. modelu Gourada,
czy Phonga. Takie podejście przy mniejszych obliczeniach często daje dostatecznie dobre efekty zbliżone do fotorealizmu. Przykładowe tekstury pokazano na
rys. 19.
Rysunek 19: Tekstury.
Techniki fotorealistyczne
• Raytracing
• Radiosity
Raytracing, czyli metoda śledzenia promieni, wykorzystuje rzeczywiste zachowanie promieni świetlnych (odbicia, załamania) do tworzenia obrazów o jakości fotorealistycznej. Promienie od obserwatora wyprowadzane są w kierunku
23
sceny. Liczy się pierwsze przecięcia promieni z obiektami sceny. W miejscu przecięcia znajduje się prostopadłe do powierzchni obiektu. Następnie rozwiązuje
się równanie oświetlenia, otrzymując dla każdej składowej barwy (R, G, B) natężenie oświetlenia w punkcie przecięcia promienia. Na tej podstawie znajduje
się barwę i jasność piksela reprezentującego punkt przecięcia promienia. Jest
to podstawowa, najprostsza wersja raytracingu. W modyfikacjach algorytmu
śledzenia promieni analizuje się dodatkowo promienie odbite i załamane (powstające na granicy dwóch ośrodków optycznych). Te dodatkowe promienie pozwalają rozwiązać problemy odbić, zasłonięć i załamań. Obliczanie pierwszych
przecięć promieni z obiektami sceny jest najbardziej czasochłonną częścią Raytracingu. W przypadku zmiany położenia obserwatora ta część algorytmu musi
być ponownie przeliczona. Raytracing, w szczególności zaimplementowany jest
w POV Ray, darmowym programie do modelowania scen 3D. Raytracing jest
zalecany do stosowania w przypadku scen otwartych i scen, w których występują
obiekty odbijające bądź załamujące światło. Górna część rys. 20 pokazuje scenę
wyrenderowaną z wykorzystaniem Raytracingu.
Radiosity, czyli metoda energetyczna, opiera się na bilansie energetycznym
sporządzonym dla danej sceny 3D. W Radiosity wykorzystuje się model wymiany energii pomiędzy obiektami sceny. Zakłada się, że energia jest emitowana,
odbijana albo absorbowana przez wszystkie powierzchnie sceny podzielone na
płaty (ang. patch). Z bilansu energetycznego wylicza się energie przypadającą
na każdy płat sceny, co z kolei przekłada się na jasność i barwę odpowiadających
im pikseli. Obliczenia są bardzo czasochłonne. Jeśli geometria sceny pozostaje
niezmieniona, to przy zmianie położenia obserwatora, te czasochłonne obliczenia nie muszą być ponownie przeprowadzone. Metoda Radiosity, w szczególności
jest również zaimplementowana w programie POV Ray. Radiosity jest zalecane
do stosowania w przypadku scen zamkniętych (np. pomieszczenia), w których
nie ma powierzchni odbijających bądź załamujących światło. Dolna część rys. 20
pokazuje scenę wyrenderowaną z wykorzystaniem Radiosity.
W tym miejscu zachęcam do odwiedzenia strony:
http://zmigk.ii.us.edu.pl/,
na której przedstawiono najciekawsze projekty z zakresu grafiki komputerowej
wykonane przez studentów kierunków Informatyka i Inżynieria Biomedyczna
Uniwersytetu Śląskiego.
Literatura zalecana:
24
Rysunek 20: Techniki fotorealistczne: Raytracing i Radiosity.
[1] Zabrodzki J.(red), Grafika komputerowa – metody i narzędzia, WNT, Warszawa 1994.
[2] Foley J.D. i in., Wprowadzenie do grafiki komputerowej, WNT, Warszawa
1995.

Podobne dokumenty