acee 24 abril 2004 – coimbra portugal mecânica e geometria 3d em jogos de simulação física...

Post on 18-Apr-2015

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ACEE24 Abril 2004 – Coimbra Portugal

Mecânica e Geometria 3D em jogos de Mecânica e Geometria 3D em jogos de Simulação FísicaSimulação Física

David R. Gil

Agradecimentos à organização do ACEE e ao Pedro Amaro.

Um Pouco Sobre Mim

• 93 → 97 – Modelação em 3D Studio,(noções de C.G, tipos de luz, texturas, maps, etc)

• 97 – Entrei p/ universidade (IST, Eng. Aeroespacial)

• 98 - 1ª Cadeira de C.G., cadeiras de Física e Mecânica Aplicada.

• 99 → ... – Nunca mais parei...

Alguns dos meus trabalhos:

1998 Simulador de Vôo

2001 Earth Screen Saver

2002 Crazy Wings

2003 Terrain Viewer, Star Force

2004 Ecodrive

Simulador de Voo C.A.S.A.(O meu primeiro Jogo)

• Motor Físico muito Motor Físico muito elaborado, noções elaborado, noções de um jogo de de um jogo de simulação 3D. simulação 3D. Texturas, Texturas, iluminação, etc.iluminação, etc.

Earth Screen Saver

• Texturas e Iluminação Refinada, Texturas e Iluminação Refinada, Optimização Gráfica.Optimização Gráfica.

• Simulação Real-TimeSimulação Real-Time• Ver Ver www.dgadv.com

Ver exemplo

Crazy Wings

• Jogo Divertido• 2D, Som e

Jogabilidade

Ver Exemplo

Terrain ViewerTerrain Viewer

Ver Video Serra d’AireVer Video Voo do Falcon 20Ver Exemplo

Para mais detalhes ver página http://www.dgadv.com/dgtv

Star Force Academy

Ver Exemplo

Star Force – Game Engine1º Passo – Ambiente 3D, Articulações, Transformações

Ver Exemplo

Star Force – Game Engine(Outras Funcionalidades)

Luz Especular (que afecta o) Blending

Tiros

Colisões (dos tiros)

Cenário Distante

Cockpit Virtual

Multi – Identidades independentes

Ecodrive

Ver Video

Ver Exemplo

Executado segundo o enunciado do trab. Final da cadeira de Modelação e Visualização 3D (MVT)

Classificação obtida: 20

Um pouco do que isto é feito(programar jogos – os programas mais dificeis)

Programação

ComplicadaGeometria

Física

Computação

GráficaInterface

SomJoga

bilid

ade

AtractivoEstética, Sensibilidade

Inte

ligen

cia

Artific

ial

Motricidade Humana

Estrutura de um jogo de Estrutura de um jogo de simulaçãosimulação

Inicialização

Fim?

Sair

Ciclo de execuçãotemporizado 1/T = 15 fps

Simulação Física

Desenhar cena

Aplicar Controlo

Tocar sons

Geometria

xz

y

v

2

2.5

3

-Os referenciais serverm para localizar numericamente objectos no espaço.

-Referencial Ortonormado, direito

Coordenadas do ponto V:

X=2, Y= 2.5 e Z=3

2 Referenciais(exemplo de um simulador de voo)

xz

y

3

X’Y’

Z’

- Referencial 1 – Referencial de inercia (aeroporto)

- Referencial 2 – Referencial do corpo (avião)

2 Referenciais (Transformação de coordenadas)

x

y

3

X’Y’

Z’

Para desenhar p/exemplo a asa, quero transformar os pontos do referencial avião para o referencial aeroporto:

X

Y

Z

= X’

Y’

Z’

X’x Y’x Z’z

X’y Y’y Z’y

X’z Y’z Z’z

.

Alternativa que não precisa de utilizar algebra linear: comandos tipo glTranslate glRotate

Px

Py

Pz

+

2 Referenciais – Física

xz

y

3

X’Y’

Z’

Lei de Newton:Acel.=Força/massa

Veloc=VelInit+Acel x T

Incremento na posição:

IncX=VelocX x TIncY=VelocY x TIncZ=VelocZ x T

Os Incrementos estão no referencial avião, para poderem ser aplicados à simulação tem de ser transformados para o referencial principal

motor

Peso

Atrito

sustentação

Outras Ferramentas

• Quaterniõese0=(float)cos(-angle*PI/360.0f);e1=c6x*(float)sin(-angle*PI/360.0f);e2=c6y*(float)sin(-angle*PI/360.0f);e3=c6z*(float)sin(-angle*PI/360.0f);//gg

c6x=2.0f*(ct2->cx*(e0*e0+e1*e1-0.5f)+ct2->cy*(e1*e2-e0*e3)+ct2->cz*(e1*e3+e0*e2));c6y=2.0f*(ct2->cx*(e1*e2+e0*e3)+ct2->cy*(e0*e0+e2*e2-0.5f)+ct2->cz*(e2*e3-e0*e1));c6z=2.0f*(ct2->cx*(e1*e3-e0*e2)+ct2->cy*(e2*e3+e0*e1)+ct2->cz*(e0*e0+e3*e3-0.5f));

Funcionamento: dá-se o vector e o angulo em torno do qual, o ponto deve rodar, os calculos devolvem as coordenadas do ponto rodado.

São essenciais para rodar camaras e objectos em 3D em especial para a simulação física de aviões, são evitáveis para uma simulação de 2D e meia, por exemplo: carro, barco, mota.

Ver Exemplo

Outras Ferramentas

• Produto Interno

Pi=x1.x2+y1.y2+z1.z2

- Quantifica o quanto próximos os vectores são: Se eles forem colineares, dá 1, se forem perpendiculares dá 0, se tiverem sentidos opostos dá -1.

- Aplicações: Iluminação, determinar projecções, determinar se um carro está dentro da estrada, etc.

Produto Interno - Exemplos

Outras Ferramentas

• Produto Externo

x=(y1*z2-z1*y1);y=(z1*x2-x1*z1);z=(x1*y2-y1*x1);

- Quantifica a perpendicularidade entre vectores. Se eles forem colineares, dá 0, se forem perpendiculares dá 1

- Aplicações:Detecção de Colisões, Ortogonalizar um sistema de coordenadas, determinar momentos, ou seja, o quanto uma força vai fazer rodar um corpo.

Apresentação disponibilizada em http://www.dgadv.com/down

top related