INF 1366 Computao Grfica Interativa Animao por Computador
- Slides: 77
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/INF 1366 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çõeschave. • Em resumo: computar os quadros intermediários Alberto Raposo – PUC-Rio ACM © 1987 “Principles of traditional animation applied to 3 D computer animation” MIT EECS 6. 837, Durand 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 Alberto Raposo – PUC-Rio spline vs. polynomial MIT EECS 6. 837, Durand 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 3 D computer animation”
VRML – Animação por Interpolação Touch. Sensor usuário clica sobre um objeto Alberto Raposo – PUC-Rio Time. Sensor start a cada pulso de relógio Position. Interpolator Nó geométrico calcula nova função posição de interpolação move
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 (exposed. Fields) ou não (fields) exposed. Field = event. In + field + event. Out 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 Event. Out a um Event. In do mesmo tipo Nó 1 Event. Out Nó 2 Event. In Event. Out Event. In Nó 3 Alberto Raposo – PUC-Rio Nó 4 Event. In
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 Touch. Sensor usuário clica sobre um objeto Alberto Raposo – PUC-Rio Time. Sensor start a cada pulso de relógio Position. Interpolator Nó geométrico calcula nova função posição de interpolação move
VRML/X 3 D - Interpoladores • Interpolam LINEARMENTE valores para geração de animação • Ex: <Scalar. Interpolator key=“ 0 0. 2 0. 4 0. 6 0. 8 1” key. Value=“ 0 5 8 9 4 0” /> Alberto Raposo – PUC-Rio
VRML/X 3 D - Interpoladores <Scalar. Interpolator key=“ 0 0. 25, 0. 25 0. 5, 0. 5 1” key. Value=“ 1 1, 2 2, 3 4” /> <Color. Interpolator key=“ 0, 0. 33333, 0. 666666, 1” key. Value=“ 1 0 0, 0 1 0, 0 0 1, 1 0 0” /> Alberto Raposo – PUC-Rio
VRML/X 3 D - Interpoladores • Scalar. Interpolator • Color. Interpolator • Position. Interpolator • Orientation. Interpolator Alberto Raposo – PUC-Rio
VRML/X 3 D - Interpoladores • • Normal. Interpolator Coordinate. Interpolator Position. Interpolator 2 D Coordinate. Interpolator 2 D Alberto Raposo – PUC-Rio
X 3 D Interpoladores - Exemplos Alberto Raposo – PUC-Rio
VRML - Sensores (1) • Geram eventos baseados nas ações do usuário • Exemplos • Proximity. Sensor detecta quando o usuário está navegando em uma região próxima ao objeto de interesse • Visibility. Sensor 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. ) • Time. Sensor gera eventos como passos de tempo e em conjunto com interpoladores pode produzir animações Time. Sensor { cycle. Interval enabled loop start. Time stop. Time } Alberto Raposo – PUC-Rio 1 TRUE FALSE 0 0
VRML - Sensores (3) • Exemplos (cont. ) • Touch. Sensor detecta quando um objeto do grupo do seu pai é ativado (clique do mouse, por exemplo). Esse sensor gera um evento de saída chamado touch. Time que pode disparar um time. Sensor, iniciando uma animação. Touch. Sensor { enabled TRUE } Alberto Raposo – PUC-Rio
Exemplo Touch. Sensor is. Active (button-down) Alberto Raposo – PUC-Rio touch. Time (button-up)
Plane. Sensor • Converte movimento de “select-and-drag” do ponteiro em translação 2 D 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
Cylinder. Sensor • 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
Sphere. Sensor • Converte movimento de “select-anddrag” do ponteiro em rotação 3 D 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 • Key. Sensor – Detecta eventos de teclas • String. Sensor – Pega strings (todos os caracteres até o usuário dar “Enter”) Alberto Raposo – PUC-Rio
VRML – Exemplo 1 (1) #VRML V 2. 0 utf 8 # Sensor da bola # 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 DEF STOUCH Touch. Sensor { } ] } Transform { translation 4 8 0 children [ Shape { geometry Box { size 2 2 2 } # caixa appearance Appearance { material Material { diffuse. Color 0 1 0 } } } 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 { diffuse. Color. 73. 56 } } } Alberto Raposo – PUC-Rio # Sensor da caixa DEF BTOUCH Touch. Sensor { } ] } # Sensores de Tempo DEF XTIMERH Time. Sensor { cycle. Interval 2 } DEF XTIMERV Time. Sensor { cycle. Interval 2 }
VRML – Exemplo 1 (2) # Interpoladores length [7] max. Extent 20 } } } ] } # Horizontal DEF ANIMAH Position. Interpolator { key [ 0, . 25, . 75, 1] key. Value [ 0 0 0, 8 0 0, 16 0 0, -8 0 0, 0 0 0 ]} # Vertical DEF ANIMAV Position. Interpolator { (…) } # Texto DEF SFORM Transform { children Shape { geometry Text { string [ “Virtual” ] font. Style Font. Style { style “BOLD” justify “MIDDLE” } Alberto Raposo – PUC-Rio # Bola ROUTE STOUCH. touch. Time TO XTIMERH. set_start. Time ROUTE XTIMERH. fraction_changed TO ANIMAH. set_fraction ROUTE ANIMAH. value_changed TO SFORM. set_translation # Caixa ROUTE BTOUCH. touch. Time TO XTIMERV. set_start. Time ROUTE XTIMERV. fraction_changed TO ANIMAV. set_fraction ROUTE ANIMAV. value_changed TO SFORM. set_translation
VRML – Exemplo 1 (3) Touch. Sensor (esfera) touch. Time. Sensor (XTIMERH) start. Time fraction_changed Position. Interpolator (ANIMAH) value_changed set_fraction Texto translation Touch. Sensor (caixa) touch. Time. Sensor (XTIMERV) start. Time fraction_changed Alberto Raposo – PUC-Rio Position. Interpolator (ANIMAV) value_changed set_fraction
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 3 D 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+q 0))*e-kt Alberto Raposo – PUC-Rio MIT EECS 6. 837, Durand 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 O fio que sustenta a esfera é massa qualquer inextensível e de massa desprezível. g : valor da gravidade 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 Cutler
Cinemática Direta • Descreve as posições das partes do corpo em função dos ângulos das juntas. 1 DOF: joelho Alberto Raposo – PUC-Rio 2 DOF: punho 3 DOF: braço MIT EECS 6. 837, Durand Cutler
DOF: Degree of Freedom (Graus de Liberdade) MIT EECS 6. 837, Durand 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 MIT EECS 6. 837, Durand Cutler Alberto Raposo – PUC-Rio vs
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 Touch. Sensor usuário clica sobre um objeto Script Time. Sensor start a cada pulso de relógio t nova posição f(t) (qualquer) Alberto Raposo – PUC-Rio Programa externo Nó geométrico move
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 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 Alberto Raposo – PUC-Rio Debunne et al. 2001
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 Alberto Raposo – PUC-Rio MIT EECS 6. 837, Durand Cutler Fedkiw et al. 2001 Enright et al. 2002
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 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 3 D, 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/01 q 3/ff-interview-2. html
Números – Final Fantasy • Personagens principais > 300. 000 polys • 3. 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 Alberto Raposo – PUC-Rio http: //www. debevec. org
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. “ 3 D Graphics & Animation”. New Riders, 2002 Alberto Raposo – PUC-Rio
- Animão
- Uniderp interativa portal
- Sala de aula interativa marco silva
- Grficas
- Primer segundo tercer y cuarto cuadrante
- Grfica
- Hundir la flota por computador
- Sha256digest
- Dipl wirt inf
- Rcbottom.inf
- Ma da inf harjutused
- Inf
- Cpu.inf
- Perfect infinitive
- Inf
- Mag inf
- Verb + to infinitive examples
- Foramen ischiadicum majus
- Inf mononukleoza
- Enformatik sınav soruları
- Carotis communis sinistra
- Oran cherry release
- Inf 110
- Inf
- I inf
- D inf h character table
- Define:inf
- Inf 111
- Blood supply of brain
- Inf 70
- Infinitive with to
- Inf 327
- Porno inf
- 1331x torrent
- Inf hartsol
- Inf 121 uci
- Inf
- Www.inf
- Inf1060
- Artere thyroidienne inf
- Inf
- Inf smartwatch
- Inf
- Inf
- Informatik sekundarstufe 1
- Pars sympathica
- Inf 1900
- Arquitectura von neumann
- Periféricos de entrada y salida mixtos
- Partes del computador
- Ordem crescente
- Arquitectura del computador case
- Proceso de una computadora
- Estructura del computador
- Generaciones del computador
- Qu es un computador
- Que es una computadora
- Conceito do computador
- Execusist
- El computador definicion
- Puertos y conectores de computadora
- El computador y sus partes
- Acotado mixto o combinado
- Jerarquía de niveles de una computadora
- Estrutura de um pc
- Computador con sus partes
- Dispositivos de entrada y salida del computador
- Estructura interna de un microprocesador
- Periféricos de entrada
- Que es el computador
- Que es el computador
- 0769
- Funcionamiento de una computadora
- Geração 1955
- Objetivo de las computadoras
- Como imprimir en el computador
- Cuáles son las partes más importantes del computador
- Funcionamiento de un computador digital