1 / 62

Modelagem Física

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

jalena
Download Presentation

Modelagem Física

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Índice • Modelagem Física • Propriedades físicas • API’s • Open Dynamics Engine – ODE • Havok • Conclusão

  3. 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

  4. 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

  5. Propriedades Físicas • Fluidos • Sangue • Movimento de rios e oceanos • Sistemas de partículas • Fumaça • Explosões

  6. API’s Físicas • API’s comerciais • Physx • Havok • API’s não comerciais • Open Dynamics Engine • Newton Game Dynamics • Tokamak

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

  8. 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

  9. 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

  10. Mundo • Contentor de corpos • Gravidade • Step(dt) • Aproximação física entre mundos real e virtual

  11. 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

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

  13. 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)

  14. 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

  15. 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

  16. Dobradiça-1 (Hinge-1) • Só permite movimento para frente e para trás no mesmo plano • Ex.: Portas de armários, joelhos.

  17. Deslizante (Slider) • Permite um objeto deslizar em relação ao outro

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

  19. Deslizante-2 (Hinge-2) • Duas dobradiças ligadas em série, com diferentes eixos de dobradiça. • Ex.: Volante de um carro

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. Junção de contato

  26. Criação de um objeto simples

  27. Aplicações de ODE • Jogos, simulação de robôs, animação 3D, etc.

  28. 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

  29. Vídeos de demonstração

  30. 1- Empresa 2 - Produtos 3- Physics: O que é? 4- Uso 5- O que não é? 6- Funcionamento 7- Havok Dynamics

  31. 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

  32. 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.

  33. 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

  34. 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)

  35. Uso - Jogos

  36. Uso - Aplicações

  37. 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…

  38. O que não é? -Kit de construção de jogos -Tecnologia Simples -Caixa preta -Renderizador Comercial

  39. Funcionamento • Bibliotecas básicas • Gerenciamento de memória • Temporização • Tipos básicos • … • -Inicialização • static hkResult HK_CALL init( • hkMemory* memoryManager, • hkThreadMemory* threadMemory, • hkErrorReportFunction errorReportFunction • void* errorReportObject = HK_NULL );

  40. Funcionamento

  41. Funcionamento • 1- Preparar Simulação • Particionar objetos em grupos de simulação • Grupos mantidos pelo próprio framework

  42. Funcionamento

  43. 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…

  44. 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

  45. 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

  46. 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

  47. 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…

  48. 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…)

  49. 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 );

More Related