Interpolação
Interpolação
• Princípio
– Alterar a posição espacial de um ponto de forma
incremental
• Questões fundamentais
– Qual a função de interpolação mais adaptada para
cada situação?
– Como parametrizar as funções de interpolação com
base na distância percorrida?
– Como assegurar o controlo da posição ao longo do
tempo?
– Definidos os key-frames, como gerar os in-betweens
da maneira mais eficaz?
1
Interpolação
• Existem 3 tipos de equações:
– Equações explícitas: y = f(x)
• Adequadas para a geração de novos pontos
– Equações implícitas: f(x,y) = 0
• Boas para conservar a consistência
– Equações paramétricas: x = f(t) e y = g(t)
• Adequadas para gerar sequências de pontos
• Classificadas de acordo com o grau dos seus termos: linear
(grau 1), quadrática (grau 2), cúbica (grau 3), transcendental
(sin, cos, ...)
Interpolação
• Representação paramétrica:
– Aproximação por polinômios que definem
partes de uma curva ou superfície (piecewise
polynomials)
• Parâmetro (t) é usado para percorrer a
curva
– x(t) = fx(t)
– y(t) = fy(t)
– z(t) = fz(t)
2
Interpolação
• Representação paramétrica
• Exemplo: círculo
x(t) = r . sin(t)
y(t) = r . cos(t)
0 <= t < 2π
Interpolação
• Interpolação linear
3
Interpolação
• Equação da curva Bézier 4 pontos
C3(t) = (1-t)3 * P1 + 3 * t * (1-t)2 * P2 + 3 * t2 * (1-t) * P3 + t3 * P4
Interpolação
• Escolha da função adequada
– Algumas técnicas
•
•
•
•
Interpolação linear
Hermite
Catmull-Rom
Bézier, etc.
– Como escolher a função adequada?
•
•
•
•
Interpolação ou aproximação
Complexidade
Continuidade
Controlo local ou controlo global
4
Interpolação
• A função adequada
– Interpolação ou Aproximação
• Interpolação: Hermite, Catmull-Rom spline
• Aproximação: Bézier, curvas B-spline
Interpolação
• A função escolhida
– Influi na eficiência do algoritmo
– Funções polinomiais de ordem maior que
cúbica não oferecem vantagens que
compensem o seu uso (em termos de
precisão e no caso geral)
5
Interpolação
• A função escolhida
– Continuidade
• Propriedade muito
importante
• Métodos adequados:
–
–
–
–
–
Hermite
Catmull-Rom
Blending de parábolas
Curvas Bézier cúbicas
etc.
Interpolação
• A função escolhida
– Controlo local ou controlo global?
6
Interpolação
• A função escolhida
– Métodos mais usados
• Bézier
• Catmull-Rom spline
– Curva passa por todos os pontos
– Continuidade tangencial
Interpolação
• Métodos mais usados
– Exemplo:
http://www.mvps.org/directx/articles/catmull/
7
Movimento ao longo de uma curva
• A que velocidade deve uma curva ser
percorrida?
• O animador deve ser capaz de controlar a
velocidade para poder produzir os resultados
desejados
• Primeiro passo
– Fornecer ao animador métodos para percorrer uma
curva em velocidade constante
• Segundo passo
– Permitir aceleração e desaceleração
Movimento ao longo de uma curva
• Dada uma função de interpolação P(u) que produz para
um dado u um valor p = P(u)
• Variação de u constante, não significa variação de p
constante
8
Movimento ao longo de uma curva
• Como manter a velocidade constante?
– Para manter a variação de p constante, a
função de interpolação deve ser
parametrizada de acordo com o comprimento
do arco (distância total)
Movimento ao longo de uma curva
• Como calcular o comprimento do arco?
– Opção 1: criar uma simplificação da curva e assumir o
comprimento do arco como a soma das distâncias
lineares entre os pontos de amostragem
– Opção 2: usar quadratura Gaussiana para estimar
numericamente o comprimento do arco
– Opção 1 e 2, pode-se usar subdivisão adaptativa para
controle de erros
– Opção 3: calcula o comprimento do arco de forma
analítica
• Não é possível para vários tipos de curvas
9
Movimento ao longo de uma curva
• Subdivisão adaptativa
Movimento ao longo de uma curva
•
Cálculo do comprimento do arco
•
Função de interpolação
•
Caminho do objecto
•
Movimento ao longo de uma curva
P(u) = au3 + bu2 + cu + d
– curva no espaço
– Definido por um polinomio do terceiro grau
10
Movimento ao longo de uma curva
• Cálculo do comprimento do arco
– Curva que define o caminho pode ser
uma qualquer (e.g. Bézier)
– Qual a função que relaciona o tempo
com a posição ao longo da curva?
– Dois problemas a resolver:
• Dados dois pontos P(u1) e P(u2),
encontrar a função Length(u1,u2)
• Dado um comprimento de arco s e um
ponto P(u1), encontrar um ponto P(u2)
tal que Length(u1,u2) = s
Movimento ao longo de uma curva
• Cálculo do comprimento do arco
– Passo 1: estabelecer a relação entre
parâmetros (u) e comprimento do arco (s)
• Especificar função s = G(u) que calcule, para cada
u, o comprimento de arco a partir de u0.
• Se inversa G-1 puder ser calculada (ou estimada),
a curva pode ser parametrizada de acordo com o
seu comprimento através de P(G-1(s))
– Passo 2: especificar em quanto tempo uma
dada distância deve ser percorrida
11
Movimento ao longo de uma curva
• Cálculo da velocidade
– Só funciona se a interpolação for
parametrizada relativamente ao comprimento
da curva
– Time-steps constantes significam velocidade
também constante
• s(t) é uma função linear
– Para resultados mais interessantes (e.g.
aceleração/desaceleração), usar time-steps
variáveis.
Movimento ao longo de uma curva
• Cálculo da velocidade
• Função s(t) deve ser contínua e monotónica
• Não devem haver saltos de velocidade (manter
continuidade de primeira ordem C1)
• Pode ser definida de forma gráfica e interactiva
12
Movimento ao longo de uma curva
• Cálculo da velocidade
– Forma automática
• Secção de curva de seno de –π/2 até π/2
• Mapear valores de -1 a 1 no intervalo 0 a 1
Movimento ao longo de uma curva
13
Rotações representadas por
Quaternions
• Usam-se porque:
– São facilmente interpoladas
– Não causam o efeito gimbal lock
– Unidade quaternion = um ponto sobre esfera
unitária
– Interpolação linear directa, (ao contrário dos
outros métodos), gera movimento não-linear
Rotações representadas por
Quaternions
• Representadas no
espaço 4D
• Interpolação linear entre
2 quaternions (espaço
4D) não produz
intervalos regulares na
esfera unitária
• Exemplo análogo
• Interpolação linear entre 2
pontos num círculo 2D
14
Rotações representadas por
Quaternions
• Para obter rotação com
velocidade constante, calcula-se
orientações intermediárias
directamente na superfície da
esfera unitária
– Interpolação entre 2 quaternions
• Um quaternion [s,v] e sua
negação [-s,-v] representam a
mesma orientação.
• Escolher entre quais interpolar
(caminho mais curto)
– q1 e q2 ou
– q1 e - q2
Rotações representadas por
Quaternions
• Como determinar o caminho mais curto?
– Produto escalar (4D) entre os dois quaternions calcula
o coseno do ângulo entre q1 e q2
– Se coseno positivo, caminho mais curto é entre q1 e
q2
– Caso contrário, mais curto é entre q1 e - q2
– Fórmula para interpolação linear esférica entre dois
quaternions, considerando u entre 0 a 1 corresponde a
15
Rotações representadas por
Quaternions
• Problemas podem persistir:
– Ao interpolar vários pares de quaternions, a
continuidade C2 e suavidade do movimento
não é garantida
– Solução: usar interpolação cúbica de Bézier
entre os vários quaternions
Seguir Caminhos
• Seguir um caminho requer mais do que
interpolação ao longo de uma curva
• A orientação do objecto ao longo do caminho
também deve ser considerada
– Ex: objecto = câmara virtual
• Eventualmente, o caminho precisa ser suavizado
– Ex: Controlo interactivo do movimento
• Por vezes: percorrer caminho sobre um outro
objecto
16
Orientação ao longo de Caminho
• Define-se um sistema
de referência (u,v,w)
centrado em um
ponto ao longo do
caminho
• w e v são definidos e
u é calculado
• O sistema de
referência (u,v,w) é
móvel
Suavização de Caminho
• Vários métodos
• Interpolação linear
dos valores
adjacentes
• Aplicações repetidas do
método tendem a reduzir
concavidades
17
Suavização de Caminho
• Ainda outros métodos
– Interpolação cúbica dos valores adjacentes
(curva parabólica)
– Suavização por núcleos de convolução
– Suavização por aproximação B-spline
Caminho ao longo de Superfície
• Dados os pontos inicial e final do caminho
encontrar os pontos intermédios
• Custo computacional para achar o melhor
caminho é elevado
• Existem alternativas para encontrar
caminhos sub-optimais:
– Determinar o plano que contém o ponto de
partida e o ponto de chegada e que é
perpendicular à superfície
– A intersecção desse plano com os vários patchs
da superfície define os pontos do caminho
18
Sistemas Key-frame
Sistemas Key-frame
• O termo key-frame vem da animação tradicional
• Foi generalizado para animação por computador
– Aplicado a cada variável cujo valor é definido num frame (quadro)
específico, que deve ser interpolado de acordo com um
procedimento dado
– Também conhecidas como articulation variables (avars)
• Sistemas key-frame são também designados track based
• Possível especificar interactivamente os dados
19
Sistemas Key-frame
Sistemas Key-frame
• C(t) obtida através de técnicas de surface patch
• Técnicas relativas a uma dimensão superior em 1
20
Download

Interpolacao - Extras