INF 1366 – Computação Gráfica Interativa Animação por Computador

Slides:



Advertisements
Apresentações semelhantes
Computação Gráfica I Conteúdo: Professor: - Objetos gráficos espaciais
Advertisements

UNIVERSIDADE FEDERAL DE SANTA MARIA Laboratório de Biomecânica
Animação Computação Gráfica Prof. Luiz Marcos
MOVIMENTO OSCILATÓRIO
Squash and Stretch Quando os objectos se movem, ou ficam rigidos ou se deformam; Timing Tempo apropriado para o desenrolar de uma acção; Anticipation.
Notas de aula Aula 4 Pêndulo de torção Alexandre Suaide Notas de aula
Rotação dos Corpos Rígidos
Introdução à Computação Gráfica Colorização
MOMENTUM LINEAR Caderno de exercícios Nome.
Caderno de exercícios Nome. 1) O trabalho realizado por uma força é uma grandeza escalar ou vetorial? Justifique a sua resposta. Analise a equação acima.
INF 1366 – Computação Gráfica Interativa Transformações
Fundamentos de Computação Gráfica Prof. Marcelo Gattass
INF 1366 – Computação Gráfica Interativa
Alberto B. Raposo INF 1366 – Computação Gráfica Interativa Raytracing (resumo) POVRAY – Persistence of Vision Raytracer Alberto.
INF 1366 – Computação Gráfica Interativa X3D
INF 1366 – Computação Gráfica Interativa Grafos de Cena
INF 1366 – Computação Gráfica Interativa X3D – Iluminação, Environment Sensors e Protótipos Alberto B. Raposo
INF 1366 – Computação Gráfica Interativa Modelagem Geométrica
Simulação Física de Corpos Rígidos com Detecção e Reação à Colisões
CAPÍTULO 9 1. Estrutura de controle de um robô industrial
A terceira dimensão.
1 Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Introdução a Computação Gráfica (ICG) Material III-Bimestre Transformação.
Computação Gráfica: Aula9: Sistemas de Partículas
Física I Mecânica Alberto Tannús II 2010.
Básico.
Tópicos Aparência Importando Arquivos Inserção de Textos Interagindo com o AV.
Mecânica Estudo dos Movimentos.
Movimento Uniformemente Variado (MUV)
Vibrações – Livres em Sistemas de 1GDL
Computação Gráfica: Aula10: Sistemas de Partículas
ROBÓTICA Helder Anibal Hermini.
Impulso e Colisão Aula – Prof° Fabiano.
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Uma introdução ao movimento oscilatório
Mini-Curso: X3D Básico Gustavo Francisco Frizzo Cleber Alexandre de Azevedo.
Movimento Oscilatório.
MOVIMENTO HARMÔNICO SIMPLES
Vibração Livre de Sistemas de Sistemas Torcionais
Prof. Leandro da Silva Taddeo
VRML: Virtual Reality Modeling Language Alexandre Cardoso
Animação por Computador Capítulo 5 Vínculos Cinemáticos
Computação Gráfica Aula 3 Transformações Geométricas
Cap. 5 – Introdução à análise diferencial de escoamentos
MOVIMENTO EM UMA LINHA RETA
Princípios de Cinemática
FÍSICA I CINEMÁTICA ESCALAR JOÃO VICENTE.
ESTÁTICA marcelo alano
Computação Gráfica – Animação
Mecânica Aplicada Vibrações Aula 1.
Curso de Física Geral F semestre, 2011
O estudo das causas do movimento é a Dinâmica
Computação Gráfica – Animação Profa. Mercedes Gonzales Márquez.
F.T I Aula 4.
Introdução à Computação Gráfica
Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D – Event Utilities e Scripting Alberto B. Raposo
Computação Gráfica – Animação
Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo.
MOVIMENTO OSCILATÓRIO
A animação.
PEE 5789 Conceitos Avançados de Síntese de Imagens AULA 02 Modelos Locais de Iluminação Marcio.
Disciplina: Aplicações Informáticas Professora: Cátia Sousa Ano lectivo: 2010/2011 Escola Básica e secundaria Gonçalves Zarco Trabalho elaborado por: Diogo.
PSI 5789 Conceitos Avançados de Síntese de Imagens Marcio Lobo Netto LSI - PEE - EPUSP Universidade.
Aula - 14 Rotações IV Curso de Física Geral.
Animação em Computação Gráfica.
DINÂMICA DE ESTRUTURAS E AEROELASTICIDADE Prof. Airton Nabarrete
Modelização e Linearização
Sistemas de Informação em Ambiente Animação em Ambiente António Câmara 2005.
Animação em Ambiente António Câmara Animação em Ambiente Introdução Animação baseada em keyframes Animação de entidades naturais e artificiais Sistemas.
AULA 3.
Movimento Oscilatório II
Transcrição da apresentação:

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çã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

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 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” Alberto Raposo – PUC-Rio 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 8-degree polynomial spline spline vs. polynomial Alberto Raposo – PUC-Rio 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 Alberto Raposo – PUC-Rio ACM © 1987 “Principles of traditional animation applied to 3D computer animation”

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

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 Nó 2 Nó 1 Nó 4 EventIn EventOut EventIn EventOut EventOut EventIn Nó 3 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 Nó geométrico move 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” /> Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores ScalarInterpolator ColorInterpolator PositionInterpolator OrientationInterpolator Alberto Raposo – PUC-Rio

VRML/X3D - Interpoladores NormalInterpolator CoordinateInterpolator PositionInterpolator2D CoordinateInterpolator2D 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 } Alberto Raposo – PUC-Rio

Exemplo TouchSensor isActive (button-down) touchTime (button-up) Alberto Raposo – PUC-Rio

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

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

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

Outros sensores KeySensor StringSensor Detecta eventos de teclas Pega strings (todos os caracteres até o usuário dar “Enter”) Alberto Raposo – PUC-Rio

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 0 0 50 } # observador Group { children [ Transform { translation -4 8 0 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) DEF ANIMAH PositionInterpolator { # 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 Alberto Raposo – PUC-Rio

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

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. 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 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(wt+q0))*e-kt Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler

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

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

Solução: onde: w = (g / l) 1 / 2 k = amplitude inicial do movimento (constante) b = fase inicial do movimento (constante) 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. 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. Alberto Raposo – PUC-Rio

Exemplo: Amortecedor O modelo abaixo representa, simplificadamente o amortecedor: Fmola Fexterna Fatrito Fresultante = Fexterna + Fmola + Fatrito Alberto Raposo – PUC-Rio

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

O modelo descrito pode ser discretizado na forma: onde Dt equivale ao intervalo de amostragem. Alberto Raposo – PUC-Rio

Logo: Finalmente: 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. Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler

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

DOF: Degree of Freedom (Graus de Liberdade) MIT EECS 6.837, Durand and Cutler Alberto Raposo – PUC-Rio

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 vs MIT EECS 6.837, Durand and Cutler 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 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

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 MIT EECS 6.837, Durand and Cutler Maior realismo: nuances, movimentos súbtos, estilo... Observar algum movimento. Alberto Raposo – PUC-Rio

Animação Comportamental Personagens autônomos determinam suas próprias ações, pelo menos até certo ponto. Alberto Raposo – PUC-Rio http://accad.osu.edu/~mlewis/Class/behavior.html

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 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 Alberto Raposo – PUC-Rio MIT EECS 6.837, Durand and Cutler

Animação de Cabelos http://www-faculty.cs.uiuc.edu/~yyz/research/hair/ Alberto Raposo – PUC-Rio

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

Stuart Little Modelagem Alberto Raposo – PUC-Rio

Stuart Little Fluido 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 Roupas Alberto Raposo – PUC-Rio

Números – Final Fantasy Alberto Raposo – PUC-Rio 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

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