Carregar apresentação
PublicouHelena Guardado Alterado mais de 10 anos atrás
1
INF 1366 – Computação Gráfica Interativa Animação por Computador
Alberto B. Raposo Alberto Raposo – PUC-Rio
2
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
3
Exemplo – Tecgraf / Petrobras
Alberto Raposo – PUC-Rio
4
Alberto Raposo – PUC-Rio
5
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
6
Animação Auxiliada por Computador
Parte da renderização, do cálculo das interpolações, etc. é feita no computador. Alberto Raposo – PUC-Rio
7
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
8
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
9
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” Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
10
Keyframing Usa-se interpolação linear ou então a interpolação de alguma curva para a geração do movimento 8-degree polynomial spline spline vs. polynomial Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
11
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 Alberto Raposo – PUC-Rio ACM © 1987 “Principles of traditional animation applied to 3D computer animation”
12
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
13
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
14
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
15
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 Nó 2 Nó 1 Nó 4 EventIn EventOut EventIn EventOut EventOut EventIn Nó 3 Alberto Raposo – PUC-Rio
16
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 Nó geométrico move Alberto Raposo – PUC-Rio
17
VRML/X3D - Interpoladores
Interpolam LINEARMENTE valores para geração de animação Ex: <ScalarInterpolator key=“ ” keyValue=“ ” /> Alberto Raposo – PUC-Rio
18
VRML/X3D - Interpoladores
<ScalarInterpolator key=“0 0.25, , 0.5 1” keyValue=“1 1, 2 2, 3 4” /> <ColorInterpolator key=“0, , , 1” keyValue=“1 0 0, 0 1 0, 0 0 1, 1 0 0” /> Alberto Raposo – PUC-Rio
19
VRML/X3D - Interpoladores
ScalarInterpolator ColorInterpolator PositionInterpolator OrientationInterpolator Alberto Raposo – PUC-Rio
20
VRML/X3D - Interpoladores
NormalInterpolator CoordinateInterpolator PositionInterpolator2D CoordinateInterpolator2D Alberto Raposo – PUC-Rio
21
X3D Interpoladores - Exemplos
Alberto Raposo – PUC-Rio
22
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
23
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
24
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 } Alberto Raposo – PUC-Rio
25
Exemplo TouchSensor isActive (button-down) touchTime (button-up)
Alberto Raposo – PUC-Rio
26
PlaneSensor 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. Alberto Raposo – PUC-Rio
27
CylinderSensor 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. Alberto Raposo – PUC-Rio
28
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. Alberto Raposo – PUC-Rio
29
Outros sensores KeySensor StringSensor Detecta eventos de teclas
Pega strings (todos os caracteres até o usuário dar “Enter”) Alberto Raposo – PUC-Rio
30
VRML – Exemplo 1 (1) #VRML V2.0 utf8 DEF STOUCH TouchSensor { } ] }
# 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 } # observador Group { children [ Transform { translation Shape { # bola geometry Sphere { radius 1.5 } appearance Appearance { material Material { diffuseColor } } # Sensor da bola DEF STOUCH TouchSensor { } ] } Transform { translation 4 8 0 children [ Shape { geometry Box { size } # caixa appearance Appearance { material Material { diffuseColor } } # Sensor da caixa DEF BTOUCH TouchSensor { } ] # Sensores de Tempo DEF XTIMERH TimeSensor { cycleInterval 2 } DEF XTIMERV TimeSensor { cycleInterval 2 } Alberto Raposo – PUC-Rio
31
VRML – Exemplo 1 (2) DEF ANIMAH PositionInterpolator {
# Interpoladores # Horizontal DEF ANIMAH PositionInterpolator { key [ 0, .25, .5, .75, 1] keyValue [ 0 0 0, 8 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 Alberto Raposo – PUC-Rio
32
VRML – Exemplo 1 (3) value_changed touchTime startTime
PositionInterpolator (ANIMAH) TouchSensor (esfera) TimeSensor (XTIMERH) value_changed touchTime startTime fraction_changed set_fraction Texto translation PositionInterpolator (ANIMAV) TouchSensor (caixa) TimeSensor (XTIMERV) value_changed touchTime startTime fraction_changed set_fraction Alberto Raposo – PUC-Rio
33
VRML – Exemplo 1 (4) Alberto Raposo – PUC-Rio
34
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 Alberto Raposo – PUC-Rio
35
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
36
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
37
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(wt+q0))*e-kt Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
38
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
39
Ex. de Animação Cinemática: Pêndulo Simples
Na figura: q : â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
40
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): Alberto Raposo – PUC-Rio
41
Solução: onde: w = (g / l) 1 / 2
k = amplitude inicial do movimento (constante) b = fase inicial do movimento (constante) Alberto Raposo – PUC-Rio
42
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. Alberto Raposo – PUC-Rio
43
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
44
Exemplo: Amortecedor O modelo abaixo representa, simplificadamente o amortecedor: Fmola Fexterna Fatrito Fresultante = Fexterna + Fmola + Fatrito Alberto Raposo – PUC-Rio
45
Fresultante = Fexterna + Fmola + Fatrito
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
46
O modelo descrito pode ser discretizado na forma:
onde Dt equivale ao intervalo de amostragem. Alberto Raposo – PUC-Rio
47
Logo: Finalmente: Alberto Raposo – PUC-Rio
48
Modelos Articulados Modelos Articulados:
Partes rígidas Conectadas por juntas Podem ser animados especificando-se os ângulos das juntas como função do tempo. Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
49
Cinemática Direta Descreve as posições das partes do corpo em função dos ângulos das juntas. 1 DOF: joelho 2 DOF: punho 3 DOF: braço Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
50
DOF: Degree of Freedom (Graus de Liberdade)
MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio
51
Cinemática Direta Alberto Raposo – PUC-Rio
52
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 vs MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio
53
Cinemática Inversa Resultado nem sempre é único
Alberto Raposo – PUC-Rio
54
Cinemática Inversa Alberto Raposo – PUC-Rio
55
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 Alberto Raposo – PUC-Rio
56
Outras formas de animação em VRML
EAI Script Node Nó geométrico Script TouchSensor TimeSensor nova posição usuário clica sobre um objeto a cada pulso de relógio t move start f(t) (qualquer) Programa externo Alberto Raposo – PUC-Rio
57
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
58
Captura de Movimentos MIT EECS 6.837, Durand and Cutler Maior realismo: nuances, movimentos súbtos, estilo... Observar algum movimento. Alberto Raposo – PUC-Rio
59
Animação Comportamental
Personagens autônomos determinam suas próprias ações, pelo menos até certo ponto. Alberto Raposo – PUC-Rio
60
Animação de Partículas [Reeves, 1983]
Start Trek, The Wrath of Kahn Alberto Raposo – PUC-Rio
61
Objetos Deformáveis Formas se deformam com o contato
Problema precisa ser discretizado Debunne et al. 2001 Alberto Raposo – PUC-Rio
62
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
63
Animação de roupas http://www.cs.caltech.edu/~mmeyer/Research/Cloth/
Alberto Raposo – PUC-Rio
64
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 Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler
65
Animação de Cabelos http://www-faculty.cs.uiuc.edu/~yyz/research/hair/
Alberto Raposo – PUC-Rio
66
Como são feitos os filmes?
MIT EECS 6.837, Durand and Cutler 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 Alberto Raposo – PUC-Rio
67
Stuart Little Modelagem Alberto Raposo – PUC-Rio
68
Stuart Little Fluido Alberto Raposo – PUC-Rio
69
Stuart Little Sistemas de Partículas Alberto Raposo – PUC-Rio
70
Stuart Little Animação Facial Alberto Raposo – PUC-Rio
71
Stuart Little Pelos Alberto Raposo – PUC-Rio
72
Stuart Little Roupas Alberto Raposo – PUC-Rio
73
Números – Final Fantasy
Alberto Raposo – PUC-Rio
74
Números – Final Fantasy
Personagens principais > polys 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 dias de render em 1 CPU Usaram 1200 CPUs = 778 dias de renderização Alberto Raposo – PUC-Rio
75
Final Fantasy Software de renderização: Renderman (Pixar)
Modelagem: Maya Cabelos Modelados como splines Alberto Raposo – PUC-Rio
76
Exemplo – Paul Debevec Alberto Raposo – PUC-Rio
77
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 Alberto Raposo – PUC-Rio
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.