Grafika 2D Animacja Zmiany Kształtu opracowanie: Jacek Kęsik Wykład przedstawia podstawy animacji zmiany kształtu - morfingu 1
Animacja zmiany kształtu Podstawowe pojęcia Zlewanie (Dissolving / cross-dissolving) łączenie dwóch obrazów poprzez płynne przejście - uśrednianie Wstawianie (tweening) proces sekwencyjnej interpolacji obrazów pośrednich między dwoma stanami kluczowymi w celu uzyskania wraŝenia płynnego przejścia między nimi Deformowanie (warping) zniekształcanie obrazu uzaleŝnione od obszaru tego obrazu, matematyczny odpowiednik nadruku na elastycznej powierzchni (rozciąganej i ściskanej w róŝnych miejscach) Przekształcanie (morphing) jest kombinacją powyŝszych Na postawie pracy dr Stevena Seitza (University of Washington) http://www.cs.washington.edu/homes/seitz/ 2
Czym jest morphing? Próba znalezienia stanu pośredniego pomiędzy dwoma obiektami NIE stan pośredni między dwoma obrazami obiektów tylko obraz obiektu pośredniego Próba znalezienia stanu pośredniego pomiędzy dwoma obiektami Animacja wiąŝe się ze znalezieniem waŝonych stanów pośrednich zaleŝnych od czasu t Jak wygląda obiekt pośredni? Nie mamy pojęcia Ale moŝemy sfingować coś sensownego 3
Morphing jest kombinacją zlewania, wstawiania i deformowania Czasem wystarczy tylko zlewanie(uśrednianie) i wstawianie Obraz pośredni = (1-t)*Obraz 1 + t*obraz 2 Najczęściej 0 < t < 1 Jak znaleźć wartość pośrednią między P i Q? v = Q - P P Q Interpolacja liniowa dowolny punkt pośredni ap + bq, Zdefiniowany tylko gdy a+b = 1 więc ap+bq = ap+(1-a)q P + 0.5v = P + 0.5(Q P) = 0.5P + 0.5 Q P + 1.5v = P + 1.5(Q P) = -0.5P + 1.5 Q (ekstrapolacja) P i Q dowolne wartości: Punkty w 2D lub 3D Kolory RGB, HSV (3D) Całe obrazy (m-na-n D) 4
Metoda filmowa przenikanie nazywana zlewanie / Ale co gdy obrazy nie są dopasowane do siebie? Najpierw dopasowanie potem przenikanie Dopasowanie wykorzystuje przekształcenie globalne (najczęściej rzut/przekrzywienie) 5
Co gdy obiekty róŝnią się kształtem? Przenikanie nie działa Globalne dopasowanie nie działa Ani Ŝadna globalna transformacja (np. afiniczna) Rozwiązanie: Dopasowywanie szczegółów Ogon do ogona, oko do oka... Wprowadzamy tym samym zniekształcenia lokalne (nie parametryczne) 6
Procedura morphingu dla kaŝdego t, 1. Znajdź kształt pośredni kaŝdego z obrazów Lokalne zniekształcenia 2. Interpoluj kolory pikseli z tych 2 obrazów pośrednich przenikanie Konieczność zdefiniowana bardziej złoŝonego przekształcenia Przekształcenia globalne były funkcjami kilku parametrów Przekształcenia lokalne u(x,y) i v(x,y) mogą być zdefiniowane niezaleŝnie dla kaŝdej pozycji x,y! (kaŝdego szczegółu) Gdy znamy zbiór wektorów przekształceń u,v moŝemy łatwo przekształcić kaŝdy piksel (przekształcenie odwrotne + interpolacja) 7
Punkty kontrolne określają krzywe zniekształcenia Krzywe zapewniają gładkość zbioru wektorów przekształceń Jak określić przekształcenie? Zdefiniować punkty kontrolne odpowiadających sobie krzywych Interpolacja reszty pozycji by uzyskać pełne przekształcenie Ale nie chcemy definiować całej siatki a tylko kilka punktów 8
Jak określić przekształcenie? Zdefiniować odpowiadające sobie punkty kontrolne Interpolacja reszty pozycji by uzyskać pełne przekształcenie Ale jak? Jak zdefiniować przejście od punktów kontrolnych do pikseli? Rozwiązanie - siatka trójkątów 1. Oznaczenie odpowiadających sobie punktów w kluczowych obszarach obiektów 9
Rozwiązanie - siatka trójkątów 2. Zdefiniowanie siatki trójkątów, rozpiętej na tych punktach Ta sama siatka na obu obrazach Siatki określają odpowiadające sobie trójkąty na obrazach Rozwiązanie - siatka trójkątów 3. KaŜdy trójkąt jest przekształcany osobno od wyglądu początkowego do końcowego Ale jak zbudować taką siatkę? 10
Podział otoczki wypukłej zestawu punktów na powierzchni na trójkąty jest nazywany Triangularyzacją. Punkty znajdują się tylko i wyłącznie w wierzchołkach trójkątów Istnieje wiele wyników triangularyzacji zestawu punktów Algorytm triangularyzacji o złoŝoności O(n 3 ) Powtarzaj tak długo jak moŝliwe Wybierz 2 wierzchołki Jeśli linia je łącząca nie przecina poprzednich linii zapisz ją 11
Jakość triangularyzacji Niech α(t) = (α 1, α 2,.., α 3t ) będzie wektorem kątów triangularyzacji T Triangularyzacja T 1 będzie lepsza od T 2 jeśli α(t 1 ) > α(t 2 ) leksykograficznie Najlepsza triangulacja maksymalizuje najmniejsze kąty (Delaunay triangulation) dobrze źle Poprawianie triangularyzacji W kaŝdym czworokącie wypukłym moŝliwe jest odwrócenie krawędzi wewnętrznej. Jeśli poprawia to lokalną jakość triangularyzacji, poprawia równieŝ jakość triangularyzacji globalnej Jeśli odwrócenie krawędzi poprawia triangularyzację, poprzednia krawędź jest nazywana nielegalną 12
Naiwny algorytm Delaunay Rozpocznij z dowolną triangularyzacją Odwracaj kolejno nielegalne krawędzie, tak długo jak występują MoŜe pracować bardzo długo algorytm Delaunay (Delone) Wykorzystuje podział płaszczyzny na komórki Woronoja (dla danego zbioru n punktów, dzieli się płaszczyznę na n obszarów, w taki sposób, Ŝe kaŝdy punkt w dowolnym obszarze znajduje się bliŝej określonego punktu ze zbioru n punktów niŝ do pozostałych n 1 punktów ) Łącząc punkty z sąsiadujących ze sobą obszarów uzyskujemy triangularyzację Delaunay ZłoŜoność zredukowana do O(nlogn) 13
Wiemy juŝ jak przekształcić jeden obiekt w drugi ale jak stworzyć animowaną sekwencję morfingu? 1. Utworzyć kształty pośrednie (interpolacja siatek) 2. Przekształcić do nich oba obrazy 3. Wykonać zlanie kolorów obu przekształconych obrazów Obraz źródłowy Siatka źródłowa Siatka pośrednia Obraz pośredni 1 Obraz pośredni 2 Obraz połączony Siatka docelowa Obraz docelowy f 0 1 czas 0 n Przekształć obraz źródłowy zgodnie z siatką Morf = f P+(1- f)q Przekształć obraz docelowy godnie z siatką 14
Dla siatki trójkątnej Uzyskanie siatki pośredniej w chwili t t = [0,1] Liniowa interpolacja dla kaŝdej pary szczegółów np. (1-t)*p1+t*p0 dla odpowiedników p0 i p1 Ograniczenie dla morfingu 2D MoŜliwość wystąpienia złoŝenia trójkątów Pojawia się w przypadku zmiany kolejności punktów kontrolnych na obrazie Z reguły w przypadku próby wykonania przekształcenia pseudo 3D Działa poprawnie tylko z danymi 3D Za pomocą ekstrapolacji moŝna osiągnąć ciekawe efekty - karykatury 15
Morfing moŝna wykonać równieŝ na obrazach dynamicznie zmienianych Morfing widoku view morphing Morfowaniu podlega pozycja wirtualnej kamery 16
Morfing widoku view morphing Metoda i efekt Kamery rejestrujące ten sam obiekt w tej samej chwili Tworzą zgrubną ścieŝkę ruchu wokół obiektu Płynny ruch kamery wokół obiektu uzyskany dzięki morfowaniu pozycji wirtualnej kamery pomiędzy poszczególnymi rzeczywistymi kamerami w ścieŝce That s all folks 17
Illegal Edges Lemma: An edge pq is illegal iff one of its opposite vertices is inside the circle defined by the other three vertices. Proof: By Thales theorem. p q Theorem: A Delaunay triangulation does not contain illegal edges. Corollary: A triangle is Delaunay iff the circle through its vertices is empty of other sites. Corollary: The Delaunay triangulation is not unique if more than three sites are co-circular. 18