Computação Gráfica – Anima ção

Click here to load reader

  • date post

    07-Jan-2016
  • Category

    Documents

  • view

    25
  • download

    2

Embed Size (px)

description

Computação Gráfica – Anima ção. Profa. Mercedes Gonzales Márquez. Animação. Do latim Animare: dar vida, movimento, coragem, entusiasmo, alma. Os passos para a produção de uma animação em CG são basicamente: Desenhar ou esculpir determinar os movimentos - PowerPoint PPT Presentation

Transcript of Computação Gráfica – Anima ção

  • Computao Grfica AnimaoProfa. Mercedes Gonzales Mrquez

  • AnimaoDo latim Animare: dar vida, movimento, coragem, entusiasmo, alma. Os passos para a produo de uma animao em CG so basicamente:Desenhar ou esculpirdeterminar os movimentosRetratar o esprito da criatura ou cena a ser animada.

  • Mdias: Filmes e propagandas. Engenharia: Testes de resistncia e impactos.Medicina: Entender os movimentos e orgas do corpo humano.Outros.Animao - Aplicaes

  • Animao Asistida por ComputadorO animador faz quadros-chaves e o computador se encarrega de gerar os quadros intermedirios.Animao Gerada por ComputadorTcnicas de baixo nivel: tcnicas que ajudam o animador na especificao precisa do movimento. Ex: gerar todos os quadros correspondentes a cada movimento do andar do personagem.Tcnicas de alto nivel: tcnicas usadas para descrever como se comporta o personagem durante a animao. Gerar o movimento a partir de regras como foras fsicas.Animao - Tipos

  • Animao por Quadro-Chave (Keyframe):Um keyframe um quadro onde supostamente ocorre um evento especfico importante.Os quadros intermedirios da animao so gerados automaticamente a partir dos quadros-chave (por interpolao).Animao - Formas

  • Animao - Formas

  • Animao Procedimental ou Procedural:Define movimento usando frmulasFeitas manualmenteBaseada em Fsica (ex. fora da gravidade)Keyframing torna-se procedimental se expresses so adicionadasEm algum nvel de complexidade, melhor e mais eficiente que keyframing.Ex: dinmica de fluidos, movimento de roupas, cor, molas, etc.Animao - Formas

  • Trs mtodos de Controle da Animao Animao - OpenGLInterativamente: via entrada por mouse ou teclado, com a ajuda das correspondentes funes callback para invocar as transformaes. Exemplo: programa rotatingHelix1.cpp onde cada aperto da tecla espao chama a rotina increaseAngle() para girar a hlice. O comando glutPostRedisplay() em increaseAngle() solicita que a tela seja redesenhada.Automaticamente: especificando a funo idle com o comando glutIdleFunc(idle_function). A funo idle_function chamada sempre que nenhum evento em OpenGL est pendente. Exemplo programa rotatingHelix2.cpp, uma ligeira modificao de rotatingHelix1.cpp, onde apertando a tecla espao faz com que as rotinas increaseAngle() e NULL (fazer nada) sejam alternadamente especificadas como funes idle.

  • Trs mtodos de Controle da Animao Animao - OpenGLInterativamente: via entrada por mouse ou teclado, com a ajuda das correspondentes funes callback para invocar as transformaes. Exemplo: programa rotatingHelix1.cpp onde cada aperto da tecla espao chama a rotina increaseAngle() para girar a hlice. O comando glutPostRedisplay() em increaseAngle() solicita que a tela seja redesenhada.Automaticamente: especificando a funo idle com o comando glutIdleFunc(idle_function). A funo idle_function chamada sempre que nenhum evento em OpenGL est pendente. Exemplo programa rotatingHelix2.cpp, uma ligeira modificao de rotatingHelix1.cpp, onde apertando a tecla espao faz com que as rotinas increaseAngle() e NULL (fazer nada) sejam alternadamente especificadas como funes idle.

  • Trs mtodos de Controle da Animao Animao - OpenGLAutomaticamente: especificando a rotina timer_function, com a chamada a glutTimerFunc(period, timer_function, value). A funo timer_function chamada period milisegundos depois que o comando glutTimerFunc executado e com o parmetro value sendo passado. Exemplo: No programa rotatingHelix3.cpp, a timer-function animate() primeiro chamada desde a funo principal main, 5 miliseg. depois que o comando glutTimerFunc(5,animate,1) executado. O parmetro value 1 que passado para animate() no usado neste programa. Chamadas subsequentes a animate() so feitas recursivamente desde a mesma rotina glutTimerFunc.

  • Buffer duploAnimao - OpenGLBuffer duplo grandemente melhora a qualidade da animao ocultando, ao observador, a transio entre os sucessivos frames. Pelo outro lado, com um nico buffer, o observador ve o prximo frame sendo desenhado no mesmo buffer que contm o atual. O resultado pode ser indesejvel ghosting, j que a primeira imagem persiste enquanto a prxima imagem est sendo criada.

    O modo de display buffer duplo habilitado chamando glutInitDisplayMode() em main() com GLUT_DOUBLE (em lugar de GLUT_SINGLE) e inserindo a chamada a glutSwapBuffers() no final da rotina de desenho (no lugar de glFlush()).Experimento: Desabilite o buffer duplo em rotatingHelix2.cpp.

  • Exemplos de animaoAnimao - OpenGLRode o programa ballAndTorus.cpp. Aperte a tecla espao para iniciar o rotao latitudinal e longitudinal de uma bola ao redor do torus.

  • Exerccio: Veja e analise o programa bounce2.c, ele realiza uma animao procedural ou no? Por qu?Desenhe uma curva senoidal (Ex. y=Sin(x)).Faa a bola percorrer a trajetria senoidal.Desenhe uma curva circular Faa a bola percorrer a trajetria circular.

    Animao - Formas

  • Exerccio: Rode o programa throwBall.cpp o qual simula o movimento de uma bola jogada com uma velocidade inicial especifica e sujeita fora da gravidade.Considere:(a) a equao que determina o movimento horizontal da bola em termos de t: x(t)=ht. Onde h a componente horizontal da velocidade inicial.b) a equao que determina o movimento vertical, y(t)=vt-(g/2)t2,onde v a componente vertical da velocidade inicial e g a acelerao gravitacional.Animao - Formas

  • Compare o programa throwBall.cpp com o programa Bounce2.c. Qual a diferena entre as equaes que regem o movimento nas duas animaes? Animao - Formas

  • Veja os passos para realizar a animao da cabea de um palhao. (a) Iniciamos com o desenho de uma esfera azul para representar de forma simples a cabea do palhao, programa clown1.cpp.

    Animao - Formas

  • Depois em clown2.cpp, desenha-se um chapu de formato de cone com uma borda como base e gira-se esse chapu na cabea do palhao. Veja Figura (b).

    Animao - Formas

  • Finalmente completa-se a animao, desenhando duas orelhas, as quais realizam uma animao ligadas cabea atravs de duas molas. Para lembrar da equao da hlice, veja o programa helix.cpp.

    Animao - Formas

  • Exerccio: Modifique o programa clown3.cpp, para que acrescente na cabea do palhao, um nariz cnico e olhos.

    Animao - Formas

    ******************