1.47k likes | 1.59k Views
Animação por Computador Capítulo 4 Animação baseada em Interpolação. CRAb – Grupo de Computação Gráfica Departamento de Computação UFC. Sumário do Capítulo 4. 4. Introdução 4.1 Sistema de key-frames 4.2 Linguagens de animação 4.3 Deformando objetos
E N D
Animação por ComputadorCapítulo 4Animação baseada em Interpolação CRAb – Grupo de Computação Gráfica Departamento de Computação UFC
Sumário do Capítulo 4 4. Introdução 4.1 Sistema de key-frames 4.2 Linguagens de animação 4.3 Deformando objetos 4.4 Interpolando formas tridimensionais 4.5 Morphing (2D)
4. Introdução • Metodos para especificar o movimento de objetos • Técnicas Baixo nível vs. Alto nível Esse capítulo Capítulos mais a frente
4.1 Sistema de key-frames • Sistemas antigos: • Versão computadorizada da animação em key-frame (por desenhistas) • Key-frame (generalização) • Variável cujo valor é definido em um key-frame • Variáveis de articulação (avars ) • Exemplos de sistemas 3D: • TWIXT • BBOP
4.1 Sistema de key-frames • Usuário pode manipular as curvas:
4.1 Sistema de key-frames • Interpolação: • Curva → Curva • Correspondência ponto-a-ponto em cada par de key-frame • Porém nem tem o resultado desejado
4.1 Sistema de key-frames • Interpolação: • Curva → Curva • Correspondência curva-a-curva • Complicado
4.1 Sistema de key-frames • Interpolação: • Curva → Curva • Exemplo simples
4.1 Sistema de key-frames • Interpolação: • Exemplo simples • Assume-se • Uma única curva • Continua • Aberta • Todas as propriedades devem permanecer nos frames intermediários • Bijeção • P(0) deve ser interpolado com Q(0) • O mesmo com o ponto final e todo o intermediário
4.1 Sistema de key-frames • Interpolação: • Exemplo simples • Se fossem curvas geradas com o mesmo tipo de informação de interpolação • Se fossem curvas de Bezier • Interpolar os pontos de controle • Gerar as curvas com o mesmo número de pontos • Usar interpolação ponto a ponto • Pode não dar controle suficiente para o usuário
4.1 Sistema de key-frames • Interpolação: • Exemplo simples • Restrições de ponto em movimento (moving point constraints) • Usuário pode especificar informações • Correspondência entre os pontos • Velocidade
4.2 Linguagens de animação • São constituídas de comandos estruturados para produzir uma animação • A maioria é baseada em script • É composta de instruções textuais • Algumas aceitavam inputs do usuário
4.2 Linguagens de animação • As primeiras linguagens de animação • Usavam linguagens “puras” • Ex: Fortran • Não tinham suporte para animação • Em cada animação nova era necessário • Refazer as primitivas • Estrutura de dados • Transformações • Renderizador
4.2 Linguagens de animação • Provêm suporte à animação • Implementam API • OpenGL • SDL • Java APIs... • Ou alguma especializada para animação
4.2 Linguagens de animação • Características típicas • Input/Output de objetos gráficos • Estrutura de dados para representar os objetos • Composição hierárquica dos objetos • Variavel de tempo • Funções de interpolação • Funções para animar hierarquias • Transformações afins • Parâmetros para especificar renderização • Especificar câmera • Habilidade de renderizar, visualizar e guardar um ou mais frames de uma animação
4.2 Linguagens de animação • Vantagens em usar uma linguagem de animação • Código • A animação pode ser refeita a qualquer hora • Fácil copia e transmissão • Refinado interativamente • Modificado incrementalmente • Nova animação gerada • Abordagem algorítmica para controle de movimento
4.2 Linguagens de animação • Desvantagens em usar uma linguagem de animação • É necessário que o animador seja um programador • Além de ter que entender de artes
4.2 Linguagens de animação • 4.2.1 Orientada a artista • Projetadas para facilitar o trabalho de artistas não-familiares com programação • Sintaxe simples • Fácil compreensão • Exemplo • “ANIMA II” set position <name> <x> <y> <z> at frame <number> set rotation <name> [X,Y,Z] to <angle> at frame <number> change position <name> to <x> <y> <z> from frame <number> to frame <number> change rotation <name> [X,Y,Z] by <angle> from frame <number> to frame <number>
4.2 Linguagens de animação • 4.2.1 Orientada a artista • Têm seu poder reduzido • Por causa da eliminação das construções de linguagem • Desenvolvedores começaram a adicionar laços, chamadas de procedimento, suporte a estruturas de dados... • Alternativa: • Adicionar suporte a objetos gráficos a linguagens como C, C++, Java, Python
4.2 Linguagens de animação • 4.2.2 Com vários recursos • Essencialmente interface de usuário sobre o script • Intercâmbio entre: • Comodidade • Através da interface • Poder • Diretamente através do código
4.2 Linguagens de animação • 4.2.2 Com vários recursos • Exemplo • “MEL” • Linguagem interpretada • Testes rápidos • Execução lenta • Possui • Variáveis • Instruções de controle • Procedimentos • Expressões • Acesso à atributos do objeto • Customizar interface com o usuário
4.2 Linguagens de animação • 4.2.2 Com vários recursos • Exemplo • “MEL” $number_of_cubes = 10; $delta = 10; $i = 0; while($i++ < $number_of_cubes){ polyCube; scale 1 10 1; $dist = $i*$delta; move$dist 0 0; }
4.2 Linguagens de animação • 4.2.3 Variáveis de articulação • Usada em varias linguagens • Associadas com uma função • Normalmente do tempo • Pode ser: • Um procedimento • Calculado interativamente com funções de interpolação • Técnica conhecida por vários nomes • Track • Channel • Articulation Variables (avars)
4.2 Linguagens de animação • 4.2.3 Variáveis de articulação • Deixa o sistema interativo • Deixa que funções complexas serem incorporadas • Associadas a certo avar
4.2 Linguagens de animação • 4.2.4 Linguagens Gráficas • Representam uma animação através de uma rede dataflow
4.2 Linguagens de animação • 4.2.4 Linguagens Gráficas • Objetos, operações e suas relações representados por um grafo acíclico • Um nó é uma operação a ser aplicada sobre os dados recebidos do nó anterior • Efetivo no desenvolvimento visual e na representação de dependências • Computações • Funções • Valores
4.2 Linguagens de animação • 4.2.5 Baseadas em Atores • Orientação a objetos • Atores: objetos gráficos associados a geometria, atributos e movimento • Facilita a identificação de informações que variam no decorrer do tempo • Pode resultar em ineficiências para simulações, onde cada objeto pode afetar todos os demais
4.3 Deformando objetos • Tornar a animação mais próxima da realidade • Noção de maleabilidade e densidade • Controle preciso da forma do objeto • Não se tem isso em simulações físicas, além de serem mais caras • Objetos com conectividade em arestas • Key-frames deformados • Interpolação vértice-a-vértice
4.3 Deformando objetos • Perguntas • O que são formas? • Quando duas formas são diferentes? • Escala uniforme não muda a forma • Transformadas afins mudam, as vezes, a forma dos objetos • Modela • Squash and strech • Movimentação (jiggling) • Cisalhamento • Transformações não afins • Conseguem deformações mais interessantes
4.3 Deformando objetos • 4.3.1 Selecionando e puxando • Deformar um objeto • Vértice-a-vértice • Cansativo para um grande número de vértices • Conjunto de vértices • Mesmo deslocamento • Restritivo
4.3 Deformando objetos • 4.3.1 Selecionando e puxando • Usuário escolhe um ou vários vértices semente • Há uma propagação do deslocamento para seus vértices vizinhos • O deslocamento é atenuado ao longo da malha • Em função da distancia da semente ao vértice em questão
4.3 Deformando objetos • 4.3.1 Selecionando e puxando • Função da distancia • Trade off da qualidade e complexidade • Tipos: • Usar o menor número de arestas entre a semente e o vértice • A menor distância sobre a superfície da semente até o vértice
4.3 Deformando objetos • 4.3.1 Selecionando e puxando • Usuário escolhe uma função de controle de atenuação • Potência Onde é o numero de arestas até a semente, é um fator de escala • , atenuação linear • , efeito elástico • , efeito rígido
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão • Método: • É definido um sistema em coordenadas locais que englobe a área do objeto a ser distorcida • É feita a distorção • É recalculado os vértices do objeto em coordenadas globais • É uma técnica um pouco mais intuitiva do que manipular vértice por vértice
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Sistema em coordenadas locais: • Grade bi-dimensional alinhada com os eixos
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Ponto A • Coordenadas globais: ( 25.6 , 14.7 ) • Coordenadas locais: ( 5.6 , 2.7 )
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Após a distorção da grade é feita uma interpolação bi-linear em relação a célula
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Interpolação Bi-linear
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Interpolação Bi-linear • Novo ponto A
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Grade 2D) • Objeto distorcido:
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Distorção por polyline) • Sistema em coordenadas locais: • Polyline • Linhas de fronteiras • Em cada junção dos seguimentos de reta é feito uma linha de interseção • Nos extremos da polyline é feito uma linha perpendicular ao último segmento de reta • Servem para localizar o segmento de reta mais próximo de cada vértice do objeto
4.3 Deformando objetos • 4.3.2 Deformando um espaço de imersão (Distorção por polyline)