77
Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo [email protected] abraposo/INF1366

Embed Size (px)

Citation preview

Page 1: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Animação por Computador

Alberto B. Raposo

[email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Page 2: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

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

Page 3: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Exemplo – Tecgraf / Petrobras

Page 4: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 5: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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…

Page 6: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação Auxiliada por Computador

• Parte da renderização, do cálculo das interpolações, etc. é feita no computador.

Page 7: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 8: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 9: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 10: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Keyframing

• Usa-se interpolação linearou então a interpolação dealguma 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

MIT EECS 6.837, Durand and Cutler

Page 11: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Interpolação de Key Frames

• A interpolação (porsplines, por ex.) podegerar interpenetraçõesindesejadas– “Talento” do animador

precisa corrigir esses eoutros problemas dainterpolação de quadros

ACM © 1987 “Principles of traditional animation applied to 3D computer animation”

Page 12: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML – Animação por Interpolação

usuário clicasobre um objeto

TouchSensor TimeSensor

starta cada

pulso derelógio

PositionInterpolator

novaposição

calculafunçãode interpolação

Nógeométrico

move

Page 13: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Tipos de Parâmetros e Roteamento de Eventos

• Cada nó VRML define um nome, um tipo e um valor default para seus parâmetros.

• Parâmetros são os reponsáveis pela diferenciação de um nó de outro do mesmo tipo.

– Exemplogeometry Sphere { radius 2 }

geometry Sphere { radius 3 }

Page 14: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Tipos de Parâmetros e Roteamento de Eventos (2)

• Há dois tipos de parâmetros: campos (fields) e eventos (events)

• Campos podem ser modificáveis (exposedFields) ou não (fields)

exposedField = eventIn + field + eventOut

Page 15: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Tipos de Parâmetros e Roteamento de Eventos (3)

• Eventos sinalizam mudanças causadas por “estímulos externos” e podem ser propagados entre os nós do ambiente através de roteamentos que conectam um EventOut a um EventIn do mesmo tipo

EventOut

EventOut

Nó 1

EventOut

EventIn

EventIn

Nó 2

Nó 3

EventIn

Nó 4

Page 16: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Tipos de Parâmetros e Roteamento de Eventos (4)

• Eventos gerados por sensores e interpoladores, roteados para nós geométricos, de iluminação ou de agrupamento, podem definir comportamentos dinâmicos para os elementos do ambiente

usuário clicasobre um objeto

TouchSensor TimeSensor

starta cada

pulso derelógio

PositionInterpolator

novaposição

calculafunçãode interpolação

Nógeométrico

move

Page 17: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores

• Interpolam LINEARMENTE valores para geração de animação

• Ex: <ScalarInterpolator key=“0 0.2 0.4 0.6 0.8 1” keyValue=“0 5 8 9 4 0” />

Page 18: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores

<ScalarInterpolator key=“0 0.25, 0.25 0.5, 0.5 1” keyValue=“1 1, 2 2, 3 4” />

<ColorInterpolator key=“0, 0.33333, 0.666666, 1” keyValue=“1 0 0, 0 1 0, 0 0 1, 1 0 0” />

Page 19: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores

• ScalarInterpolator

• ColorInterpolator

• PositionInterpolator

• OrientationInterpolator

Page 20: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores

• NormalInterpolator

• CoordinateInterpolator

• PositionInterpolator2D

• CoordinateInterpolator2D

Page 21: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

X3D Interpoladores - Exemplos

Page 22: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Sensores (1)

• Geram eventos baseados nas ações do usuário• Exemplos

• ProximitySensor detecta quando o usuário está navegando em uma região próxima ao objeto de interesse

• VisibilitySensor detecta quando certa parte do mundo (área ou objeto específico) torna-se visível ao usuário.

Page 23: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Sensores (2)

• Exemplos (cont.)

• TimeSensor gera eventos como passos de tempo e em conjunto com interpoladores pode produzir animações

TimeSensor {

cycleInterval 1

enabled TRUE

loop FALSE

startTime 0

stopTime 0

}

Page 24: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML - Sensores (3)

• Exemplos (cont.)

• TouchSensor detecta quando um objeto do grupo do seu pai é ativado (clique do mouse, por exemplo). Esse sensor gera um evento de saída chamado touchTime que pode disparar um timeSensor, iniciando uma animação.

TouchSensor {

enabled TRUE

}

Page 25: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Exemplo TouchSensor

isActive (button-down) touchTime (button-up)

Page 26: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

PlaneSensor

• Converte movimento de “select-and-drag” do ponteiro em translação 2D no plano z=0.– Quando usado “roteado” no

campo translation de um Transform, pode ser usado para “carregar” objetos filhos do Transform.

PlaneSensor

Page 27: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

CylinderSensor

• Converte movimento de “select-and-drag” do ponteiro em rotação em torno do eixo y.– Quando usado “roteado” no

campo rotation de um Transform, pode ser usado para “girar” objetos filhos do Transform.

CylinderSensor

Page 28: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

SphereSensor

• Converte movimento de “select-and-drag” do ponteiro em rotação 3D em torno da origem.– Quando usado “roteado” no campo

rotation de um Transform, pode ser usado para “girar” objetos filhos do Transform.

Page 29: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Outros sensores

• KeySensor– Detecta eventos de teclas

• StringSensor– Pega strings (todos os caracteres até o usuário

dar “Enter”)

Page 30: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML – Exemplo 1 (1)

#VRML V2.0 utf8# Quando a bola for tocada (mouse) o texto

# irá mover-se na horizontal e quando a caixa for tocada o # texto irá mover-se na vertical

Viewpoint { position 0 0 50 } # observador

Group {

children [

Transform {

translation -4 8 0

children [

Shape { # bola

geometry Sphere { radius 1.5 }

appearance Appearance {

material Material {

diffuseColor .73 .56 .56 }

}

}

# Sensor da bola

DEF STOUCH TouchSensor { } ] }

Transform {

translation 4 8 0

children [

Shape {

geometry Box { size 2 2 2 } # caixa

appearance Appearance {

material Material { diffuseColor 0 1 0 }

}

}

# Sensor da caixa

DEF BTOUCH TouchSensor { }

]

}

# Sensores de Tempo

DEF XTIMERH TimeSensor { cycleInterval 2 }

DEF XTIMERV TimeSensor { cycleInterval 2 }

Page 31: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML – Exemplo 1 (2)

# Interpoladores

# Horizontal

DEF ANIMAH PositionInterpolator { key [ 0, .25, .5, .75, 1] keyValue [ 0 0 0, 8 0 0, 16 0 0, -8 0 0, 0 0

0 ] }

# Vertical

DEF ANIMAV PositionInterpolator { (…) }

# Texto

DEF SFORM Transform { children Shape { geometry Text { string [ “Virtual” ] fontStyle FontStyle { style “BOLD” justify “MIDDLE” }

length [7]

maxExtent 20

} } } ] }

# Bola

ROUTE STOUCH.touchTime TO XTIMERH.set_startTime

ROUTE XTIMERH.fraction_changed TO ANIMAH.set_fraction

ROUTE ANIMAH.value_changed TO

SFORM.set_translation

# Caixa

ROUTE BTOUCH.touchTime TO XTIMERV.set_startTime

ROUTE XTIMERV.fraction_changed TO ANIMAV.set_fraction

ROUTE ANIMAV.value_changed TO

SFORM.set_translation

Page 32: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML – Exemplo 1 (3)

touchTime

TouchSensor(esfera)

TimeSensor(XTIMERH)

startTime

fraction_changed

PositionInterpolator(ANIMAH)

value_changed

set_fractionTexto

translation

touchTime

TouchSensor(caixa)

TimeSensor(XTIMERV)

startTime

fraction_changed

PositionInterpolator(ANIMAV)

value_changed

set_fraction

Page 33: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

VRML – Exemplo 1 (4)

Page 34: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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.

Page 35: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Squash e stretch

• Squash: achatar objeto ou personagem com seu próprio peso

• Stretch: aumenta senso de velocidade e enfatiza squash por contraste

Page 36: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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 paracontrolar o desenho dos quadrosintermediários.

Page 37: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 38: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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 deslocamentoa um determinado instante (quadro) da animação.

Page 39: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

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 qualquerg : valor da gravidade

O fio que sustenta a esfera é inextensível e de massa desprezível.

Page 40: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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):

sen( )

d

dt

g

l

2

2

sen( )

Page 41: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Solução:

onde:

= (g / l) 1 / 2

k = amplitude inicial do movimento (constante)

= fase inicial do movimento (constante)

k tcos( )

Page 42: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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 deslocamentoa um determinado instante (quadro) da animação.

Page 43: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

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.

Page 44: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Exemplo: Amortecedor

O modelo abaixo representa, simplificadamente o amortecedor:

Fmola

Fatrito

Fexterna

Fresultante = Fexterna + Fmola + Fatrito

Page 45: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Fresultante = Fexterna + Fmola + Fatrito

md x

dtF k x b

dx

dtexterna 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 eFexterna é a força externa aplicada ao conjunto

Page 46: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

O modelo descrito pode ser discretizado na forma:

dx

dtx

x x

t

d x

dt

x x

t

x x x

t

ii i

i i i i i

1

2

21 1 2

2

2

( )

onde t equivale ao intervalo de amostragem.

Page 47: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Logo:

Finalmente:

mx x x

t

F k x bx x

t

i i i

ext ii i

2 1 22

1

xt F b t m x m x

m k t b tiext i i

21 2

2

2( )

Page 48: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 49: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Cinemática Direta

•Descreve as posições das partes do corpo em função dos ângulos das juntas.

1 DOF: joelho1 DOF: joelho 2 DOF: punho2 DOF: punho 3 DOF: braço3 DOF: braço

MIT EECS 6.837, Durand and Cutler

Page 50: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

DOF: Degree of Freedom (Graus de Liberdade)

MIT EECS 6.837, Durand and Cutler

Page 51: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Cinemática Direta

Page 52: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

sS p v

vsvs

, , , , ,h h h h h hx y z q f s

, ,t t tq f s

cq

,ffq fwv

MIT EECS 6.837, Durand and Cutler

Page 53: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Cinemática Inversa

Resultado nem sempreé único

Page 54: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Cinemática Inversa

Page 55: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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/

Page 56: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Outras formas de animação em VRML

• EAI

• Script Node

usuário clicasobre um objeto

TouchSensor TimeSensor

starta cada

pulso derelógio

Script

novaposiçãot

Nógeométrico

move

f(t) (qualquer)

Programa externo

Page 57: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação no POVRAY

• Possui um relógio, usado como timer da animação• Pode-se usar valor do clock nas transformações

(rotação, translação, etc.)• Gera-se sequência de imagens BMPs numeradas,

que podem ser “montadas” em um AVI, MPEG, GIF, etc. com outro programa

• Manual do POVRAY, seção 2.3.8

Page 58: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Captura de Movimentos

• Maior realismo: nuances, movimentos súbtos, estilo...

• Observar algum movimento.

MIT EECS 6.837, Durand and Cutler

Page 59: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

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

Page 60: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação de Partículas [Reeves, 1983]

Start Trek, The Wrath of Kahn

Page 61: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Objetos Deformáveis

• Formas se deformam com o contato• Problema precisa ser discretizado

Debunne et al. 2001

Page 62: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação de Roupas

•Discretização

•Equações físicas

•Integração

•Detecção de colisão

Meyer et al. 2001

Page 63: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação de roupas

http://www.cs.caltech.edu/~mmeyer/Research/Cloth/

Page 64: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Simulação de Fluidos

•Discretização do volume do fluido•Equações de Navier Stokes•Integração numérica•Desafios:

– Integração robusta, estabilidade– Velocidade– Superfícies realísticas

Fedkiw et al. 2001

Enright et al. 2002MIT EECS 6.837, Durand and Cutler

Page 65: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Animação de Cabelos

http://www-faculty.cs.uiuc.edu/~yyz/research/hair/

Page 66: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

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

Maya tutorial

MIT EECS 6.837, Durand and Cutler

Page 67: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Modelagem

Page 68: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Fluido

Page 69: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Sistemas dePartículas

Page 70: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Animação Facial

Page 71: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Pelos

Page 72: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Stuart Little

• Roupas

Page 73: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Números – Final Fantasy

http://www.arstechnica.com/wankerdesk/01q3/ff-interview/ff-interview-2.html

Page 74: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

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

Page 75: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Final Fantasy

• Software de renderização: Renderman (Pixar)

• Modelagem: Maya

• Cabelos– Modelados como splines

Page 76: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Exemplo – Paul Debevec

http://www.debevec.org

Page 77: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Animação por Computador Alberto B. Raposo abraposo@tecgraf.puc-rio.br abraposo/INF1366

Alberto Raposo – PUC-Rio

Bibliografia Adicional

• A. Watt, M. Watt. “Advanced Animation and Rendering Techniques”. Addison-Wesley, 1992

• N. M. Thalmann. “Computer animation: Theory and Practice”. Springer, 1990

• M. Giambruno. “3D Graphics & Animation”.New Riders, 2002