A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa Animação por Computador"— Transcrição da apresentação:

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


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

Apresentações semelhantes


Anúncios Google