1 / 194

Animação por Computador Capítulo 3 Interpolando Valores

Animação por Computador Capítulo 3 Interpolando Valores. CRAb – Grupo de Computação Gráfica Departamento de Computação UFC. Sumário do Capítulo 3. 3.1 Interpolação 3.2 Controlando o movimento de um ponto sobre uma curva 3.3 Interpolação de orientações 3.4 Trabalhando com caminhos.

afi
Télécharger la présentation

Animação por Computador Capítulo 3 Interpolando Valores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Animação por ComputadorCapítulo 3Interpolando Valores CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

  2. Sumário do Capítulo 3 3.1 Interpolação 3.2 Controlando o movimento de um ponto sobre uma curva 3.3 Interpolação de orientações 3.4 Trabalhando com caminhos

  3. 3.1 Interpolação

  4. 3.1 Interpolação Base da animação Não é trivial Calcular o comprimento de arco (arc length) Função adequada de interpolação Parametrização da função com base na distância percorrida Controlar a posição interpolada ao longo do tempo

  5. 3.1 Interpolação Geralmente guardam-se parâmetros associados a um keyframe Parâmetro a ser interpolado: Coordenada de um objeto Ângulo da articulação de um robô Quaisquer outros parâmetros usados na manipulação e visualização de elementos gráficos

  6. 3.1 Interpolação Exemplo (5, 10, 0)Frame 80 (5, 0, 0)Frame 67 (-5, 0, 0)Frame 22

  7. 3.1 Interpolação 3.1.1 A Função Apropriada Escolher a técnica de interpolação mais adequada e como aplicar na animação Questões a serem consideradas: Interpolação vs Aproximação Continuidade Controle global vs Controle local Complexidade

  8. 3.1 Interpolação 3.1.1 A Função Apropriada Interpolação vs Aproximação Valores apresentados representam posições reais que a curva deve passar Apenas controlam a forma da curva e não representam posições reais

  9. 3.1 Interpolação 3.1.1 A Função Apropriada Interpolação vs Aproximação Funções usadas para interpolação: Formulação de Hermite Requer a tangente das extremidade Spline Catmull-Rom Semelhante: Parabolic Blending Apenas as posições que a curva deve passar Funções usadas para aproximação Bezier B-spline

  10. 3.1 Interpolação 3.1.1 A Função Apropriada Complexidade Influencia na eficiência computacional Funções mais simples => calculo mais rápido Na pratica o mais usado é: Polinômio cúbico Ordem baixa porém consegue-se suavidade necessária Fácil de se satisfazer outras restrições Posição inicial e final Tangente

  11. 3.1 Interpolação 3.1.1 A Função Apropriada Continuidade Relativa a um ponto da curva Tipos C0 : ordem zero ou continuidade posicional C1 : primeira ordem ou continuidade tangencial C2 : segunda ordem ou continuidade de curvatura

  12. 3.1 Interpolação

  13. 3.1 Interpolação 3.1.1 A Função Apropriada Continuidade Em geral basta continuidade de 1ª ordem Exemplos de continuidade de 1ª ordem Hermite Catmull-Rom Parabolic Blending Curva de bezier B-spline cubica é um exemplo de continuidade de 2ª ordem Normalmente curvas possuem vários segmentos

  14. 3.1 Interpolação 3.1.1 A Função Apropriada Controle Global vs Controle Local Global Reposicionamento de um ponto redefine a curva toda Local Reposicionamento de um ponto ajusta apenas uma parte da curva Quase todas as curvas compostas fornecem o controle local Em geral é o melhor

  15. 3.1 Interpolação

  16. 3.2 Controlando o movimento de um ponto sobre uma curva

  17. 3.2 Controlando o movimento de um ponto sobre uma curva É necessário conhecer a relação: Mudança no parâmetro da função Distância ao longo da curva Assim é fácil por velocidade de acordo com o desejado.

  18. 3.2 Controlando o movimento de um ponto sobre uma curva Definições Assumi-se que uma técnica de interpolação foi escolhida A função para a curvaé escolhida Para cada valor é gerado um ponto no espaço Os valores dos ponto de keyframes são escolhidos pelo animador Os valores nos eixos são independentes

  19. 3.2 Controlando o movimento de um ponto sobre uma curva Observação Variações constantes no tempo não geram variações de posição constantes

  20. 3.2 Controlando o movimento de um ponto sobre uma curva Para garantir que a velocidade seja constante: A função de interpolação tem que ser parametrizada pelo comprimento de arco A maioria das aplicações é reparametrizada Analiticamente Raramente pode ser usada Métodos numéricos Cria tabelas estabelecendo relação entre o parâmetro e o comprimento de arco

  21. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Problema prático Ao invés de especificar a posição/tempo, especifique-se: Objeto parte do repouso em A Acelera suavemente até frame 20 Mantém velocidade constante até o frame 35 Desacelera suavemente até o frame 60 parando ao final da curva Estas restrições podem ser obtidas com um sistema que computa a distância ao longode qualquer parte da curva

  22. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Assumindo que a posição do objeto será interpolada Objetivo Definir uma função paramétrica que ache um ponto no espaço tridimensional

  23. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Definições importantes “Curva espacial” Refere-se ao espaço a percorrer Dada pela função de interpolação “Função distância-tempo” Refere-se a como o objeto desliza sobre a curva Dependendo desta função, pode-se dar uma impressão diferente na animação Velocidade nula no ponto mais alto Velocidade constante

  24. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Definições importantes A função que calcula o comprimento de arco Quando se trata de um valor especifico Se for em função do tempo Uma função de comprimento de arco que calcula o valor paramétrico

  25. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Estabelecendo a relação entre ‘distancia percorrida’ e o ‘valor paramétrico’ Parametrização pelo comprimento do arco Permite uma velocidade constante pela curva se for resolvido para tamanhos iguais de comprimento de arco Mais adiante será possível acelerar controlando o espaço percorrido em um dado intervalo

  26. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco A função calcula a distância entre dois pontos, e , na curva Problemas a serem resolvidos Dados e achar Dado o comprimento e o parâmetro , achar , tal que

  27. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco Se a função inversa de puder ser calculada, ou estimada, a curva pode ser parametrizada Isto é, achar o ponto

  28. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Analiticamente) A distancia de a pode ser achada pela integral: onde:

  29. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Analiticamente) Para uma curva cúbica, temos: Para a coordenada x: Depois de elevar ao quadrado:

  30. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Analiticamente) Par um caso bidimensional, ficaria:

  31. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Estimativa São feitas amostras com vários valores paramétricos Sendo cada valor é um ponto na curva Serão utilizados para aproximar o arco por um seguimento de reta entre dois pontos É feito uma tabela com os valores: Index Valor paramétrico Comprimento de arco Do inicio da curva até o ponto

  32. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Exemplo

  33. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Exemplo Qual valor do arco do começo da curva até o ponto ? Index do valor mais próximo onde d é a distancia entre os valores paramétricos e v é o valor paramétrico dado.:

  34. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Exemplo Qual valor do arco do começo da curva até o ponto ? É possível fazer uma interpolação dos valores para ser mais exato: Index do menor valor mais próximo

  35. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Exemplo Qual valor do arco do começo da curva até o ponto ? É possível fazer uma interpolação dos valores para ser mais exato:

  36. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Para achar a distância entre dois pontos(problema 1) Fazer o mesmo procedimento anterior para os dois pontos e subtrair as distâncias Achar o valor paramétrico para um dado comprimento de arco Semelhante ao anterior

  37. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Exemplo Qual valor paramétrico do ponto onde o comprimento de arco do começo da curva até ele é de ? O comprimento mais próximo na tabela é deque corresponde ao valor paramétrico Interpolando valores, temos:

  38. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Para achar o ponto a uma dada distância de outro ponto dado (problema 2) A tabela pode ser usada para achar o comprimento de arco, , associada ao ponto dado Reformulando o problema: Achar o ponto onde a distancia é:

  39. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Forward Differencing) Vantagens Intuitivo Fácil de implementar Desvantagem Os cálculos adicionam erros Erro global pode ser diminuído Curva for super amostrada Interpolação de grau maior

  40. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) É uma adaptação do método anterior Menos erros Investe mais cálculos nas partes da curva que causam mais erros

  41. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) O método começa com o seguimento de curva completo Cria uma tabela como no método anterior Cada elemento da tabela associa um valor paramétrico com seu comprimento de arco Também pode ser guardado o ponto Estrutura apropriada: Lista encadeada

  42. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) Método em alto nível Faz uma estimativa do tamanho do seguimento Faz estimativa do tamanho das duas metades do seguimento Testa com uma certa tolerância Faz (ou não) novamente o procedimento com as metades Problema em estágios iniciais

  43. 3.2 Controlando o movimento de um ponto sobre uma curva

  44. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) A tabela começa com o primeiro ponto da curva A lista de elementos para serem testados começa com a curva inteira O procedimento acaba quando a lista de elementos a serem testados ficar vazia

  45. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) Testa-se sempre o primeiro elemento da lista Se o elemento passar pela tolerância É adicionado em as duas metades Do início ao meio, onde o seu foi conseguido fazendo a soma do com a aproximação do ponto inicial ao ponto do meio Meio ao final onde o seu foi conseguido semelhante ao caso anterior

  46. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Método adaptativo) Testa-se sempre o primeiro elemento da lista Se esse elemento não passar As duas metades são adicionadas em A cada nível da subdivisão a tolerância também é dividida ao meio

  47. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Estimando numericamente a integral) Muitas técnicas aproximam a integral Regra do trapézio e Simpson Espaçamentos uniformes Quadratura de Gauss Espaçamentos não uniformes Tentando conseguir melhor exatidão Diminui o número de vezes que a função é estimada

  48. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Estimando numericamente a integral) Quadratura de Gauss Normalmente definida

  49. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Estimando numericamente a integral) Quadratura de Gauss Mas pode alcançar qualquer limite definindo a função , onde Tendo também: onde

  50. 3.2 Controlando o movimento de um ponto sobre uma curva 3.2.1 Calculando o comprimento de arco (Estimando numericamente a integral) Quadratura de Gauss Fazendo substituição, temos:

More Related