slides computação gráfica · compara-se o quadrado da distância com o quadrado do raio ......

41
Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Colisões e Sistemas de Partículas

Upload: phungxuyen

Post on 07-Feb-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

Licenciatura em Engenharia Informática e de Computadores

Computação Gráfica

Colisões e Sistemas de Partículas

Page 2: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Tratamento de Colisões

Detecção de Colisões Determinação

da Colisão Resposta à

Colisão

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 3: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Tratamento de Colisões

Detecção de Colisões Determinação

da Colisão Resposta à

Colisão

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 4: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Collision Handling

Collision Detection Collision

Determination Collision Response

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 5: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Collision Handling

Collision Detection Collision

Determination Collision Response

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 6: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Tratamento de Colisões

Detecção de Colisões Determinação

da Colisão Resposta à

Colisão

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 7: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Collision Handling

Collision Detection Collision

Determination Collision Response

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 8: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Collision Handling

Detecção de Colisões Determinação

da Colisão Resposta à

Colisão

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 9: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG O que precisam de conhecer?

Geometria básica

Vectores, pontos, coordenadas homogéneas,

Transformações afins, produtos interno e externo

Normais

Planos e outras formas básicas

Conceitos Matemáticos ajudam…

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 10: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Equação do Plano

Plano 3D definido por

normal e

distância ao longo dessa normal

Equação do plano: (Nx, Ny, Nz) · (x, y, z) + d = 0

Encontrar d: (Nx, Ny, Nz) • (Px, Py, Pz) = − d

Para o ponto de test (x,y,z), se eq. plano > 0: ponto no ‘front side’ (na direcção da normal),

< 0: no ‘back side’

= 0: no plano

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 11: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Produto interno e externo

point point::operator^(point p) {

// depends on the choice of orientation

point res;

res.x = y*p.z - z*p.y;

res.y = z*p.x - x*p.z;

res.z = x*p.y - y*p.x;

return res;

}

double point::operator*(point p) {

return (p.x*x + p.y*y + p.z*z);

}

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 12: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Onde 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

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 13: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Volumes 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)

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 14: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Axis-Aligned Bounding Boxes: AABBs

Especificadas por dois pontos:

Normais simples de calcular

Teste de point-inside muito simples:

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 15: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Problemas com AABB’s

Não muito eficientes

Rotação complicada

Tem de se rodar modelo e reculcular AABB

Não é eficiente

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 16: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Oriented 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

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 17: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Esferas como volumes envolventes

O mais simples volume envolvente Definido por Centro e Raio

Teste de point inside/outside:

Calcular a distância entre o ponto a testar e o centro

Se distância <= raio, então ponto está dentro

Não é necessário calcular a raiz quadrada

Compara-se o quadrado da distância com o quadrado do raio

(fica muito mais rápido)

Vale SEMPRE a pena testar com uma esfera antes

fazer testes mais complexos!!

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 18: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Esferas como volumes envolventes

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

r1

C1

r2

C2

Quadrado da distância (squared distance):

If dist( C1, C2)2 ≤ (r1 + r2)

2 then collide

dist( C1, C2)2 = (C2x-C1x)

2+(C2y-C1y)2+(C2z-C1z)

2

Page 19: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Conclusões

Não se pode testar todos os pares de faces: O(n2)

usar BVs porque são simples de testar

melhor: usar BVs hierárquicos

Primeiro testa-se com esfera,

Se colidir, testa-se com AABB

Se também colidir testa-se com OBB

© 2011 Corpo docente de AVT / CG&M / DEI / IST / UTL

Page 20: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG

Sistemas de Partículas

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

Page 21: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Sistemas de Partículas

William T. Reeves, Particle Systems - A Technique for Modeling a Class of Fuzzy Objects”, Computer Graphics (Proc. SIGGRAPH’83), Vol. 17, No3 pp. 359-376, 1983

Usado num projecto de efeitos especiais para o filme “Star Trek II: The Wrath of Khan”

O sistema permite a representação de objectos, cujas superfícies não são bem definidas, através de uma colecção de partículas, utilizando as leis de mecânica de Newton

Page 23: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Sistemas de Partículas (SP)

Extremamente úteis para simulação de fenómenos físicos e naturais.

Modo de representar entidades como: água, fogo, fumo, explosões, conjuntos de animais (bandos, manadas, cardumes), elementos da natureza em geral (neve, chuva, relva, furacões..)

Atualmente quase todos os jogos os usam

É necessário desenhar um sistema eficiente e flexível.

Um sistema mal desenhado pode ter um impacto desastroso em termos de desempenho.

Page 24: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Sistemas de Partículas (SP)

Representação de um objecto como uma nuvem de partículas a qual

define o seu volume (ao invés de se utilizar a primitiva poligono

utiliza-se a primitiva partícula)

As partículas não são entidades estáticas, ou seja, o SP evolui ao longo

do tempo: as partículas do sistema:

Nascem;

movem-se;

Alteram a sua aparência;

morrem

Um objecto representado por um SP é não-determinístico; a sua

forma nunca é completamente definida

SPs são um exemplo de modelação procedimental estocástica; à

semelhança dos fractais

Page 25: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Propriedades dum SP

Partículas são simples (computacionalmente eficientes)

A geração e os atributos das partículas são

procedimentais, podem ser, por ex., resultados de cálculos

da ciência e da engenharia

LOD é fácil

variar o número de partículas consoante a distância à

câmara

Opção boa na representação de objectos complexos, de

objectos amorfos bem como na modelação de

comportamentos complexos

Page 26: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Modelo básico dum SP

O que é um SP?

Colecção de partículas

Conjunto de funções que controla o comportamento (alteração dos

atributos) das partículas ao longo do tempo

Em cada frame:

1. Geração de partículas com atributos iniciais (frequente o uso de

métodos estocásticos)

2. Destruição das partículas cujo tempo de vida se esgotou

3. Alteração dos atributos das partículas: posição, cor, etc

4. Visualizar as partículas “vivas”

Page 27: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG A estrutura de dados

Desenhar uma estrutura de dados eficiente é

essencial.

Deve fornecer, não só desempenho, como também

flexibilidade.

Deve permitir vários tipos de sistemas, bem como

várias maneiras de comportamento das partículas.

Deve permitir um fácil integração com ferramentas

já existentes.

Page 28: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Um exemplo

Page 29: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Atributos de uma partícula

Posição (x, y e z)

Vector Velocidade (vx, vy e vz)

Aceleração (ax, ay e az)

Tamanho

Cor e Transparência

Forma

Tempo de Vida

Decremento do tempo de vida (por frame)

Page 30: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Método Euler – Posição e Velocidade

a(t) ≈ (v(t+h) - v(t))/h e v(t) ≈ (y(t+h) - y(t))/h, onde h = ∆t

Assim:

y(t+h) ≈ y(t) + h v(t)

v(t+h) ≈ v(t) + h a(t)

Page 31: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Método Euler – Posição e Velocidade

Page 32: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Uma partícula (Exemplo)

Page 33: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Atributos dum SP (Exemplo)

Page 34: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Gestor de sistemas

Gere todos os sistemas!

Normalmente efectua funções de regulação a

cada um dos sistemas, mas também pode efectuar

operações discriminativas.

Page 35: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Considerações sobre SPs

Sistemas de partículas lidam com enormes quantidades de dados

É necessária uma gestão de memória eficaz!

Exemplo:

Imaginem um missil disparado que vai deixando um rasto de fumo.

Quanto maior a distância percorrida pelo missil maior a quantidade de fumo gerada.

As partículas vão aumentando até chegar a um limite impraticável – uso adequado do tempo de vida

Mas o primeiro fumo vai desaparecendo!

E agora? Quando o fumo desaparecer o que se faz à partícula??

Page 36: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Considerações sobre SPs Podemos destruir a partícula, quando ela deixa de estar

visível!

ATENÇÃO! Devemos evitar destruir a partícula.

A alocação e libertação de memória são muito pesadas

em termos de desempenho!

Lidar com partículas inactivas é algo com que se tem que

lidar sempre.

Deve ser algo muito simples!

A solução é re-aproveitar as partículas, não as destruindo.

Page 37: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Considerações sobre SPs

As partículas reaproveitam-se utilizando uma

técnica que se chama de respawn!

Consiste em inicializar a partícula que “morre”,

colocando-a de novo no emissor.

Exemplos:

http://www.jhlabs.com/java/particles2.html

http://www.jhlabs.com/java/particles.html

Page 38: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Fireworks (circular)

Page 39: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Fireworks (rectangular)

Page 40: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Fireworks (iglu)

Page 41: Slides Computação Gráfica · Compara-se o quadrado da distância com o quadrado do raio ... água, fogo, fumo, explosões ... Conjunto de funções que controla o comportamento

LEIC CG Fireworks (disco)