Grafika i Animacja Komputerowa dr Ewa Lach Zakład Oprogramowania, Instytut Informatyki Plan Grafika rastrowa / wektorowa Rozdzielczość obrazu 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 wizualizacją rzeczywistych danych. Klasyfikacja Kryterium: technika tworzenia obrazów/ reprezentacja danych Grafika rastrowa Grafika wektorowa Grafika rastrowa Obraz zapisywany jest w postaci dwuwymiarowej tablicy pikseli (bitmapie), którym przypisywane są odpowiednie kolory b - biały z – zielony c - 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 brak L(2,0,9,7) z E(4,5,5,5) n Ŝ Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć ( wraz z wzrostem liczby pikseli szybko rośnie wielkość plików) Grafika wektorowa mała zajętość pamięci (niezaleŜna od rozmiaru, funkcja ilości i złoŜoności opisu elementów składowych obrazu) Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja (nie pozwala na dokonywanie transformacji geometrycznych na elementach składowych obrazu) Grafika wektorowa mała zajętość pamięci łatwość modyfikacji (płynne transformacje całości obrazu i jego elementów bez utraty jakości prezentacji) Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja (nie pozwala na dokonywanie transformacji geometrycznych na elementach składowych obrazu) Źródł: http://pl.wikipedia.org/ Grafika wektorowa mała zajętość pamięci łatwość modyfikacji (płynne transformacje całości obrazu i jego elementów bez utraty jakości prezentacji) Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja dopasowanie do urządzeń wyjściowych Grafika wektorowa mała zajętość pamięci łatwość modyfikacji konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe) Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć 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 Grafika wektorowa mała zajętość pamięci łatwość modyfikacji konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe) analityczny opis doskonale nadaje się do reprezentowania obrazów zawierających elementy strukturalne Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja dopasowanie do urządzeń wyjściowych łatwość implementacji Grafika wektorowa mała zajętość pamięci łatwość modyfikacji konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe) analityczny opis Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja dopasowanie do urządzeń wyjściowych łatwość implementacji Grafika wektorowa mała zajętość pamięci łatwość modyfikacji konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe) analityczny opis Porównanie Grafika rastrowa duŜe zapotrzebowanie na pamięć trudna modyfikacja dopasowanie do urządzeń wyjściowych łatwość implementacji Grafika wektorowa mała zajętość pamięci łatwość modyfikacji konieczność konwersji do urządzeń wyjściowych (wyświetlacze rastrowe) analityczny opis Przykłady zastosowania Grafika wektorowa Rysunek techniczny Komputerowe wspomaganie projektowania (Computer Aided Design CAD) Przykłady zastosowania Grafika wektorowa Rysunek techniczny Komputerowe wspomaganie projektowania (Computer Aided Design CAD) Źródło: Z. Postawa – „Grafika Komputerowa” Przykłady zastosowania Grafika wektorowa Rysunek techniczny 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 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 kolor 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 kolor 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: 10x15 cm, 300 ppi 3,937 x 5,906 cali 1181 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 wydruku 1 cal = 2,54 cm Przykład: 10x15 cm, 300 ppi 3,937 x 5,906 cali 1181 x 1772 pikseli 72 ppi 41,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 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 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 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ń Jaskrawość Nasycenie 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 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) – 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ń Jaskrawość Nasycenie Modele Barw Ukierunkowane na uŜytkownika – HSV interaktywna metoda doboru odpowiedniej 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ładowej czerwonej ( Red ) zielonej ( Green ) niebieskiej ( Blue ) RBG(0,0,0) - czarny RGB(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: 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 czarny (blacK). Mówimy wówczas o modelu CMYK. Model barw stosowany w drukarkach, ploterach i poligrafii CMY, CMYK CMY → CMYK k= min(c,m,y) CMYK(c-k,m-k,y-k,k)=CMY(c,m,y) C M Y C K ( 0.2 0.5 ) ( + + ( 0.4 0.4 0.4 ) ( ( 0.4 0.6 0.9 ) ( M Y 0.2 0.5 ) 0.4 ) 0.2 0.5 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 → RGB RGB(1-c,1-m,1-y)=CMY(c,m,y) RGB → CMY CMY(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: 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 bajt KaŜdy bajt obrazu nie opisuje koloru tylko wskazuje na miejsce w tablicy kolorów Obraz Tablica 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: 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: 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 WMF, EPS, CDR, DXF... Kanał alfa MoŜe być podawany dla kaŜdego piksela obrazu. Zawiera informacje o przezroczystości. Nakładanie częściowo przezroczystego obrazu na tło: RGB(arT+(1-a)rO , agT+(1-a)gO , abT + (1-a)bO ), a∈<0,1> - stopień przezroczystości Kanał alfa RGB(0.2200+0.8100, 0.2100+0.8200,0.2100+0.8100) = RGB(40+80,20+160,20+80) =RGB(120,180,100) Grafika komputerowaKlasyfikacja Kryterium: charakter danych Grafika dwuwymiarowa (2D) 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 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 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,... Renderowanie (rendering) – tworzenie dwuwymiarowego obrazu na podstawie modelu 3D. Reprezentacja obiektów 3D Chmura punktów Powierzchnie 3D 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 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 3D 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 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ły Najczęstsze reprezentacje: z przesuwaniem lub obrotem brzegowa z podziałem przestrzennym dekompozycja na komórki wokselowa drzewa ósemkowe konstruktywna geometria brył (CSG) Bryły przesuwane i obrotowe Modelowanie prostych, symetrycznych brył Bryły przesuwane („wyciągane”) – przesuwanie płaskiego obiektu wzdłuŜ trajektorii 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 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 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 aproksymowanych 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. 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 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órkowe P Drzewa czwórkowe P 0 P P 1 3 2 P P Drzewa czwórkowe P P E P P E P P P Drzewa czwórkowe P P E P F E F E P E P F E F F E E P P E E P P E P E P P P Drzewa czwórkowe P P E P F E F E P E P F E F F E E P P E E F F E E P F E F E P E P F E F F E P F E F E P E E F F P F E E E Drzewa ósemkowe Przestrzeń jest dzielona na 8 sześcianów. 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 (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. 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) 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. 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 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ł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 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ło otoczenia światło rozproszone światło otoczenia+ światło rozproszone Modelowanie oświetlenia Światło otoczenia. Światło rozproszone. Odbicie zwierciadlane. Odbicie zwierciadlane Promienie światła padające na powierzchnię błyszczącą powodują jej rozświetlenie: zmianę jasności zmianę barwy (zaleŜnie od barwy światła) Cieniowanie Ustalanie barwy obiektów na podstawie: Światła odbitego Powierzchni obiektów Szybkość – Jakość Zastosowanie Algorytmy oświetlenia globalnego ray-tracing radiosity radiosity + ray-tracing Wyznaczania powierzchni widocznych Algorytm bufora głębokości (Z-Buffer) 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 bufor z – wartość z (głębokość) dla kaŜdego piksela Działanie algorytmu polega na szukaniu największej wartości zi dla 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. 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 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) animacji Ł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 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 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 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 ruchu Ź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, 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 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 Dodawanie i usuwanie obiektów obrazów (klatek animacji) Animacja trójwymiarowa Modelowanie Animacja Renderowanie Animacja trójwymiarowa Modelowanie Animacja Renderowanie procesy współzaleŜne 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) 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 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 jej transformacji Animacja szkieletowa Dla kaŜdej kości przechowywana jest transformacja kości w układzie współrzędnych wyznaczonym przez rodzica Relacje między wierzchołkami modelu a jego szkieletem są stałe i zaprojektowane przez grafika Pozycja 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 modelem 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 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. 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 ś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 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 Sensory magnetyczne Mechaniczne Optyczne Systemy przechwytywania ruchu Zalety Realistyczna animacja Wady 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 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: Pozycja Szybkość Przyspieszenie Odnosi się do obiektów przegubowych (ang. articulated ) Kinematyka prosta Zdefiniuj względny obrót wybranej kości, przedział czasowy. Kinematyka prosta Znamy 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 odwrotna Szukamy obrotów stawów obiektów wyŜej w hierarchii. Uwzględniamy ograniczenia nałoŜone na kąty obrotów stawów Kinematyka odwrotna Szukamy obrotów stawów obiektów wyŜej w hierarchii. Uwzględniamy ograniczenia nałoŜone na kąty obrotów stawów oraz kolizje. Animacja komputerowa Podział Dwuwymiarowa Trójwymiarowa 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ść, elastyczność obiektu, grawitacja, tarcie, itd. Dynamika Zalety Względnie łatwo generować podobne ruchy UmoŜliwia opisanie realistycznej, złoŜonej animacji 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 Technika klatek kluczowych Systemy przechwytywania ruchu Kinematyka Dynamika Animacja behawioralna Animacja behawioralna Opis zachowania postaci wirtualnych uwzględnia: Czynniki zewnętrzne Stan wewnętrzny postaci Cele postaci Animacja behawioralna TRex() { jeŜeli(widzisz_człowieka i człowiek_blisko) zjedź_człowieka() albo jeŜeli (widzisz_człowieka) goń_człowieka() albo szukaj_człowieka() } Animacja behawioralna Opis zachowania za pomocą: Skrypty Reguły Automaty skończone Drzewa decyzyjne Sieci neuronowe