Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Animação por Computador
Alberto B. Raposo abraposo@tecgraf.puc-rio.br
http://www.tecgraf.puc-rio.br/~abraposo/INF1366
Animação Animação ? ?
Modificação no tempo de parâmetros, de tal forma que
possamos perceber este “movimento”
de forma natural.
• Movimento de objetos
• Metamorfose
• Variação da cor
• Variação da intensidade da luz
Alberto Raposo – PUC-Rio
Exemplo – Tecgraf / Petrobras
Alberto Raposo – PUC-Rio
TRADICIONAL
Sistemas de Pintura
Editores Gráficos
Sistemas de Interpolação
Controle de Câmera, etc.
AUXILIADA (2D)
KEYFRAMING
CINEMÁTICA DINÂMICA
Máquinas de Estado Campos Potenciais Inteligência Artificial
Biológico, etc.
Outros Modelos PROCEDIMENTAL (Local / Global) MODELADA (3D) POR COMPUTADOR
ANIMAÇÃO
Alberto Raposo – PUC-Rio
Animação Tradicional
• Desenha-se cada quadro da animação
– Grande controle – Trabalhoso
• Animação por células (cel animation)
– Camadas, keyframe, inbetween…
Animação Auxiliada por Computador
• Parte da renderização, do cálculo das
interpolações, etc. é feita no computador.
Alberto Raposo – PUC-Rio
Animação Modelada por Computador
• Keyframing
• Procedural
– Baseada em física
• Cinemática (direta e inversa)
• Dinâmica (direta e inversa) – Motion Capture
• Comportamental
• Outras técnicas
Alberto Raposo – PUC-Rio
Keyframing
• Animação gerada a partir da interpolação de quadros-chave
– Automatiza o “inbetweening”
– Bom controle
– Menos trabalhosa que tradicional
– Ainda requer muito “talento” dos animadores
Alberto Raposo – PUC-Rio
Keyframing
•Descrição dos movimentos dos objetos como função no tempo de um conjunto de posições- chave.
•Em resumo: computar os quadros
intermediários
ACM © 1987 “Principles of traditional animation applied to 3D computer animation”
( ) s t
MIT EECS 6.837, Durand and Cutler
Keyframing
• Usa-se interpolação linear ou então a interpolação de alguma curva para a geração do movimento
( )
x t
t t t
8-degree
polynomial spline spline vs.
polynomial
0 0 0
( ,x y t, )
1 1 1
( , , )x y t
2 2 2
( ,x y t, )
Alberto Raposo – PUC-Rio
Interpolação de Key Frames
• A interpolação (por splines, por ex.) pode gerar interpenetrações indesejadas
– “Talento” do animador precisa corrigir esses e outros problemas da interpolação de quadros
ACM © 1987 “Principles of traditional animation applied to 3D computer animation”
Alberto Raposo – PUC-Rio
VRML – Animação por Interpolação
usuário clica sobre um objeto
TouchSensor TimeSensor
start
a cada pulso de relógio
PositionInterpolator
nova posição calcula
função de interpolação
Nó geométrico
move
Alberto Raposo – PUC-Rio
Princípios da Animação Tradicional
•Artigo clássico de John Lasseter (presidente da Pixar e diretor de Toy Story, Vida de Inseto, Monstros S.A…):
– "Principles of Traditional Animation Applied to 3D Computer Graphics,“ SIGGRAPH'87, pp.
35-44.
Squash e stretch
• Squash: achatar objeto ou personagem com seu próprio peso
• Stretch: aumenta senso de velocidade e enfatiza squash por contraste
Alberto Raposo – PUC-Rio
Timing
•Timing é afetado pelo peso:
– Objeto leve move rápido
– Objeto mais pesado move mais lentamente
• Linha de escala de tempo para controlar o desenho dos quadros intermediários.
Alberto Raposo – PUC-Rio
Animação Procedimental
• Animação descrita por algoritmo
– Animação como função de um número de parâmetros
• Ex: bouncing ball
• Abs(sin(ωt+θ0))*e-kt
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
CINEMÁTICA:
Descrição de um movimento através de equações do tipo:
deslocamento = f (tempo)
sen, cos, ...
A discretização no tempo associará o deslocamento a um determinado instante (quadro) da animação.
Ex. de Animação Cinemática:
Pêndulo Simples
θ
Na figura:
: ângulo entre o pêndulo e a normal
l : comprimento do fio que sustenta a esfera de massa qualquer g : valor da gravidade
O fio que sustenta a esfera é inextensível e de massa desprezível.
Alberto Raposo – PUC-Rio
A equação que descreve o modelo do pêndulo simples é:
Trata-se de uma equação diferencial não linear ! Para simplificar a solução, adotar (para pequenas amplitudes):
s e n (θ ) ≅ θ
d d t
g l
2 2
θ = − ⋅ s e n ( θ )
Alberto Raposo – PUC-Rio
Solução
:onde:
= (g / l) 1 / 2
k = amplitude inicial do movimento (constante)
= fase inicial do movimento (constante) ω
β
θ = ⋅ k cos( ω ⋅ + t β )
Alberto Raposo – PUC-Rio
DINÂMICA:
Descrição de um movimento através de equações do tipo:
deslocamento = f (tempo, forças, torque)
A discretização no tempo associará o deslocamento a um determinado instante (quadro) da animação.
Um modelo dinâmico pode ser aplicado a uma animação de forma a termos uma simulação visual.
Vantagens:
• Maior “grau de realismo” do movimento.
• Possibilidade de simulação de um grande número de fenômenos físicos.
Desvantagens:
• Modelo mais complexo.
• Maior no.de variáveis com as quais o usuário terá de interagir.
• O “animador” deve dominar alguns conhecimentos de Mecânica.
• O resultado visual nem sempre compensa o alto custo dosmodelos dinâmicos.
Alberto Raposo – PUC-Rio
Exemplo: Amortecedor
O modelo abaixo representa, simplificadamente o amortecedor:
Fmola
Fatrito
Fexterna
Fresultante= Fexterna+ Fmola+ Fatrito
Alberto Raposo – PUC-Rio
Fresultante = Fexterna+ Fmola + Fatrito
m d x
dt F k x b dx
externa dt
⋅ = − ⋅ − ⋅
2 2
x é a posição do objeto em movimento, mé a massa do objeto em movimento, k é a constante de elasticidade da mola, b é o coeficiente de atrito viscoso do
pistão do amortecedor e
Fexternaé a força externa aplicada ao conjunto
Alberto Raposo – PUC-Rio
O modelo descrito pode ser discretizado na forma:
dx
dt x x x
t d x
dt
x x t
x x x
t
i
i i
i i i i i
= = −
= −
= − ⋅ +
• −
• •
− − −
1
2 2
1 1 2
2
2
∆
∆ (∆ )
onde∆tequivale ao intervalo de amostragem.
Logo:
Finalmente:
m x x x
t
F k x b x x
t
i i i
ext i
i i
⋅ ⎡ − ⋅ +
⎣⎢
⎤
⎦⎥ =
− ⋅ − ⋅ ⎡ −
⎣⎢
⎤
⎦⎥
− −
−
2
1 22
1
∆
∆
x t F b t m x m x m k t b t
i
ext i i
= ⋅ + ⋅ + ⋅ − ⋅ + ⋅ + ⋅
− −
∆ ∆
∆ ∆
2
1 2
2
2
( )
Alberto Raposo – PUC-Rio
Modelos Articulados
•Modelos Articulados:
– Partes rígidas
– Conectadas por juntas
•Podem ser animados especificando-se os ângulos das juntas como função do tempo.
t1 t2
qi q ti( )
t1 t2
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Cinemática Direta
•Descreve as posições das partes do corpo em função dos ângulos das juntas.
1 DOF:
1 DOF: joelhojoelho 2 DOF: punho2 DOF: punho 3 DOF: 3 DOF: braçobraço
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
DOF: Degree of Freedom (Graus de Liberdade)
MIT EECS 6.837, Durand and Cutler
Cinemática Direta
Alberto Raposo – PUC-Rio
Cinemática Inversa
• Dada a posição da extremidade e uma posição final desejada, como mudar os parâmetros das juntas?
– Cálculo mais difícil que o da cinemática direta – Mais de uma solução
( ) s
S p v
vs vs , , , , ,
h h h h h h
x y z q f s
t, ,t t
q f s
qc
f, f
q f
%w v
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Cinemática Inversa
Resultado nem sempre é único
Alberto Raposo – PUC-Rio
Dinâmica Inversa
• Dinâmica direta: usa forças para criar o movimento
• Dinâmica inversa: calculas as forças necessárias para realizar um movimento
http://www.squiresoftgames.com/invdyn/
Captura de Movimentos
• Maior realismo: nuances, movimentos súbtos, estilo...
• Observar algum movimento.
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Animação Comportamental
• Personagens autônomos determinam suas próprias ações, pelo menos até certo ponto.
http://accad.osu.edu/~mlewis/Class/behavior.html
Alberto Raposo – PUC-Rio
Animação de Partículas [Reeves, 1983]
Start Trek, The Wrath of Kahn
Alberto Raposo – PUC-Rio
Objetos Deformáveis
• Formas se deformam com o contato
• Problema precisa ser discretizado
Debunne et al. 2001
Animação de Roupas
•Discretização
•Equações físicas
•Integração
•Detecção de colisão
Alberto Raposo – PUC-Rio
Animação de roupas
http://www.cs.caltech.edu/~mmeyer/Research/Cloth/
Alberto Raposo – PUC-Rio
Simulação de Fluidos
•Discretização do volume do fluido
•Equações de Navier Stokes
•Integration numérica
•Desafios:
– Integração robusta, estabilidade – Velocidade
– Superfícies realísticas
Fedkiw et al. 2001
Enright et al. 2002 MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Animação de Cabelos
http://www-faculty.cs.uiuc.edu/~yyz/research/hair/
Como são feitos os filmes?
•A maior parte em keyframing
•Figuras articuladas com cinemática inversa
•Skinning
– Pele deformável, músculos
•Controles hierárquicos
– Olhos piscando, etc.
•Grande parte do tempo gasto com modelagem 3D, os esqueletos e seus controles
•Simulação física para movimentos secundários
– Cabelos, roupas, líquidos, sistemas de partículas
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Stuart Little
• Modelagem
Alberto Raposo – PUC-Rio
Stuart Little
• Fluido
Alberto Raposo – PUC-Rio
Stuart Little
• Sistemas de Partículas
Stuart Little
• Animação Facial
Alberto Raposo – PUC-Rio
Stuart Little
• Pelos
Alberto Raposo – PUC-Rio
Stuart Little
• Roupas
Alberto Raposo – PUC-Rio
Números – Final Fantasy
http://www.arstechnica.com/wankerdesk/01q3/ff-interview/ff-interview-2.html
Números – Final Fantasy
• Personagens principais > 300.000 polys
• 3.000.000 renders (se cada quadro fosse renderiazado apenas 1 vez)
– Normalmente, foram 5 revisões de renderizações – Tempo de renderização de 1 quadro = 90 min
• 934.162 dias de render em 1 CPU
– Usaram 1200 CPUs = 778 dias de renderização
Alberto Raposo – PUC-Rio
Final Fantasy
• Software de renderização: Renderman (Pixar)
• Modelagem: Maya
• Cabelos
– Modelados como splines
Alberto Raposo – PUC-Rio
Exemplo – Paul Debevec
http://www.debevec.org
Alberto Raposo – PUC-Rio