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 CRAb – Grupo de Computação Gráfica Departamento de Computação UFC.

Apresentações semelhantes


Apresentação em tema: "Animação por Computador Capítulo 7 Animação Fisicamente Baseada CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."— 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 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 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

4 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

5 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

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

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

8 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

9 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

10 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

11 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

12 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

13 Física básica - Revisão 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

14 Física básica - Revisão 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

15 Física básica - Revisão 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

16 Spring Mesh

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

18 Spring Mesh 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

19 Spring Mesh 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

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

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

22 Spring Mesh 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

23 Spring Mesh 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

24 Spring Mesh 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

25 Spring Mesh 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

26 Spring Mesh 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

27 Spring Mesh 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

28 Spring Mesh Molas virtuais –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

29 Sistema de partículas

30 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

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

32 Sistema de partículas

33 Sistema de partículas 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

34 Sistema de partículas 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)

35 Sistema de partículas 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

36 Sistema de partículas 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

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

38 Sistema de partículas 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

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

40 Sistema de partículas 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

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

42 Sistema de partículas 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

43 Sistema de partículas 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

44 Sistema de partículas 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

45 Simulação de corpo rígido

46 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

47 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

48 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

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

50 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

51 Simulação de corpo rígido 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 –

52 Simulação de corpo rígido 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

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

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

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

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

57 Simulação de corpo rígido 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

58 Simulação de corpo rígido 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

59 Simulação de corpo rígido 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

60 Simulação de corpo rígido 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

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

62 Simulação de corpo rígido 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

63 Simulação de corpo rígido 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

64 Simulação de corpo rígido 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

65 Simulação de corpo rígido 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

66 Simulação de corpo rígido 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

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

68 Simulação de corpo rígido 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

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

70 Simulação de corpo rígido 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

71 Simulação de corpo rígido 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

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

73 Simulação de corpo rígido 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

74 Simulação de corpo rígido 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

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

76 Simulação de corpo rígido 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

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

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

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

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

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

82 Simulação de corpo rígido 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

83 Simulação de corpo rígido 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

84 Simulação de corpo rígido 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

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

86 Simulação de corpo rígido 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

87 Simulação de corpo rígido 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 = 0t = 1

88 Simulação de corpo rígido 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

89 Simulação de corpo rígido 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

90 Simulação de corpo rígido

91 Simulação de corpo rígido

92 Simulação de corpo rígido

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

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

95 Simulação de corpo rígido

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

97 Simulação de corpo rígido 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

98 Simulação de corpo rígido 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

99 Simulação de corpo rígido 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

100 Simulação de corpo rígido 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

101 Simulação de corpo rígido 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

102 Simulação de corpo rígido 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

103 Simulação de corpo rígido 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

104 Simulação de corpo rígido

105 Simulação de corpo rígido

106 Simulação de corpo rígido

107 Simulação de corpo rígido

108 Simulação de corpo rígido

109 Simulação de corpo rígido

110 Simulação de corpo rígido

111 Simulação de corpo rígido

112 Simulação de corpo rígido

113 Simulação de corpo rígido

114 Simulação de corpo rígido 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

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

116 Simulação de corpo rígido 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

117 Simulação de corpo rígido 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

118 Simulação de corpo rígido

119 Simulação de corpo rígido d

120 Simulação de corpo rígido

121 Simulação de corpo rígido 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

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

123 Simulação de corpo rígido 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

124 Simulação de corpo rígido 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

125 Simulação de corpo rígido 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

126 Simulação de corpo rígido 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

127 Simulação de corpo rígido 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

128 Simulação de corpo rígido 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

129 Simulação de corpo rígido 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

130 Simulação de corpo rígido

131 Simulação de corpo rígido 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

132 Simulação de corpo rígido

133 Simulação de corpo rígido 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

134 Simulação de corpo rígido

135 Simulação de corpo rígido 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

136 Simulação de corpo rígido 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 Antes da colisãoDepois da colisão

137 Simulação de corpo rígido 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:

138 Simulação de corpo rígido 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:

139 Simulação de corpo rígido 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

140 Simulação de corpo rígido 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

141 Simulação de corpo rígido 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

142 Simulação de corpo rígido 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

143 Simulação de corpo rígido 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

144 Simulação de corpo rígido 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

145 Simulação de corpo rígido 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

146 Simulação de corpo rígido 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

147 Simulação de corpo rígido 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

148 Simulação de corpo rígido 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

149 Simulação de corpo rígido 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

150 Simulação de corpo rígido 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

151 Simulação de corpo rígido 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

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

153 Simulação de corpo rígido 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

154 Simulação de corpo rígido 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

155 Simulação de corpo rígido 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

156 Simulação de corpo rígido

157 Simulação de corpo rígido 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

158 Simulação de corpo rígido

159 Simulação de corpo rígido 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 –Da raiz para fora Atualiza valores –Do endeffector para dentro Calcula acelerações –Da raiz para fora

160 Simulação de corpo rígido Vetores relacionando coordenadades de um frame para o outro u i é o eixo de revolução associado ao Frame i ; r i é o vetor deslocamento do centro do Frame i-1 ao centro do Frame i ; d i é o vetor deslocamento do um eixo de revolução para o centro do Frame i.

161 Simulação de corpo rígido 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

162 Simulação de corpo rígido 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

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

164 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

165 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas

170 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas Minimização de energia (restrições úteis) –Ponto com ponto Os dois pontos são na superfície Será zero quando coincidirem

174 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas Restrições de espaço-tempo (partículas espaço-tempo) –Para descobrir as derivadas usa-se diferenças finitas Assim Restrições

182 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 Forçando restrições flexíveis e rígidas 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 CRAb – Grupo de Computação Gráfica Departamento de Computação UFC."

Apresentações semelhantes


Anúncios Google