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