• Nenhum resultado encontrado

Exemplo Tecgraf / Petrobras. Modificação no tempo de parâmetros, de tal forma que possamos perceber este movimento de forma natural.

N/A
N/A
Protected

Academic year: 2021

Share "Exemplo Tecgraf / Petrobras. Modificação no tempo de parâmetros, de tal forma que possamos perceber este movimento de forma natural."

Copied!
20
0
0

Texto

(1)

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

Alberto Raposo – PUC-Rio

Anima

Anima

ç

ç

ão

ã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

Exemplo – Tecgraf / Petrobras

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 Outros Modelos PROCEDIMENTAL (Local / Global) MODELADA (3D) POR COMPUTADOR ANIMAÇÃO

(2)

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…

Alberto Raposo – PUC-Rio

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

(3)

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 Alberto Raposo – PUC-Rio

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 11 (x y t, , ) 2 2 2 (x,y t, )

MIT EECS 6.837, Durand and Cutler

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

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

geométrico

move

(4)

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.

– Exemplo

geometry Sphere { radius 2 }

geometry Sphere { radius 3 }

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

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

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 clica sobre um objeto

TouchSensor

TimeSensor

start a cada pulso de relógio

PositionInterpolator

nova posição calcula função de interpolação

geométrico

move

(5)

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” />

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” />

VRML/X3D - Interpoladores

• ScalarInterpolator

• ColorInterpolator

• PositionInterpolator

• OrientationInterpolator

VRML/X3D - Interpoladores

• NormalInterpolator

• CoordinateInterpolator

• PositionInterpolator2D

• CoordinateInterpolator2D

(6)

Alberto Raposo – PUC-Rio

X3D Interpoladores - Exemplos

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.

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

}

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

}

(7)

Alberto Raposo – PUC-Rio

Exemplo TouchSensor

isActive (button-down)

touchTime (button-up)

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

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

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.

(8)

Alberto Raposo – PUC-Rio

Outros sensores

• KeySensor

– Detecta eventos de teclas

• StringSensor

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

dar “Enter”)

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 }

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

Alberto Raposo – PUC-Rio

VRML – Exemplo 1

(3)

touchTime TouchSensor (esfera) TimeSensor (XTIMERH) startTime fraction_changed PositionInterpolator (ANIMAH) value_changed set_fraction Texto translation touchTime TouchSensor (caixa) TimeSensor (XTIMERV) startTime fraction_changed PositionInterpolator (ANIMAV) value_changed set_fraction

(9)

Alberto Raposo – PUC-Rio

VRML – Exemplo 1

(4)

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

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.

(10)

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.

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 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 (

)

(11)

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 n

o.

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.

Exemplo: Amortecedor

O modelo abaixo representa, simplificadamente

o amortecedor:

F

mola

F

atrito

F

externa

(12)

Alberto Raposo – PUC-Rio

F

resultante

= F

externa

+ F

mola

+ F

atrito

m

d x

dt

F

k x b

dx

dt

externa

=

− ⋅ − ⋅

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

F

externa

é 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

∆t

equivale ao intervalo de amostragem.

Alberto Raposo – PUC-Rio

Logo:

Finalmente:

m

x

x

x

t

F

k x

b

x

x

t

i

i

i

ext

i

i

i



− ⋅

+

 =

− ⋅

− ⋅





2

1

2

2

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.

t

1

t

2

q

i

q t

i

( )

t

1

t

2

MIT EECS 6.837, Durand and Cutler

(13)

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:

joelho

joelho

2 DOF:

2 DOF:

punho

punho

3 DOF:

3 DOF:

bra

bra

ç

ç

o

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

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

,

,

,

,

,

h h h h h h

x

y

z

q f

s

,

,

t t t

q f

s

c

q

(14)

Alberto Raposo – PUC-Rio

Cinemática Inversa

Resultado nem sempre

é único

Alberto Raposo – PUC-Rio

Cinemática Inversa

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/

Alberto Raposo – PUC-Rio

Outras formas de animação em

VRML

• EAI

• Script Node

usuário clica sobre um objeto

TouchSensor

TimeSensor

start a cada pulso de relógio

Script

nova posição t

geométrico

move f(t) (qualquer)

Programa externo

(15)

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

Alberto Raposo – PUC-Rio

Captura de Movimentos

• Maior realismo: nuances, movimentos

súbtos, estilo...

• Observar algum movimento.

MIT EECS 6.837, Durand and Cutler

Animação Comportamental

• Personagens autônomos determinam suas

próprias ações, pelo menos até certo ponto.

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

(16)

Alberto Raposo – PUC-Rio

Objetos Deformáveis

• Formas se deformam com o contato

• Problema precisa ser discretizado

Debunne et al. 2001

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

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

•Integração 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

(17)

Alberto Raposo – PUC-Rio

Animação de Cabelos

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

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

Stuart Little

• Modelagem

Stuart Little

(18)

Alberto Raposo – PUC-Rio

Stuart Little

• Sistemas de

Partículas

Alberto Raposo – PUC-Rio

Stuart Little

• Animação Facial

Alberto Raposo – PUC-Rio

Stuart Little

• Pelos

Alberto Raposo – PUC-Rio

Stuart Little

(19)

Alberto Raposo – PUC-Rio

Números – Final Fantasy

http://www.arstechnica.com/wankerdesk/01q3/ff-interview/ff-interview-2.html 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

Final Fantasy

• Software de renderização: Renderman

(Pixar)

• Modelagem: Maya

• Cabelos

– Modelados como splines

(20)

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 &

Referências

Documentos relacionados

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

A clínica gestáltica tem o intuito de desenvolver um trabalho baseado na relação dialógica, que facilita o processo de autorregulação e ajustamento criativo para as pessoas.. Tais

Para aquisição por permuta serão obedecidos os seguintes critérios:  Materiais doados por permuta e que não serão incorporados ao acervo, serão. enviados para outras

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

Por sua vez, a complementação da geração utilizando madeira, apesar de requerer pequenas adaptações do sistema, baseia-se em um combustível cujas origens são mais diversifi

Com relação aos valores obtidos para o teste de primeira contagem do TPG, observa- se na Tabela 1, que somente nas análises realizadas aos 6 (seis) meses de armazenamento