23.10.2014 Views

Grafika komputerowa

Grafika komputerowa

Grafika komputerowa

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!