computaÇÃo grÁfica aula 05 prof. edison oliveira de jesus

35
COMPUTAÇÃO GRÁFICA COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

COMPUTAÇÃO GRÁFICACOMPUTAÇÃO GRÁFICA

Aula 05

Prof. Edison Oliveira de Jesus

Page 2: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Assuntos abordados nesta Assuntos abordados nesta aulaaula

Animação 2D

Page 3: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

ConceitosConceitos

Animar significa trazer à vida;

Embora, animação é muitas vezes confundida com movi-mento, ela pode ser produzida através de transformações de posições, cores, estrutura, textura, iluminação do objeto da cena;

Animação é largamente usada na industria de entreteni-mento ( jogos ), educação e cientifica, principalmente neste ultimo caso em simulação de fenômenos científicos.

Page 4: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Hoje em dia, muitas das técnicas de animação estão imple-mentadas em hardware, tendo em vista a necessidade de rapidez na resposta das operações;

Não confundir aqui animação tradicional, feita para o cinema, ou seja, aqui a animação é assistida pelo computa-dor e portanto, muitas das técnicas utilizadas são diferentes das primeiras.

Page 5: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

ConceitosConceitos

Animação fundamenta-se nos conceitos de imple-mentação e controle.

A implementação envolve o mecanismo de criação da ilusão de movimento na tela;

O controle está relacionado ao gerenciamento do conteúdo da própria animação

Page 6: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

ImplementaçãoImplementação

Implementação é a interface entre o software e o hardware.

A implementação refere-se aos algoritmos depen-dentes de hardware e o código que produz a ilusão de movimento na tela.

A implementação é facilitada por meio de dois tipos diferentes de instrumentos de animação: Animação em tempo real; Animação de quadro;

Page 7: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação em tempo realAnimação em tempo real

Este tipo de animação refere-se a seqüências ani-madas nas quais cada elemento de imagem é de-senhado pelo software enquanto a animação está sendo apresentada;

Cada quadro usualmente é criado por um bitmap oculto e copiado para a tela depois de pronto.

A animação em tempo real é também chamada de animação baseada em elenco;

Page 8: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação de quadrosAnimação de quadros

Este tipo de animação refere-se a seqüências ani-madas que buscam e apresentam quadros previa-mente desenhados;

Os quadros usados para uma seqüência de ani-mação baseada em quadros, podem ser armaze-nados na memória ou no disco rígido da máquina;

Page 9: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Paradigmas da animaçãoParadigmas da animação

Independentemente de se estar usando animação em tempo real ou de quadro, a implementação da animação é baseada num dos 4 paradigmas se-guintes:

Loop fixo;

Loop ocioso;

Manipulador de mensagem baseado no tempo;

Chamada direta baseada no tempo.

Page 10: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Loop fixoLoop fixo

Um loop fixo é um bloco de código que é executado repetidamente para um número predefinido de iterações;

Enquanto o loop está sendo executado, outros aplicativos no ambiente de desenvolvimento ficam impedidos de serem executados ( por exemplo no Windows );

O loop fixo monopoliza todos os recursos do sistema;

O código de loop fixo é útil para trechos de animação muito curtos, contanto que a seqüência de animação seja suficien-temente breve para não afetar de maneira adversa outros aplicativos que estão em execução.

Page 11: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Loop ociosoLoop ocioso

Neste tipo de programação, em vez de monopolizar todo o sistema, o aplicativo faz chamadas às funções que controlam o ambiente de programação para verificar se há entradas do usuário enquanto o loop está sendo executado.

Isto dá o ambiente de programação, oportunidade para servir aos outros aplicativos enquanto processa o módulo de animação;

neste caso, a seqüência de animação só é processada se o resto do sistema estiver ocioso, ou seja, se nenhum outro aplicativo precisar do tempo de processador.

Page 12: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Manipulador de mensagem Manipulador de mensagem baseado no tempobaseado no tempo

Os algoritmos baseados no tempo oferecem o meio mais eficaz de controlar a execução de animação, pois combinam de um modo contínuo com a maneira pela qual o sistema do ambiente faz as coisas.

Exemplo: depois que a ferramenta TIMER foi ativada, o sistema

operacional envia eventos de temporização regulares para o aplicativo;

Cada evento destes pode ser utilizado como uma suges-tão para exibir o próximo quadro, construindo-se assim uma seqüência de animação.

Page 13: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Esta abordagem é bastante versátil, visto que sempre que é recebida uma mensagem de tempo, o aplicativo de anima-ção pode chamar a função que autoriza a exibição do próxi-mo quadro.

Isto torna fácil a implementação de características de quadro congelado ou ainda, quadro passo a passo.

Page 14: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

ControleControle

O controle é a interface entre o assunto objeto e o software.

Tipos de controles:

Animação tradicional, assistida por computador;

Animação procedural;

Animação física.

Page 15: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação assistida por Animação assistida por computadorcomputador

Teve origem em torno de 1820 durante jogos de salão, onde folhas de celulóide eram empilhadas e iluminadas por baixo a fim de dar a impressão de movimento;

Em cada folha há uma imagem desenhada a mão de um elemento de desenho ( cartoon ) ou um fundo.

Os programas de desenho animado na televisão são exemplos deste tipo de animação.

Page 16: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Quando a animação é controlada por computador, o processo é denominado Computer Assisted Traditional Animation, ou animação tradicional assistida por computa-dor ou animação por script.

A animação por script ( roteiro ) é gerenciada por um roteiro das atividades a serem executadas.

As entidades individuais ( atores ) movimentam-se em frente a uma superfície de fundo; Os atores podem ser caracteres, adereços ou elementos de cenário.

Page 17: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Regras de animaçãoRegras de animação

Algumas regras de animação podem ser aplicadas no pro-cesso de animação tradicional:

Deformação;

Mecanismo de câmera;

Encenação.

Page 18: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

deformaçãodeformação

Refere-se ao amassamento e esticamento de uma entidade da cena.

Por exemplo, uma bola que pula deve ser amassada ( comprimida ) cada vez que ela atinge um elemento do cenário, o solo, por exemplo.

Ela deverá ser esticada ( estendida ) quando pula de volta;

Deformações sutis como estas, acrescentam mais vida à animação.

Page 19: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Mecanismo de câmeraMecanismo de câmera

Este mecanismo está relacionado ao movimento de uma câmera.

Os princípios de slow-in e slow-out determinam que qual-quer movimento de câmera deve começar bem devagar e deve aumentar gradativamente até atingir a velocidade total.

Depois deve reduzir a velocidade gradualmente até parar suavemente.

Estes procedimentos evitam movimentos bruscos na animação.

Page 20: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

EncenaçãoEncenação

A encenação é responsável pela direção da animação.

Coreografia, temporização, roteiro, iluminação, entrada e saída de atores, cenários, e outras atividades são de responsabilidade da encenação.

Page 21: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação ProceduralAnimação Procedural

É a animação orientada para o objeto.

Durante a execução da animação, o software prepara o próximo quadro, calculando a próxima posição de cada entidade da cena;

Estes cálculos baseiam-se em regras de comportamento definidas pelo programador;

As regras descrevem o comportamento de uma entidade na própria cena e seu comportamento em relação a outras entidades da cena.

Page 22: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação FísicaAnimação Física

Este tipo de animação se utiliza das leis da física para controlar o movimento das entidades durante a execução da animação.

É também chamada de animação baseada em restrições, as quais são leis ou forças limitantes.

Por exemplo, na animação do movimento de uma bola, se a gravidade for considerada, a bola estará sendo empurrada para baixo. Neste caso, a força da gravidade é uma força de restrição ao movimento da bola. Quando a bola atinge a parede, ela não a penetra, e sim volta para trás. A bola não tem o poder de atravessar a parede. É uma restrição ao seu movimento.

Page 23: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

A animação física está relacionada com posições, veloci-dades, forças, massas e restrições.

Estes elementos envolvem os seguintes conceitos: Cinemática direta; Dinâmica direta; Cinemática inversa; Dinâmica inversa.

Cinemática envolve posições e velocidades das entidades na cena.

Dinâmica envolve as leis da física como força, massa e outras que governam as posições e velocidades.

Page 24: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Cinemática diretaCinemática direta

É o processo de calcular o que acontece quando é aplicada velocidade ou aceleração a uma entidade;

A cinemática direta não se preocupa com forças e massas, mas considera somente o movimento propriamente dito.

O aplicativo pode usar cinemática direta para verificar por exemplo, se duas entidades colidem durante uma seqüência de animação.

Page 25: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Dinâmica diretaDinâmica direta

É o processo de calcular o que acontece quando a força, cargas ou restrições são aplicadas a uma entidade.

Em geral, a dinâmica se preocupa com as leis da física que governam a cinemática.

O aplicativo pode utilizar dinâmica direta para calcular o movimento ( a cinemática ) de uma entidade que resulta de forças agindo sobre a entidade, assim como pode também calcular forças que resultam do movimento de uma entidade.

Por exemplo, a dinâmica direta pode obter as forças resul-tantes da colisão de duas entidades na cena.

Page 26: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Cinemática inversaCinemática inversa

É o processo de calcular a velocidade ou aceleração necessárias para mover uma entidade de uma localização para outra, durante um determinado período de tempo.

A cinemática inversa utiliza a localização de um alvo fornecido pelo programador e calcula o valor da velocidade ou aceleração necessária para mover a entidade até aquela localização.

Page 27: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Dinâmica inversaDinâmica inversa

É o processo de calcular as forças ou restrições necessárias para mover uma entidade que possui uma determinada massa, de uma localização para outra, durante um determinado período de tempo.

A dinâmica inversa usa a localização de um alvo fornecido pelo programador e calcula as forças necessárias para mover a entidade para aquela localização.

Page 28: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Animação InterativaAnimação Interativa

Este tipo de animação refere-se a um ambiente de execução de animação que proporciona formas do usuário influir no resultado da animação.

Ela é implementada usando-se um instrumento em tempo real, o qual proporciona a funcionalidade de animação tradi-cional assistida por computador, da animação procedural e da animação física.

Page 29: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Considerações BásicasConsiderações Básicas

Duas considerações sobre velocidade são fundamentais: Taxa de atualização da tela; Tempo de limpeza da tela;

Na animação cada imagem mostra na tela é chamada quadro ( frame ) ;

Mínima velocidade de atualização = 15 quadros / segundo Boa velocidade = 30 quadros / segundo

Page 30: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

exemploexemplo

Um frame de 280 x 192 pixels = 43760 pixels Na velocidade mínima cada frame deveriam estar sendo

atualizados em 1 / 15 segundos, que é uma taxa de atualização muito alta, mesmo para os mais rápidos computadores.

A solução é atualizar seletivamente partes da imagem.

Page 31: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Tempo de limpezaTempo de limpeza

Se o tempo de limpeza da tela for maior que 1 / 4 da velocidade de atualização , o flicker é produzido.

A solução neste caso é utilizar atualização via quadros.

Page 32: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

ColisãoColisão

Dois objetos colidem quando ocupam as mesmas coordenadas de tela;

Um método de detecção: Comparar as coordenadas de tela dos objetos; Se qualquer destas coordenadas forem iguais, houve

colisão; O problema com esta solução é o tempo gasto com este

cálculo. Exemplo: 2 objetos 10 x 10 cada resulta em 10000

comparações para detectar a colisão entre eles;

Page 33: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Outro método: Detectar os retângulos envolventes dos objetos.

Page 34: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus

Um problema do método: Nem sempre a interseção dos retângulos indica a colisão.

Page 35: COMPUTAÇÃO GRÁFICA Aula 05 Prof. Edison Oliveira de Jesus