Animacja Komputerowa. Animacja oparta na interpolacji Aleksander Denisiuk Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk denisjuk@pja.edu.pl 1/69
Animacja oparta na interpolacji Najnowsza wersja tego dokumentu dostępna jest pod adresem http://users.pja.edu.pl/~denisjuk/ 2/69
krzywych 3/69
krzywych Naśladowanieanimacjitradycyjnej ustala się wartości wszystkich zmiennych(zmiennych artykulacji, avars) są interpolowane za pomocą wcześniej ustalonych procedur przykład 0 5 10 15 20 25 30 35 40 45 50 4/69
krzywych krzywych Krzywewkażdejklatcekluczowejsąokreślaneprzeztaką samą iość punktów powiązanie między punktami najprostze rozwiązanie: interpolacja liniowa interpolacja nieliniowa, rozpędzanie i spowolnianie 5/69
Problem porządanego kształtu krzywych Wynikinterpolacjiniezawszejestporządany mieć więcej kontorli nad kształtem krzywej 6/69
krzywych krzywych KońcekrzywejP(u)sąodwzorowanenakońce krzywej Q(u) Odwzorowaniepozostałychpunktówniejestokreślone dla krzywych Béziera można wymagać odwzorowania punktów kontrolnych dla innych krzywych można wymagac interpolacji odpowiadających sobie punktów P(u) Q(v) 7/69
Ruchome więzy punktowe krzywych Krzywesąokreśłonewklatkachkluczowych Określasiędodatkowainformacjądlajednegolubwiększej liczby punktów dla dwóch lub większej liczby klatek kluczowych. P 11 C 1 C 2 C 3 P 12 P 21 P 22 P 13 P 31 P 32 P23 P 11 C 1 C(t) C 2 P12 P 21 P 22 8/69
Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 9/69
Chwytanie i przesuwanie wierzchołków Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Przemieszczeniejednegolubgrupywierzchołków przesunięcie ziarna przesunięcie otoczenia odległość(npdługośćścieżki) 10/69
Zanikające przesunięcie otoczenia Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie S(i)= 1 ( i ( 1 i S(i) k>0 n+1) k+1 k 0, n+1) k+1 k<0, k<0 k=0 i/(n+1) 11/69
otaczającej przestrzeni Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Swobodnadeformacja Wprowadzasięukładwpsółrzędnychwotoczeniuobiektu Odkształcasięobiektwlokalnychwspółrzędnych 12/69
dwuwymiarowej siatki Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Lokalnyukładwspółrzędnychjestzwiązany z dwuwymiarową siatką Początkowosiatkajestustalanarównolegledo współrzędnych globalnych y x global y 15 12 local y 3 0 0 local x 8 20 28 global x A 13/69
Następny krok Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Użytkownikprzesuwawierzchokisiatkiwprzestrzeni Współrzędnewierzchołkówobliczasięzapomocą interpolacji dwuliniowej P01 Pu1 Puv P11 P00 Pu0 P10 14/69
Wynik Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie y x 15/69
Odkształcenie łamanej Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Dlapowyginanych Łamananaobiekcie Prostegraniczne dwusieczne kątów prostopadłe do końców 16/69
Odkształcenie łamanej Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Dlawierzchołkówzapamiętujemy najbliższy odcinek odległość wierzchołka i odcinka połóżenie wierzchołka względem prostych granicznych r=d2/d1 d2 d1 L1 d L2 L3 17/69
Wynik Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Nowepołożeniewierzchołkówokreślanesąnapodstawie zapamiętanych danych i odkształconej łamanej L2 s*r d s 18/69
Odkształcenie globalne Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Wprzestrzenistosujemyprzekształcenie,określoneprzez macierzm(p),którazależyodpunktup globalne zwężanie: s(z)= maxz z maxz minz, x =s(z)x, y =s(z)z, z =z. 19/69
Skręcenie wokół osi Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie k współczynnikskręcenia x =xcoskz ysinkz, y =xsinkz+ycoskz, z =z. 20/69
Wygęcie Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie (z min,z max ) obszarzginania (x 0,z min ) środekzginania 0 jeśliz<z min, θ= z z min jeśliz min z z max, z max z min z>z max, R=x 0 x, x = x z<z min, x 0 Rcosθ z min z z max, x 0 Rcos(θ+z z max )+(z z max )sinθ z>z max, y =y z = z z<z min, z min Rcosθ z min z z max, x 0 Rsin(θ+z z max )+(z z max )cosθ z>z max. 21/69
Wynik Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 22/69
Przykłady Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 23/69
Swobodne deformacje Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Wprowadzamylokalnyukładwspółrzędnychzapomocą środkap ) praztrzechwektorów,niekoniecznie prostopadłych:(s, T, U). LokalnewspółrzędnepunktuPobliczanesązapomoca wzorów: s=(t U) (P P 0 )/(T U) S) t=(u S) (P P 0 )/(U S) T) u=(s T) (P P 0 )/(S T) U) TxU (TxU).S P T (TxU).(P-P 0 ) U S P 0 24/69
Deformacja Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie WspółrzędneglobalneP=P 0 +ss+tt+uu Siatkapoczątkowazwiązanajestzrównoległościanem, określonymprzezwektorys,t,u: P i,k,j =P 0 + i l S+ i m T+k n U Przesuwamypunktykontrolne ObrazpunktuPjestobliczanynapodstawiewspółrzędnych (s,t,u)zewzoru P(s,t,u)= l i=0 () l m ( ) s i (1 s) l i m s j (1 s) m j i j j=0 ( ) n n s k (1 s) n k P ijk i k=0 25/69
Łączenie deformacji Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie colinear control points Common boundary plane 26/69
Siatka nie równoloegłoboczna Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 27/69
Deformacje kolejne Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Wybrzuszanie Zginanie 28/69
Deformacje hierarchiczne Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Jeżeliszczegółowejdeformacjipodlegamałyfragment obiektu, tworzy się hierarchia working at a coarser level working at the finer level 29/69
Animowanie deformacji swobodnej Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie liniowawierzchołkówobiektu Deformacjaobszaru,przezktóryprzemieszasięobiekt Animowaniepunktówkontrolnychdeformacji 30/69
Narzędzia deformacyjne Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie Siatkapoczątkowa Siatkakońcowa(zdeformowanakopiasiatkipoczątkowej) Przywiązanienarzędziadoobiektu(obiektAFFD, Animated Free-Form Deformation) 31/69
Przesuwanie narzędzia Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 32/69
Przesuwanie obiektu Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 33/69
Animowanie punktów kontrolnych Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie 34/69
Animacja na kościach Wierzchołki Przestrzeń 2D siatka Łamana Globalne Swobodne Animowanie a) initial configuration 35/69
Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek 36/69
Podstawowe pojęcia Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Technikipowierzchnioweiprzestrzenne Obiekt przedmiototrójwymiarowejpowierzchni Kształt zbiórpunktówpowierzchni Model jednosznaczneopisaniekształtuprzedmiotu Topologia właściwościniezmienniczewzględem homeomorphizmów liczba otworów(genus) liczba spójnych części Obiektyhomeomorficzne(równoważnetopologicznie) Topologia sposóbpołaczeniawierzchołków Dwaproblemyanimacji: odpowiedniość interpolacja 37/69
Obiekty o tej samej topologii(2) Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Takiesamewierzchołki,krawędzieiściany na przykład, swobodna deformacja odpowiedenichwierzchołków 38/69
Wielościany gwiaździste Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek 39/69
Animacja Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek 40/69
Przekroje osiowe Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Dlakażdegoobiektuokreślasięoś przekroje płaszczyznami, prostopadłymi do osi, są wielobokami gwiaździstymi Osiesięparameryzujenaodcinku[0,1] Określasięwektorypołożeńkątowych,prostopadłedoosi 0 1 orientation vectors 0 1 central axes 41/69
Parametryzacja Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Parametrosiiwspółrzędnabiegunowaokreślają parametryzację powierzchni Powierzchniajestodtwarzananapodstawieprzekrojów 42/69
międzyodpowiednimipunktami Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek a) slice from Object 1 showing reconstructed polygon. b) slice from Object 2 showing reconstructed polygon - point from object 1 - point from object 2 - interpolated point c) Superimposed slices showing interpolated points d) slice reconstructed from 43/69
Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Uogólnienie:łamaneosie 44/69
Przekrztałcenie na sferę Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Obiektyogenusie0mogąniebyćanigwiaździstymi,ani mieć przekrojów osiowych Odwzorujesięnapowierzchnię(npsferęjednostkową) Określasięwspólnewierzchołki Powstająnowemodele,któremajątęsamą topologię międzyodpowiadającymisobiewierzchołkami 45/69
Metody odwzorowania na sferę Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Rzutześrodkasfery tylko dla gwiaździstych Rzutwierzchołkówkluczowych najniższy, najwyższy, etc podane przez użytkownika doprowadzićpozostałewierzchołkidosfery 46/69
Konstruowanie nowej topologii Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Obaobiektyodwzorowanesąnasferę Nowatopologianasferzezawiera: oba zbiory wierzchołków oraz punkty przecięcia krawędzi fragmenty krawędzie oryginalnych Jestodwzorowywananazpowrotemnaobiekty 47/69
Obliczanie punktów przecięcia krawędzi Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Przecięciekażdejkrawędzizkażdą zbyt czasochłonne błędu zaokrąglenia, niepoprawne uporządkowanie Innyalgorytm założenia: wszystkie ściany są trójkątami, nie ma wierzchołków na krawędziech zaczynamyodwierzchołkav A znajdujemyścianęf B,naktórejleżyV A partial mesh from Object A F B partial mesh from Object B V A 48/69
Obliczanie punktów przecięcia krawędzi Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek KrawędziewychodzącezV A dołaczanesądolistyroboczej KrawędzieśianyF B dołączanesądokandydatówna przecięcie WybierasiękrawędźE A zlityroboczej Brakprzecięćzkrawędziamizlistykadydatów przejście do fazy uporządkowania przecięć ZnalezionoprzecięcieI I dodaje się do listy przcięć obu krawędzi nowa ściana staje się bieżącą zapamiętuje się ściany obiektu A, których wspólną krawędziąjeste A Konieciteracji:pustalistarobocza 49/69
Obliczanie punktów przecięcia krawędzi Terminologia Identyczna topologia Gwiaździste G 3 B G 2 B I d I c E A G 1 B I b E B I a V A F B Przekroje Przekrztałcenie na sferę G 5 B Intersection list of V A : I a,i b,i c,i d Rekurencyjne dzielenie siatek G 4 B 50/69
Faza uporządkowania Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek DlakrawędziE A kolejnośćwierzchołkówjest uporządkowana DlakrawędziE B wykorzystanajestinformacjaościanach obiektu A. można pozbyć się wpływu błędów zaokrąglenia 51/69
Odwzorowanie nowej topologii na obiekty Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Nowewierzchołkinakrawędziachnasferzeodwzorowaćna krawędzie na powierzchni obiektu można użyć parametryzaji WierzchołkiobiektuAnasferzeodwzorowaćnaściany obiektubinaodwrót można użyć współrzędnych barycentrycznych 52/69
Nowa triangulacja B s intersections connected inside of A Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek vertices of triangle A inside of B no vertices A by a point by an edge B A B B B one vertex A A two vertices not possible with triangles A B 53/69
Rekurencyjne dzielenie siatek Terminologia Identyczna topologia Gwiaździste Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek Nowawspólnatopologiaokreślasiępoprzezsprowadzenie siatek do dwuwymiarowych siatek wielokątów oraz skojarzenie wierzchołków na brzegach 54/69
Skojarzenie wierzchołków na brzegach Terminologia Identyczna topologia Gwiaździste 5 4 0 1 3 2 3 - first vertex of boundary 0 2 1 Przekroje Przekrztałcenie na sferę Rekurencyjne dzielenie siatek normalized distances 0 1 2 3 4 5 0.00 0.15 0.20 0.25 0.40 0.70 normalized distances 0 1 2 3 0.00 0.30 0.55 0.70 boundary after adding additional vertices 55/69
Siatka współrzędnych Wyróżnione linie 56/69
Siatka współrzędnych Wyróżnione linie Przekształceniejednegoobrazuwinny Wyznaczonaodpowiednośćelementówobrazów używana przy sterowaniu przekształceniem Dwapodejścia wyznacza się siatki współrzędnych nałożone na każdy zobrazów określa się pary linii wyróżnionych 57/69
Siatka współrzędnych Siatka współrzędnych Wyróżnione linie Określasiętylesamopunktówprzecięcianabrzegachobu obszarów Powinnypokryćcałeobszary Siatkigenerujesięprzyużyciuodpowiedniejmetody interpolacji na przykład, splajny Catmulla-Roma a) Image A b) Image B c) Image A with grid points and curves defined d) Image B with grid points and curves defined 58/69
Siatka pośrednia Siatka współrzędnych Wyróżnione linie Dlapewnegot (0,1)określasięsiatkapośrednia można użyć interpolacji liniowej bądź wyższego stopnia Pikseleobuobrazówsązmienianewsposób,określonyprzez siatkę, aby otrzymać wersje wygięte wersję obrazów Procedura dwuetapowa 59/69
Destination Image Siatka współrzędnych Wyróżnione linie warp source image to intermediate grid interpolate intermediate grid for time t warp destination image to intermediate grid cross dissolve the two images 60/69
Procedura dwuetapowa siatka pomocnicza Siatka współrzędnych Wyróżnione linie use x-coordinates of these points a) Source image grid b) Intermediate grid use y-coordinates of these points source image grid point auxiliary grid point intermediate grid point c) detail showing relationship of source image grid point, intermediate grid point and auxiliary grid point d) auxiliary grid 61/69
Procedura dwuetapowa I Source Image Grid 0 1 2 3 Auxiliary Grid 0 1 2 3 Siatka współrzędnych Wyróżnione linie scanline 0 1 2 3 grid coordinates 0 1 2 3 0 1 2 3 4 5 6 7 8... pixel coordinates 0 1 2 3 4 5 6 7 8... grid coordinates 3 2 1 0 0 1 2 3 4 5 6 7 8... pixel coordinates pixel coordinate to grid coordinate graph for source image grid coordinates 3 2 1 0 0 1 2 3 4 5 6 7 8... pixel coordinates pixel coordinate to grid coordinate graph for auxiliary image 3 2 1 0 0 1 2 3 4 5 6 7 8... use the graph to see where the column indices map to image pixels. this shows half of pixel #3 to pixel #5 are used. 3 2 1 0 0 1 2 3 4 5 6 7 8... use the graph to determine image pixel s range in terms of the column indices (pixel #6 is shown). 62/69
Procedura dwuetapowa II Auxiliary Grid Intermediate Grid 0 1 2 0 1 2 3 3 Siatka współrzędnych Wyróżnione linie 0 1 2 3 4 5 6 7 8... 0 1 2 column lines 0 1 2 0 1 2 3 4 5 6 7 8... 3 grid coordinates 3 pixel coordinates 3 2 1 0 0 1 2 3 4 5 6 7 8... Use row index coordinates to determine the pixel coordinates in auxiliary image. 3 2 1 0 0 1 2 3 4 5 6 7 8... For a given pixel in the intermediate image, determine the coordinates in terms of row indices. 63/69
Mieszanie kolorów Siatka współrzędnych Wyróżnione linie C=αC 1 +(1 α)c 2 αmożelinowozależećodnumeruklatki lepszewynikiwizualnemożnaosiągnąćprzynieliniowej zależności α 64/69
sekwencji animowanych Siatka współrzędnych Wyróżnione linie Source image sequence key grids interpolated grid intermediate grid Destination image sequence interpolated grid key grids 65/69
za pomocą linii wyróżnionych Siatka współrzędnych Wyróżnione linie Naobrazachokreślasięlinie,skazująceszegóły,któresobie odpowiadają Linietesąinterplowane,abyuzyskaćlinipośrednich Każdypikselmaprzypisanąwagę,któraokreślawpływlinii wyróżnionych Kolorśrednijestprzyjmowanyzaodkształconykolor źródłowy Analoniczniedlaodkształconegokolorudocelowego Kolorpośredniotzrymanyjestjakointerpolacja odkstzałconych kolorów 66/69
Jedna para linii wyróżnionych Siatka współrzędnych Wyróżnione linie Wprowadzasięlokalnewspółrzędne(u,v)naobrazie pośrednim oraz(s, t) na obrazie źródłowym v P1 u V P2 U P=(u,v) ( P2 P1) v = ( P P1) ------------------------ 2 P2 P1 ( P2 P1) u = ( P P1) ------------------------ 2 P2 P1 PikselPjestodwzorowywanynaobrazćródłowy T Q2 Q Q1 S T = Q2 Q1 S = ( T y, T ) x Q = Q 1 + u S + v T 67/69
Przykłady morfingu Source image and feature line Intermediate feature line and resulting image Siatka współrzędnych Wyróżnione linie a) First example Source image and feature line Intermediate feature line and resulting image b) Second example 68/69
Kilka linii wyróżnionych Siatka współrzędnych Wyróżnione linie Wagi:w= ( Q1 Q 2 p a+d ) b,gdzie Q 1 iq 2 określająliniewyróżnionewobrazieźródłowym d jest odległością piksela od tej linii a,p,bsąokreśloneprzezużytkownikaimająwpływna ogólny charakter przekształcenia Możnaobciąćwagęnapewnejodległości 69/69