po čítačové hry

42
Počítačové hry Kvaterniony, animace a křivky

Upload: sonja

Post on 21-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Po čítačové hry. Kvaterniony, a nimace a k řivky. Rotace v R 2 a R 3. Rotace v R 3 je lineární zobrazení dané maticí M která je ortonormální a její determinant = 1. Analogicky rotace v R 2. Komplexní čísla. Komplexní číslo má tvar z = a + ib i je imaginární jednotka, kde i 2 = -1 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Po čítačové hry

Počítačové hryKvaterniony, animace a křivky

Page 2: Po čítačové hry

Rotace v R2 a R3

Rotace v R3 je lineární zobrazení dané maticí M

která je ortonormální a její determinant = 1.

Analogicky rotace v R2

(2)

Page 3: Po čítačové hry

Komplexní čísla

Komplexní číslo má tvar z = a + ib i je imaginární jednotka, kde i2 = -1 z* = a – ib je číslo komplexně sdružené k z |z| = √(a2 + b2) Každé komplexní číslo může být zapsáno jako

z = |z| eiα

to plyne z Eulerova vzorce

eiα = cos(α) + isin(α)

(3)

Page 4: Po čítačové hry

2D rotace

Rotace v R2 o úhel α může být dána maticí

Pokud zavedeme x a y takové, že– x = x1 + ix2

– y = y1 + iy2

potom lze rovnici zapsat jako

y = eiαx

(4)

Page 5: Po čítačové hry

2D rotace

y = eiαx– eiα je komplexní jednotka, tj. komplexní číslo s absolutní hodnotou

jedna– máme korespodenci mezi 2D rotacemi a komplexními jednotkami– komplexní jednotky tvoří jednotkovou kružnici v komplexní rovině– inverzní rotace je dána číslem komplexně sdruženým

A co 3D rotace?

(5)

Page 6: Po čítačové hry

Kvaterniony

Zobecnění komplexních čísel Tři imaginární jednotky i, j, k

– i2 = j2 = k2 = ijk = -1– ij = -ji = k, jk = -kj = i, ki = -ik = j

Kvaternion je čtveřice q = w + xi + yj + zk– častá notace q = r + v, kde v = xi + yj + zk, r je vektorová část– q lze interpretovat jako vektor v R4

(6)

Page 7: Po čítačové hry

Operace s kvaterniony

Součet a skalární součin po složkách Násobení

– asociativní– nekomutativní

Sdružený kvaternion q* = r – v

(7)

Page 8: Po čítačové hry

3D rotace

3D rotaci lze reprezentovat jednotkovým kvaternionem– osa a– úhel α

– kvat. v = ix1 + jx2 + kx3

– jednotkový kvat. q = cos(α/2) + a sin(α/2)• Eulerův vzorec

Potom platív’ = q v q*

v’ = ix’1 + jx’2 + kx’3

kde x’ je rotace x okolo osy a s úhlem α

(8)

Page 9: Po čítačové hry

Převod na matici

Kvaternion q odpovídá matici

skládání rotací je rychlejší pomocí kvaternionů transformace vektoru rychlejší pomocí matice

(9)

Page 10: Po čítačové hry

Interpolace rotací

Rotace R0 a R1, parametr t

– R(0) = R0 a R(1) = R1

– pro každé t je R(t) rotace– úhlová rychlost bodu transformovaného R(t) je konstantní

Interpolace rotačních matic– ortonormalita se obvykle lineární interpolací poruší

Interpolace 2D rotací pomocí komplexních čísel

R(t) = ei(1-t)A + itB = z0(z0*z1)t

Interpolace 3D rotací pomocí kvaternionů

R(t) = p(p*q)t

Sférická lineární interpolace (SLERP)

(10)

Page 11: Po čítačové hry

Skeletální animace

Per-vertex animace objektu– těžko se ovládá– mnoho dat

Skeletální animace– pomocná stuktura určující deformaci modelu = kostra– tvar modelu kopíruje polohu kostry

• více možností

– kostra má méně stupňů volnosti než 3D model• jednodušší animace

• úspora paměti

(11)

Page 12: Po čítačové hry

Vstup

Kostra (skeleton)– zadaná stromem– uzly reprezentují klouby– hrany reprezentují kosti

Pokožka (skin)– 3D model

Kostra i skin jsou navrženy v referenční poloze (T-pose)

(12)

Page 13: Po čítačové hry

Kostra

Každý kloub – je souřadný systém, ma vlastní transformační matici– má jednoho předka, transformace je vyjádřena vzhledem k němu

(13)

Page 14: Po čítačové hry

Animace

Každý kloub může rotovat kolem libovolné osy– typicky se nepoužívá posun ani změna měřítka

Rotace kloubu ovlivňuje všechny potomky

Dva problémy– určit rotace kloubů– deformace modelu podle kostry (tzv. skinning)

(14)

Page 15: Po čítačové hry

Animace

dopředná kinematika– přímé ovládání kostry, náročné na tvorbu– zadávájí se jen klíčové snímky

inverzní kinematika– nepřímá kontrola kostry, rotace kloubů se spočítají podle cíle

motion capture– záznam pohybu herce– následné vyčištění a zpracování

dopředná dynamika– fyzikální knihovny

(15)

Page 16: Po čítačové hry

Animace pomocí klíčování

Návrh jen důležitých klíčových snímků Ostatní se dopočítají interpolací

– existuje řada interpolačních křivek

Klíčováním lze kontrolovat cokoliv– rotace, pozice kloubů– cíl pro IK

(16)

Page 17: Po čítačové hry

Inverzní kinematika (IK)

Zadán cílová pozice (a rotace) pro kloub– např. ruka na klice od dveří

IK spočítá transformace v předcích aby kloub (koncový efektor) na cíl dosáhl

Problémy– nemusí existovat řešení– řešení nemusí být jednoznačné– složité pro delší řetězce

(17)

Page 18: Po čítačové hry

IK: Analytické řešení

Řešení soustavy rovnic Složité pro delší řetězce

– typicky se používá pro max. 6-7 stupňů volnosti

Rychlé a přesné

Např. Human Arm Linkage (HAL) řetězec– 7 stupňů volnosti: 3 rameno, 1 loket, 3 zápěstí– známo analytické řešení pro pozici a orientaci

(18)

Page 19: Po čítačové hry

Inverzní kinematika (IK)

Numerické řešení– Cyclic coordinate descent– změnit pouze jeden úhel v jednom kroku– kombinace analytického a numerického řešení

Rozsah pohybu kloubů– omezení jednotlivých stupňů volnosti– často nestačí pro popis reálných kloubů– model založený na svalech

(19)

Page 20: Po čítačové hry

Rigid skinning

každý vrchol v má přiřazen jeden kloub j F je transformace v animované poloze, A je transformace v

referenční poloze

v’ = F(j) A(j)-1 v Použito ve starších hrách Nevhodné pro vrcholy poblíž kloubů

(20)

Page 21: Po čítačové hry

Linear Blend Skinning

Každý vrchol v ovlivňován několika klouby j1, ..., jm s danými váhami w1, ...., wm

Váha popisuje míru vlivu kloubu j na pozici vrcholu v Váhy musí být konvexní, tj.

– w1 + … + wm = 1

– w1 ≥ 0, …, wm ≥ 0

Váhy se typicky navrhují ručně

(21)

Page 22: Po čítačové hry

Linear Blend Skinning

v’ = wi F(ji) A(ji)-1 v + ... + wi F(ji) A(ji)-1 v

Hladká deformace skinuHW podporaPro velké rotace – stále nepřirozené deformace

(22)

Page 23: Po čítačové hry

Linear Blend Skinning

LBS nezachovává ortonormalitu a tudíž ani objem deformovaného skinu

(23)

Page 24: Po čítačové hry

Pokročilé metody skinningu

LBS– jednoduchá implementace– rychlý výpočet– artefakty až při větších rotacích

Způsoby jak zredukovat artefakty– přidat pomocné klouby

• rozprostření rotace

– míchání logaritmů matic a sférické míchání• pokročilá interpolace

– duální kvaterniony

(24)

Page 25: Po čítačové hry

Character Editor

(25)

Page 26: Po čítačové hry

Locomotion Groups

(26)

Page 27: Po čítačové hry

Animation Graph

(27)

Page 28: Po čítačové hry

Mannequin

(28)

Page 29: Po čítačové hry

Křivky

K čemu potřebujeme křivky? Definují

– trajektorii– změnu rychlosti– zrychlení– barvu– ...

Požadavky– Jednoduchá specifikace– Intuitivní na použití– Rychlý výpočet

(29)

Page 30: Po čítačové hry

Definice

Parametrická rovnice křivky

Q(t) = [x(t),y(t),z(t)]

Q(t) je bod na křivce v čase t [0,1]∈ Q(0) je počáteční bod Q(1) je konečný bod

(30)

Page 31: Po čítačové hry

Lineární interpolace

Triviální příklad Q(t)=[x(t),y(t),z(t)]=A+t(B-A)

Q(0)=A Q(1)=B Q(0.5)=(A+B)/2

(31)

Page 32: Po čítačové hry

Derivace a tečna

Derivací je tečný vektor v daném bodě Tangenta je přímka procházející daným bodem ve směru

tečného vektoru

(32)

Page 33: Po čítačové hry

Animační křivky

Dvě nejčastější reprezentace založené na Hermitovské interpolaci

Catmull-Rom splinesKochanek-Bartels splines

(33)

Page 34: Po čítačové hry

Hermitovská interpolace

Jeden úsek Hermitovské kubiky je dán dvěma řídícími body a dvěma tečnými vektory

Body P0,P1 a vektory P’0, P’1

(34)

Page 35: Po čítačové hry

Hermitovská interpolace

Dána rovnicí

Q(t)=P0F0(t) + P1F1(t) + P’0F2(t) + P’1F3(t)

F0(t) = 2t3 -3t2 + 1F1(t) = -2t3 + 3t2F2(t) = t3 - 2t2 + tF3(t) = t3 -t2

pro Q(0) obdržíme P0, pro Q(1) pak P1

křivka prochází P0 a P1

(35)

Page 36: Po čítačové hry

Hermitovské báze

(36)

Page 37: Po čítačové hry

Příklady

(37)

Page 38: Po čítačové hry

Rasterizace

Výpočet n bodů na křivce Triviální řešení

– konstantí časový posun– pohyb po křivce ale může být zrychlený

tečné vektory nulové

P’0 nenulové

Parametrizace délkou oblouku (arc-length)– stejná vzdálenost bodů na křivce– numerické řešení

(38)

Page 39: Po čítačové hry

Catmull-Rom splines

Hermitovská interpolace se speciální volbou tečných vektorů

Tečný vektor v bodě P je rovnoběžný s vektorem daným dvěma sousedními vektory

Jeho délka je poloviční

(39)

Page 40: Po čítačové hry

Uzavřená křivka je speciální případ– jinak je nutné přidat navíc počáteční a koncový bod

Catmull-Rom splines

(40)

Page 41: Po čítačové hry

Kochanek-Bartels splines

také nazývané TCB křivky– tension, continuity, bias

(41)

Page 42: Po čítačové hry

Reference

A. J. Hanson, Visualizing Quaternions

(42)