Animacja Komputerowa. Interpolacja

Transkrypt

Animacja Komputerowa. Interpolacja
Animacja Komputerowa. Interpolacja
Aleksander Denisiuk
Polsko-Japońska Akademia Technik Komputerowych
Wydział Informatyki w Gdańsku
ul. Brzegi 55
80-045 Gdańsk
[email protected]
1 / 47
Interpolacja
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Najnowsza wersja tego dokumentu dostępna jest pod adresem
http://users.pja.edu.pl/~denisjuk/
Wykorzystanie
Ścieżek
2 / 47
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Zagadnienie Interpolacji
3 / 47
Zagadnienie interpolacji
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Dane są wartości parametrów w klatkach kluczowych
współrzędne położenia, kąt nachylenia, obrót ręki
robota, etc
Określić wartości w klatkach pośrednich
rozpędzanie i spowalnianie, ciągłość
4 / 47
Interpolacja a aproksymacja
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Interpolacja: krzywe przechodzą dokładnie przez punkty
krzywe sklejane, interpolacja Hermite’a
Aproksymacja: dane są punkty kontrolne
krzywe Béziera, B-sklejane
5 / 47
Złożoność funkcji
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Wielomiany trzeciego stopnia
Wielomiany niższego stopnia
można podawać położenia i prędkości punktów
końcowych
nie mają punktów przegięcie
krzywe są płaskie
Wielomiany wyższego stopnia
nie dają istotnych korzyści
są bardziej skomplikowane obliczeniowo
6 / 47
Ciągłość
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Sterowanie
Ruchem
Ciągłość zerowego rzędu
Ciągłość pierwszego rzędu: ciągły kierunek stycznej
(prędkość)
Ciągłość drugiego rzędu: ciągła krzywizna (przyśpieszenie)
Wykorzystanie
Ścieżek
7 / 47
Globalna i lokalna kontrola kształtu
Zagadnienie
Interpolacji
Zagadnienie
interpolacji
Kontrola lokalna
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
zmiana jednego punktu ma wpływ na ograniczoną część
splajny Catmulla-Roma, sklejane parabole, B-spline
Kontrola globalna
zmiana jednego punktu ma wpływ na całą krzywą
interpolacja Lagrange’a
8 / 47
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie Ruchem
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
9 / 47
Sterowanie ruchem punktu wzdłuż krzywej
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Określona jest funkcja interpolacyjna P (u) ∈ R3
równomierna zmiana parametru u nie oznacza ruchu ze
stałą prędkością
parametryzacja łukowa s = s(u), length(u1 , u2 )
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
10 / 47
Obliczanie analityczne
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
length(u1 , u2 ) =
r
u
1
R
u1
dx(u) 2
du
+
u
R1
|Ṗ (u)| du =
u1
dy(u) 2
du
+
dz(u) 2
du
du
krzywa kubiczna
płaska krzywa kwadratowa
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
11 / 47
Przybliżone obliczanie
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Dane są węzły u0 ¬ u1 ¬ · · · ¬ un
Obliczamy P (u0 ), . . . , P (un )
Tablica odległości:
G(0) = 0,
G(1) = dist(P0 , P1 ),
G(2) = G(1) + dist(P1 , P2 ),
etc
Dla oszacowania długości używana jest interpolacja liniowa
length(u1 , u2 ) ≈ G(u2 ) − G(u1 )
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
12 / 47
Przykład
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
i
0
1
2
3
4
5
6
7
8
9
10
u
0,00
0,05
0,10
0,15
0,20
0,25
0,30
0,35
0,40
0,45
0,50
G
0,000
0,080
0,150
0,230
0,320
0,400
0,500
0,600
0,720
0,800
0,860
i
11
12
13
14
15
16
17
18
19
20
u
0,55
0,60
0,65
0,70
0,75
0,80
0,85
0,90
0,95
1,00
G
0,900
0,150
0,920
0,932
0,944
0,959
0,972
0,984
0,998
1,000
s(0,73) ≈ 0, 953
u(0,75) ≈ 0, 41875
13 / 47
Błędy obliczeniowe
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
Gęstsze tablicowanie
Interpolacja wyższego rzędu
Adaptacja
1
1
kP (0) − P (1)k − kP (0) − P
k + kP
− P (1)k < ε
2
2
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
14 / 47
Całkowanie numeryczne
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Kwadratura Gaussa
R1
−1
Dowolny przedział
Adaptacja
f (u) du ≈
P
wi f (i)
i
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
15 / 47
Rozwiązywanie równań
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
length(u0 , u) = s
Metoda Newtona f (t) = 0
tn+1
f (tn )
= tn − ′
f (tn )
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Metoda siecznych
Wyszukiwanie binarne
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
16 / 47
Sterowanie prędkością
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
s(t), gdzie t —czas
Ruch ze stałą prędkością
ease-in/ease-out
s(t) jest funkcją liniową
P (u(s(t)))
Funkcja odległości powinna być monotoniczna
Funkcja odległości powinna być ciągła
Normalizacja: s ∈ [0, 1], t ∈ [0, 1]
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
17 / 47
sin t
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
s(t) = ease(t) =
sin(πt− π2 )+1
2
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
18 / 47
Fragmenty funkcji sinusoidalnej
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
ease(t)

=
2k1

sin


 πf
2k1

π


 2k1
π
πt
2k1
− π2 + 1 ,
.
+ t − k1
dla t < k1
dla k1 ¬ t < k2
f,
.
π(t−k2 ) 2)
f,
+ k2 − k1 + 2(1−k
sin 2(1−k2 )
π
gdzie f = 2k1 /π + k2 − k1 + 2(1 − k2 )/π.
π⁄2
dla k2 ¬ t
π⁄2
1.0 – k 2
-----------------π⁄2
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
k2 – k1
k1
--------π⁄2
k1
k2
1.0
19 / 47
Wielomian trzeciego stopnia
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
ease(t) = −2t3 + 3t2
Styczne w końcach przedziału [0, 1] są poziome
brak przedziału ze stałą prędkością
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
20 / 47
Stałe przyśpieszenie
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Metody
numeryczne



a+
a(t) =
0


a
−

t

v
0

 t1
v(t) =
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
0


v 1 −
0
s(t) =
dla 0 < t < t1 ,
dla t1 < t < t2 ,
v
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
dla 0 < t < t1 ,
dla t1 < t < t2 ,
dla t2 < t < 1.

t2

v

 0 2t1
t−t2
1−t2
dla t2 < t < 1.
dla 0 < t < t1 ,
dla t1 < t < t2 ,
v0 t21 + v0 (t − t1 )
t21
02


v
+ v0 (t − t1 ) + v0 1 −
1 t−t2
2 1−t2
(t − t1 )
dla t2 < t < 1.
21 / 47
Dopasowanie do danej prędkości
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
velocity
velocity
5.0
5.0
1.0
1.0
0.0
0.0
1.0
0.0
Metody
numeryczne
time
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
0.0
1.0
Possible solution to enforce total
distance covered equal to one
User specified velocities
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
time
velocity
velocity
5.0
5.0
1.0
1.0
0.0
0.0
1.0
0.0
User specified velocities
time
time
0.0
1.0
Possible solution to enforce total
distance covered (signed area
under the curve) equal to one
22 / 47
Przykłady funkcji odległości
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
s
s
t
b) backs up
t
a) starts and ends abruptly
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
s
s
Ogólne funkcje
odległości
t
t
Interpolacja
kwaternionów
c) stalls
d) smoothly starts and stops
Wykorzystanie
Ścieżek
s
s
t
e) starts part way along the curve and
gets to the end before t=1.0
t
f) waits awhile before starting and
doesn’t get all the way to the end
23 / 47
Warunki na ruch
Zagadnienie
Interpolacji
(ti , si , vi , ai )
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
s
s
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
t
t
s
s
Wykorzystanie
Ścieżek
t
velocity-distance-time constraints specified
t
resulting curve
24 / 47
Dopasowanie do par położenie-czas
Zagadnienie
Interpolacji
P2
P1
P4
time = 10
time=50
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
time = 0
P5
time=55
P3
P6
time = 35
time = 60
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Warunki (Pi , ti ), i = 1, . . . , j.
Krzywe B-sklejane P (t) =
Układ P = N B
Wykorzystanie
Ścieżek
n+1
P
Bl Nl,k (t), 2 ¬ k ¬ n + 1 ¬ j
l=1
B = N −1 P
Regularyzacja
NT P = NT NB
B = (N T N )−1 N T P
25 / 47
Interpolacja kwaternionów
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Sterowanie
ruchem
Obliczanie
długości łuku
Linowa: q(u) = (1 − u)q0 + uq1
Łukowa (slerp): q(u) = sin(1−u)θ
sin θ q1 +
Interpolacja krzywymi Béziera
sin uθ
sin θ q2
w algorytmie de Casteljau użyć slerp
Metody
numeryczne
Sterowanie
prędkością
Rozpędzanie
i zatrzymanie
Ogólne funkcje
odległości
Interpolacja
kwaternionów
Wykorzystanie
Ścieżek
26 / 47
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wykorzystanie Ścieżek
Wygładzanie
Ścieżka na
powierzchni
27 / 47
Ruch po ścieżce
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Dany jest tor ruchu obiektu (kamery), sparametryzowany
długością łuku oraz funkcja przesunięcia
Wygładzanie
Ścieżka na
powierzchni
ustalić zmianę położenia oraz zorientowania
jeżeli punkty na torze pochodzą z pomiarów, trzeba tor
wygładzić
dodatkowo ścieżka może leżeć na powierzchni innego
obiektu
ścieżka bezkolizyjna
28 / 47
Zorientowanie wzdłuż ścieżki
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Lokalny układ współrzędnych (u, v, w) (prawoskrętny)
Początek jest na ścieżce P (s)
v
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
w
u
Wygładzanie
Ścieżka na
powierzchni
P(s)
S
PO
29 / 47
Układ Freneta
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
Jean Frédéric Frenet, 1847
P ′ (s)
w= ′
|P (s)|
P ′′ (s) × P ′ (s)
u = ′′
|P (s) × P ′ (s)|
v =u×w
30 / 47
Układ Freneta, problemy
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Brak naturalnego kierunku „do góry”
Punkty spłaszczenia (P ′′ (s) = 0)
Wykorzystanie
Ścieżek
interpolacja na odcinku
vi
Ruch po ścieżce
vj
wi
Zorientowanie
wzdłuż ścieżki
wj
Kamera
Wygładzanie
ui
Ścieżka na
powierzchni
uj
Nieciągłość wektoru normalnego (dwa półokręgi)
Wektor styczny nie określa kierunku, do którego podąża
obiekt
Wektor v (kierunek „do góry”) może gwałtonie się obracać
31 / 47
Układ Freneta, ważna informacja
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Wektor normalny wskazuje kierunek skrętu
można pochylić obiekt w tę stronę
bądź w przeciwnym kierunku (siła odśrodkowa)
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
32 / 47
Ruch kamery po ścieżce
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Wybrać środek zainteresowania (COI) w ustalonym pinkcie
sceny (w srodku jednego z obiektów)
w = COI − POS
Niech oś Oy określa kierunek „do góry”
u=w×y
v =u×w
Ścieżka na
powierzchni
33 / 47
Kierunek patrzenia
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
Kierunek do COI
przechodzenie blisko COI może spowodować gwałtowne
zmiany kierunku
Punkty na krzywej
Punkty na innej krzywej
Interpolowane punkty na scenie
Kierunek „do góry”:
w płaszczyźnie w i y
odchylony od tego kierunku
34 / 47
Wybór środka zainteresowania
Zagadnienie
Interpolacji
Punkt na krzywej z wyprzdzeniem P (s + ∆s)
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
wykorzystać parametryzację łukową
na końcu ścieżki można użyć interpolacji z wektorem
stycznym w końcowym punkcie
chwiejąca się kamera
uśrednienie kilka punktów krzywej
Wygładzanie
Ścieżka na
powierzchni
za mało punktów (albo blisko siebie) — efekt
pozostaje
za dużo punktów — kamera będzie zbyt
statyczna
Wprowadzenie dla COI funkcji C(s)
Można wprowadzić dla kierunku „do góry” funkcję U (s)
w = C(s) − P (s), u = w × (U (s) − P (s)), v = u × w.
35 / 47
Wygładzanie ścieżki
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Jeżeli kolejne punkty pochodzą z pomiarów, to może być
potrzebne wygładzanie
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
36 / 47
Interpolacja liniowa
Zagadnienie
Interpolacji
Sterowanie
Ruchem
p′i =
1
2
pi +
pi−1 +pi+1
2
= 41 pi−1 + 12 pi + 14 pi+1
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
37 / 47
Interpolacja sześcienna
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
P (u) — wielomian stopnia 3, przechodący przez sąsiadujące
punkty P (0) = pi−1 , P ( 41 ) = pi−1 , P ( 34 ) = pi+1 , P (1) = pi+2
p′i =
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
1
2
P ( 12 )
+ p1
układ równań
wzór Lanrange’a
wzór Newtona
Na końcach przedziału możnaużyć paraboli
P (0) = p0 ,
P ( 23 ) = p2 , P (1) = p3 , p′1 = 12 P ( 31 ) + p1
Pierwszy punkt bez zmian
można użyć krzywej drugiego stopnia:
p′0 = p3 + 3(p1 − p2 )
38 / 47
Interpolacja sześcienna, przykład
Zagadnienie
Interpolacji
y
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
x
Kamera
Wygładzanie
Ścieżka na
powierzchni
39 / 47
Użycie splotu
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
pi = f (xi )
Splot: f ⋆ g(x) =
R∞
f (x + u)g(u) du
−∞
g(u) — filtr,
∞
R
g(u) du = 1
−∞
Zorientowanie
wzdłuż ścieżki
Kamera
Całkę można obliczyć numerycznie
W punktach końcowych funkcję można dowolnie rozszerzyć
Wygładzanie
Ścieżka na
powierzchni
40 / 47
Przykłady filtrów
Zagadnienie
Interpolacji
Sterowanie
Ruchem
1/10
1/20
Wykorzystanie
Ścieżek
20
10
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
1/10
Kamera
Wygładzanie
Ścieżka na
powierzchni
20
prostokątny, dachowy, gaussowski
41 / 47
Splot z filtrem dachowym
Zagadnienie
Interpolacji
Sterowanie
Ruchem
v2
1.0
v1
v3
v1
Wykorzystanie
Ścieżek
1/8 3/4 1/8
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
a) smoothing kernel superimposed
v = 81 v1 + 43 v2 + 81 v3
Wygładzanie
Ścieżka na
powierzchni
42 / 47
Aproksymacja krzywymi B-sklejanymi
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Można użyć krzywych B-sklejanych
wynik – gładka krzywa
nie przechodzi przez dane węzły
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
43 / 47
Wyznaczenie śceżki na powierzchni
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Dane są dwa punkty na powierzchni
Ścieżka najkrótsza — kosztowne obliczeniowo
Ścieżka prawie najkrótsza:
płaszczyna łacząca końce ścieżki i możliwie prostopadła
do powierzchni
Kamera
Wygładzanie
Ścieżka na
powierzchni
44 / 47
Wyznaczenie śceżki na powierzchni
Zagadnienie
Interpolacji
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
Powierzchnia parametryzowana P = P (u, v)
połaczyć w dziedzinie (u, v) końce ścieżki odcinkiem
(łukiem)
Skomplikowany mash z trójkątów
algorytm zachłanny wyznaczenia ścieżki z krawędzi
masha
łączymy bieżący punkt z końcem odcinkiem
wybieramy krawędź, która ma najmniejszy kąt
z odcinkiem
obliczamy kosinusy
45 / 47
Ścieżka najszybszego spadku
Zagadnienie
Interpolacji
Y (Global “up” vector: y-axis)
Sterowanie
Ruchem
N (vector normal to surface)
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
D = Y×A
A = N×Y
46 / 47
Ścieżki bezkolizyjne
Zagadnienie
Interpolacji
Nieruchome przeszkody (albo rozhome o wiadomych torach)
Sterowanie
Ruchem
Wykorzystanie
Ścieżek
Ruch po ścieżce
Zorientowanie
wzdłuż ścieżki
Kamera
Wygładzanie
Ścieżka na
powierzchni
wyznaczenie punktów pośrednich
przybliżenie przeszków prostymi obiektami (sfera,
prostopadłóościan)
Ruchome prezszkody
poszukiwanie możliwego przedłużenia ścieżki przed
przeszkodą (algorytm zachłanny)
ruch przeszkod jest pzewidywalny
47 / 47