1.9k likes | 2.06k Views
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
E N D
Animação por ComputadorCapítulo 7Animaçã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 7.5 Forçando restrições flexíveis e rígidas
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
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
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
7.1 Física básica - Revisão • Física baseada nas Leis de Newton • Relação entre força, aceleração e massa • O animador deve especificar todas as forças que podem acontecer no ambiente • Deve-se determinar todas as forças agindo em cada objeto • Aceleração dele será calculada
7.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
7.3 Sistema de partículas • Algoritmo em alto nível para cada frame • Cria novas partículas durante um frame • São dados atributos às partículas • As partículas que gastaram todo o tempo de vida atribuído são extintas • Partículas ativas são animadas e seus parâmetros de sombreamento são mudados de acordo com o processo • As partículas são renderizadas
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
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)
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
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
7.3 Sistema de partículas • 7.3.4 Animação das partículas • Cor e transparência podem ser funções do tempo • Formato pode ser função da velocidade tempo velocidade
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
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
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
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
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
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
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
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
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
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
7.4 Simulação de corpo rígido Calculo de forças ventogravidade viscosidade ... Propriedades do objeto posiçãovelocidades angular e linearmomento angular e linearmassa ... Calculo das mudanças posição velocidade Momento ... Calculo das acelerações baseado na massa
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