Grafika i Animacja Komputerowa -...

155
Grafika i Animacja Komputerowa dr Ewa Lach Zakład Oprogramowania, Instytut Informatyki

Transcript of Grafika i Animacja Komputerowa -...

Grafika i Animacja Komputerowa

dr Ewa LachZakład Oprogramowania, Instytut Informatyki

Plan

� Grafika rastrowa / wektorowa� Rozdzielczość obrazu � Barwy� Barwy� Grafika 3D

� Modelowanie i renderowanie obiektów

� Animacja komputerowa� Dwuwymiarowa / trójwymiarowa� Techniki

Definicja

� Grafika komputerowa – dział informatyki zajmujący się wykorzystaniem komputerów do generowania obrazów oraz generowania obrazów oraz wizualizacją rzeczywistych danych.

Klasyfikacja

� Kryterium: technika tworzenia obrazów/ reprezentacja danych� Grafika rastrowaGrafika rastrowa� Grafika wektorowa

Grafika rastrowa� Obraz zapisywany jest w postaci

dwuwymiarowej tablicy pikseli (bitmapie), którym przypisywane są odpowiednie kolorykolory

b - białyz – zielonyc - czerwony

10 10 b b z b b b b b b b c c c z c ...

Grafika wektorowa� Obraz opisywany za pomocą figur

geometrycznych (ciągu matematycznych wzorów)

P(0,1,4,6) c brakL(2,0,9,7) zE(4,5,5,5) n Ŝ

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć ( wraz z wzrostem liczby pikseli

mała zajętość pamięci (niezaleŜna od rozmiaru, funkcja ilości i złoŜoności wzrostem liczby pikseli

szybko rośnie wielkość plików)

funkcja ilości i złoŜoności opisu elementów składowych obrazu)

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji (płynne transformacje � trudna modyfikacja

(nie pozwala na dokonywanie transformacji geometrycznych na elementach składowych obrazu)

(płynne transformacje całości obrazu i jego elementów bez utraty jakości prezentacji)

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji (płynne transformacje

Źródł: http://pl.wikipedia.org/

� trudna modyfikacja (nie pozwala na dokonywanie transformacji geometrycznych na elementach składowych obrazu)

(płynne transformacje całości obrazu i jego elementów bez utraty jakości prezentacji)

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji� konieczność konwersji � trudna modyfikacja

dopasowanie do urządzeń wyjściowych

� konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe)

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji� konieczność konwersji � trudna modyfikacja

dopasowanie do urządzeń wyjściowych łatwość implementacji umoŜliwia uzyskanie duŜego realizmu kolorystycznego poprzez indywidualne określenie barwy kaŜdego elementu

� konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe)analityczny opis doskonale nadaje się do reprezentowania obrazów zawierających elementy strukturalne

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji� konieczność konwersji � trudna modyfikacja

dopasowanie do urządzeń wyjściowych łatwość implementacji

� konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe)analityczny opis

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji� konieczność konwersji � trudna modyfikacja

dopasowanie do urządzeń wyjściowych łatwość implementacji

� konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe)analityczny opis

PorównanieGrafika rastrowa Grafika wektorowa� duŜe zapotrzebowanie na pamięć� trudna modyfikacja

mała zajętość pamięci łatwość modyfikacji� konieczność konwersji � trudna modyfikacja

dopasowanie do urządzeń wyjściowych łatwość implementacji

� konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe)analityczny opis

Przykłady zastosowania

� Grafika wektorowa� Rysunek techniczny� Komputerowe wspomaganie � Komputerowe wspomaganie

projektowania (Computer Aided Design CAD)

Przykłady zastosowania� Grafika wektorowa

� Rysunek techniczny� Komputerowe wspomaganie projektowania

(Computer Aided Design CAD)(Computer Aided Design CAD)

Źródło: Z. Postawa – „Grafika Komputerowa”

Przykłady zastosowania

� Grafika wektorowa� Rysunek techniczny� Komputerowe wspomaganie � Komputerowe wspomaganie

projektowania (Computer Aided Design CAD)

� Programy rysujące wykresy� Animacje Macromedia Flesh (WWW)

Przykłady zastosowania

� Grafika rastrowa� Grafika fotorealistyczna� Telewizja cyfrowa i wideo� Telewizja cyfrowa i wideo� Internet� Fotografia cyfrowa� Cyfrowa obróbka obrazu

Cyfrowa obróbka obrazu

Źródło: http://glennferon.com/portfolio1/portfolio34.html

Cyfrowa obróbka obrazu

Źródło: http://glennferon.com/portfolio1/portfolio34.html

Rozdzielczość� Piksel – najmniejszy element

obrazu, któremu moŜna przyporządkować dowolny kolorPunkt –najmniejszy element obrazu � Punkt –najmniejszy element obrazu urządzenia wyjściowego (drukarki, naświetlarki etc.)

� 800x600 – rozdzielczość obrazu

Rozdzielczość� Piksel – najmniejszy element

obrazu, któremu moŜna przyporządkować dowolny kolorPunkt –najmniejszy element obrazu � Punkt –najmniejszy element obrazu urządzenia wyjściowego (drukarki, naświetlarki etc.)

� 800x600 – rozmiar obrazu

Rozdzielczość� Rozdzielczość najczęściej wyraŜamy w:

� dpi (dot per inch) liczba punktów na cal, wyraŜająca rozdzielczość urządzenia (skanera, drukarki).

� ppi (pixel per inch) liczba pikseli na cal, wyraŜająca rozdzielczość obrazu cyfrowego

� Drukarki i urządzenia naświetlające mają najczęściej ustaloną rozdzielczość.

� Rozdzielczość monitora zaleŜy od jego przekątnej oraz od ustawionych rozmiarów obrazu

Rozdzielczość monitora

� Rozdzielczość monitora zaleŜy od jego przekątnej oraz od ustawionych rozmiarów obrazu

Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006

Rozdzielczość� Rozdzielczość obrazu przeznaczonego do

wydruku� 1 cal = 2,54 cm� Przykład: � Przykład:

10x15 cm, 300 ppi3,937 x 5,906 cali1181 x 1772 pikseli

Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006

Rozdzielczość� Rozdzielczość obrazu przeznaczonego do

wyświetlania w przeglądarce internetowej� Rozdzielczość obrazu przeznaczonego do

wydrukuwydruku� 1 cal = 2,54 cm� Przykład:

10x15 cm, 300 ppi3,937 x 5,906 cali1181 x 1772 pikseli

72 ppi41,66 x 62,51 cm

Źródło: Jacek Tarasiuk - Wprowadzenie do grafiki komputerowej v.2006

Barwa

� Pojęcie barwy jest pojęciem subiektywnym. WraŜenie związane z odbiorem barwy jest zaleŜne (poza warunkami obserwacji) od warunkami obserwacji) od indywidualnych cech obserwatora. Z tego względu trudno jest opracować teorię jednolicie opisującą wszystkie zjawiska związane z pojęciem barwy

Modele Barw� Ukierunkowane na uŜytkownika –

HSV interaktywna metoda doboru odpowiedniej barwyodpowiedniej barwy

� Ukierunkowane na sprzęt - RGB, CMY, CMYK

� NiezaleŜne od urządzenia - CIE XYZ, CIE La*b*

HSV

� W modelu HSV kaŜdą barwę opisuje trójka liczb� Odcień (kolor, ton) – Hue - róŜnica Odcień (kolor, ton) – Hue - róŜnica

jakościowa barwy (np. czerwony, zielony) określana w fizyce przez dominującą długość fali.

� Nasycenie - Saturation

� Jaskrawość – Value / Brightness

HSV - odcień

Źródło: Adobe Photshop

Munsell model – koło kolorów

� Sposób reprezentacji przestrzeni kolorów

OdcieńOdcień

NasycenieJaskrawość

HSV - odcień

Źródło: Adobe Photshop

HSV� W modelu HSV kaŜdą barwę opisuje

trójka liczb� Odcień (kolor, ton) – Hue

Nasycenie - Saturation - KaŜda barwa moŜe � Nasycenie - Saturation - KaŜda barwa moŜe posiadać róŜny stopień nasycenia. Od zera, dla którego odnosimy jedynie wraŜenie jasności i nie potrafimy rozróŜnić koloru do jeden, gdy barwa jest w pełni nasycona (np. biel, róŜ, czerwień)

HSV - nasycenie

Źródło: Adobe Photshop

HSV - nasycenie

Źródło: Adobe Photshop

HSV - nasycenie

Źródło: Adobe Photshop

HSV

� W modelu HSV kaŜdą barwę opisuje trójka liczb� Odcień (kolor, ton) – HueOdcień (kolor, ton) – Hue

� Nasycenie - Saturation

� Jaskrawość – Value / Brightness -Stopień zawartości światła białego w danej barwie

HSV - jaskrawość

Źródło: Adobe Photshop

HSV - jaskrawość

Źródło: Adobe Photshop

Munsell model – koło kolorów

� Sposób reprezentacji przestrzeni kolorów

OdcieńOdcień

NasycenieJaskrawość

Modele Barw� Ukierunkowane na uŜytkownika –

HSV interaktywna metoda doboru odpowiedniej barwyodpowiedniej barwy

� Ukierunkowane na sprzęt- RGB, CMY, CMYK

� NiezaleŜne od urządzenia - CIE XYZ, CIE La*b*

RGB� W modelu RGB barwa przedstawiana jest

jako trójka liczb r, g i b. KaŜda liczba reprezentuje intensywność barwy składowejskładowej� czerwonej ( Red )� zielonej ( Green )� niebieskiej ( Blue )RBG(0,0,0) - czarnyRGB(1,1,1) – biały

� Model barw stosowany w monitorach ekranowych

CMY

� W modelu CMY barwa przedstawiana jest jako trójka liczb c, m i y. KaŜda liczba reprezentuje intensywność barwy:barwy:� seledynowy ( Cyan )� purpurowy ( Magenta )� Ŝółty ( Yellow )

CMYK

� PoniewaŜ w praktyce trudno jest otrzymać prawdziwie czarny kolor mieszając barwy podstawowe CMY często dodaje się dodatkowo kolor często dodaje się dodatkowo kolor czarny (blacK). Mówimy wówczas o modelu CMYK.

� Model barw stosowany w drukarkach, ploterach i poligrafii

CMY, CMYK

� CMY → CMYKk= min(c,m,y)CMYK(c-k,m-k,y-k,k)=CMY(c,m,y)CMYK(c-k,m-k,y-k,k)=CMY(c,m,y)

(

(

(

+

0.2

0.4

0.4

0.4

0.5

0.6

0.4

0.9

C M Y

)

)

)

(

(

(

+

0.2

0.4

0.5

0.2 0.5

C M Y

K

)

)

)0.4

Sześciokąt kolorów

� Sposób reprezentacji przestrzeni kolorów

Sześciokąt kolorów

� Sposób reprezentacji przestrzeni kolorów

RGB, CMY

� CMY → RGBRGB(1-c,1-m,1-y)=CMY(c,m,y)

� RGB → CMY� RGB → CMYCMY(1-r,1-g,1-b)=RGB(r,g,b)

Głębia kolorów� Głębokość bitowa - liczba bitów

przeznaczona do zapisu wartości barwy. Najczęściej spotykane ustawienia:� Najczęściej spotykane ustawienia:� Obraz czarno-biały (maks. 2 barwy).

Głębokość bitowa: 1 bit� Obraz w odcieniach szarości

(maks. 256 odcieni szarości). Głębokość bitowa: 1 bajt

Głębia kolorów – c.d.� Obraz kolorowy w 256 kolorach

(maks. 256 barw)Głębokość bitowa: 1 bajtKaŜdy bajt obrazu nie opisuje koloru tylko wskazuje na miejsce w tablicy kolorówwskazuje na miejsce w tablicy kolorów

ObrazTablica kolorów

Głębia kolorów – c.d.

� „Hi Color” ( maks. 23x5 lub 25+6+5 == 32 768 lub 65 536 )Głębokość bitowa: 15 lub 16 bitów

� „True Color”(maks. 23x8≈16milionów)

Głębokość bitowa: 24 bity

Zajętość pamięciowa obrazu

� (n×m) × głębokość bitowa barwy

Obraz True Color:Obraz True Color:1000x1000x24 bity = 24 000 000 B = 24000000/220 MB ≈ 22,888 MB

.JPG: 709,71 KB

Zajętość pamięciowa obrazu

� (n×m) × głębokość bitowa barwy

Obraz czarno-biały:Obraz czarno-biały:1000x1000 bity =1 000 000 B =1000000/1024 KB=976,5625 KB

Formaty zapisu grafiki

� Grafika rastrowa� BMP, GIF, PNG, PCX, JPG, TIFF...

� Grafika wektorowa� Grafika wektorowa� WMF, EPS, CDR, DXF...

Kanał alfa� MoŜe być podawany dla kaŜdego

piksela obrazu. Zawiera informacje o przezroczystości. Nakładanie częściowo � Nakładanie częściowo przezroczystego obrazu na tło:RGB(a�rT+(1-a)�rO , a�gT+(1-a)�gO , a�bT + (1-a)�bO ),a∈<0,1> - stopień przezroczystości

Kanał alfa

� RGB(0.2�200+0.8�100, 0.2�100+0.8�200,0.2�100+0.8�100)= RGB(40+80,20+160,20+80)=RGB(120,180,100)=RGB(120,180,100)

Grafika komputerowa-Klasyfikacja

� Kryterium: charakter danych� Grafika dwuwymiarowa (2D)� Grafika trójwymiarowa (3D)� Grafika trójwymiarowa (3D)

Grafika dwuwymiarowa� Grafika 2D moŜe zawierać w sobie

� modele geometryczne (grafikę wektorową),� obrazy cyfrowe (grafikę rastrową), � tekst (zdefiniowany przez styl i rozmiar � tekst (zdefiniowany przez styl i rozmiar

czcionki, kolor, pozycję, i orientację), � funkcje i równania matematyczne.

� Składowe te mogą być modyfikowane i manipulowane przez dwuwymiarowe transformacje geometryczne takie jak translacja, rotacja, skalowanie.

Grafika trójwymiarowa

� Obiekty obrazu są umieszczone w przestrzeni trójwymiarowej i celem programu komputerowego jest przede wszystkim przedstawienie przede wszystkim przedstawienie trójwymiarowego świata na dwuwymiarowym obrazie.

Grafika 3D� Modelowanie – tworzony jest opis sceny

3D - kształtu i wyglądu obiektów, połoŜenia i charakterystyk źródeł światła,... światła,...

� Renderowanie (rendering) – tworzenie dwuwymiarowego obrazu na podstawie modelu 3D.

Reprezentacja obiektów 3D

� Chmura punktów� Powierzchnie 3D� Bryły� Bryły

Reprezentacja obiektów 3D

� Chmura punktów – niestrukturalny zbiór punktów o współrzędnych (x,y,z) otrzymanych z systemów akwizycji obiektów 3Dakwizycji obiektów 3D

� Powierzchnie 3D� Bryły

Chmura punktów

Źródło: http://www.smarttech.pl/

Chmura punktów

Źródło: http://www.smarttech.pl/

Reprezentacja obiektów 3D� Chmura punktów� Powierzchnie 3D – opis

powierzchni obiektów 3DBryły� Bryły

Siatka wielokątowa� Siatka wielokątowa / siatka wielokątów (mesh)

Zbiór wierzchołków (vertex / vertices), krawędzi (edge) i wielokątów (polygon, face) tak połączonych, Ŝe� kaŜda krawędź jest wspólna przynajmniej dla dwóch � kaŜda krawędź jest wspólna przynajmniej dla dwóch

wielokątów� krawędź łączy dwa wierzchołki� wielokąt jest zamkniętą sekwencją krawędzi� wierzchołek jest wspólny dla przynajmniej dwóch

krawędzi� kaŜda krawędź jest częścią jakiegoś wielokąta

Najczęściej siatka składa się z trójkątów (łatwość przekształceń).

Siatka wielokątowa

http://www.turbosquid.com

BryłyNajczęstsze reprezentacje:� z przesuwaniem lub obrotem� brzegowa� brzegowa� z podziałem przestrzennym

� dekompozycja na komórki� wokselowa� drzewa ósemkowe

� konstruktywna geometria brył (CSG)

Bryły przesuwane i obrotoweModelowanie prostych, symetrycznych brył� Bryły przesuwane („wyciągane”)

– przesuwanie płaskiego obiektu wzdłuŜ trajektorii w przestrzenitrajektorii w przestrzeni

� bryły obrotowe – obracanie płaskiego wzorca wokół osi

� Np. z prostokąta moŜna uzyskać:� bryłę przesuwaną

– prostopadłościan� bryłę obrotową

– walec

Bryły przesuwane i obrotowe

Reprezentacja brzegowa brył (b-rep)� Prosta metoda reprezentacji brył.� Opisuje bryłę za pomocą:

� powierzchni ograniczających� wierzchołków� wierzchołków� krawędzi� ścian

� Stosowana jest np. przy tworzeniu brył złoŜonych z wielościanów.

� Powierzchnie mogąbyć krzywoliniowe.

Reprezentacje z podziałem przestrzennym

Reprezentacja bryły za pomocą jej podziału na mniejsze bryły składowe.

� Dekompozycja na komórki� Reprezentacja wokselowa� Drzewa ósemkowe

Reprezentacje z podziałem przestrzennym

Źródło: http://www.subdivision.org

Reprezentacje z podziałem przestrzennym

Źródło: http://www.subdivision.org

Reprezentacje z podziałem przestrzennym

Źródło: http://www.subdivision.org

Dekompozycja na komórki

� Podział bryły na „prymitywy” –proste bryły róŜnego typu składane na zasadzie sklejania

Reprezentacja wokselowa� Podział bryły na „woksele” – identyczne

elementy przestrzeni (najczęściej sześciany), uporządkowane wg stałej regularnej siatkiregularnej siatki

� Reprezentacja:woksel jest zajęty lub nie w kaŜdym miejscu siatki

Reprezentacja wokselowa�Łatwość kodowania obiektu�Nie ma miejsca na częściową zajętość –

wiele brył moŜe być tylko aproksymowanychaproksymowanych

�Woksele mogą być zmniejszane dla zwiększenia dokładności opisu

�Ograniczenie pamięciowe (do reprezentowania obiektu o rozdzielczości n wokseli w kaŜdym kierunku trzeba n3 wokseli )

Drzewa ósemkowe� Reprezentacja wokselowa jest

nadmiarowa. Konieczny jest opis wszystkich wokseli płaszczyzny. DuŜa zajętość pamięci.zajętość pamięci.

� Modyfikacja metody wokselowej –wykorzystanie drzew ósemkowych.

� Drzewa ósemkowe wywodzą się z drzew czwórkowych, słuŜących do kodowania obrazów na płaszczyźnie.

Drzewa czwórkowe� Podział obszaru płaszczyzny na 4

kwadranty.� Kodowanie kaŜdego kwadrantu:

czarny – cały kwadrant naleŜy do obiektu� czarny – cały kwadrant naleŜy do obiektu� biały – cały kwadrant nie naleŜy do obiektu� szary – kwadrant częściowo naleŜy do obiektu

� Kwadranty szare są rekurencyjnie dzielone i sprawdzane według tej samej metody.

Drzewa czwórkowe

Drzewa czwórkoweP

Drzewa czwórkoweP

PPP P

0

1 23

Drzewa czwórkoweP

PPP P

P PE E

Drzewa czwórkoweP

PPP P

E E PP P

E F FFEEF F

E E E P PE E PE P P

Drzewa czwórkoweP

PPP P

E E P

EE FF

P P

E F FFEEF F

E E E P PE E PE P P

EEF F E F FF EEF F EE FF EEF E

Drzewa ósemkowe

� Przestrzeń jest dzielona na 8 sześcianów.

� Kodowanie sześcianów za pomocą � Kodowanie sześcianów za pomocą liczb.

� Metoda rekurencyjna, tak jak dla drzew czwórkowych.

Drzewa binarnego podziału przestrzeni (BSP)

� Dzielą rekurencyjnie przestrzeń na parę podprzestrzeni płaszczyzną o dowolnej orientacji i połoŜeniu

Konstruktywna geometria brył (CSG)� Reprezentacja w postaci drzewa� Liście drzewa - proste prymitywy –

elementarne bryły � Węzły drzewa - operatory boolowskie � Węzły drzewa - operatory boolowskie

(suma, iloczyn, róŜnica)oraz przekształcenia (przesunięcie, obrót, skalowanie)

� Uporządkowane krawędzie drzewa

Odwzorowanie szczegółów powierzchni� Odwzorowanie tekstury

- odwzorowanie szczegółów obiektu za pomocą nakładania tekstury na powierzchnie obiektu.powierzchnie obiektu.

� Tekstura – dwuwymiarowa mapa bitowa zawierająca pewien obraz.

� Teksel – kaŜdy piksel tekstury

Odwzorowanie tekstur

Źródło: http://www.turbosquid.com

Modelowanie� Pełny model trójwymiarowy zawiera

informację o:� Kształcie obiektu (zbiór werteksów)

Wyglądzie obiektu (kolor, tekstury)� Wyglądzie obiektu (kolor, tekstury)� PołoŜeniu i rodzaju źródeł światła� PołoŜeniu obserwatora (kamery)

Grafika 3D� Modelowanie – tworzony jest opis sceny

3D - kształtu i wyglądu obiektów, połoŜenia i charakterystyk źródeł światła, itp.itp.

� Renderowanie (rendering) – tworzenie dwuwymiarowego obrazu na podstawie modelu 3D.

Renderowanie� Na podstawie opisu sceny:

� Wyznaczenie widoku dla połoŜenia obserwatora

� Obcięcie widoku do wielkości obrazu� Obcięcie widoku do wielkości obrazu� Wyznaczenie powierzchni widocznych� Cieniowanie i teksturowanie obrazu

Model oświetlenia globalnego

� Wyznacza barwę piksela obrazu na podstawie promieni świetlnych:� bezpośrednio od źródeł światłabezpośrednio od źródeł światła� odbitych od powierzchni� przepuszczonych przez powierzchnie

przezroczyste i półprzezroczyste (załamanych)

Modelowanie oświetleniaŚwiatło otoczenia pada jednakowo na wszystkie powierzchnie ze wszystkich kierunków.

Obiekty oświetlane są jednolicie na całej powierzchni.

Światło otoczenia

Kula oświetlona światłem otoczenia

Modelowanie oświetlenia� Światło otoczenia.� Światło rozproszone.

Punktowe źródło światła – promienie rozchodzą się równomiernie we Punktowe źródło światła – promienie rozchodzą się równomiernie we wszystkich kierunkach z jednego punktu.Jasność obiektów w róŜnych punktach zaleŜy od kierunku padania promieni i odległości od źródła światła.

Światło otoczenia + światło rozproszone

światłootoczenia

światło rozproszone

światło otoczenia+światło rozproszone

Modelowanie oświetlenia� Światło otoczenia.� Światło rozproszone.� Odbicie zwierciadlane.� Odbicie zwierciadlane.

Odbicie zwierciadlane� Promienie światła padające na

powierzchnię błyszczącą powodują jej rozświetlenie:� zmianę jasności� zmianę jasności� zmianę barwy (zaleŜnie od barwy światła)

Cieniowanie� Ustalanie barwy obiektów na

podstawie:� Światła odbitego

Powierzchni obiektów� Powierzchni obiektów

� Szybkość – Jakość� Zastosowanie

Algorytmy oświetlenia globalnego

radiosityray-tracing

radiosity + ray-tracing

Wyznaczaniapowierzchni widocznych

� Algorytm bufora głębokości (Z-Buffer)

� Metoda śledzenia promieni� Metoda śledzenia promieni� Algorytm malarski� Eliminacja tylnych ścian

Algorytm bufora głębokości� Potrzebne dwa obszary pamięci o takim

samym rozmiarze:� pamięć obrazu

–piksele-wartość barwy–piksele-wartość barwy� bufor z – wartość z

(głębokość) dla kaŜdegopiksela

� Działanie algorytmu polega na szukaniu największej wartości zidla kaŜdego punktu obrazu

Algorytm bufora głębokości

Źródło: http://pl.wikipedia.org/wiki/Bufor_Z

Animacja� Szybka projekcja sekwencji

indywidualnych obrazów (klatek animacji) zmieniających się stopniowo z upływem czasu. czasu.

Obrazy wyświetlane najczęściej z szybkością: 24 lub 30 klatek na sekundę

Animacja komputerowa

� Generacja obrazów animacji odbywa się z wykorzystaniem specjalistycznego oprogramowania komputerowego, a ruch obiektów komputerowego, a ruch obiektów pomiędzy dwoma klatkami często oblicza się na podstawie matematycznych wzorów.

Animacja komputerowa� Oceniając technikę tworzenia animacji lub

aplikację trzeba uwzględnić� Szybkość generowania klatek (obrazów)

animacjianimacji� Łatwość kontrolowania wyglądu animacji� Wymagania w stosunku do animatora� MoŜliwość interaktywnego generowania

animacji� Zastosowanie określa wymagania (np.

róŜne dla gier i filmu)

Animacja komputerowa� Wspomaganie tradycyjnego procesu

tworzenia animacji – automatyczna generacja części klatek animacji

� Łączenie róŜnych warstw sceny� Łączenie róŜnych warstw sceny� Renderowanie obrazów w oparciu o

geometryczny opis sceny� Komputer dostarcza nowych zastosowań

dla animacji:� animacja w czasie rzeczywistym ( wirtualna

rzeczywistość, gry, interaktywne media)

Animowane obiekty� Swobodne, doskonale sztywne (ang. rigid)

- brak poruszających się części� Przegubowe (ang. articulated) – posiadają

części, pomiędzy którymi moŜliwy jest ruchczęści, pomiędzy którymi moŜliwy jest ruch� Deformowalne (ang. deformable) – np.

ubranie� Obiekty wykorzystujące prawa fizyki do

symulacji ruchu (ang. dynamics) � Systemy cząsteczkowe (ang. particle

system)� Behawioralne (ang. behavioral) – opis

zachowania

Animacja dwuwymiarowa

� Animacja sprite'ów (ang. sprite animation)

� Morphing� Morphing� Dodawanie i usuwanie obiektów

obrazów (klatek animacji)

Animacja sprite'ów� Sprite (dosł. duszek) – dwuwymiarowy

obrazek lub zbiór obrazków umieszczony na większej scenie, wywołujący wraŜenie ruchuruchu

Źródło: pl.wikipedia.org

Animacja sprite’ów� Zastosowanie

� Dwuwymiarowe gry, animacje (sprite sheet)

Źródło: http://www.spriters-resource.com

Animacja sprite’ów� Zastosowanie

� Dwuwymiarowe gry, animacje (sprite sheet)� Internet (strony www)� Trójwymiarowe gry (do przedstawienia ognia, � Trójwymiarowe gry (do przedstawienia ognia,

dymu, bardzo małych obiektów, małych roślin (np. źdźbło trawy)

� Efekty specjalne w filmie (ogień Balrog’a –Władca pierścieni)

� GUI – np. wskaźnik myszy

Animacja dwuwymiarowa

� Animacja sprite'ów (ang. sprite animation)

� Morphing� Morphing� Dodawanie i usuwanie obiektów

obrazów (klatek animacji)

Morphing

� Technologia przekształcania obrazu polegająca na płynnej zmianie jednego obrazu w inny.

Morphing

� Technologia przekształcania obrazu polegająca na płynnej zmianie jednego obrazu w inny.

� Kluczowe punkty początkowego i końcowego obrazu są ustawiane

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Morphing

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Animacja dwuwymiarowa

� Animacja sprite'ów (ang. sprite animation)

� Morphing� Morphing� Dodawanie i usuwanie obiektów

obrazów (klatek animacji)

Animacja trójwymiarowa

� Modelowanie� Animacja� Renderowanie� Renderowanie

Animacja trójwymiarowa

� Modelowanie� Animacja� Renderowanie

procesy współzaleŜne

� Renderowanie

Animacja trójwymiarowa Modelowanie� Pełny model trójwymiarowy zawiera

informację o:� Kształcie obiektu (zbiór wierzchołków)� Wyglądzie obiektu (kolor, tekstury)� Wyglądzie obiektu (kolor, tekstury)� PołoŜenie i orientacje obiektu� PołoŜeniu i rodzaju źródeł światła� PołoŜeniu obserwatora (kamery)

Źródło: pl.wikipedia.org

Animacja szkieletowa

� Szkielet – hierarchiczny system składający się z kości połączonych za pomocą stawów.Dla kaŜdej kości przechowywana Dla kaŜdej kości przechowywana jest transformacja kości w układzie współrzędnych wyznaczonym przez rodzica

Animacja szkieletowa

Animacja szkieletowa

Animacja szkieletowa

� Animacja szkieletowa - ruch jednej lub więcej kości modelu, czyli zmiana modelu, czyli zmiana jej transformacji

Animacja szkieletowa� Dla kaŜdej kości

przechowywana jest transformacja kości w układzie współrzędnych wyznaczonym przez rodzicawyznaczonym przez rodzica

� Relacje między wierzchołkami modelu a jego szkieletem są stałe i zaprojektowane przez grafikaPozycja kaŜdego wierzchołka modelu zaleŜy od co najmniej jednej kości szkieletu modelu.

Animacja szkieletowa� Zalety

� Animując niewielki zestaw punktów – kości poruszamy całym, nieraz bardzo złoŜonym modelemmodelem

� Oprócz warstwy szkieletu i siatki wielokątów stosuje się dodatkowe warstwy (np. mięśni/tkanki , ubrań, włosów, futra, zorientowanych prostopadłościanów ograniczających)

Animacja komputerowa� Podział

� Dwuwymiarowa � Trójwymiarowa

Techniki� Techniki� Technika klatek kluczowych� Systemy przechwytywania ruchu� Kinematyka� Dynamika� Animacja behawioralna

Technika klatek kluczowych� Tradycyjna metoda animacji

� Główny animator rysuje najwaŜniejsze sceny -klatki kluczowe (ang. keyframe)

� Asystenci domalowują klatki pośrednie (ang. � Asystenci domalowują klatki pośrednie (ang. tweens)

� Animacja komputerowa� Animator określa klatki kluczowe� Komputer (program) wylicza klatki pośrednie

Technika klatek kluczowych

� Klatki kluczowe

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Technika klatek kluczowych

� Klatki kluczowe

� Klatki pośrednie

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Technika klatek kluczowych

� Klatki kluczowe

� Klatki pośrednie

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Technika klatek kluczowych� Zalety

� Względnie łatwa w uŜyciu� Animator posiada nisko-poziomową kontrolę

Wady � Wady � śmudna i powolna� Animator – artysta� Trudno wykorzystać otrzymaną animację

ponownie lub poprawić� Interpolacja niezgodna z oczekiwaniami

Interpolacja liniowa

Źródło: http://ictlab.tyict.vtc.edu.hk/~nelsonc/hcimc/Notes/

Animacja komputerowa� Podział

� Dwuwymiarowa � Trójwymiarowa

Techniki� Techniki� Technika klatek kluczowych� Systemy przechwytywania ruchu� Kinematyka� Dynamika� Animacja behawioralna

Systemy przechwytywania ruchu (motion capture)� Rejestracja ruchu obiektu w oparciu o

czujniki, markery umieszczone na obiekcie

� Czujniki� Czujniki� Sensory

magnetyczne� Mechaniczne� Optyczne

Systemy przechwytywania ruchu� Zalety

� Realistyczna animacja

� WadyTrudne do wykorzystania do� Trudne do wykorzystania do• sytuacji zmienionych w niewielkim stopniu • innych obiektów

� Wykorzystywane technologie stawiają ograniczenia na ruch moŜliwy do wykonania

� Względnie drogie

Animacja komputerowa� Podział

� Dwuwymiarowa � Trójwymiarowa

Techniki� Techniki� Technika klatek kluczowych� Systemy przechwytywania ruchu� Kinematyka� Dynamika� Animacja behawioralna

Kinematyka� Opis ruchu abstrahuje od

działających sił i bezwładności ciał.� Określane są dla animowanych

obiektów:obiektów:� Pozycja � Szybkość� Przyspieszenie

� Odnosi się do obiektów przegubowych (ang. articulated )

Kinematyka prosta

Zdefiniuj względny obrót wybranej kości, kości, przedział czasowy.

Kinematyka prostaZnamy ruchy stawów. Określamy połoŜenie końcowego obiektu w

hierarchii.

Kinematyka odwrotna

Zdefiniuj połoŜenie końcowego obiektu w hierarchii.

Kinematyka odwrotnaSzukamy obrotów stawów obiektów wyŜej w hierarchii. Uwzględniamy ograniczenia nałoŜone na kąty obrotów stawówkąty obrotów stawów

Kinematyka odwrotnaSzukamy obrotów stawów obiektów wyŜej w hierarchii. Uwzględniamy ograniczenia nałoŜone na kąty obrotów stawówkąty obrotów stawóworaz kolizje.

Animacja komputerowa� Podział

� Dwuwymiarowa � Trójwymiarowa

Techniki� Techniki� Technika klatek kluczowych� Systemy przechwytywania ruchu� Kinematyka� Dynamika� Animacja behawioralna

Dynamika

Wykorzystuje się prawa fizyki.Ustala się takie wielkości jak:

waga, masa, bezwładność, waga, masa, bezwładność, elastyczność obiektu, grawitacja, tarcie, itd.

Dynamika� Zalety

� Względnie łatwo generować podobne ruchy� UmoŜliwia opisanie realistycznej, złoŜonej

animacjianimacji� UmoŜliwia generowanie odtwarzalnego ruchu

� Wady� Wymaga uwzględnienia wszystkich sił

działających na obiekt� Słaba kontrola animatora

Animacja komputerowa� Podział

� Dwuwymiarowa � Trójwymiarowa

Techniki� Techniki� Technika klatek kluczowych� Systemy przechwytywania ruchu� Kinematyka� Dynamika� Animacja behawioralna

Animacja behawioralna

Opis zachowania postaci wirtualnych uwzględnia:� Czynniki zewnętrzne Czynniki zewnętrzne � Stan wewnętrzny postaci� Cele postaci

Animacja behawioralnaTRex()

{

jeŜeli(widzisz_człowieka i człowiek_blisko)

zjedź_człowieka()

albo jeŜeli (widzisz_człowieka)albo jeŜeli (widzisz_człowieka)

goń_człowieka()

albo

szukaj_człowieka()

}

Animacja behawioralna

Opis zachowania za pomocą:� Skrypty� Reguły� Reguły� Automaty skończone� Drzewa decyzyjne� Sieci neuronowe