62
Modelagem Física Felipe Cavalcanti Ferreira (fcf3) Filipe César Andrade (fcsa)

Modelagem Física

  • Upload
    jalena

  • View
    52

  • Download
    7

Embed Size (px)

DESCRIPTION

Modelagem Física. Felipe Cavalcanti Ferreira (fcf3) Filipe César Andrade (fcsa). Índice. Modelagem Física Propriedades físicas API’s Open Dynamics Engine – ODE Havok Conclusão. Modelagem Física. Simulação física em ambientes virtuais - PowerPoint PPT Presentation

Citation preview

Page 1: Modelagem Física

Modelagem FísicaFelipe Cavalcanti Ferreira (fcf3)Filipe César Andrade (fcsa)

Page 2: Modelagem Física

Índice

•Modelagem Física▫Propriedades físicas▫API’s

•Open Dynamics Engine – ODE•Havok•Conclusão

Page 3: Modelagem Física

Modelagem Física

•Simulação física em ambientes virtuais

•Como os objetos se movem, interagem e reagem ao ambiente em volta

•Requer uma imensa quantidade de cálculos lógicos e matemáticos

Page 4: Modelagem Física

Propriedades Físicas

•Materiais▫Fricção▫Dureza

•Leis de Newton▫Forças aplicadas e aceleração▫Ação e reação

•Detecção de colisão•Juntas e molas

▫Objetos complexos

Page 5: Modelagem Física

Propriedades Físicas

•Fluidos▫Sangue▫Movimento de rios e oceanos

•Sistemas de partículas▫Fumaça▫Explosões

Page 6: Modelagem Física

API’s Físicas

•API’s comerciais▫Physx▫Havok

•API’s não comerciais▫Open Dynamics Engine▫Newton Game Dynamics▫Tokamak

Page 7: Modelagem Física

Open Dynamics Engine

•Utilizado para simular o movimento de corpos rígidos em ambientes virtuais dinâmicos

•Possui um sistema integrado de detecção de colisões

•Independente da API gráfica

•Open-source

Page 8: Modelagem Física

Open Dynamics Engine

•Criado inicialmente por Russell Smith

•Escrito em C++, mas prover uma interface em C

•Troca exatidão por velocidade

•Relativamente estável comparado com outros simuladores

Page 9: Modelagem Física

Tipos básicos de ODE

•Mundo▫Gravidade e integração do tempo

•Espaço▫Otimização de colisões

•Corpo Rígido▫Objeto físico que sofre ações das leis da física

• Juntas▫Ligação entre dois corpos

•Geometria▫Forma dos corpos

Page 10: Modelagem Física

Mundo

•Contentor de corpos

•Gravidade

•Step(dt)▫Aproximação física entre mundos real e

virtual

Page 11: Modelagem Física

Espaço

•Contentor de geometrias▫Geometria que contem outras geometrias

•Modos de colisão▫Entre geometrias dentro do mesmo espaço▫Entre geometrias de espaços diferentes

•Estrutura de dados▫Simples, hash table e quad tree

Page 12: Modelagem Física

Corpo Rígido

•Corpo indeformável, cujas posições relativas permanecem fixas, independentemente de quais as forças aplicadas.

Page 13: Modelagem Física

Corpo Rígido

•Propriedades constantes▫Massa▫Centro de massa▫Matriz de inércia

•Propriedades variáveis▫Posição vetorial (centro de massa)▫Velocidade linear▫Velocidade angular▫Orientação (matriz de rotação)

Page 14: Modelagem Física

Juntas

•Estabelece uma relação entre dois corpos de forma a confinar a posição/orientação de um corpo relativamente ao seu par

•Vários tipos de juntas•Possibilidade de adicionar novas junções

Page 15: Modelagem Física

Bola e Soquete (Ball and socket)•Movimento em torno de números

indefinidos de eixos, com o mesmo centro em comum▫Ex.: Ombro e quadril

Page 16: Modelagem Física

Dobradiça-1 (Hinge-1)

•Só permite movimento para frente e para trás no mesmo plano▫Ex.: Portas de armários, joelhos.

Page 17: Modelagem Física

Deslizante (Slider)

•Permite um objeto deslizar em relação ao outro

Page 18: Modelagem Física

Universal

•Movimento em qualquer direção▫Ex.: Motor de transmissão de um carro

Page 19: Modelagem Física

Deslizante-2 (Hinge-2)

•Duas dobradiças ligadas em série, com diferentes eixos de dobradiça.▫Ex.: Volante de um carro

Page 20: Modelagem Física

Geometrias

•Rigidez•Propriedades geométricas

▫Tamanho, forma, posição, orientação▫Não tem velocidade e nem massa

•Forma▫Esfera, caixa, plano, cilindro fechado,

malha triangular, e forma definida pelo usuário

▫Possibilidade de adicionar novas geometrias

Page 21: Modelagem Física

Geometrias• Corpo com várias geometrias• Formas mais complexas, mas mantendo a

simplicidade física• Exemplo:

▫Carro é uma caixa com várias geometrias que descrevem o corpo

• Corpo separado da geometria▫Objetos invisíveis são feitos pelo não ligamento

da geometria a um corpo▫Objetos estáticos podem ser feitos criando a

geometria sem um corpo

Page 22: Modelagem Física

Geometrias

•Estáticas▫Representam objetos estáticos do ambiente

(que nunca se movem)•Dinâmicas

▫Associadas a um corpo▫Posição/orientação iguais a

posição/orientação do corpo associado

Page 23: Modelagem Física

Detecção de Colisões

•Tratado antes de cada etapa da simulação

•Detecção de colisões▫Espaços▫Geometrias

•Processamento das colisões detectadas▫Pontos de contatos

Page 24: Modelagem Física

Junção de contato

•Evita a intersecção entre corpos no ponto de contato

•Tempo de vida de um timestep▫Construída em resposta à detecção de

colisões▫Destruída após processamento da colisão

•Informação extra sobre o contato, como por exemplo o atrito

Page 25: Modelagem Física

Junção de contato

Page 26: Modelagem Física

Criação de um objeto simples

Page 27: Modelagem Física

Aplicações de ODE

•Jogos, simulação de robôs, animação 3D, etc.

Page 28: Modelagem Física

Exemplo de aplicação

•Modelo simples de um bípede▫Perna esquerda fixa no chão▫Forças são aplicadas na perna direita▫Postura do modelo muda para manter o

equilíbrio

Page 29: Modelagem Física

Vídeos de demonstração

Page 30: Modelagem Física
Page 31: Modelagem Física

1- Empresa

2 - Produtos

3- Physics: O que é?

4- Uso

5- O que não é?

6- Funcionamento

7- Havok Dynamics

Page 32: Modelagem Física

Empresa

-Empresa de software que provê software interativos e serviços para desenvolvedores de jogos e cinema

-Fundada em 1998 por Hugh Reynolds e Dr. Steven Collins do Dep. Ciência da Computação da Univ. Trinity em Dublin.

-Parceria com diversos fabricantes de jogos. Ex: Microsoft, Ubisoft, EA, Sony…

-Recentemente comprada pela Intel

Page 33: Modelagem Física

Produtos

-Havok Behavior™

-Desenvolvimento do comportamento de objetos baseando-se em eventos

-Havok Physics™

-Estado da arte da física

-Havok Animation™

-Otimização de reprodução e composição em tempo real

-Havok Cloth™

-Permite adicionar movimentos baseados na física para cabelos, camisas…

-Havok Destruction™

-Simulação de destruição de objetos rígidos.

Page 34: Modelagem Física

Physics: O que é?

-Havok Physics é uma engine física(middleware).

-Desenvolvida para PC’s e Consoles para permitir interação entre objetos em tempo real.

-Permite reduzir o tempo gasto com o desenvolvimento do comportamento dos objetos

Page 35: Modelagem Física

Physics: O que é?

-“Havok is committed to providing not only the premier physics software to our customers, but also in giving them new tools, such as Havok Behavior, that can substantially reduce the time it takes teams to develop character behaviors, allowing game programmers to focus on developing the best game they can..”(Diretor Executivo David O'Meara)

Page 36: Modelagem Física

Uso

- Jogos

Page 37: Modelagem Física

Uso

- Aplicações

Page 38: Modelagem Física

Uso

- Cinema

Alguns filmes que usaram Havok:Tróia, Matrix, Charlie and the Chocolate Factory, X-Men 3, Harry Potter and the Order Of The Phoenix, 10,000 BC…

Page 39: Modelagem Física

O que não é?

-Kit de construção de jogos

-Tecnologia Simples

-Caixa preta

-Renderizador Comercial

Page 40: Modelagem Física

Funcionamento

-Bibliotecas básicas

-Gerenciamento de memória

-Temporização

-Tipos básicos

-Inicializaçãostatic hkResult HK_CALL init(

hkMemory* memoryManager,hkThreadMemory* threadMemory,hkErrorReportFunction errorReportFunctionvoid* errorReportObject = HK_NULL );

Page 41: Modelagem Física

Funcionamento

Page 42: Modelagem Física

Funcionamento

1- Preparar Simulação

•Particionar objetos em grupos de simulação

•Grupos mantidos pelo próprio framework

Page 43: Modelagem Física

Funcionamento

Page 44: Modelagem Física

Funcionamento

2 – Aplicar Ações

Controlar o estado dos objetos durante a simulação

Métodos applyAction() chamados

3- Definir Restrições

•Processamento das restrições,

• como juntas de contato, dobradiças…

Page 45: Modelagem Física

Funcionamento

4- Solucionador

Garantir satisfação das restrições

Minimizar possíveis erros

5- Integração

•Método hkpWorld :: integrate()

•Cálcular os novos estados de movimento (velocidade, aceleração, posição…) dos objetos

Page 46: Modelagem Física

Funcionamento

6- Detecção de colisão

•Dividida em 3 fases:

•BroadPhase

•MidPhase

•NarrowPhase

•Objeto hkpShape determina forma para propósitos da detecção de colisão

Page 47: Modelagem Física

Funcionamento

7- Simulação Contínua

•Soluciona eventos de impacto gerados na fase anterior

•Eventos de impacto podem gerar novos eventos

•Na simulação discreta, não é chamada

Page 48: Modelagem Física

Havok Dynamics

•Módulo central do sistema

•Cria mundo simulado

•Adiciona objetos

•Avançar no tempo

•Possui vários elementos:

•Mundo, corpos rígidos, ações, restrições, ouvintes…

Page 49: Modelagem Física

Havok Dynamics

•Mundo(1/2)

•Simulações contém uma ou mais instâncias do objeto hkpWorld.

•Recipiente para todos os objetos da simulação, chamados de entidades.

•Necessita de um objeto do tipo hkpWorldCinfo, contendo informações como:

•Gravidade

•Tolerância à colisões

•Parâmetros da simulação contínua (velocidade máxima, tipo de simulação…)

Page 50: Modelagem Física

Havok Dynamics

•Mundo(2/2)

hkpWorldCinfo info;info.m_simulationType = hkpWorldCinfo::SIMULATION_TYPE_DISCRETE;info.m_gravity.set( 0,-9.8f,0);info.m_collisionTolerance = 0.1f;info.setBroadPhaseWorldSize( 150.0f );info.setupSolverInfo( hkpWorldCinfo::SOLVER_TYPE_4ITERS_MEDIUM );m_world = new hkpWorld( info );

Page 51: Modelagem Física

Havok Dynamics

•Corpos Rígidos(1/4)

•Todos os objetos reais imutáveis

•Simulações só com corpos rígidos são rapidamente criáveis

• Adaptados para moverem-se realisticamente

•Pertence à classe hkpRigidBody, subclasse de hkpEntity

•Contém instância do objeto hkpRigidMotion com as informações sobre como o corpo deve se mover.

Page 52: Modelagem Física

Havok Dynamics

•Corpos Rígidos(2/4)

•Precisa de um objeto do tipo hkpRigidBodyCinfo que contém várias informações do corpo, como por exemplo:

•hkpShape m_shape – Forma do objeto utilizada para fins de detecção de colisão

•hkReal m_mass – Massa do corpo rígido. Precisa ser definido.

•hkReal m_friction – Define o atrito do corpo rígido

•hkVector4 m_position – Posição inicial do objeto ao ser adicionado ao mundo.

Page 53: Modelagem Física

Havok Dynamics

•Corpos Rígidos(3/4)

hkArray<hkVector4> dummyPlaneEquations;hkpConvexVerticesShape* pShape = new hkpConvexVerticesShape(stridedVerts, dummyPlaneEquations);hkpRigidBodyCinfo rigidBodyInfo;rigidBodyInfo.m_shape = pShape;hkReal mass = 10.0f;hkpInertiaTensorComputer::setShapeVolumeMassProperties(pShape, mass, rigidBodyInfo);rigidBodyInfo.m_motionType = hkpMotion::MOTION_BOX_INERTIA;rigidBodyInfo.m_qualityType = HK_COLLIDABLE_QUALITY_MOVING;hkpRigidBody* pRigidBody = new hkpRigidBody(rigidBodyInfo);

Page 54: Modelagem Física

Havok Dynamics

•Corpos Rígidos(4/4)

•Exemplo de aplicação de forças:

if (m_brakePressed) {hkVector4 zero;zero.setZero4();m_body->setLinearVelocity(zero);m_body->setAngularVelocity(zero);setBrakePressed(false);}

•Limitação de pontos na detecção de colisões

Page 55: Modelagem Física

Havok Dynamics

•Restrições(1/2)

•6 graus de liberdade

•Limitação da liberdade de movimento

•Diferentes formas de limitar os movimentos levam a várias aplicações

•Porta

•Junção da roda de um carro

•Quanto maior a complexidade da restrição, maior o tempo gasto com a computação da mesma

Page 56: Modelagem Física

Havok Dynamics

•Restrições(2/2)

hkpBallAndSocketConstraintData* bsData = new hkpBallAndSocketConstraintData();hkpConstraintInstance* bsInstance = new hkpConstraintInstance( bodyA, bodyB, bsData );m_world->addConstraint( bsInstance );bsData->removeReference();bsInstance->removeReference();

Page 57: Modelagem Física

Havok Dynamics

•Ações(1/2)

•Forma simples e eficiente de controlar o comportamento físico do mundo simulado

•Anti-gravidade, controle de vôo de um helicóptero…

•Implementam o método applyAction()

•A cada passo da simulação, método é chamado.

Page 58: Modelagem Física

Havok Dynamics

•Ações(2/2)

•Classes de tipos de ações já fornecidas:

•hkpUnaryAction – Aplicadas a um único corpo.

•Ex: Motor de turbina

•hkpBinaryAction – Aplicadas a um par de corpos.

•Ex: Elástico unindo dois corpos

•hkpArrayAction – Aplicadas a Vários corpos de uma vez.

•Ex: Magneto

Page 59: Modelagem Física

Havok Dynamics

•Ouvintes

•Reagem apenas à eventos específicos da simulação

•Mais utilizados para responder a eventos infrequentes

•Chamada de retorno passa informações relevantes sobre o evento

•Podem ser extendidas para eventos de entidades particulares ou do mundo inteiro

Page 60: Modelagem Física

Conclusão•APIs bem avançadas, inclusive as Open source

•Facilitam bastante a construção de jogos

•Não é trivial

•Requer alto processamento de hardware

Page 61: Modelagem Física

Referências

•www.ode.org•www.havok.com•www.wikipedia.com/Havok_(company)•www.wikipedia.com/Havok_(software)

Page 62: Modelagem Física

Dúvidas

????