licenciatura em engenharia informática e de computadores ... · leic cg 1º teste 26/10/2013...

49
Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Animação e Colisões © 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Upload: nguyenminh

Post on 19-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

Licenciatura em Engenharia Informática e de Computadores

Computação Gráfica

Animação e Colisões

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 2: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG1º Teste 26/10/2013Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo são dadas pelo ponto E e pelo vector DOF, respectivamente.

a) Apresente a matriz de transformação composta 𝑀"#→%&', que realiza a mudança do referencial do veículo (UV) para o sistema de coordenadas do mundo.

b) Indique as coordenadas do pisca direito, 𝑃%&', no referencial do mundo.

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

WCS

DOF

UEV

P

𝐷𝑂𝐹%&' = 1 1 .

𝐸%&' = 2 2 .

𝑃"# = 2 4 .

Page 3: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

𝑀"#→%&' = 𝑇 2, 2 4 𝑅 −45

=1 0 20 1 20 0 1

4cos −45 − sin −45 0sin −45 cos −45 0

0 0 1

=

2�2?

2�2? 2

− 2�2?

2�2? 2

0 0 1

?

1º Teste 26/10/2013

a) Apresente a matriz de transformação composta 𝑀"#→%&', que realiza a mudança do referencial do veículo (UV) para o sistema de coordenadas do mundo.

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

WCS

DOF

UEV

P

𝐷𝑂𝐹%&' = 1 1 .

𝐸%&' = 2 2 .

𝑃"# = 2 4 .

Page 4: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

𝑃%&' =

2�2?

2�2? 2

− 2�2?

2�2? 2

0 0 1

4241=

2� + 2 2� + 2− 2� + 2 2� + 2

1=

3 2� + 22� + 21?

1º Teste 26/10/2013

b) Indique as coordenadas do pisca direito, 𝑃%&', no referencial do mundo.

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

WCS

DOF

UEV

P

𝐷𝑂𝐹%&' = 1 1 .

𝐸%&' = 2 2 .

𝑃"# = 2 4 .

Page 5: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEICCG

AnimaçãoComputação Gráfica

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 6: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Tipos de Animação

Animação Tradicional

Claymation

Animação por key-frame

Animação por Interpolação Paramétrica

Animação Procedimental

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

CG

I

Page 7: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGAnimação “tradicional”

Page 8: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGClaymation

Page 9: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGCGI

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 10: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Definição

Modificação da cena ao longo do tempo

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 11: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 12: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Definição

Modificação da cena ao longo do tempo

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Objectos Câmaras Luzes

Page 13: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Características

Modificação da cena ao longo do tempo

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Objectos Câmaras Luzes

PosiçãoOrientaçãoDimensãoFormaCor

Page 14: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Características

Modificação da cena ao longo do tempo

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Objectos Câmaras Luzes

PosiçãoOrientaçãoFOV

PosiçãoOrientaçãoDimensãoFormaCor

Page 15: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Características

Modificação da cena ao longo do tempo

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Objectos Câmaras LuzesPosiçãoDireçãoIntensidadeCut-off

PosiçãoOrientaçãoFOV

PosiçãoOrientaçãoDimensãoFormaCor

Page 16: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

por Key-Frames

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Apenas algumas frames especificadas

Sistema gera frames intermédias automaticamente

Page 17: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Interpolação ParamétricaSéries de pares (tempo, parâmetros)

Interpola-se para determinar intermédios

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 18: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação

Procedimental

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Baseada nas leis da física

Sistema gera frames a partir da aplicação de fórmulase.g. x = x0 + v0 t + ½ at2

Page 19: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Animação Procedimental

Implementação Exemplo

Movimento de um carro ao longo de xxcom velocidade constante

now = getNow()delta = now-tx += v * deltat = now

limpa bufferdesenha cena

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Update

Display

Page 20: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEICCG

ColisõesComputação Gráfica

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 21: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 22: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 23: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 24: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 25: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 26: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 27: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGTratamento de Colisões

Detecção de Colisão Determinação da Colisão

Reacção à Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 28: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGDetecção de Colisões

Existem diversas bibliotecas que fornecem detecção de colisões

Bullet Physics LibraryV-ClipODE

ColDetHavocetc …

Não são necessárias em CG!Vamos implementar apenas colisões simples

baseadas em AABB e esferas

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 29: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGOnde começamos?� Primeiro têm de detectar collisões

§ Em intervalos de tempo discretos:• Em cada frame verificam se objectos se intersectam (overlapping)

� Testar se os volumes exactos dos modelo se intersectam é muito lento

� Usam-se volumes envolventes (bounding volumes)§ Para aproximar o volume real dos objectos

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 30: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGVolumes envolventes?

� Devem ser convexos§ esferas, cilindros, paralelepípedos, poliedros, etc…§ Esferas e paralelepípedos (boxes) são as formas mais usadas

� Para boxes, a intersecção começa com testes de ponto dentro/fora (point inside-outside tests)

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 31: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGOriented Bounding Boxes� Definidas por:

§ Centróide, 3 eixos normalizados, 3 meios-comprimentos

� Pode ser definido por 8 pontos§ Mais eficiente

� Eixos são as 3 normais das faces

� Melhor envolvência que esferas ou AABB’s§ Mas teste point inside/ouside mais complicado de calcular

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 32: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGAxis-Aligned Bounding Boxes: AABBs

� Especificadas por dois pontos:

� Normais simples de calcular

� Teste de point-inside muito simples:

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 33: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGAxis-Aligned Bounding Boxes

Especificadas por dois pontos:

Teste “point inside” muito simples:

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 34: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Detecção de Colisõesentre AABBs

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

(𝐴. 𝑥GHI, 𝐴. 𝑦GHI, 𝐴. 𝑧GHI)

(𝐵. 𝑥GMN, 𝐵. 𝑦GMN, 𝐵. 𝑧GMN)

𝐴. 𝑥GHI > 𝐵. 𝑥GMN𝐴. 𝑥GMN < 𝐵. 𝑥GHI𝐴. 𝑦GHI > 𝐵. 𝑦GMN𝐴. 𝑦GMN < 𝐵. 𝑦GHI𝐴. 𝑧GHI > 𝐵. 𝑧GMN𝐴. 𝑧GMN < 𝐵. 𝑧GHI

Page 35: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGProblemas com AABB’s

� Não muito eficientes

� Rotação complicada§ Tem de se rodar modelo e reculcular AABB § Não é eficiente

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 36: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Detecção de Colisõesentre Esferas

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

d drA

rArB

rB

𝑟R + 𝑟S ≥ 𝑑Colide se:

Page 37: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Detecção de Colisõesentre Esferas

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

𝑑 = 𝑐RI − 𝑐SI W + 𝑐RI − 𝑐SI W�

𝑟R + 𝑟S ≥ 𝑑Colide se:

Não é necessário calcular a raiz quadrada

Page 38: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Detecção de Colisõesentre Esferas

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

d drA

rArB

rB

𝑟R + 𝑟S W ≥ 𝑐RI − 𝑐SI W + 𝑐RI − 𝑐SI WColide se:

Page 39: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Detecção de Colisõesentre Esferas

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

d drA

rArB

rB

Vale sempre a pena testar com esferas antes fazer testes mais complexos

Page 40: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGDeterminar Colisões

Detectada colisão entre objectos

Determinar colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 41: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGDeterminar Colisão

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Calcular nova posição

Manter nova posição

Validar nova posição

Calcular posição válida

Page 42: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticais

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Post-Δt

PostPost

Page 43: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticais

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Calcular nova posição

Manter nova posição

Validar nova posição

Calcular posição válida

Page 44: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticaisupdate( delta_time )(...)

compute_position( pos, delta_time ) → tentative_poscheck_limits( pos, tentative_pos )→current_pos(...)

compute_position(pos, delta_time )pos+speed*delta_time → tentative_posreturn tentative_pos

check_limits(previous_pos )if (pos.x > limits.max_x)

compute_intersection (limits, previous_pos, tentative_pos) →current_pos(...)return current_pos

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 45: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticaisupdate( delta_time )(...)

compute_position( pos, delta_time ) → tentative_poscheck_limits( pos, tentative_pos )→current_pos(...)

compute_position(pos, delta_time )pos+speed*delta_time → tentative_posreturn tentative_pos

check_limits(previous_pos )if (pos.x > limits.max_x)

compute_intersection (limits, previous_pos, tentative_pos) →current_pos(...)return current_pos

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 46: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticaisupdate( delta_time )(...)

compute_position( pos, delta_time ) → tentative_poscheck_limits( pos, tentative_pos )→current_pos(...)

compute_position(pos, delta_time )pos+speed*delta_time → tentative_posreturn tentative_pos

check_limits(previous_pos )if (pos.x > limits.max_x)

compute_intersection (limits, previous_pos, tentative_pos) →current_pos(...)return current_pos

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 47: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Colisão com limites verticaisupdate( delta_time )(...)

compute_position( pos, delta_time ) → tentative_poscheck_limits( pos, tentative_pos )→current_pos(...)

compute_position(pos, delta_time )pos+speed*delta_time → tentative_posreturn tentative_pos

check_limits(previous_pos, tentative_pos )if (pos.x > limits.max_x)

compute_intersection (limits, previous_pos, tentative_pos) →current_pos(...)return current_pos

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Page 48: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CG

Exemplo

Intersecção com limites verticais

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL

Post-Δt Post

Post.x=limits.x

Post-Δt=p(0)

Post=p(1)

Post=p(i)

Page 49: Licenciatura em Engenharia Informática e de Computadores ... · LEIC CG 1º Teste 26/10/2013 Considere a cena 2D abaixo representada, onde a posição e direcção de um veículo

LEIC CGPróxima aula

CâmaraVirtual

Matrizes de Visualização e Projecção

© 2016 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL