Animacja komputerowa : algorytmy i techniki / Rick Parent
Transkrypt
Animacja komputerowa : algorytmy i techniki / Rick Parent
Animacja komputerowa : algorytmy i techniki / Rick Parent. – Warszawa, 2011 Spis treści Przedmowa XV 1. Wprowadzenie 1.1. Postrzeganie 1.2. Dziedzictwo animacji 1.2.1. Wczesne urządzenia 1.2.2. Początki tradycyjnej animacji 1.2.3. Disney 1.2.4. Wkład innych osób 1.2.5. Inne sposoby animowania 1.2.6. Zasady animacji 1.2.7. Zasady filmowania 1.3. Produkcja filmu animowanego 1.3.1. Dźwięk 1.4. Wytwarzanie filmu animowanego na komputerze 1.4.1. Zadania w animacji komputerowej 1.4.2. Cyfrowy montaŜ 1.4.3. Cyfrowe wideo 1.4.4. Cyfrowy dźwięk 1.5. Krótka historia animacji komputerowej 1.5.1. Wczesna działalność (przed 1980 r.) 1.5.2. Lata średnie (osiemdziesiąte) 1.5.3. Animacja dojrzewa (połowa lat osiemdziesiątych i później) 1.6. Podsumowanie rozdziału Literatura 1 2 4 5 7 8 10 10 11 13 15 17 18 20 22 25 26 27 27 31 33 37 37 2. Wiadomości wstępne 2.1. Przestrzenie i przekształcenia 2.1.1. Potok wizualizacji 2.1.2. Współrzędne jednorodne i macierz przekształcenia 2.1.3. Przekształcenie złoŜone i obliczanie jego macierzy 2.1.4. Przekształcenia podstawowe 2.1.5. Reprezentowanie dowolnego połoŜenia kątowego 2.1.6. Odtwarzanie przekształcenia na podstawie macierzy 2.1.7. Opis przekształceń w potoku wizualizacji 2.1.8. Błędy w obliczeniach 2.2. Reprezentowanie połoŜeń kątowych 2.2.1. Reprezentacja z ustalonymi osiami 2.2.2. Kąty Eulera 2.2.3. Kąt i oś obrotu 2.2.4. Kwaterniony 2.2.5. Reprezentacja wykładnicza 2.3. Podsumowanie rozdziału Literatura 40 40 41 47 48 49 51 55 56 58 62 64 66 67 68 71 71 71 3. 3.1. 3.1.1. 3.1.2. 3.2. 73 73 74 77 78 Interpolacja wielkości liczbowych Interpolacja UŜycie odpowiedniej funkcji Podsumowanie Sterowanie ruchem punktu wzdłuŜ krzywej 3.2.1. Obliczanie długości łuku 3.2.2. Sterowanie prędkością 3.2.3. Rozpędzanie i zatrzymywanie 3.2.4. Ogólne funkcje odległości i czasu 3.2.5. Dopasowanie krzywej do par połoŜenie-czas 3.3. Interpolacja połoŜeń kątowych 3.3.1. Interpolacja kwaternionów 3.4. Zastosowanie ścieŜek 3.4.1. Ruch po ścieŜce 3.4.2. Zorientowanie wzdłuŜ ścieŜki 3.4.3. Wygładzanie ścieŜki 3.4.4. Wyznaczanie ścieŜki na powierzchni 3.4.5. Znajdowanie ścieŜek bezkolizyjnych 3.4.6. Podsumowanie 3.5. Podsumowanie rozdziału Literatura 79 94 96 103 106 107 108 112 112 113 117 123 125 126 126 126 4. Animacja oparta na interpolacji 4.1. Systemy oparte na klatkach kluczowych 4.2. Języki animacji 4.2.1. Języki animacji przeznaczone dla artysty 4.2.2. Języki pełnoskalowego programowania animacji 4.2.3. Zmienne artykulacji 4.2.4. Języki graficzne 4.2.5. Języki oparte na aktorach 4.3. Odkształcanie obiektów 4.3.1. Chwytanie i przesuwanie wierzchołków 4.3.2. Odkształcanie otaczającej przestrzeni 4.4. Interpolacja kształtów trójwymiarowych 4.4.1. Obiekty o tej samej topologii 4.4.2. Wielościany gwiaździste 4.4.3. Przekroje osiowe 4.4.4. Przekształcenie na sferę 4.4.5. Rekurencyjne dzielenie siatek 4.4.6. Podsumowanie 4.5. Morfing (dwuwymiarowy) 4.5.1. Podejście z siatką współrzędnych 4.5.2. Morfing za pomocą wyróŜnionych linii 4.6. Podsumowanie rozdziału Literatura 127 127 131 132 133 134 134 135 136 136 138 153 154 155 155 157 163 166 166 167 173 178 178 5. Łańcuchy kinematyczne 5.1. Modelowanie hierarchiczne 5.1.1. Struktury danych dla modelowania hierarchicznego 5.1.2. Lokalne układy współrzędnych 5.2. Kinematyka prosta 5.3. Kinematyka odwrotna 5.3.1. Rozwiązanie analityczne prostego zadania 5.3.2. Jakobian 5.3.3. Rozwiązywanie numeryczne zagadnień kinematyki odwrotnej 5.3.4. Podsumowanie 5.4. Podsumowanie rozdziału Literatura 181 183 184 190 191 194 194 196 200 208 208 209 6. Rejestrowanie ruchu 6.1. Techniki rejestrowania ruchu 6.2. Przetwarzanie obrazów 6.3. Kalibracja kamer 6.4. Odtwarzanie połoŜenia w trzech wymiarach 6.4.1. UŜycie wielu znaczników 6.4.2. UŜycie wielu kamer 6.5. Dopasowanie do szkieletu 6.6. Wyniki działania systemów rejestrowania ruchu 6.7. Przetwarzanie danych z systemów rejestrowania ruchu 6.7.1. Przetwarzanie sygnałów 6.7.2. Przekierowywanie ruchu 6.7.3. Łączenie ruchów 6.8. Podsumowanie rozdziału Literatura 210 211 212 214 215 217 217 217 219 221 221 222 222 223 223 7. Animacja z wykorzystaniem modeli fizycznych 7.1. Podstawy fizyczne — przegląd 7.1.1. Symulowanie układu mas, spręŜyn i tłumików 7.2. Siatki spręŜyn 7.2.1. Obiekty elastyczne 7.2.2. SpręŜyny wirtualne 7.3. Układy cząsteczek 7.3.1. Generowanie cząsteczek 7.3.2. Atrybuty cząsteczek 7.3.3. Usuwanie cząsteczek 7.3.4. Animowanie cząsteczek 7.3.5. Wizualizacja cząsteczek 7.3.6. Reprezentowanie układu cząsteczek 7.3.7. Siły działające na cząsteczki 7.3.8. Czas Ŝycia cząsteczki 7.4. Symulacja ruchu brył sztywnych 7.4.1. Swobodne spadanie ciał 7.4.2. Zderzenia ciał 7.4.3. Dynamika hierarchicznych układów brył 7.4.4. Podsumowanie 7.5. Wymuszanie miękkich i twardych więzów 7.5.1. Minimalizacja energii 7.5.2. Więzy przestrzenno-czasowe 7.6. Podsumowanie rozdziału Literatura 225 226 228 229 229 233 233 234 235 235 235 236 236 237 238 238 239 250 265 269 269 270 272 275 275 8. Płyny: ciecze i gazy 8.1. Szczególne modele płynów 8.1.1. Modele wody 8.1.2. Modele chmur (opracowane przez Davida Eberta) 8.1.3. Modele ognia 8.1.4. Podsumowanie 8.2. Obliczeniowa dynamika płynów 8.2.1. Ogólne podejścia do modelowania płynów 8.2.2. Równania dynamiki płynów 8.3. Podsumowanie rozdziału Literatura 278 278 279 291 302 304 304 305 307 312 312 9. Modelowanie i animowanie postaci ludzkich 9.1. Przegląd reprezentacji postaci ludzkich 9.1.1. Reprezentowanie geometrii ciała 9.1.2. Pozyskiwanie danych geometrycznych 9.1.3. Odkształcanie ciała 9.1.4. Szczegóły powierzchni 9.1.5. Warstwowe podejście do modelowania postaci ludzkich 9.2. Sięganie i chwytanie 9.2.1. Modelowanie ręki 9.2.2. Staw barkowy 9.2.3. Dłoń 9.2.4. Koordynacja ruchu 9.2.5. Sięganie za przeszkodę 9.2.6. Siła 9.3. Chodzenie 9.3.1. Mechanika poruszania się 9.3.2. Kinematyka chodu 9.3.3. Zastosowanie dynamiki w celu poprawienia realizmu ruchu 9.3.4. Sterowanie za pomocą dynamiki prostej 9.3.5. Podsumowanie 9.4. Ubieranie 9.4.1. Materiał i ubranie 9.4.2. Prosty model tkaniny 9.4.3. Animowanie ubrań 9.4.4. Modelowanie włosów 9.5. Podsumowanie rozdziału Literatura 316 317 317 320 320 321 321 324 325 328 328 330 331 332 333 334 338 342 344 344 345 345 346 349 352 354 355 10. Animacja twarzy 10.1. Ludzka twarz 10.1.1. Budowa anatomiczna 10.1.2. System Kodowania Ruchów Twarzy 10.2. Modele twarzy 10.2.1. Tworzenie modelu z powierzchni ciągłej 10.2.2. Tekstury 10.3. Animowanie twarzy 10.3.1. Modele sparametryzowane 10.3.2. Kształty do interpolacji 10.3.3. Modele mięśni 10.3.4. Ekspresja 10.3.5. Podsumowanie 10.4. Animacja ust 10.4.1. Układ artykulacji 10.4.2. Fonemy 10.4.3. Koartykulacja 10.4.4. Prozodia 10.5. Podsumowanie rozdziału Literatura 360 361 361 362 363 365 371 371 371 373 373 377 377 377 377 379 380 380 380 381 11. Modelowanie zachowań 11.1. Poznawanie otoczenia 11.1.1. Wzrok 11.1.2. Pamięć 11.2. Zachowania zespołowe 11.3. Zachowania proste 11.3.1. Zachowania stadne 11.3.2. Zachowania układów drapieŜnik-ofiara 11.4. Modelowanie zachowań inteligentnych 11.4.1. Zachowania autonomiczne 11.4.2. Wyrazy twarzy i gesty 11.4.3. Modelowanie indywidualnych cech: osobowość i emocje 11.5. Sterowanie tłumem 11.5.1. Zachowania emergentne 11.5.2. Zachowania na podstawie modeli statystycznych 11.5.3. Struktura wewnętrzna 11.6. Podsumowanie rozdziału Literatura 383 384 384 385 386 388 388 399 400 400 403 404 405 406 406 407 407 408 12. Specjalne modele dla animacji 12.1. Powierzchnie zadane niejawnie 12.1.1. Określanie powierzchni zadanych niejawnie 12.1.2. Animowanie obiektów zadanych niejawnie 12.1.3. Wykrywanie kolizji 12.1.4. Odkształcanie powierzchni niejawnych wskutek kolizji 12.1.5. Metody warstwie 12.1.6. Podsumowanie 12.2. Rośliny 12.2.1. Odrobina botaniki 12.2.2. L-systemy 12.2.3. Animowanie wzrostu roślin 12.2.4. Podsumowanie 12.3. Powierzchnie określone przez zagęszczanie siatek 12.4. Podsumowanie rozdziału Literatura 411 411 412 414 415 415 418 419 419 420 422 428 430 431 433 433 A. Zagadnienia syntezy obrazów A.1. Podwójne buforowanie A.2. Składanie obrazów A.2.1. Składanie bez informacji o głębokości pikseli A.2.2. Składanie z uŜyciem informacji o głębokości pikseli A.3. Wyświetlanie poruszających się obiektów A.4. Cienie A.5. Billboarding i „udawacze" A.6. Podsumowanie Literatura 435 435 437 438 444 447 450 455 457 457 B. B.1. B.1.1. B.1.2. B.2. B.2.1. 459 459 461 468 469 470 Informacje uzupełniające Wektory i macierze Odwracanie macierzy i rozwiązywanie układów równań liniowych Rozkład względem wartości szczególnych Obliczenia geometryczne Składowe wektora B.2.2. Długość wektora B.2.3. Iloczyn skalarny B.2.4. Iloczyn wektorowy B.2.5. Procedury przetwarzania wektorów i macierzy B.2.6. NajbliŜsze punkty na prostych w przestrzeni B.2.7. Obliczanie pola B.2.8. Twierdzenie kosinusów B.2.9. Współrzędne barycentryczne B.2.10.Wyznaczanie brył otaczających B.3. Przekształcenia B.3.1. Przekształcanie punktów przy uŜyciu mnoŜenia macierzy przez wektor B.3.2. Przekształcanie wektorów B.3.3. Obroty reprezentowane za pomocą osi i kąta B.3.4. Kwaterniony B.4. Reprezentacja łańcuchów kinematycznych Denavita i Hartenberga B.4.1. Notacja Denavita i Hartenberga B.4.2. Prosty przykład B.4.3. Dołączenie przegubu kulowego B.4.4. Konstruowanie lokalnego układu współrzędnych B.5. Krzywe interpolacyjne i aproksymacyjne B.5.1. Podstawowe terminy B.5.2. Interpolacja liniowa B.5.3. Parametryzacja łukowa B.5.4. Obliczanie pochodnych B.5.5. Interpolacja Hermite'a В.5.6. Krzywe sklejane Catmulla-Roma B.5.7. Krzywa interpolacyjna dla czterech punktów B.5.8. Krzywe przejściowe między parabolami В.5.9. Kubiczne krzywe Beziera В.5.10. Algorytm de Casteljau dla krzywych Beziera B.5.11. Zmiany napięcia, ciągłości i skosu B.5.12. Krzywe B-sklejane B.5.13. Dobieranie krzywej do danego zbioru punktów B.6. Losowość B.6.1. Szum B.6.2. Turbulencje B.6.3. Generator liczb losowych B.7. Elementy mechaniki B.7.1. PołoŜenie, prędkość i przyspieszenie B.7.2. Ruch po okręgu B.7.3. Prawa dynamiki Newtona B.7.4. Inercjalne układy współrzędnych B.7.5. Środek masy B.7.6. Moment siły B.7.7. Równowaga sił B.7.8. Grawitacja B.7.9. Siła dośrodkowa B.7.10. Oddziaływania między obiektami B.7.11. Siła odśrodkowa B.7.12. Praca i energia potencjalna B.7.13. Energia kinetyczna B.7.14. Zasada zachowania energii 470 470 472 473 476 477 479 479 480 493 493 494 495 496 499 499 503 503 505 505 506 508 509 509 510 511 514 515 517 518 518 521 523 523 523 527 527 529 529 530 531 532 532 533 533 533 534 534 536 537 537 537 B.7.15. B.7.16. B.7.17. B.7.18. B.7.19. B.8. B.8.1. B.8.2. B.8.3. B.9. B.9.1. B.9.2. B.10 Zasada zachowania pędu Drgania harmoniczne Tłumienie Moment pędu Tensor bezwładności Całkowanie numeryczne Obliczanie długości łuku Całkowanie równań róŜniczkowych zwyczajnych Metody całkowania równań ruchu Standardy dla ruchomych obrazów Na początku był świat analogowy W cyfrowym świecie Kalibracja kamery 538 538 539 539 540 541 541 543 546 548 548 553 559 Literatura 563 Skorowidz 565 oprac. BPK