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

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

Animação por Computador Capítulo 7 Animação Fisicamente Baseada

Apresentações semelhantes


Apresentação em tema: "Animação por Computador Capítulo 7 Animação Fisicamente Baseada"— Transcrição da apresentação:

1 Animação por Computador Capítulo 7 Animação Fisicamente Baseada
CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

2 Sumário do Capítulo 7 7. Introdução 7.1 Física básica - Revisão
7.2 Spring Mesh 7.3 Sistema de partículas 7.4 Simulação de corpo rígido 7.5 Forçando restrições flexíveis e rígidas

3 7. Introdução Animadores normalmente se preocupam mais com a qualidade geral do movimento do que com a posição e orientação de cada objeto Em animação fisicamente baseada, as forças mantêm a relação entre os objetos geométricos As forças nem sempre são precisas, mas a preocupação está no realismo Algumas forças não são relacionadas a física Restrições dadas pelo animador 3

4 7. Introdução Como escolher o tipo de abordagem?
Exemplo: Dobras de uma roupa Modelando a mão Pode ser modelado na tentativa de caracterizar as dobras em locais que normalmente se encontram Computacionalmente mais barato Mais fácil de programar Sem flexibilidade Modelando a física A física dos fios do tecido podem ser modelada em detalhe suficiente para que as dobras surgirem naturalmente Computacionalmente muito caro Flexível O animador deve escolher o mais barato possível, que consiga dar o efeito necessário 4

5 7. Introdução Vantagens de usar física
Os animadores só precisam se preocupar com especificações de alto nível Usando o exemplo da roupa Não precisa especificar onde as dobras ficam Especifica os parâmetros do material 5

6 7.1 Física básica - Revisão

7 7.1 Física básica - Revisão
Física baseada nas Leis de Newton Relação entre força, aceleração e massa O animador deve especificar todas as forças que podem acontecer no ambiente Deve-se determinar todas as forças agindo em cada objeto Aceleração dele será calculada 7

8 7.1 Física básica - Revisão
Com a velocidade corrente, e a nova aceleração: A nova posição: Onde: força, aceleração, velocidade e posição podem ser vetores 8

9 7.1 Física básica - Revisão
Várias forças devem ser levadas em consideração Gravidade entre dois corpos Se a terra for um dos objetos 9

10 7.1 Física básica - Revisão
Molas São usadas para: Modelar objetos flexíveis Manter dois objetos a uma distância precisa Quando fixadas a um objeto transmite uma força dependendo da sua localização relativa ao outro objeto ligado a mola A constante da mola determina o quanto uma mola reage para mudar seu comprimento Rigidez 10

11 7.1 Física básica - Revisão
Amortecedor É ligado também a dois objetos Trabalha contra a velocidade relativa entre eles Viscosidade Similar ao amortecedor Resistência a velocidade do objeto Momento linear Em um sistema fechado, é conservado 11

12 7.1 Física básica - Revisão
Torque Equivalente a força em rotações Existe velocidade angular e aceleração angular A massa do objeto é uma medida de sua resistência ao movimento O momento de inércia mede a resistência do objeto a mudar sua orientação Matriz 3x3 que descreve a distribuição da massa em volta do centro de massa 12

13 7.1 Física básica - Revisão
7.1.1 Simulando um sistema massa-mola-amortecedor Equação simples É necessário Ter um passo de tempo apropriado Dar valor as constantes da mola e de amortecimento Definir a massa do objeto 13

14 7.1 Física básica - Revisão
7.1.1 Simulando um sistema massa-mola-amortecedor Exemplo: Definições Pequeno passo de tempo Grande massa Alta constante de amortecimento Baixa constante da mola Resultado Sistema que move-se lentamente para um ponto fixo, indo cada vez mais devagar 14

15 7.1 Física básica - Revisão
7.1.1 Simulando um sistema massa-mola-amortecedor Exemplo: Definições Grande passo de tempo Pouca massa Baixa constante de amortecimento Alta constante da mola Resultado Sistema que move-se muito. A massa oscila em um ponto fixo indo cada vez mais longe dele 15

16 7.2 Spring Mesh 16

17 7.2 Spring Mesh 7.2.1 Objetos flexíveis
Foram propostas várias abordagens para tratar: Comportamentos elásticos Comportamentos inelásticos Viscoelasticidade Plasticidade Fraturas Flexibilidade 17

18 7.2 Spring Mesh 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) Modelagem Cada vértice do objeto é um ponto de massa Distribuída igualmente pelo objeto levando em consideração o seu formato Cada aresta é uma mola O tamanho de repouso é igual ao tamanho original da aresta As constantes são arbitrárias Normalmente uniformes por todo o objeto 18

19 7.2 Spring Mesh 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) Forças externas são aplicadas aos vértices Devido a: Colisão Gravidade Vento Forças definidas explicitamente Causando ‘ondas’ de deformação 19

20 7.2 Spring Mesh 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) Desvantagem As características do objeto influenciam na sua reação 20

21 7.2 Spring Mesh 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) Exemplo bidimensional A força é aplicada somente em um passo de tempo 21

22 7.2 Spring Mesh 7.2.1 Objetos flexíveis (modelados por massa-mola-amortecedor) Exemplo bidimensional A força aplicada entre os vértices é baseada na Lei de Hooke Dependendo do tamanho das forças, constante da mola e do passo de tempo a simulação pode divergir numericamente Controlar usando: Um passo de tempo menor Constante de mola menor Massas maiores Introdução de amortecimento 22

23 7.2 Spring Mesh 7.2.1 Objetos flexíveis (amortecedores)
Amortecedores de molas fazem força oposta e proporcional as velocidades relativas dos pontos-finais Ajuda a controlar quando a mola aumenta demais seu tamanho 23

24 7.2 Spring Mesh 7.2.1 Objetos flexíveis (amortecedores)
Modelando-se objeto com amortecedores de molas nas arestas Existe mais de uma configuração estável Exemplo: Cubo modelado somente com molas Pode virar do avesso A inclusão de amortecedores pode ajudar a estabilizar Pode haver inclusão de molas dentro do cubo Cisalhamento Modelar o material interno do sólido 24

25 7.2 Spring Mesh 7.2.1 Objetos flexíveis (amortecedores)
Se um ângulo especifico entre duas faces (ângulos diedro) é requerido, pode-se usar uma mola (e amortecedor) angular A mola resiste a distorção do ângulo de repouso e transmite um torque Amortecedor limita o movimento Exemplo: Também poderia colocar uma mola entre os pontos 25

26 7.2 Spring Mesh 7.2.2 Molas virtuais
Introduzem forças no sistema que não modela diretamente elementos físicos Usado para controlar o movimento do objeto Exemplos: Uma mola de cumprimento de repouso igual a zero Restringe um objeto a ficar na superfície de outro Sem ser zero Faz com que dois objetos mantenham uma certa distância 26

27 7.2 Spring Mesh 7.2.2 Molas virtuais
Controle proporcional derivativo (proportional derivative controllers - PDCs) São um tipo de molas virtuais Usado para controlar variáveis e suas derivadas Exemplo: Manter o angulo e velocidade de uma junta perto dos valores desejados 27

28 7.2 Spring Mesh 7.2.2 Molas virtuais Desvantagem do uso de spring mesh
Desvantagem do uso de molas, amortecedores e PDCs É difícil para o usuário escolher boas constantes Desvantagem do uso de spring mesh O efeito da força passa por toda a malha 28

29 7.3 Sistema de partículas 29

30 7.3 Sistema de partículas Coleção de uma grande quantidade de elementos parecidos com ponto São feitas simplificações nas suposições Não sofrem auto-colisão Não causam sombra Exceto em conjunto Somente no ambiente Não refletem luz São pontos de luz Modeladas com um tempo curto de vida Aleatoriedade 30

31 7.3 Sistema de partículas Algoritmo em alto nível para cada frame
Cria novas partículas durante um frame São dados atributos às partículas As partículas que gastaram todo o tempo de vida atribuído são extintas Partículas ativas são animadas e seus parâmetros de sombreamento são mudados de acordo com o processo As partículas são renderizadas 31

32 7.3 Sistema de partículas 32

33 7.3 Sistema de partículas 7.3.1 Geração de partículas
Tipicamente controlado por um processo estocástico Para cada frame é gerado um número aleatório de partículas Centrado em uma média dada pelo usuário Distribuição é feita de acordo com o usuário Uniforme Gaussiana Formulas Onde n é a média de partículas, r modifica a variação, A a área da tela, Rand() função aleatória que retorna entre -1 e 1 33

34 7.3 Sistema de partículas 7.3.2 Atributos das partículas
Indica o estado da partícula Exemplos Atualizado com o movimento Posição Velocidade Controlam a aparência Parâmetros de forma Cor Transparência Tempo de vida Inicializados na criação Valores aleatórios (controlados) 34

35 7.3 Sistema de partículas 7.3.3 Extinção das partículas
O tempo de vida é diminuído a cada frame Quando chegar a zero, a partícula é removida do sistema Usado para manter o número de partículas ativas dentro de um certo valor 35

36 7.3 Sistema de partículas 7.3.4 Animação das partículas
Todos os seus atributos podem ser alterados É considerado as forças atuantes, a aceleração resultante é calculada Atualização da velocidade e posição Forças Gravidade Campo de forças globais Ex: Vento Campo de forças locais Ex: Vórtice Colisão 36

37 7.3 Sistema de partículas 7.3.4 Animação das partículas
Cor e transparência podem ser funções do tempo Formato pode ser função da velocidade tempo velocidade 37

38 7.3 Sistema de partículas 7.3.5 Renderização das partículas
Simplificação Cada partícula é um ponto de luz A densidade de partículas entre uma posição do espaço e uma fonte de luz é usado para estimar o sombreamento 38

39 7.3 Sistema de partículas 7.3.6 Sistema de representação de partículas
x: posição v: velocidade f: força acumulada m: massa Idade, caso necessário 39

40 7.3 Sistema de partículas 7.3.6 Sistema de representação de partículas
O estado da partícula, , será atualizado resolvendo ODE (equações diferenciais ordinárias), usando Pode ser usado qualquer método Caixa preta 40

41 7.3 Sistema de partículas 7.3.6 Sistema de representação de partículas
P: lista de partículas n: número de partículas t: tempo corrente 41

42 7.3 Sistema de partículas 7.3.6 Sistema de representação de partículas
Atualização Zera a força (calculada anteriormente) de todas as partículas Calcula o somatório das forças Pega o estado anterior das partículas Calcula o novo estado Atualiza o estado Salva o estado Incrementa o tempo do sistema 42

43 7.3 Sistema de partículas 7.3.7 Forças nas partículas Tipos Unária
Gravidade Viscosidade Par de partícula Mola Amortecedor Podem pode ser caro computacionalmente fazer isso para todos os pares Ambiente Colisão 43

44 7.3 Sistema de partículas 7.3.8 Tempo de vida das partículas
Cada partícula tem um tempo de vida A estrutura de uma partícula extinta pode ser reusada Podem existir por volta de 10 mil partículas na simulação, porém por volta de mil estarão ativas ao mesmo tempo Controle para que os valores iniciais sejam pseudo-aleatórios 44

45 7.4 Simulação de corpo rígido
45

46 7.4 Simulação de corpo rígido
Objetivo em CG: Criar movimentos que pareçam realísticos Reação às forças baseada em física de corpos rígidos Modelar movimentos Animação em kyeframe é tarefa difícil Solução: Incorporar equações de movimento para calcular automaticamente as reações 46

47 7.4 Simulação de corpo rígido
Ação das forças relativas a... Posição relativa do objeto Gravidade Colisão Velocidade Viscosidade Posição absoluta Vento 47

48 7.4 Simulação de corpo rígido
Tais forças induzem acelerações lineares e angulares no objeto Derivadas da velocidade Integrar a aceleração em um certo espaço de tempo pra achar a mudança na velocidade Velocidade Derivada da posição Integrar a velocidade em um certo espaço de tempo para achar a mudança na posição O processo se repete a cada espaço de tempo 48

49 7.4 Simulação de corpo rígido
Calculo de forças vento gravidade viscosidade ... Propriedades do objeto posição velocidades angular e linear momento angular e linear massa ... Calculo das mudanças posição velocidade Momento ... Calculo das acelerações baseado na massa 49

50 7.4 Simulação de corpo rígido
Objetos em queda livre são simulações de corpo rígido Se torna complexo com Colisões Rolar Deslizar sobre outro Problema em modelar algo contínuo em passos de tempo discreto Trade-off entre a precisão e eficiência computacional 50

51 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre Será explicado primeiro o movimento de um ponto no espaço A posição do ponto é desejada Nos intervalos de tempo Discreto Uniforme Para isso, é necessário utilizar sua posição, velocidade e aceleração 51

52 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre Se não forem aplicadas forças ao ponto Sua aceleração não muda Velocidade permanece constante Pode ser diferente de zero Simplificação: aceleração sempre assume-se que a aceleração é constante em um dado A velocidade média durante o período é a media da inicial e final 52

53 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (exemplo) Definições Como a aceleração é uniforme 53

54 7.4 Simulação de corpo rígido
Posição do ponto em um intervalo de tempo discreto 54

55 7.4 Simulação de corpo rígido
Caminho da partícula 55

56 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (exemplo) Cálculos 56

57 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) Assumir que a aceleração é constante em relação ao tempo não é exatamente verdade A ação de forças varia continuamente Implicando também numa variação da aceleração E mais, essa variação é frequentemente não-linear 57

58 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) A aceleração de um corpo pode ser estimada por diversos métodos de aproximação Método de integração Euler 58

59 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) A aceleração de um corpo pode ser estimada por diversos métodos de aproximação Método de integração Euler Método Runge-Kutta Dá uma melhor aproximação 59

60 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) Quanto menor a variação do tempo, mais precisa será a aproximação Um intervalo de tempo grande pode desviar muito dos resultados ideais 60

61 7.4 Simulação de corpo rígido
A função seno é desconhecida. O objetivo: reconstruí-la. Conhecido: Posição inicial (0,0) e a derivada (cosseno) Usando passos de tempo pequenos (0.2) Usando passos de tempo grandes (5) 61

62 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) Comparação com Runge-Kutta de segunda ordem (Midpoint) Usando Euler com passo de tempo = 2 Usando Midpoint com passo de tempo = 2 62

63 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (nota sobre aproximação numérica) O melhor é usar Runge-Kutta de quarta ou quinta ordem É importante se preocupar com a precisão numérica Mesmo que a animação esteja mais preocupada com resultados visuais O realismo pode ser comprometido caso os cálculos se tornem muito desleixados 63

64 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações de movimento para corpo rígido) Torque Equivalente rotacional da força linear Considerado quando aplicamos uma força desalinhada com o centro de massa do objeto Momento linear e angular Para considerar interações entre objetos Conservado Tensor de inércia Distribuição de massa no objeto 64

65 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Pontos soltos (Atributos lineares) Posição Velocidade Aceleração Corpos extensos (Tridimensionais) Orientação Velocidade angular Aceleração angular x 65

66 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Considerar que a orientação do objeto é representado por uma matriz Velocidade angular Ciclos por unidade de tempo 66

67 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Considerando o ponto Variação da posição 67

68 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Considerando um corpo extenso As colunas da matriz de rotação são como vetores definindo posições relativas no objeto Variação da orientação 68

69 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Considerando um corpo extenso Orientação em notação matricial 69

70 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (orientação e movimento rotacional) Considerando um ponto, , em um objeto de corpo rígido A posição em coordenadas locais, , não muda A posição em coordenadas de mundo Variação da posição 70

71 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (centro de massa) A distribuição de massa em um objeto é tipicamente modelado como pontos individuais Massa para cada vértice Massa total do objeto Centro de massa Coordenadas de mundo É onde o sistema de coordenadas locais está centrada 71

72 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (força) Linear Angular 72

73 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (momento) Momento linear e angular Devem ser atualizados em objetos que interagem para se conservar em sistemas fechados Podem ser utilizados para descobrir valores desconhecidos como velocidades linear e angular 73

74 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (momento) Linear A forca agindo em um corpo e igual a variação do momento Sistema de coordenadas coincidente com centro de massa 74

75 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (momento) Angular Soma a contribuição de cada ponto de massa O torque é igual a mudança no momento angular 75

76 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (tensor de inércia) Matriz que descreve a distribuição de massa no objeto Relação entre momento angular e velocidade angular 76

77 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (tensor de inércia) Matriz A densidade de um ponto é 77

78 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (tensor de inércia) Assim 78

79 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações) O estado de um objeto pode ser mantido em um vetor 79

80 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações) Tensor se inércia Velocidade angular Velocidade linear 80

81 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações) Derivada do estado 81

82 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações) Essas informações são suficientes para a simulação Métodos Euler Implementação mais simples Rungge-Kutta de quarta ordem Mais popular 82

83 7.4 Simulação de corpo rígido
7.4.1 Corpos em queda livre (equações) Tomar cuidado ao atualizar a orientação A informação da derivada só vale para aquele instante Se usados para atualizar a matriz de rotação As colunas podem ficar não ortogonais Podem não ser mais de tamanho unitário Melhor solução: Aplicar as rotações causada pela velocidade linear nas colunas Quaternium 83

84 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão Quando um objeto se move em um ambiente, eventualmente ele esbarra em outros objetos Exceto no vazio Se nada for feito, o objeto irar penetrar e passar direto pelo outro Outro tipo de contato Objeto deslizando sobre outro Objeto repousando sobre outro Todos os contatos requerem calculo das forças 84

85 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) Enquanto os objetos movem-se uns em relação aos outros, precisamos fazer duas coisas: Detectar a ocorrência de uma colisão Questão cinemática Posição Orientação Como mudam ao longo do tempo Calcular a resposta apropriada à colisão Questão dinâmica Forca 85

86 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) A detecção de colisão consiste em determinar se há uma interseção entre as posições de dois objetos num determinado instante de tempo t = 0 86

87 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) A detecção de colisão consiste em determinar se há uma interseção entre as posições de dois objetos num determinado instante de tempo t = 0 t = 1 87

88 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) Na resposta da colisão A distribuição de massa é importante Forças localizadas em pontos específicos causam forças lineares e rotacionais nos objetos envolvidos 88

89 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) Para lidar com a hora da colisão temos duas opções A primeira é proceder a qualquer momento em que a colisão for detectada e calcular a reação apropriada de todos os envolvidos Isso permite a penetração da partícula envolvida antes da reação ser acionada Porém, se a velocidade da partícula for muito alta, essa penetração pode ser significativa Se múltiplas colisões ocorrem durante um intervalo de tempo, elas são tratadas como simultâneas Mesmo que produza resultados diferentes 89

90 7.4 Simulação de corpo rígido
90

91 7.4 Simulação de corpo rígido
91

92 7.4 Simulação de corpo rígido
92

93 7.4 Simulação de corpo rígido
Nesse instante, há interseção. Porém o objeto já entrou muito no obstáculo! 93

94 7.4 Simulação de corpo rígido
Novo obstáculo colocado antes da parede. 94

95 7.4 Simulação de corpo rígido
95

96 7.4 Simulação de corpo rígido
Detectou essa colisão, mas e a do obstáculo? 96

97 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) Para lidar com a hora da colisão temos duas opções A segunda opção é retornar ao instante Ti em que ocorre a primeira colisão e determinar a reação apropriada no exato momento em que a colisão ocorre Se múltiplas colisões ocorrem num intervalo de tempo, voltar ao tempo da primeira colisão Custo computacional mais elevado 97

98 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (corpos colidindo) Existem três tipos de reações a colisões: Resposta estritamente cinemática O método de pênalti Cálculo de uma força de impulso 98

99 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) É a resposta mais rápida e fácil Produz um bom visual para partículas e objetos esféricos 99

100 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) A forma mais simples de se considerar uma colisão é a de uma partícula contra um plano em um ângulo arbitrário 100

101 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) Quando uma partícula está no plano de uma determinada superfície ela satisfaz à equação do plano Quando a partícula está na frente do plano, sua equação produz resultados positivos Quando está atrás do plano, sua equação produz resultados negativos 101

102 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) Verificamos a posição da partícula de acordo com sua velocidade média A colisão ocorre quando em um tempo a função retorna um valor negativo A colisão está em algum tempo entre 102

103 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) Quando a colisão é detectada Para calcular o vetor velocidade Subtraí-se a componente do vetor velocidade paralela a normal duas vezes Da segunda vez, a componente pode ser multiplicada por um fator de amortecimento Para diminuir a altura do salto 103

104 7.4 Simulação de corpo rígido
104

105 7.4 Simulação de corpo rígido
105

106 7.4 Simulação de corpo rígido
106

107 7.4 Simulação de corpo rígido
107

108 7.4 Simulação de corpo rígido
108

109 7.4 Simulação de corpo rígido
109

110 7.4 Simulação de corpo rígido
110

111 7.4 Simulação de corpo rígido
111

112 7.4 Simulação de corpo rígido
112

113 7.4 Simulação de corpo rígido
113

114 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) Esse cálculo simples determina uma quicada da partícula no plano, devolvendo para fora do mesmo com uma velocidade reduzida O resultado não é fisicamente baseado Mas produz um bom efeito visual 114

115 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (colisão partícula-plano e resposta cinemática) Usando 0.8 de amortecimento 115

116 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (método de pênalti) Quando uma partícula penetra em outro objeto dentro de um intervalo de tempo, ela é penalizada: Uma mola de tamanho zero (quando em repouso) é anexada à superfície e ao ponto 116

117 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (método de pênalti) Quando a partícula penetra é calculada a deformação e a força elástica aplicada à partícula Lei de Hooke 117

118 7.4 Simulação de corpo rígido
118

119 7.4 Simulação de corpo rígido
119

120 7.4 Simulação de corpo rígido
120

121 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (método de pênalti) Essa mola desacelerará a partícula enquanto penetra na superfície e mudará sua trajetória para fora, de modo elástico Ideia simples, porém requer um bom balanço entre as constantes utilizadas para se obter o efeito esperado 121

122 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (método de pênalti) Constante usada de 250 Massa de 10 122

123 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) A cada passo do tempo, a interseção entre poliedros é verificada A discretização do tempo pode deixar passar alguma colisão, mas é suficiente para a maioria das aplicações 123

124 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) Há vários testes podem ser usados para descobrir se há interseção Pode-se começar por uma bounding box circundando todo o modelo Caso haja a interseção entre duas bounding boxes, testes mais elaborados podem ser empregados Esses testes podem empregar uma hierarquia de bounding shapes Bouding sphere Bouding slabs O princípio é: Se não há interseção entre as bounding boxes, não há colisão entre os objetos 124

125 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) A maioria das colisões pode ser detectada por um algoritmo de ponto em poliedro, aplicado aos vértices de um objeto em relação aos outros Pode-se usar a equação do plano da face, e verificar se o resultado é positivo (fora) ou negativo (dentro) Testar se um ponto está dentro de um poliedro côncavo é mais difícil Pode-se usar um algoritmo de tiro 125

126 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) Testar apenas essas colisões pode deixar de fora algumas outras Teste de interseção entre arestas e faces do poliedro também é feito Primeiro calcula-se se há interseção da aresta com o plano que forma a face Veja se os dois extremos encontram-se em lados opostos do plano Caso a aresta intercepte o plano: Calcule o ponto de interseção Veja se esse ponto está dentro do polígono que forma a face 126

127 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) O teste aresta-face captura todas as interseções possíveis. Mas como é caro computacionalmente é deixado como última opção 127

128 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) Quando um vértice de um objeto fica exatamente em cima de uma face de outro objeto, tratar cuidadosamente Normalmente, coloca-se o vértice de um lado do plano Frequentemente, a normal que define o plano de interseção é usada nos cálculos de resposta à colisão Quando um vértice penetra em uma face, a normal da face é usada Quando há uma interseção aresta-aresta, a normal é calculada como o produto vetorial de ambas 128

129 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (testando poliedros) Outra forma de detectar se houve ou não uma colisão é fazendo-se o uso de um volume de deslocamento Primeiro, determina-se a trajetória linear relativa que será seguida pelo objeto Relativa porque os outros objetos em questão são considerados estáticos As faces que estão de frente ao vetor de deslocamento são transladadas de maneira a alongar o objeto na mesma direção do vetor O teste de colisão deste volume deformado é feito com relação aos outros objetos 129

130 7.4 Simulação de corpo rígido
130

131 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (força de impulso da colisão) Para mais um tratamento mais preciso, o tempo pode ser retornado para o momento do impacto, calcula-se a reação e o tempo continua Computacionalmente caro para ambientes complexos O real momento da colisão pode ser achado Busca binária Tolerância Caminho linear Fazendo aproximação de que a velocidade é constante 131

132 7.4 Simulação de corpo rígido
132

133 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (força de impulso da colisão) No tempo do impacto, a componente da normal da velocidade do ponto pode ser modificada Coeficiente de restituição 133

134 7.4 Simulação de corpo rígido
134

135 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Mudança na velocidade devido a colisão Equação da mudança do momento Novo termo: Impulso Grande força agindo por um intervalos de tempo pequeno Mudança no momento 135

136 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Caracterizando a elasticidade da colisão Coeficiente de restauração Relaciona a velocidade relativa antes da colisão com a de depois Depois da colisão Antes da colisão 136

137 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Assumindo a colisão de dois objetos A e B Centros de massa: Velocidades lineares: Velocidades angulares: Pontos de colisão: 137

138 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Assumindo a colisão de dois objetos A e B Determinando a normal Depende se é vértice-face ou aresta-aresta Pontos de colisão relativas ao centro de massa: Velocidades relativas: 138

139 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Assumindo a colisão de dois objetos A e B As velocidades antes da colisão são atualizadas pelo impulso Impulso é um vetor na direção da normal 139

140 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Assumindo a colisão de dois objetos A e B Velocidade relativa depois da colisão Impulso 140

141 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Resumindo Os pontos de contato são definido A normal da superfície é calculada O ponto de contato é testado para ver se está realmente colidindo As velocidades dos pontos de contato são calculada A colisão existe se os pontos estiverem se aproximando 141

142 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (calculando forças de impulso) Resumindo Se houver uma colisão, é calculado a magnitude do impulso Direção da normal Atualização do momento angular e linear dos objetos Se houver mais de um ponto de colisão, todos devem ser testados Se realmente ocorrer a colisão para algum, lista de possíveis colisões deve ser atualizada Deve-se repetir até não ser achado nenhuma colisão 142

143 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (atrito) Um objeto em repouso em cima de outro Estado de contato estático em relação ao objeto suporte Qualquer força aplicada ao objeto em repouso é decomposta Perpendicular Paralela 143

144 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (atrito) Força paralela Se o objeto suporte não puder se mexer A força é cancelada Força igual no sentido oposto Senão A força é transmitida Pode-se deslizar ou rolar Força perpendicular Usa-se para mover o objeto 144

145 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (atrito) Atrito estático É necessário que a força aplicada passe de um certo limiar para que o objeto passe a se mover Atrito cinético Age quando a partícula já está em movimento 145

146 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Calcular a força de contato estático é um dos problemas mais difíceis da dinâmica para animação por computador Exemplo 146

147 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Para cada ponto de contato existe uma normal Objetivo: Achar a magnitude dessa força A força tem que ser grande o suficiente para evitar penetração Deve empurrar os objetos um contra o outro Tem que chegar a zero quando não houver mais contato Distancia de dois objetos, no ponto de contato i: Se : Objetos continuam em contato Se : Objetos estão separados Se : Penetração 147

148 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Em um tempo , a distância entre dois objetos é 0 Para prevenir penetração a velocidade relativa entre os objetos deve ser maior ou igual a zero Como Assim Já que A penetração é evitada caso a aceleração relativa: Simplificação 148

149 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) As restrições das forças podem ser escritas como equações: A força deve prevenir penetração A força deve empurrar os objetos para longe Força de contato zero 149

150 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Aceleração relativa pode também ser escrita: O efeito de um contato j na aceleração relativa dos objetos envolvidos no contato i, deve ser achado Baseando-se na equação anterior, a componente da aceleração relativa... A componente dependente da velocidade dos pontos Não é dependente da força j É parte de A componente dependente da aceleração dos pontos Depende da força j se os objetos estivem envolvidos no contato j 150

151 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Aceleração em um ponto: é a aceleração linear Resultado da força total agindo sobre A dividida sobre a massa é a aceleração angular 151

152 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Aceleração em um ponto: Parte que depende da força j Parte que não depende 152

153 7.4 Simulação de corpo rígido
7.4.2 Corpos em colisão (contato estático) Aceleração relativa Calculo de Partes constantes de e são combinadas e multiplicadas por E é adicionado: Dever ser resolvido submetido as restrições Programação quadrática 153

154 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas Aplicar forças para uma figura com ligações resulta em reações complexas Exemplo de forças Gravidade Golpe no peito com um objeto pesado 154

155 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas (dinâmica restrita) Partículas conectadas por restrições de distância A massa da partícula reage a uma força aplicada Deslocamento espacial A hierarquia é atravessada começando da partícula que sofreu o primeiro deslocamento Cada partícula é reposicionada para obedecer as restrições em relação as partículas que já forma reposicionadas 155

156 7.4 Simulação de corpo rígido
156

157 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas (dinâmica restrita) Força de impulso aplicada ao torço O torço reage como um corpo rígido independente Os anexos reagem a força forçando as restrições de distância para cada link separadamente seguindo a hierarquia Na realidade O torço reage a força aplicada Os anexos exercem forças e torques no torço enquanto este tenta se afastar 157

158 7.4 Simulação de corpo rígido
158

159 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone) A força em que um link aplica em outro pode ser calculada explicitamente Algoritmo de Featherstone Inicializa velocidade dos links Da raiz para fora Inicializa valores dos links Atualiza valores Do endeffector para dentro Calcula acelerações 159

160 7.4 Simulação de corpo rígido
Vetores relacionando coordenadades de um frame para o outro ui é o eixo de revolução associado ao Framei; ri é o vetor deslocamento do centro do Framei-1 ao centro do Framei; di é o vetor deslocamento do um eixo de revolução para o centro do Framei. 160

161 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone) Notação espacial Combinar componentes lineares e angulares 6 elementos cada Velocidade Aceleração Força Massa Eixo espacial 161

162 7.4 Simulação de corpo rígido
7.4.3 Dinâmica de ligações hierárquicas (equações de Featherstone) Transformando os valores do frame G ao frame F Onde e R é a matriz de rotação entre os frames 162

163 7.5 Forçando restrições flexíveis e rígidas
163

164 7.5 Forçando restrições flexíveis e rígidas
Maior problema de animação fisicamente baseada Fazer com que a animação fique como o animador quer ao mesmo tempo que reage as forças do ambiente Solução Colocar restrições que restringem somente alguns subconjuntos de DOF Distância mínima entre objetos Objeto com certa orientação no espaço Os outros reagem normalmente 164

165 7.5 Forçando restrições flexíveis e rígidas
Restrições rígidas Devem ser satisfeitas Abordagens numéricas sofisticadas Busca de movimentos que reagem às forças do sistema enquanto satisfaz as restrições Restrições flexíveis O sistema tenta satisfazer Abordagens numéricas não tão sofisticadas Forças adicionais que influenciam o movimento final Modelados com malhas de molas e amortecedores Minimização de energia

166 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia A energia de um sistema pode ser usado de várias maneiras para controlar o movimento do objeto Definida para ajudar o animador Pode ser usada para Deixar objetos juntos Restaurar forma do objeto Minimizar a curvatura das splines nas interpolações de pontos no espaço

167 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia O estado corrente de um modelo pode ser expresso como um conjunto de parâmetros referidos como Posição Orientação Ângulos das juntas Raio de um cilindro Limiar de uma função implícita ...

168 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia As restrições são formuladas em termos desses parâmetros em uma função suave não negativa O mínimo local da função é procurado Calcula o gradiente da função de energia Anda na direção negativa Exemplo: Existem somente dois parâmetros

169 7.5 Forçando restrições flexíveis e rígidas

170 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia Exemplo: Existem somente dois parâmetros Conjunto inicial de parâmetros: Função inicial: Assim: Pode ser resolvido com o Método de Euler

171 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (três funções úteis) Função de posição paramétrica Função da normal da superfície Função implícita Onde e são parâmetros da superfície e é uma posição no espaço

172 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições úteis) Ponto com ponto fixo ponto fixo em coordenadas de mundo ponto na superfície Será zero quando coincidirem

173 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições úteis) Ponto com ponto Os dois pontos são na superfície Será zero quando coincidirem

174 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições úteis) Ponto com ponto (adjacentes localmente) Os dois pontos são na superfície Será zero Quando coincidirem Produto escalar das normais é -1

175 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições úteis) Ligação flutuante Usada função implícita do o objeto b Um ponto especifico de a é forçado a ficar na superfície de b

176 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições úteis) Ligação flutuante (adjacentes localmente) Usada função implícita do o objeto b Um ponto especifico de a é forçado a ficar na superfície de b A normal de a e o ponto devem ser colineares a normal inversa de b no ponto de contato A normal de b é calculado com o gradiente

177 7.5 Forçando restrições flexíveis e rígidas
7.5.1 Minimização de energia (restrições de energia não são restrições rígidas) Desvantagem do método anterior é que não são constantes rígidas Nem sempre são atingidas

178 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo Vê um movimento como uma solução de um problema otimizado por restrições que acontece ao longo do tempo no espaço Equações de movimento Restrições de não-penetração Colocar um objeto em um certo ponto em um dado tempo

179 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (partículas espaço-tempo) posição da partícula em função do tempo força em função do tempo Equação de movimento Resolvido por problema de valor inicial

180 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (partículas espaço-tempo) Porém, a questão é descobrir Dados os valores iniciais e finais Função a ser minimizada Função objetivo: Resolvendo, considera-se representações discretas de e

181 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (partículas espaço-tempo) Para descobrir as derivadas usa-se diferenças finitas Assim Restrições

182 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (solução numérica) Problema na forma genérica: “Ache os valores que minimizam sujeitos a ” Onde os valores são e Os métodos numéricos são caixa preta Requerem os valores: , , e suas derivadas

183 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (solução numérica) Método usado por Witkin e Kass Variação do método Sequential Quadratic Programming (SQP) Calcula Newton-Raphson de segunda ordem em Independente de qualquer restrição Calcula Newton-Raphson de primeira ordem em Reduzir as funções de restrição

184 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (solução numérica) Método usado por Witkin e Kass Passo de minimizar a função objetiva Projetado em um espaço nulo de restrições Subespaços onde as restrições são constantes a uma aproximação de primeira ordem Uma direção para cada paço é escolhida Não pode afetar a minimização de restrição Reduz a função objetiva

185 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (solução numérica) Método usado por Witkin e Kass Funções de restrições são em primeira ordem Matriz de derivada primeira (Jacobiano) deve ser calculada Função objetiva é de segunda ordem Matriz de derivada segunda (Hessiana) deve ser calculada

186 7.5 Forçando restrições flexíveis e rígidas
7.5.2 Restrições de espaço-tempo (solução numérica) Método usado por Witkin e Kass Sistemas lineares a serem resolvidos Atualização final O algoritmo chega em um ponto fixo quando as restrições são satisfeitas Nenhum passo que minimiza R violaria alguma restrição


Carregar ppt "Animação por Computador Capítulo 7 Animação Fisicamente Baseada"

Apresentações semelhantes


Anúncios Google