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

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

  • Upload
    star

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Animação por Computador Capítulo 7 Animação Fisicamente Baseada. CRAb – Grupo de Computação Gráfica Departamento de Computação UFC. 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 - PowerPoint PPT Presentation

Citation preview

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

Animação por Computador

Capítulo 7Animação

Fisicamente Baseada

CRAb – Grupo de Computação Gráfica

Departamento de ComputaçãoUFC

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

2

Sumário do Capítulo 7

7. Introdução7.1 Física básica - Revisão7.2 Spring Mesh 7.3 Sistema de partículas7.4 Simulação de corpo rígido7.5 Forçando restrições flexíveis e

rígidas

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

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

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

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

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

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

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

7.1 Física básica - Revisão

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

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

af m

m

fa

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

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

t av'v

t )'vv(x'x2

1

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

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

221

d

mmGf

2

0

m/s89.e

ee r

mG

m

fa

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

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

)( rcss LLkf

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

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

sdd vkf

vkf dv

cvm ii

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

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

sdd vkf

I

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

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

sdrcss vkLLkf )(

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

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

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

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

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

16

7.2 Spring Mesh

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

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

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

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

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

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

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

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

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

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

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

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

jijijisijji vLrtLckFF ,,,,, ))((

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

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

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

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

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

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

)())(( tktk drs

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

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

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

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))(())(( ddds tktk

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

28

7.2 Spring Mesh

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

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

29

7.3 Sistema de partículas

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

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

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

31

7.3 Sistema de partículas

• Algoritmo em alto nível para cada frame

1. Cria novas partículas durante um frame2. São dados atributos às partículas3. As partículas que gastaram todo o

tempo de vida atribuído são extintas4. 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

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

32

7.3 Sistema de partículas

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

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

Arn

rn

Rand()

Rand()

particulas de#

particulas de#

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

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)

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

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

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

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

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

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

velocidade

tempo

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

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

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

39

7.3 Sistema de partículas

• 7.3.6 Sistema de representação de partículas– Partícula

•x: posição•v: velocidade• f: força acumulada•m: massa• Idade, caso necessário

],,,[ mfvx

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

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

],[ vx

]/,[ mfv

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

41

7.3 Sistema de partículas

• 7.3.6 Sistema de representação de partículas– Sistema

•P: lista de partículas•n: número de partículas• t: tempo corrente

],,[ tnP

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

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

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

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

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

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

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

45

7.4 Simulação de corpo rígido

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

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

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

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

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

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

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

49

7.4 Simulação de corpo rígido

Propriedades do objetoposiçãovelocidades angular e linearmomento angular e linearmassa...

Calculo de forçasventogravidadeviscosidade...

Calculo das aceleraçõesbaseado na massa

Calculo das mudançasposiçãovelocidadeMomento...

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

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

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

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

– – –

t

)(tx)(tv)(ta

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

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

ttatvttv

ttvtxttx

)()()(

)()()(t

2

2

2

tta

ttvtxttx

tttvtv

txttx

)()()()(

)()()()(

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

53

7.4 Simulação de corpo rígido

• 7.4.1 Corpos em queda livre (exemplo)– Definições

– Como a aceleração é uniforme

15

1484100

30

1320100100

30

1

301

320

100100

00

0

0

,,,

),(

),(

),(

v

t

Gravidade

Velocidade

Posição

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

54

7.4 Simulação de corpo rígido

Posição do ponto em um intervalo de tempo discreto

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

55

7.4 Simulação de corpo rígido

Caminho da partícula

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

56

7.4 Simulação de corpo rígido

• 7.4.1 Corpos em queda livre (exemplo)– Cálculos

225

1484

3

20

30

1

15

1484100

15

1468010

2

1

225

746

3

10

15

1

15

1468100

30

1320

15

1484100

15

1

225

746

3

10

30

1100010

15

1484010

2

100

30

1

,,,,

,,,

,,,,

x

v

x

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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çãoVelocidadeAceleração

Corpos extensos(Tridimensionais)

OrientaçãoVelocidade angularAceleração angular

x

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

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

)(tR

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

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

a

sin)()()(

)()()(

trttr

trttr

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

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])()()()()()([)(

])()()([)(

tRttRttRttR

tRtRtRtR

321

321

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

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

)()()( tRttR

BA

B

B

B

AA

AA

AA

BABA

BABA

BABA

BA

z

y

x

xy

xz

yz

xyyx

zxxz

yzzy

0

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

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

Q

q

)()()( txqtRtq

)())()(()()(

)()()()(

tvtxtqttq

tvqtRttq

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

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

imM

M

tmt i )(q)(x

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

72

7.4 Simulação de corpo rígido

• 7.4.1 Corpos em queda livre (força)– Linear

– Angular

(t)fF(t) i

(t)ττ(t)

(t)fx(t))(q(t)(t)τ

i

ii

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

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

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

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

)()(

)(

)(

tFtvM(t)P

tMvP(t)

tqmP(t)

mvP

ii

Sistema de coordenadascoincidente com centro de massa

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

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

)()(

))))()(()(((

))))()(()(()((

)))()(())()((()(

ttL

qtRtqtRm

txtqtmqtR

tvtqmtxtqtL

i

ii

iii

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

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

)()()( ttItL

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

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é

dxdydzqqqI

III

III

III

I

zyxx

zzyzxz

yzyyxy

xzxyxx

objeto

)))((( 22

),,( zyx qqqq )(q

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

78

7.4 Simulação de corpo rígido

• 7.4.1 Corpos em queda livre(tensor de inércia)– Assim

Tobjeto

iiizz

iiiyy

iiixx

tRItRtI

yxmI

zxmI

zymI

)()()(

)(

)(

)(

22

22

22

iiiyz

iiixz

iiixy

zymI

zxmI

yxmI

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

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

)(

)(

)(

)(

tL

tP

tR

tx

S

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

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

M

tPtv

tLtIt

tRItRtI Tobjeto

)()(

)()()(

)()()(

1

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

81

7.4 Simulação de corpo rígido

• 7.4.1 Corpos em queda livre(equações)– Derivada do estado

)(

)(

)()(

)(

)(

)(

)(

)(

t

tF

tRt

tv

tL

tP

tR

tx

dt

dS

dt

d

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

90

7.4 Simulação de corpo rígido

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

91

7.4 Simulação de corpo rígido

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

92

7.4 Simulação de corpo rígido

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

93

7.4 Simulação de corpo rígido

Nesse instante, há interseção. Porém o objeto já entrou muito no obstáculo!

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

94

7.4 Simulação de corpo rígido

Novo obstáculo colocado antes da parede.

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

95

7.4 Simulação de corpo rígido

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

96

7.4 Simulação de corpo rígido

Detectou essa colisão, mas e a do obstáculo?

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

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

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

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

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

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

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

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

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

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

dcpbpappE zyx )(

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

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

ttvtptp aveii )()()( 1

it

],[ ii tt 1

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

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

10 k

Ntvktv

NtkvNtvtvtv

ii

iiii

)()()(

)()()()(

11

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

104

7.4 Simulação de corpo rígido

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

105

7.4 Simulação de corpo rígido

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

106

7.4 Simulação de corpo rígido

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

107

7.4 Simulação de corpo rígido

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

108

7.4 Simulação de corpo rígido

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

109

7.4 Simulação de corpo rígido

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

110

7.4 Simulação de corpo rígido

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

111

7.4 Simulação de corpo rígido

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

112

7.4 Simulação de corpo rígido

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

113

7.4 Simulação de corpo rígido

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

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

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

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

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

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

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

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

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

118

7.4 Simulação de corpo rígido

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

119

7.4 Simulação de corpo rígido

d

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

120

7.4 Simulação de corpo rígido

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

130

7.4 Simulação de corpo rígido

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

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

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

132

7.4 Simulação de corpo rígido

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

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

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

134

7.4 Simulação de corpo rígido

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

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

PMvvMtMa

tFJ

)(

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

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

10

relrel vv

Antes da colisãoDepois da colisão

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

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:

))(),(( txtx BA

))(),(( tt BA

))(),(( tvtv BA

),( BA pp

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

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:

)(

)(

txpr

txpr

BBB

AAA

BBBB

AAAA

BArel

rttvtp

rttvtp

nntptpv

)()()(

)()()(

)))()(((

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

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

jnJ

))((

))((

jnrtI

jnrtI

M

jnvv

M

jnvv

BBBB

AAAA

BBB

AAA

1

1

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

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

BBBAAABA

rel

BBBAAArel

BArel

rnrtInrnrtInMM

n

vj

nrttvrttvnv

ntptpnv

))(())((

))((

)))()()()(((

)))()(((

1111

1

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

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

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

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

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

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

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

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

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

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

Nss FF

Nkk FF

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

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

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

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

))()()(()( tptptntd BAii

00 )(tdi00 )(tdi00 )(tdi

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

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

0t

))()()(())()()(()( tptptntptptntd BAiBAii )()( 00 tptp BA

00000 )))()()(()( tptptntd BAii

000 )()( tdtd ii

00 )(tni

))()()(())()()((

))()()(())()()(()(

tptptntptptn

tptptntptptntd

BAiBAi

BAiBAii

))()()(())()()(()( 0002 tptptntptptntd BAiBAii

0)(tdi

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

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 zero0

0

0

ii

i

i

ftd

f

td

)(

)(

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

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

j

n

jijii fabtd

1

)(

))()()(())()()(()( 0002 tptptntptptntd BAiBAii

ib

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

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

)()()(

))(()()()()(

txtptr

rttrttvtp

AAA

AAAAAAA

)(tvA

)( 0tnm

fj

A

j

)(tA

)())(()(

))()()(()()()(

00

11

tnftxpt

ttLtIttIt

jjAjA

AAAAAA

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

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

AjAjAA

jj rtntxptIm

tnf )())()((

)(00

10

AAAAAAAAAA

A rttLtIrttttIm

tF )))()()((())(()()()(

)( 110

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

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

j

n

jijii fabtd

1

)(

ib)(tpA )(tpB

))()()(( 0002 tptptn BAi )( 0tni

0

0

ii

i

ftd

f

)(

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

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

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

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

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

156

7.4 Simulação de corpo rígido

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

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

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

158

7.4 Simulação de corpo rígido

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

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– Da raiz para fora

•Atualiza valores– Do endeffector para dentro

•Calcula acelerações– Da raiz para fora

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

160

7.4 Simulação de corpo rígido

Vetores relacionando coordenadades de um frame para o outroui é 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.

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

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

v

v

ˆ

a

a

ˆ

aMf

f ˆˆˆ

I

mM

0

ii

ii du

us

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

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

0

0

0

xy

xz

yz

rr

rr

rr

r

RRr

RFXG

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

163

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

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

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

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

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

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

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

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

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

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

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

)(E

E

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

169

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

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

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

0

00 )(F

EtFdt

d)(

EhtFtF ii )()( 1

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

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íciee é uma posição no espaço

),( vuP

),( vuN

)(xI

vux

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

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

Q

P

2QvuPE ),(

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

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

2),(),( bb

baa

a vuPvuPE

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

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 1

2 ),(),(),(),( bb

baa

abb

baa

a vuNvuNvuPvuPE

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

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

2))),((( aaab vuPIE

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

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 gradiente12

)),((

)),((),())),(((

aaab

aaab

aaa

aaab

vuPI

vuPIvuNvuPIE

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

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

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

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

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

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

)(tx

)(tf

0 mgtftxm )()(

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

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

)(tf

)( 0tx )( 1tx2f

1

0

2t

t

fR

)(tf)(tx

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

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

211

1

2

h

xxxx

h

xxx

iiii

iii

02

211

mgf

h

xxxmp iii

i

0

01

bxc

axc

nb

a

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

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

jS R0)( ji SC

jS ix if

jS R iC

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

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

R

iC

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

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

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

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

j

iij S

CJ

jiij SS

RH

2

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

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

jjjiji

jjij

i

SSJC

SHRS

)~ˆ(

ˆ

jjj SSS~ˆ