Animação Computação Gráfica Prof. Luiz Marcos

Slides:



Advertisements
Apresentações semelhantes
Animação Computação Gráfica Prof. Luiz Marcos
Advertisements

Lista 3!!!.
Lista 3!!!.
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Técnicas e Projeto de Sistemas
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Luiz Gustavo Supriano Roberto Basting Junior
Introdução a Resolução Numérica de Equações Diferenciais Ordinárias
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
INTRODUÇÃO À GEOMETRIA DO ESPAÇO-TEMPO
 MORAL DA HISTÓRIA?? Nesse caso, os e - de maior  contribuição importante   pressão do gás; é a chamada PRESSÃO DE DEGENERESCÊNCIA. ►►
Prof. Dr. Helder Anibal Hermini
MODELAGEM DINÂMICA DE SISTEMAS MECÂNICOS
EQUILÍBRIO DINÂMICO DE UMA MASSA EM TRANSLAÇÃO - 2º Lei de Newton
Cecilia Rocha Ryerson University, Canada Seminário: Políticas Públicas e SAN CERESAN,Universidade Federal Fluminense (UFF) Niterói, 07/10/2010.
Criptografia Quântica : Um Estudo
(Como implementar multiplicação e divisão uma vez só :-)
Publicidade e Propaganda – Conceitos e Categoria
Técnicas de Processamento Imagens
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Fazendo Slides no Power Point
PotenCial ElÉTRICO Universidade Federal do Paraná
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
Tipografia Livro: Princípios de Disenõ Básicos para la Creación de Sítios WEB Autores: Patrick J. Lynch, Sara Horton.
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
Programa Nacional de Acesso ao Ensino Técnico e Emprego - PRONATEC MONTADOR E REPARADOR DE COMPUTADOR MINISTÉRIO DA EDUCAÇÃO/FNDE UNIVERSIDADE FEDERAL.
Técnicas de Amostragem
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
Capitulo 3 Técnicas de Diagnóstico CT-282 Tutores Inteligentes Diego Ajukas.
Adriana da Silva Jacinto CT-282 Prof. Dr.Parente Técnicas de diagnóstico 1º semestre 2005.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
Materiais Propriedades mecânicas Reologia.
Computação Gráfica: Possibilidades e Desafios
Mecânica dos Materiais TA-431 FEA/Unicamp
Modelos de Iluminação Daniel Lemos. Definição MODELOS DE ILUMINAÇÃO são técnicas usadas para calcular a intensidade da cor de um ponto a ser exibido.
Modelos de Iluminação e Tonalização
BlastPhen Aluno: Ricardo Nishikido Pereira
MAC499 Trabalho de Formatura Supervisionado Animação Facial Aluno: Marcos Paulo Moreti Orientador: Roberto M. Cesar Jr. Introdução Animação de faces humanas.
Já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x 0. Derivadas Chamamos esse limite, quando ele existia, de derivada de f em.
Interpolação Introdução Conceito de Interpolação
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
7. INTEGRAÇÃO NUMÉRICA Parte 1
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
OS SETE HÁBITOS DE PESSOAS ALTAMENTE TEORIA DE ADMINISTRAÇÃO
Marco Antonio Montebello Júnior
Otimização Aplicada ao Dimensionamento e Operação de Reservatórios
Introdução à Mecânica Bibliografia:
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Visão Computacional Shape from Shading e Fotométrico Eséreo
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Visão Computacional Formação da Imagem
Visão Computacional Formação da Imagem
Robótica: Sistemas Sensorial e Motor
MO-603/MC-930 Computação Gráfica Luiz Marcos Garcia Gonçalves.
Antialiasing MC930 Computação Gráfica Luiz M. G. GOnçalves.
Computação Gráfica Geometria de Transformações
OpenGL Computação Gráfica. O que é OpenGL? Uma linguagem de programação gráfica de baixo nível Projetada para gráfico interativo 2D e 3D Uma interface.
Prof. André Laurindo Maitelli DCA-UFRN
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
8. Uma Função de duas Variáveis Aleatórias
Transcrição da apresentação:

Animação Computação Gráfica Prof. Luiz Marcos www.dca.ufrn.br/~lmarcos/courses/compgraf

Overview Animação tradicional Animação por Key-Frame Interpolando rotações Animação comportamental Animação física Animação procedimental Motion capture

Animação por computador Visão unificada Modelos tem parâmetros: posição dos polígonos, normais, pontos de controle de splines, ângulos de juntas, parâmetros de câmera, iluminação, cor Parâmetros definem um espaço de estados Se uma cena tiver n parâmetros Valores dos parâmetros em um dado instante são um ponto neste espaço de estados

Animação por computador É um caminho no espaço de estados 1) começa no início do caminho 2) define valores dos parâmetros do seu modelo 3) renderiza a imagem 4) move para o próximo ponto do caminho Caminho é um conjunto de curvas Uma curva para cada parâmetro Animação é a especificação da trajetória no espaço de estados

Animação versus modelagem São altamente acopladas Modelagem: o que são os pontos de controle e o que eles fazem? Animação: como variar pontos de controle para gerar movimento desejado? Construção de modelos fáceis de controlar é super importante: modelagem hierárquica Onde termina modelagem e começa animação? Meio confuso!

Overview Técnicas de animação Problemas em modelagem: Animação tradicional (quadro a quadro), Keyframing, Procedimental (procedural), Comportamental (behavior based), Baseada em performance (motion capture), Baseada em física (dinâmica) Problemas em modelagem: Rotações, cinemática inversa

Animação tradicional Filme resultante deve rodar a 24 quadros por segundo (fps) São 1440 quadros para renderizar por minuto 1800 fpm para vídeo digital Fatores da produção Organizado por razões de eficiência e custo Renderizar quadros sistematicamente

Animação tradicional Fatores artísticos Visão artística deve ser convertida numa seqüência de quadros estáticos Quadros estáticos devem ser corretos também em movimento Difícil de ver o movimento dados os estáticos (assista um vídeo quadro a quadro e vê se entende o que ocorre) Convenções estilísticas seguidas pelos animadores de Disney e outros Outros lados interessantes, claro

O processo de animação tradicional Story board Seqüência de desenhos com descrições Descrição baseada em história Key frames (quadros chaves) Desenhar uns poucos quadros importantes Início de um movimento, final de um movimento Quadros intermediários Desenhar o resto dos quadros (ganha pouco $) Pintura Redesenha (acetato) e colore (ganha muito menos $)

Movimento em camadas Quando se tem varias camadas de animação Objeto mover na frente do background Uma camada p/ background, outra p/ objeto Múltiplos animadores ao mesmo tempo Acetato transparente em várias camadas Desenha cada um separadamente Empilha todos juntos (em certa ordem) Transfere para a película (fotografa a pilha)

“A bugs life” (story board)

Princípios da animação tradicional Encolhe-estica – representar personalidade Temporização – velocidade representa massa, personalidade Antecipação – prepara a platéia Segue-através (followthrough) e overlap – continuidade com próxima ação Câmera lenta e rápida – velocidade de transição representa momentos importantes Arcos – movimento é geralmente curvo Exageração - enfatiza conteúdo emocional Ação secundária – movimento como conseqüência Apelo – platéia deve gostar de assistir

Squash-stretch

Squash Stretch

Antecipação

Animação assistida por computador Pintura de células computadorizada Digitaliza linhas, colore usando semente Elimina pintores de célula (que são muitos) Largamente usado em produções Pouca pintura (retoques) manuais Exemplo: Rei Leão

Animação assistida por computador Inserção automática de quadros intermediários Interpola automaticamente entre desenhos de linhas Difícil conseguir coisa certa Intermediários não parecem natural Que parâmetros interpolar? Técnica não muito usada

True computer animation Gerar imagens por renderização do modelo 3D Variar parâmetros para produzir animação Força bruta: Acerta parâmetros manualmente (todo quadro) Para n parâmetros, 1440n valores por minuto Key framing tradicional Animadores desenham quadros importantes Pessoal mal pago desenha os intermediários Keyframing por computador Animadores criam quadros chaves com modelos 3D Computadores desenham os intermediários Modelo de produção dominante

Interpolação Como interpolar quadro feito manualmente? Computadores não ajudam muito Diferente em animação por computador Cada keyframe é definido por n parâmetros Seqüência de keyframes = pontos num espaço de estados de alta dimensão Computador interpola estes pontos: intermediários Como fazer isso? Adivinhou: Splines

Idéias básicas do keyframing Apesar do nome, não são keyframes em sí Para cada variável, especificar seu valor em quadros realmente importantes (nem todas as variáveis têm valores importantes no mesmo quadro) Então, key-values ao invés de key-frames Criar caminho para cada parâmetro para interpolação desses valores

Keyframing

Aspectos do keyframing O que devem ser os key-values? Quando os key-values devem ocorrer? Como especificar os key-values? Como interpolar os key-values? Que tipo de COISA ERRADA pode ocorrer no processo de interpolação? Configurações inválidas (atravessar paredes) Movimentos não naturais

Keyframing: aspectos de produção Como aprender a fazer Aprender com um animador Praticar muito Dá bom controle ao longo do movimento Elimina metade do trabalho no tradicional Ainda é trabalhoso (mesmo para computadores) Impraticável para cenas muito complexas, com todas as coisas se movendo

Como interpolar quadros chaves? Splines: não uniforme, C1 é suficiente Precisa controlar velocidade nos keyframes Exemplo clássico: bola pingando (gravidade) Velocidade vertical zero no início Velocidade vertical alta antes de cada impacto Velocidade vertical alta após impacto (menor) Movimento usando spline é não natural (funciona) Hermite funciona bem

Como interpolar entre keyframes?

Problemas com interpolação Splines não fazem sempre a coisa certa Problemas clássicos: Restrições importantes quebradas entre quadros Pés entram no solo Mãos entram em paredes Rotações 3D Ângulos de Euler não interpolam naturalmente Soluções Mais keyframes Uso de quaternions ajuda melhorar rotações

Ainda interpolando rotações P: Que tipo de rotação composta se consegue girando em torno de cada um dos 3 eixos com velocidade constante? R: Não a que voce quer Interpolação funciona bem para rotações simples (eixo-ângulo) Ruim para outras rotações

Animação procedimental Define movimento usando fórmulas Feitas manualmente Baseada em Física Animador deve ser um programador Keyframing torna-se procedimental se expressões são adicionadas Em algum nível de complexidade, melhor e mais eficiente que keyframing.

Dinâmica Gerar movimento definindo massa e força e restrições da Física (Newton, Euler) Gravidade Momento (inércia) Colisões Fricção Fluxo de fluídos (turbulência, na água) Solidez, flexibilidade, elasticidade Fratura

Exemplo simples de dinâmica Solução numérica para equação diferencial Exemplo de algoritmo usando Euler para f = ma: Inicialize dx (posição e velocidade) loop eterno: ddx = f()/m (ddx é aceleração, f() atualiza força) dx += ddx*dt (dx = velocidade) x += dx*dt (x = posição) t += dt f() pode ser gravidade ou qualquer outra força em função de tempo, posição ou outro estado

Física/dinâmica na prática Varia desde “objetos não entram em paredes” até dinâmica de fluídos completa e modelagem com elementos finitos Ou pode-se animar sem realismo físico Em geral, coisas tem que rodar rápido Convergência rápida em cálculos iterativos Algoritmos de aproximação ótimos Platéia pode ser tolerante a coisas como batdas incorretas O mudar de “precisão” para “fast-and-looks-good” distingue CG baseada Física de ciências numéricas

Animação comportamental Define regras p/ comportamento dos objetos Modelos respondem à mudanças no ambiente Programas implementam as regras Exemplo clássico “boids” (Craig Reynolds) Movimento é função dos objetos ao redor Comportamento emergente: nevasca Rei Leão: estourada de animais foi feita assim Sistema de partículas: usualmente comportamentos simples Smart Objects: agentes autônomos (comportamentos sofisticados)

Baseada em performance Grava animação de ações da vida real Usa vídeos reais e tira movimento de objetos Usa dispositivos que pegam posição/orientação Motion capture (nova indústria) Acompanha movimento de pontos no espaço, por meio magnético, ótico, etc (exo-esqueletos, face ou rosto) Converte para espaço ângulo-juntas Usa ângulos para derivar modelo 3D articulado Caminhos do movimento podem ser modificados

Motion capture

Cinemática e cinemática inversa Provê movimento em termos de juntas, ângulos, velocidades e posições Usado por keyframing e procedimental Cinemática inversa Determina ângulos e juntas a partir de posição Calcula parâmetros de rotação para o ombro, cotovelo, pulso para colocar as mãos ali. Bom para interação Configurações podem ser sub ou sobre-determinadas (sem configuração ou várias para mesmo alvo) Muito usada em Robótica Otimização restrita: ir de A até B com menor trabalho

Animação em “alto nível” Idéia principal: juntar animações complexas de uma biblioteca de movimentos Linguagens de script Descreve os eventos Descreve suas seqüências Animação a “nível de tarefa” Vá à cozinha para um bolo, beba líquido, faça o cachorro andar Ótimo, em princípio, mas como fazer? Juntar IA com animação comportamental?

Hierarquia da animação