Grafika komputerowa
Grafika komputerowa
Grafika komputerowa
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Grafika</strong> i Animacja<br />
Komputerowa<br />
dr Ewa Lach<br />
Zakład Oprogramowania,<br />
Instytut Informatyki
Plan<br />
<strong>Grafika</strong> rastrowa / wektorowa<br />
Rozdzielczość obrazu<br />
Barwy<br />
<strong>Grafika</strong> 3D<br />
Modelowanie i renderowanie obiektów<br />
Animacja <strong>komputerowa</strong><br />
Dwuwymiarowa / trójwymiarowa<br />
Techniki
Definicja<br />
<strong>Grafika</strong> <strong>komputerowa</strong><br />
– dział informatyki zajmujący się<br />
wykorzystaniem komputerów do<br />
generowania obrazów oraz<br />
wizualizacją rzeczywistych danych.
Klasyfikacja<br />
Kryterium: technika tworzenia<br />
obrazów/ reprezentacja danych<br />
<strong>Grafika</strong> rastrowa<br />
<strong>Grafika</strong> wektorowa
<strong>Grafika</strong> rastrowa<br />
Obraz zapisywany jest w postaci<br />
dwuwymiarowej tablicy pikseli (bitmapie),<br />
którym przypisywane są odpowiednie<br />
kolory<br />
b - biały<br />
z – zielony<br />
c - czerwony<br />
10 10 b b z b b b b b b b c c c z c ...
<strong>Grafika</strong> wektorowa<br />
Obraz opisywany za pomocą figur<br />
geometrycznych (ciągu matematycznych<br />
wzorów)<br />
P(0,1,4,6) c brak<br />
L(2,0,9,7) z<br />
E(4,5,5,5) n Ŝ
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć ( wraz z<br />
wzrostem liczby pikseli<br />
szybko rośnie wielkość<br />
plików)<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
(niezaleŜna od rozmiaru,<br />
funkcja ilości i złoŜoności<br />
opisu elementów<br />
składowych obrazu)
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
(nie pozwala na<br />
dokonywanie<br />
transformacji<br />
geometrycznych na<br />
elementach składowych<br />
obrazu)<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
(płynne transformacje<br />
całości obrazu i jego<br />
elementów bez utraty<br />
jakości prezentacji)
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
(nie pozwala na<br />
dokonywanie<br />
transformacji<br />
geometrycznych na<br />
elementach składowych<br />
obrazu)<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
(płynne transformacje<br />
całości obrazu i jego<br />
elementów bez utraty<br />
jakości prezentacji)<br />
Źródł: http://pl.wikipedia.org/
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
dopasowanie do<br />
urządzeń wyjściowych<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
konieczność konwersji<br />
do urządzeń wyjściowych<br />
(wyświetlacze rastrowe)
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
dopasowanie do<br />
urządzeń wyjściowych<br />
łatwość implementacji<br />
umoŜliwia uzyskanie<br />
duŜego realizmu<br />
kolorystycznego poprzez<br />
indywidualne określenie<br />
barwy kaŜdego elementu<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
konieczność konwersji<br />
do urządzeń wyjściowych<br />
(wyświetlacze rastrowe)<br />
analityczny opis<br />
doskonale nadaje się<br />
do reprezentowania<br />
obrazów zawierających<br />
elementy strukturalne
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
dopasowanie do<br />
urządzeń wyjściowych<br />
łatwość implementacji<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
konieczność konwersji<br />
do urządzeń wyjściowych<br />
(wyświetlacze rastrowe)<br />
analityczny opis
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
dopasowanie do<br />
urządzeń wyjściowych<br />
łatwość implementacji<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
konieczność konwersji<br />
do urządzeń wyjściowych<br />
(wyświetlacze rastrowe)<br />
analityczny opis
Porównanie<br />
<strong>Grafika</strong> rastrowa<br />
duŜe zapotrzebowanie<br />
na pamięć<br />
trudna modyfikacja<br />
dopasowanie do<br />
urządzeń wyjściowych<br />
łatwość implementacji<br />
<strong>Grafika</strong> wektorowa<br />
mała zajętość pamięci<br />
łatwość modyfikacji<br />
konieczność konwersji<br />
do urządzeń wyjściowych<br />
(wyświetlacze rastrowe)<br />
analityczny opis
Przykłady zastosowania<br />
<strong>Grafika</strong> wektorowa<br />
Rysunek techniczny<br />
Komputerowe wspomaganie<br />
Komputerowe wspomaganie<br />
projektowania<br />
(Computer Aided Design CAD)
Przykłady zastosowania<br />
<strong>Grafika</strong> wektorowa<br />
Rysunek techniczny<br />
Komputerowe wspomaganie projektowania<br />
(Computer Aided Design CAD)<br />
Źródło: Z. Postawa – „<strong>Grafika</strong> Komputerowa”
Przykłady zastosowania<br />
<strong>Grafika</strong> wektorowa<br />
Rysunek techniczny<br />
Komputerowe wspomaganie<br />
projektowania<br />
(Computer Aided Design CAD)<br />
Programy rysujące wykresy<br />
Animacje Macromedia Flesh (WWW)
Przykłady zastosowania<br />
<strong>Grafika</strong> rastrowa<br />
<strong>Grafika</strong> fotorealistyczna<br />
Telewizja cyfrowa i wideo<br />
Internet<br />
Fotografia cyfrowa<br />
Cyfrowa obróbka obrazu
Cyfrowa obróbka obrazu<br />
Źródło: http://glennferon.com/portfolio1/portfolio34.html
Cyfrowa obróbka obrazu<br />
Źródło: http://glennferon.com/portfolio1/portfolio34.html
Rozdzielczość<br />
Piksel – najmniejszy element<br />
obrazu, któremu moŜna<br />
przyporządkować dowolny kolor<br />
Punkt –najmniejszy element obrazu<br />
urządzenia wyjściowego (drukarki,<br />
naświetlarki etc.)<br />
800x600 – rozdzielczość obrazu
Rozdzielczość<br />
Piksel – najmniejszy element<br />
obrazu, któremu moŜna<br />
przyporządkować dowolny kolor<br />
Punkt –najmniejszy element obrazu<br />
urządzenia wyjściowego (drukarki,<br />
naświetlarki etc.)<br />
800x600 – rozmiar obrazu
Rozdzielczość<br />
Rozdzielczość najczęściej wyraŜamy w:<br />
dpi (dot per inch) liczba punktów na cal,<br />
wyraŜająca rozdzielczość urządzenia (skanera,<br />
drukarki).<br />
ppi (pixel per inch) liczba pikseli na cal,<br />
wyraŜająca rozdzielczość obrazu cyfrowego<br />
Drukarki i urządzenia naświetlające mają<br />
najczęściej ustaloną rozdzielczość.<br />
Rozdzielczość monitora zaleŜy od jego<br />
przekątnej oraz od ustawionych<br />
rozmiarów obrazu
Rozdzielczość monitora<br />
Rozdzielczość monitora zaleŜy od<br />
jego przekątnej oraz od ustawionych<br />
rozmiarów obrazu<br />
Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006
Rozdzielczość<br />
Rozdzielczość obrazu przeznaczonego do<br />
wydruku<br />
1 cal = 2,54 cm<br />
Przykład:<br />
10x15 cm, 300 ppi<br />
3,937 x 5,906 cali<br />
1181 x 1772 pikseli<br />
Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006
Rozdzielczość<br />
Rozdzielczość obrazu przeznaczonego do<br />
wyświetlania w przeglądarce internetowej<br />
Rozdzielczość obrazu przeznaczonego do<br />
wydruku<br />
1 cal = 2,54 cm<br />
Przykład:<br />
10x15 cm, 300 ppi<br />
3,937 x 5,906 cali<br />
1181 x 1772 pikseli<br />
72 ppi<br />
41,66 x 62,51 cm<br />
Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006
Barwa<br />
Pojęcie barwy jest pojęciem<br />
subiektywnym. WraŜenie związane z<br />
odbiorem barwy jest zaleŜne (poza<br />
warunkami obserwacji) od<br />
indywidualnych cech obserwatora. Z<br />
tego względu trudno jest opracować<br />
teorię jednolicie opisującą wszystkie<br />
zjawiska związane z pojęciem barwy
Modele Barw<br />
Ukierunkowane na uŜytkownika –<br />
HSV<br />
interaktywna metoda doboru<br />
odpowiedniej barwy<br />
Ukierunkowane na sprzęt<br />
- RGB, CMY, CMYK<br />
NiezaleŜne od urządzenia<br />
- CIE XYZ, CIE La*b*
HSV<br />
W modelu HSV kaŜdą barwę opisuje<br />
trójka liczb<br />
Odcień (kolor, ton) – Hue - róŜnica<br />
jakościowa barwy (np. czerwony,<br />
zielony) określana w fizyce przez<br />
dominującą długość fali.<br />
Nasycenie - Saturation<br />
Jaskrawość – Value / Brightness
HSV - odcień<br />
Źródło: Adobe Photshop
Munsell model<br />
– koło kolorów<br />
Sposób reprezentacji przestrzeni<br />
kolorów<br />
Odcień<br />
Nasycenie<br />
Jaskrawość
HSV - odcień<br />
Źródło: Adobe Photshop
HSV<br />
W modelu HSV kaŜdą barwę opisuje<br />
trójka liczb<br />
Odcień (kolor, ton) – Hue<br />
Nasycenie - Saturation - KaŜda barwa moŜe<br />
Nasycenie - Saturation - KaŜda barwa moŜe<br />
posiadać róŜny stopień nasycenia. Od zera,<br />
dla którego odnosimy jedynie wraŜenie<br />
jasności i nie potrafimy rozróŜnić koloru do<br />
jeden, gdy barwa jest w pełni nasycona<br />
(np. biel, róŜ, czerwień)
HSV - nasycenie<br />
Źródło: Adobe Photshop
HSV - nasycenie<br />
Źródło: Adobe Photshop
HSV - nasycenie<br />
Źródło: Adobe Photshop
HSV<br />
W modelu HSV kaŜdą barwę opisuje<br />
trójka liczb<br />
Odcień (kolor, ton) – Hue<br />
Nasycenie - Saturation<br />
Jaskrawość – Value / Brightness -<br />
Stopień zawartości światła białego w<br />
danej barwie
HSV - jaskrawość<br />
Źródło: Adobe Photshop
HSV - jaskrawość<br />
Źródło: Adobe Photshop
Munsell model<br />
– koło kolorów<br />
Sposób reprezentacji przestrzeni<br />
kolorów<br />
Odcień<br />
Nasycenie<br />
Jaskrawość
Modele Barw<br />
Ukierunkowane na uŜytkownika –<br />
HSV<br />
interaktywna metoda doboru<br />
odpowiedniej barwy<br />
Ukierunkowane na sprzęt<br />
- RGB, CMY, CMYK<br />
NiezaleŜne od urządzenia<br />
- CIE XYZ, CIE La*b*
RGB<br />
W modelu RGB barwa przedstawiana jest<br />
jako trójka liczb r, g i b. KaŜda liczba<br />
reprezentuje intensywność barwy<br />
składowej<br />
czerwonej ( Red )<br />
zielonej ( Green )<br />
niebieskiej ( Blue )<br />
RBG(0,0,0) - czarny<br />
RGB(1,1,1) – biały<br />
Model barw stosowany w monitorach<br />
ekranowych
CMY<br />
W modelu CMY barwa przedstawiana<br />
jest jako trójka liczb c, m i y. KaŜda<br />
liczba reprezentuje intensywność<br />
barwy:<br />
seledynowy ( Cyan )<br />
purpurowy ( Magenta )<br />
Ŝółty ( Yellow )
CMYK<br />
PoniewaŜ w praktyce trudno jest<br />
otrzymać prawdziwie czarny kolor<br />
mieszając barwy podstawowe CMY<br />
często dodaje się dodatkowo kolor<br />
czarny (blacK). Mówimy wówczas o<br />
modelu CMYK.<br />
Model barw stosowany w<br />
drukarkach, ploterach i poligrafii
CMY, CMYK<br />
CMY → CMYK<br />
k= min(c,m,y)<br />
CMYK(c-k,m-k,y-k,k)=CMY(c,m,y)<br />
(<br />
+<br />
(<br />
C M Y<br />
0.4<br />
0.2<br />
0.4<br />
0.5<br />
0.4<br />
)<br />
)<br />
K<br />
(<br />
+<br />
(<br />
C M Y<br />
0.2<br />
0.5<br />
0.4<br />
)<br />
)<br />
(<br />
0.4<br />
0.6<br />
0.9<br />
)<br />
(<br />
0.2 0.5<br />
0.4<br />
)
Sześciokąt kolorów<br />
Sposób reprezentacji przestrzeni<br />
kolorów
Sześciokąt kolorów<br />
Sposób reprezentacji przestrzeni<br />
kolorów
RGB, CMY<br />
CMY → RGB<br />
RGB(1-c,1-m,1-y)=CMY(c,m,y)<br />
RGB → CMY<br />
CMY(1-r,1-g,1-b)=RGB(r,g,b)
Głębia kolorów<br />
Głębokość bitowa - liczba bitów<br />
przeznaczona do zapisu<br />
wartości barwy.<br />
Najczęściej spotykane ustawienia:<br />
Obraz czarno-biały (maks. 2 barwy).<br />
Głębokość bitowa: 1 bit<br />
Obraz w odcieniach szarości<br />
(maks. 256 odcieni szarości).<br />
Głębokość bitowa: 1 bajt
Głębia kolorów – c.d.<br />
<br />
Obraz kolorowy w 256 kolorach<br />
(maks. 256 barw)<br />
Głębokość bitowa: 1 bajt<br />
KaŜdy bajt obrazu nie opisuje koloru tylko<br />
wskazuje na miejsce w tablicy kolorów<br />
Obraz<br />
Tablica<br />
kolorów
Głębia kolorów – c.d.<br />
„Hi Color” ( maks. 2 3x5 lub 2 5+6+5 =<br />
= 32 768 lub 65 536 )<br />
Głębokość bitowa: 15 lub 16 bitów<br />
„True Color”(maks. 2 3x8 ≈16milionów)<br />
Głębokość bitowa: 24 bity
Zajętość pamięciowa obrazu<br />
(n×m) × głębokość bitowa barwy<br />
Obraz True Color:<br />
1000x1000x24 bity<br />
= 24 000 000 B<br />
= 24000000/2 20 MB<br />
≈ 22,888 MB<br />
.JPG: 709,71 KB
Zajętość pamięciowa obrazu<br />
(n×m) × głębokość bitowa barwy<br />
Obraz czarno-biały:<br />
1000x1000 bity<br />
=1 000 000 B<br />
=1000000/1024 KB<br />
=976,5625 KB
Formaty zapisu grafiki<br />
<strong>Grafika</strong> rastrowa<br />
BMP, GIF, PNG, PCX, JPG, TIFF...<br />
<strong>Grafika</strong> wektorowa<br />
WMF, EPS, CDR, DXF...
Kanał alfa<br />
MoŜe być podawany dla kaŜdego<br />
piksela obrazu. Zawiera informacje o<br />
przezroczystości.<br />
Nakładanie częściowo<br />
przezroczystego obrazu na tło:<br />
RGB(ar T +(1-a)r O , ag T +(1-a)g O ,<br />
ab T + (1-a)b O ),<br />
a∈ - stopień przezroczystości
Kanał alfa<br />
RGB(0.2200+0.8100,<br />
0.2100+0.8200,0.2100+0.8100)<br />
= RGB(40+80,20+160,20+80)<br />
=RGB(120,180,100)
<strong>Grafika</strong> <strong>komputerowa</strong>-<br />
Klasyfikacja<br />
Kryterium: charakter danych<br />
<strong>Grafika</strong> dwuwymiarowa (2D)<br />
<strong>Grafika</strong> trójwymiarowa (3D)
<strong>Grafika</strong> dwuwymiarowa<br />
<strong>Grafika</strong> 2D moŜe zawierać w sobie<br />
modele geometryczne (grafikę wektorową),<br />
obrazy cyfrowe (grafikę rastrową),<br />
tekst (zdefiniowany przez styl i rozmiar<br />
czcionki, kolor, pozycję, i orientację),<br />
funkcje i równania matematyczne.<br />
Składowe te mogą być modyfikowane i<br />
manipulowane przez dwuwymiarowe<br />
transformacje geometryczne takie jak<br />
translacja, rotacja, skalowanie.
<strong>Grafika</strong> trójwymiarowa<br />
Obiekty obrazu są umieszczone w<br />
przestrzeni trójwymiarowej i celem<br />
programu komputerowego jest<br />
przede wszystkim przedstawienie<br />
trójwymiarowego świata na<br />
dwuwymiarowym obrazie.
<strong>Grafika</strong> 3D<br />
Modelowanie – tworzony jest opis sceny<br />
3D - kształtu i wyglądu obiektów,<br />
połoŜenia i charakterystyk źródeł<br />
światła,...<br />
Renderowanie (rendering) – tworzenie<br />
dwuwymiarowego obrazu na podstawie<br />
modelu 3D.
Reprezentacja obiektów 3D<br />
Chmura punktów<br />
Powierzchnie 3D<br />
Bryły
Reprezentacja obiektów 3D<br />
Chmura punktów – niestrukturalny<br />
zbiór punktów o współrzędnych<br />
(x,y,z) otrzymanych z systemów<br />
akwizycji obiektów 3D<br />
Powierzchnie 3D<br />
Bryły
Chmura punktów<br />
Źródło: http://www.smarttech.pl/
Chmura punktów<br />
Źródło: http://www.smarttech.pl/
Reprezentacja obiektów 3D<br />
Chmura punktów<br />
Powierzchnie 3D – opis<br />
powierzchni obiektów 3D<br />
Bryły
Siatka wielokątowa<br />
<br />
Siatka wielokątowa / siatka wielokątów (mesh)<br />
Zbiór wierzchołków (vertex / vertices), krawędzi<br />
(edge) i wielokątów (polygon, face)<br />
tak połączonych, Ŝe<br />
<br />
kaŜda krawędź jest wspólna przynajmniej dla dwóch<br />
wielokątów<br />
krawędź łączy dwa wierzchołki<br />
wielokąt jest zamkniętą sekwencją krawędzi<br />
wierzchołek jest wspólny dla przynajmniej dwóch<br />
krawędzi<br />
kaŜda krawędź jest częścią jakiegoś wielokąta<br />
Najczęściej siatka składa się z trójkątów (łatwość<br />
przekształceń).
Siatka wielokątowa<br />
http://www.turbosquid.com
Bryły<br />
Najczęstsze reprezentacje:<br />
z przesuwaniem lub obrotem<br />
brzegowa<br />
z podziałem przestrzennym<br />
dekompozycja na komórki<br />
wokselowa<br />
drzewa ósemkowe<br />
konstruktywna geometria brył (CSG)
Bryły przesuwane i<br />
obrotowe<br />
Modelowanie prostych, symetrycznych brył<br />
Bryły przesuwane („wyciągane”)<br />
– przesuwanie płaskiego obiektu wzdłuŜ<br />
trajektorii w przestrzeni<br />
bryły obrotowe – obracanie płaskiego<br />
wzorca wokół osi<br />
Np. z prostokąta<br />
moŜna uzyskać:<br />
bryłę przesuwaną<br />
– prostopadłościan<br />
bryłę obrotową<br />
– walec
Bryły przesuwane i<br />
obrotowe
Reprezentacja brzegowa<br />
brył (b-rep)<br />
Prosta metoda reprezentacji brył.<br />
Opisuje bryłę za pomocą:<br />
powierzchni ograniczających<br />
wierzchołków<br />
krawędzi<br />
ścian<br />
Stosowana jest<br />
np. przy tworzeniu<br />
brył złoŜonych<br />
z wielościanów.<br />
Powierzchnie mogą<br />
być krzywoliniowe.
Reprezentacje z podziałem<br />
przestrzennym<br />
Reprezentacja bryły za pomocą jej<br />
podziału na mniejsze bryły<br />
składowe.<br />
Dekompozycja na komórki<br />
Reprezentacja wokselowa<br />
Drzewa ósemkowe
Reprezentacje z podziałem<br />
przestrzennym<br />
Źródło: http://www.subdivision.org
Reprezentacje z podziałem<br />
przestrzennym<br />
Źródło: http://www.subdivision.org
Reprezentacje z podziałem<br />
przestrzennym<br />
Źródło: http://www.subdivision.org
Dekompozycja na komórki<br />
Podział bryły na „prymitywy” –<br />
proste bryły róŜnego typu składane<br />
na zasadzie sklejania
Reprezentacja wokselowa<br />
Podział bryły na „woksele” – identyczne<br />
elementy przestrzeni (najczęściej<br />
sześciany), uporządkowane wg stałej<br />
regularnej siatki<br />
Reprezentacja:<br />
woksel jest<br />
zajęty lub nie<br />
w kaŜdym<br />
miejscu siatki
Reprezentacja wokselowa<br />
Łatwość kodowania obiektu<br />
Nie ma miejsca na częściową zajętość –<br />
wiele brył moŜe być tylko<br />
aproksymowanych<br />
Woksele mogą być zmniejszane dla<br />
zwiększenia dokładności opisu<br />
Ograniczenie pamięciowe<br />
(do reprezentowania obiektu o<br />
rozdzielczości n wokseli w kaŜdym<br />
kierunku trzeba n 3 wokseli )
Drzewa ósemkowe<br />
Reprezentacja wokselowa jest<br />
nadmiarowa. Konieczny jest opis<br />
wszystkich wokseli płaszczyzny. DuŜa<br />
zajętość pamięci.<br />
Modyfikacja metody wokselowej –<br />
wykorzystanie drzew ósemkowych.<br />
Drzewa ósemkowe wywodzą się z drzew<br />
czwórkowych, słuŜących do kodowania<br />
obrazów na płaszczyźnie.
Drzewa czwórkowe<br />
Podział obszaru płaszczyzny na 4<br />
kwadranty.<br />
Kodowanie kaŜdego kwadrantu:<br />
czarny – cały kwadrant naleŜy do obiektu<br />
biały – cały kwadrant nie naleŜy do obiektu<br />
szary – kwadrant częściowo naleŜy do obiektu<br />
Kwadranty szare są rekurencyjnie<br />
dzielone i sprawdzane według tej samej<br />
metody.
Drzewa czwórkowe
Drzewa czwórkowe<br />
P
Drzewa czwórkowe<br />
P<br />
0<br />
P<br />
1<br />
P<br />
2<br />
P<br />
3<br />
P
Drzewa czwórkowe<br />
P<br />
P<br />
P<br />
P<br />
P<br />
E<br />
P<br />
E<br />
P
Drzewa czwórkowe<br />
P<br />
P<br />
P<br />
P<br />
P<br />
E<br />
P<br />
E<br />
P<br />
E E P<br />
E P P<br />
E E P E P P<br />
F<br />
E<br />
F<br />
E<br />
F<br />
E F F
Drzewa czwórkowe<br />
P<br />
P<br />
P<br />
P<br />
P<br />
E<br />
P<br />
E<br />
P<br />
E E P<br />
E P P<br />
E E P E P P<br />
F<br />
E<br />
F<br />
E<br />
F<br />
E F F<br />
E<br />
E<br />
F<br />
F<br />
F E F E F E F F<br />
F E F E E E<br />
F<br />
F<br />
F<br />
E<br />
E E
Drzewa ósemkowe<br />
Przestrzeń jest dzielona na 8<br />
sześcianów.<br />
Kodowanie sześcianów za pomocą<br />
liczb.<br />
Metoda rekurencyjna,<br />
tak jak dla drzew<br />
czwórkowych.
Drzewa binarnego podziału<br />
przestrzeni (BSP)<br />
Dzielą rekurencyjnie przestrzeń na<br />
parę podprzestrzeni płaszczyzną o<br />
dowolnej orientacji i połoŜeniu
Konstruktywna geometria<br />
brył (CSG)<br />
Reprezentacja w postaci drzewa<br />
Liście drzewa - proste prymitywy –<br />
elementarne bryły<br />
Węzły drzewa - operatory boolowskie<br />
(suma, iloczyn, róŜnica)<br />
oraz przekształcenia<br />
(przesunięcie, obrót,<br />
skalowanie)<br />
Uporządkowane<br />
krawędzie drzewa
Odwzorowanie szczegółów<br />
powierzchni<br />
Odwzorowanie tekstury<br />
- odwzorowanie szczegółów obiektu za<br />
pomocą nakładania tekstury na<br />
powierzchnie obiektu.<br />
Tekstura – dwuwymiarowa mapa bitowa<br />
zawierająca pewien obraz.<br />
Teksel – kaŜdy piksel tekstury
Odwzorowanie tekstur<br />
Źródło: http://www.turbosquid.com
Modelowanie<br />
Pełny model trójwymiarowy zawiera<br />
informację o:<br />
Kształcie obiektu (zbiór werteksów)<br />
Wyglądzie obiektu (kolor, tekstury)<br />
PołoŜeniu i rodzaju źródeł światła<br />
PołoŜeniu obserwatora (kamery)
<strong>Grafika</strong> 3D<br />
Modelowanie – tworzony jest opis sceny<br />
3D - kształtu i wyglądu obiektów,<br />
połoŜenia i charakterystyk źródeł światła,<br />
itp.<br />
Renderowanie (rendering) – tworzenie<br />
dwuwymiarowego obrazu na podstawie<br />
modelu 3D.
Renderowanie<br />
Na podstawie opisu sceny:<br />
Wyznaczenie widoku dla połoŜenia<br />
obserwatora<br />
Obcięcie widoku do wielkości obrazu<br />
Wyznaczenie powierzchni widocznych<br />
Cieniowanie i teksturowanie obrazu
Model oświetlenia<br />
globalnego<br />
Wyznacza barwę piksela obrazu na<br />
podstawie promieni świetlnych:<br />
bezpośrednio od źródeł światła<br />
odbitych od powierzchni<br />
przepuszczonych przez powierzchnie<br />
przezroczyste i półprzezroczyste<br />
(załamanych)
Modelowanie oświetlenia<br />
Światło otoczenia pada jednakowo<br />
na wszystkie powierzchnie ze<br />
wszystkich kierunków.<br />
Obiekty oświetlane są jednolicie na<br />
całej powierzchni.
Światło otoczenia<br />
Kula oświetlona światłem otoczenia
Modelowanie oświetlenia<br />
Światło otoczenia.<br />
Światło rozproszone.<br />
Punktowe źródło światła – promienie<br />
rozchodzą się równomiernie we<br />
wszystkich kierunkach z jednego<br />
punktu.<br />
Jasność obiektów w róŜnych<br />
punktach zaleŜy od kierunku<br />
padania promieni i odległości od<br />
źródła światła.
Światło otoczenia +<br />
światło rozproszone<br />
światło<br />
otoczenia<br />
światło rozproszone<br />
światło otoczenia+<br />
światło rozproszone
Modelowanie oświetlenia<br />
Światło otoczenia.<br />
Światło rozproszone.<br />
Odbicie zwierciadlane.
Odbicie zwierciadlane<br />
Promienie światła padające na<br />
powierzchnię błyszczącą<br />
powodują jej rozświetlenie:<br />
zmianę jasności<br />
zmianę barwy (zaleŜnie od barwy światła)
Cieniowanie<br />
Ustalanie barwy obiektów na<br />
podstawie:<br />
Światła odbitego<br />
Powierzchni obiektów<br />
Szybkość – Jakość<br />
<br />
Zastosowanie
Algorytmy oświetlenia<br />
globalnego<br />
ray-tracing<br />
radiosity<br />
radiosity + ray-tracing
Wyznaczania<br />
powierzchni widocznych<br />
Algorytm bufora głębokości<br />
(Z-Buffer)<br />
Metoda śledzenia promieni<br />
Algorytm malarski<br />
Eliminacja tylnych ścian
Algorytm bufora głębokości<br />
Potrzebne dwa obszary pamięci o takim<br />
samym rozmiarze:<br />
pamięć obrazu<br />
–piksele-wartość barwy<br />
bufor z – wartość z<br />
(głębokość) dla kaŜdego<br />
piksela<br />
Działanie algorytmu<br />
polega na szukaniu<br />
największej wartości z i<br />
dla kaŜdego punktu obrazu
Algorytm bufora głębokości<br />
Źródło: http://pl.wikipedia.org/wiki/Bufor_Z
Animacja<br />
Szybka projekcja sekwencji<br />
indywidualnych obrazów (klatek animacji)<br />
zmieniających się stopniowo z upływem<br />
czasu.<br />
Obrazy wyświetlane najczęściej z<br />
szybkością: 24 lub 30 klatek na sekundę
Animacja <strong>komputerowa</strong><br />
Generacja obrazów animacji odbywa<br />
się z wykorzystaniem<br />
specjalistycznego oprogramowania<br />
komputerowego, a ruch obiektów<br />
pomiędzy dwoma klatkami często<br />
oblicza się na podstawie<br />
matematycznych wzorów.
Animacja <strong>komputerowa</strong><br />
Oceniając technikę tworzenia animacji lub<br />
aplikację trzeba uwzględnić<br />
Szybkość generowania klatek (obrazów)<br />
animacji<br />
Łatwość kontrolowania wyglądu animacji<br />
Wymagania w stosunku do animatora<br />
MoŜliwość interaktywnego generowania<br />
animacji<br />
Zastosowanie określa wymagania (np.<br />
róŜne dla gier i filmu)
Animacja <strong>komputerowa</strong><br />
Wspomaganie tradycyjnego procesu<br />
tworzenia animacji – automatyczna<br />
generacja części klatek animacji<br />
Łączenie róŜnych warstw sceny<br />
Renderowanie obrazów w oparciu o<br />
geometryczny opis sceny<br />
Komputer dostarcza nowych zastosowań<br />
dla animacji:<br />
animacja w czasie rzeczywistym ( wirtualna<br />
rzeczywistość, gry, interaktywne media)
Animowane obiekty<br />
Swobodne, doskonale sztywne (ang. rigid)<br />
- brak poruszających się części<br />
Przegubowe (ang. articulated) – posiadają<br />
części, pomiędzy którymi moŜliwy jest ruch<br />
Deformowalne (ang. deformable) – np.<br />
ubranie<br />
Obiekty wykorzystujące prawa fizyki do<br />
symulacji ruchu (ang. dynamics)<br />
Systemy cząsteczkowe (ang. particle<br />
system)<br />
Behawioralne (ang. behavioral) – opis<br />
zachowania
Animacja dwuwymiarowa<br />
Animacja sprite'ów (ang. sprite<br />
animation)<br />
Morphing<br />
Dodawanie i usuwanie obiektów<br />
obrazów (klatek animacji)
Animacja sprite'ów<br />
Sprite (dosł. duszek) – dwuwymiarowy<br />
obrazek lub zbiór obrazków umieszczony<br />
na większej scenie, wywołujący wraŜenie<br />
ruchu<br />
Źródło: pl.wikipedia.org
Animacja sprite’ów<br />
Zastosowanie<br />
Dwuwymiarowe gry, animacje (sprite sheet)<br />
Źródło: http://www.spriters-resource.com
Animacja sprite’ów<br />
Zastosowanie<br />
Dwuwymiarowe gry, animacje (sprite sheet)<br />
Internet (strony www)<br />
Trójwymiarowe gry (do przedstawienia ognia,<br />
dymu, bardzo małych obiektów, małych roślin<br />
(np. źdźbło trawy)<br />
Efekty specjalne w filmie (ogień Balrog’a –<br />
Władca pierścieni)<br />
GUI – np. wskaźnik myszy
Animacja dwuwymiarowa<br />
Animacja sprite'ów (ang. sprite<br />
animation)<br />
Morphing<br />
Dodawanie i usuwanie obiektów<br />
obrazów (klatek animacji)
Morphing<br />
Technologia przekształcania obrazu<br />
polegająca na płynnej zmianie<br />
jednego obrazu w inny.
Morphing<br />
Technologia przekształcania obrazu<br />
polegająca na płynnej zmianie<br />
jednego obrazu w inny.<br />
Kluczowe punkty początkowego i<br />
końcowego obrazu są ustawiane<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Morphing<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Animacja dwuwymiarowa<br />
Animacja sprite'ów (ang. sprite<br />
animation)<br />
Morphing<br />
Dodawanie i usuwanie obiektów<br />
obrazów (klatek animacji)
Animacja trójwymiarowa<br />
Modelowanie<br />
Animacja<br />
Renderowanie
Animacja trójwymiarowa<br />
Modelowanie<br />
Animacja<br />
Renderowanie<br />
procesy<br />
współzaleŜne
Animacja trójwymiarowa<br />
Modelowanie<br />
Pełny model trójwymiarowy zawiera<br />
informację o:<br />
Kształcie obiektu (zbiór wierzchołków)<br />
Wyglądzie obiektu (kolor, tekstury)<br />
PołoŜenie i orientacje obiektu<br />
PołoŜeniu i rodzaju źródeł światła<br />
PołoŜeniu obserwatora (kamery)<br />
Źródło: pl.wikipedia.org
Animacja szkieletowa<br />
Szkielet – hierarchiczny system<br />
składający się z kości połączonych<br />
za pomocą stawów.<br />
Dla kaŜdej kości przechowywana<br />
jest transformacja kości w układzie<br />
współrzędnych wyznaczonym przez<br />
rodzica
Animacja szkieletowa
Animacja szkieletowa
Animacja<br />
szkieletowa<br />
Animacja<br />
szkieletowa - ruch<br />
jednej lub więcej kości<br />
modelu, czyli zmiana<br />
jej transformacji
Animacja<br />
szkieletowa<br />
<br />
<br />
Dla kaŜdej kości<br />
przechowywana jest<br />
transformacja kości w<br />
układzie współrzędnych<br />
wyznaczonym przez rodzica<br />
Relacje między wierzchołkami<br />
modelu a jego szkieletem są<br />
stałe i zaprojektowane przez<br />
grafika<br />
Pozycja kaŜdego wierzchołka<br />
modelu zaleŜy od co najmniej<br />
jednej kości szkieletu modelu.
Animacja szkieletowa<br />
Zalety<br />
Animując niewielki zestaw punktów – kości<br />
poruszamy całym, nieraz bardzo złoŜonym<br />
modelem<br />
Oprócz warstwy szkieletu i siatki<br />
wielokątów stosuje się dodatkowe<br />
warstwy (np. mięśni/tkanki , ubrań,<br />
włosów, futra, zorientowanych<br />
prostopadłościanów ograniczających)
Animacja <strong>komputerowa</strong><br />
Podział<br />
Dwuwymiarowa<br />
Trójwymiarowa<br />
Techniki<br />
Technika klatek kluczowych<br />
Systemy przechwytywania ruchu<br />
Kinematyka<br />
Dynamika<br />
Animacja behawioralna
Technika klatek kluczowych<br />
Tradycyjna metoda animacji<br />
Główny animator rysuje najwaŜniejsze sceny -<br />
klatki kluczowe (ang. keyframe)<br />
Asystenci domalowują klatki pośrednie (ang.<br />
tweens)<br />
Animacja <strong>komputerowa</strong><br />
Animator określa klatki kluczowe<br />
Komputer (program) wylicza klatki pośrednie
Technika klatek kluczowych<br />
Klatki kluczowe<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Technika klatek kluczowych<br />
Klatki kluczowe<br />
Klatki pośrednie<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Technika klatek kluczowych<br />
Klatki kluczowe<br />
Klatki pośrednie<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Technika klatek kluczowych<br />
Zalety<br />
Względnie łatwa w uŜyciu<br />
Animator posiada nisko-poziomową kontrolę<br />
Wady<br />
śmudna i powolna<br />
Animator – artysta<br />
Trudno wykorzystać otrzymaną animację<br />
ponownie lub poprawić<br />
Interpolacja niezgodna z oczekiwaniami
Interpolacja liniowa<br />
Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/
Animacja <strong>komputerowa</strong><br />
Podział<br />
Dwuwymiarowa<br />
Trójwymiarowa<br />
Techniki<br />
Technika klatek kluczowych<br />
Systemy przechwytywania ruchu<br />
Kinematyka<br />
Dynamika<br />
Animacja behawioralna
Systemy przechwytywania<br />
ruchu (motion capture)<br />
Rejestracja ruchu obiektu w oparciu o<br />
czujniki, markery umieszczone na<br />
obiekcie<br />
Czujniki<br />
Sensory<br />
magnetyczne<br />
Mechaniczne<br />
Optyczne
Systemy przechwytywania<br />
ruchu<br />
Zalety<br />
Realistyczna animacja<br />
Wady<br />
Trudne do wykorzystania do<br />
• sytuacji zmienionych w niewielkim stopniu<br />
• innych obiektów<br />
Wykorzystywane technologie stawiają<br />
ograniczenia na ruch moŜliwy do wykonania<br />
Względnie drogie
Animacja <strong>komputerowa</strong><br />
Podział<br />
Dwuwymiarowa<br />
Trójwymiarowa<br />
Techniki<br />
Technika klatek kluczowych<br />
Systemy przechwytywania ruchu<br />
Kinematyka<br />
Dynamika<br />
Animacja behawioralna
Kinematyka<br />
Opis ruchu abstrahuje od<br />
działających sił i bezwładności ciał.<br />
Określane są dla animowanych<br />
obiektów:<br />
Pozycja<br />
Szybkość<br />
Przyspieszenie<br />
Odnosi się do obiektów<br />
przegubowych (ang. articulated )
Kinematyka prosta<br />
Zdefiniuj względny<br />
obrót wybranej<br />
kości,<br />
przedział czasowy.
Kinematyka prosta<br />
Znamy ruchy stawów. Określamy<br />
połoŜenie końcowego obiektu w<br />
hierarchii.
Kinematyka odwrotna<br />
Zdefiniuj połoŜenie końcowego<br />
obiektu w hierarchii.
Kinematyka odwrotna<br />
Szukamy obrotów stawów obiektów wyŜej<br />
w hierarchii.<br />
Uwzględniamy ograniczenia nałoŜone na<br />
kąty obrotów stawów
Kinematyka odwrotna<br />
Szukamy obrotów stawów obiektów wyŜej<br />
w hierarchii.<br />
Uwzględniamy ograniczenia nałoŜone na<br />
kąty obrotów stawów<br />
oraz kolizje.
Animacja <strong>komputerowa</strong><br />
Podział<br />
Dwuwymiarowa<br />
Trójwymiarowa<br />
Techniki<br />
Technika klatek kluczowych<br />
Systemy przechwytywania ruchu<br />
Kinematyka<br />
Dynamika<br />
Animacja behawioralna
Dynamika<br />
Wykorzystuje się prawa fizyki.<br />
Ustala się takie wielkości jak:<br />
waga, masa, bezwładność,<br />
waga, masa, bezwładność,<br />
elastyczność obiektu,<br />
grawitacja, tarcie, itd.
Dynamika<br />
Zalety<br />
Względnie łatwo generować podobne ruchy<br />
UmoŜliwia opisanie realistycznej, złoŜonej<br />
animacji<br />
UmoŜliwia generowanie odtwarzalnego ruchu<br />
Wady<br />
Wymaga uwzględnienia wszystkich sił<br />
działających na obiekt<br />
Słaba kontrola animatora
Animacja <strong>komputerowa</strong><br />
Podział<br />
Dwuwymiarowa<br />
Trójwymiarowa<br />
Techniki<br />
Technika klatek kluczowych<br />
Systemy przechwytywania ruchu<br />
Kinematyka<br />
Dynamika<br />
Animacja behawioralna
Animacja behawioralna<br />
Opis zachowania postaci wirtualnych<br />
uwzględnia:<br />
Czynniki zewnętrzne<br />
Stan wewnętrzny postaci<br />
Cele postaci
Animacja behawioralna<br />
TRex()<br />
{<br />
jeŜeli(widzisz_człowieka i człowiek_blisko)<br />
zjedź_człowieka()<br />
albo jeŜeli (widzisz_człowieka)<br />
albo<br />
}<br />
goń_człowieka()<br />
szukaj_człowieka()
Animacja behawioralna<br />
Opis zachowania za pomocą:<br />
Skrypty<br />
Reguły<br />
Automaty skończone<br />
Drzewa decyzyjne<br />
Sieci neuronowe