• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
41
0
0

Texto

(1)

Licenciatura em Engenharia Informática e de Computadores

Computação Gráfica

(2)

LEIC CG

Tratamento de Colisões

(3)

LEIC CG

Tratamento de Colisões

Detecção de Colisões Determinação da Colisão Resposta à Colisão

(4)

LEIC CG

Collision Handling

(5)

LEIC CG

Collision Handling

Collision Detection Determination Collision Response Collision

(6)

LEIC CG

Tratamento de Colisões

(7)

LEIC CG

Collision Handling

Collision Detection Determination Collision Response Collision

(8)

LEIC CG

Collision Handling

(9)

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…

(10)

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’

(11)

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); }

(12)

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)

(13)

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)

(14)

LEIC CG

Axis-Aligned Bounding Boxes: AABBs

 Especificadas por dois pontos:

 Normais simples de calcular

(15)

LEIC CG

Problemas com AABB’s

 Não muito eficientes

 Rotação complicada

 Tem de se rodar modelo e reculcular AABB

Não é eficiente

(16)

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

(17)

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!!

(18)

LEIC CG

Esferas como volumes envolventes

r1 C1

r2 C2

Quadrado da distância (squared distance):

If dist( C1, C2)2 ≤ (r

1 + r2)2 then collide

dist( C1, C2)2 = (C

(19)

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

(20)

LEIC CG

(21)

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

(22)

LEIC CG

The Wrath of Khan

 The Wrath of Khan

(de History of Computer Graphics)

http://www.youtube.com/watch?v=n6YvhhY_N5A&NR=1  The Genesis Wave (som doutro filme…)

http://www.youtube.com/watch?feature=endscreen&NR=1&v= NM1r37zIBOQ

 Star Trek’s CGI pioneers (2/2)

(23)

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

(24)

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; à

(25)

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

(26)

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”

(27)

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

(28)

LEIC CG

(29)

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

(30)

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)

(31)

LEIC CG

(32)

LEIC CG

(33)

LEIC CG

(34)

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.

(35)

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!

(36)

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!

(37)

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

(38)

LEIC CG

(39)

LEIC CG

(40)

LEIC CG

(41)

LEIC CG

Referências

Documentos relacionados

As partículas con espín semienteiro, é dicir, cun número impar dividido entre dous: 1/2, 3/2, 5/2 etc, de unidades de espín chámanse fermións. Cada partícula ten asociada

Sugestão: Caso as aulas não sejam no mesmo dia e o professor perceba a dificuldade, por parte dos alunos em formarem os grupos, pode optar por realizar a

Problema da energia negativa: se a partícula puder emitir energia ela vai “caindo” para estados de energia cada vez menor.. Este poço não tem fundo e uma ENERGIA INFINITA é

Na simulação do problema de descarga de água, o espaçamento inicial entre as partículas (l 0 ) foi de 0,6 cm, o mesmo utilizado na simulação deste problema pelo método

Outro caso em que as simetrias são úteis ocorre quando podemos agrupar partículas de propriedades (aproximadamente) iguais..

num referencial qualquer as componentes da derivada de A em rela¸ c˜ ao ao tempo pr´

Se quisermos descrever 10 partículas ideais (modelo), idênticas entre si, cada uma com diâmetro , de forma que o volume total das partículas reais fosse igual ao

Na verdade a única oportunidade dos físicos estudarem fenómenos da ordem de energias inverosimilmente altas ó nas observações dos raios cósmicos, e veremos em breve o