1 / 83

Engine F ísico

Grupo: Alice Araújo Átila Malta Ícaro Malta Ivan França Leonardo Vieira Ricardo Jorge. Engine F ísico. Cronograma. Definição [Alice] Tipos de Engine [Alice] Histórico [Alice] Dinâmica de corpos [Átila] Propriedades Modeladas [Leonardo] Engine (Baixo Nível) [Leonardo]

fraley
Download Presentation

Engine F ísico

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. Grupo: Alice Araújo Átila Malta Ícaro Malta Ivan França Leonardo Vieira Ricardo Jorge Engine Físico

  2. Cronograma • Definição [Alice] • Tipos de Engine [Alice] • Histórico [Alice] • Dinâmica de corpos [Átila] • Propriedades Modeladas [Leonardo] • Engine (Baixo Nível) [Leonardo] • Engine (Alto Nível) [Ícaro] • Uso de Engine de alta precisão [Ivan] • Engines Físicos de tempo real [Ricardo] • Tendências [Ricardo]

  3. Definição • “Um engine físico é um programa de computador que simula os modelos da física newtoniana, a fim de prever o que aconteceria no mundo real em uma situação especificada.” Judith Kelner, Thiago S. M., Daliton Silva, Guilherme Moura, Márcio Bueno, Verônica Teichrieb.

  4. Tipos de Engine

  5. Tipos de Engine Físico • Uma engine físico pode ser de dois tipos: • Tempo real – geralmente usado para aplicativos não lineares • Alta Precisão – usado para aplicativos lineares

  6. História

  7. História • 1945 • O primeira engine físico foi produzida para o ENIAC e tinha como objetivo fazer cálculos para melhorar a precisão da artilharia norte-americana em batalhas. • Final 1970 • Criação da primeira GPU, ela foi usada no Atari 8 bits.

  8. Início 1980 • Os supercomputadores podiam através de outro engine físico construir previsões climáticas com um grau de acerto aceitável, para isto foi usado física de partículas. • Primeiros aceleradores gráficos em computadores da IBM.

  9. Final da década de 80 inicio da década de 90 • Neste período teve início a utilização de engines físicos simples para jogos do tipo simuladores de vôo e simuladores de golfe • Meio da década de 90 • Física um pouco mais elaborada, lançamento do primeiro jogo da série Need for Speed e do jogo Unreal. • Criada a primeira PPU(PhysicsProcessingUnit), baseado em GPU(GraphicProcessingUnit).

  10. 1998 • Lançamento da UnrealEngine • 2000 • Lançamento da HavokEngine • Julho de 2005 • Ageia lança a enginePhysx

  11. Final de 2006 começo de 2007 • Lançamento do DX 10 que possuía arquitetura de shader unificado. • Fevereiro de 2008 • Nvidia compra a Ageia

  12. Dinâmica de corpos

  13. Dinâmica de Corpos • Dinâmica de corpo rígido • Dinâmica de corpo macio • Sistema de Partículas

  14. Dinâmica de corpo rígido • Dinâmica de corpo rígido é a dinâmica usada para descrever como corpos sem deformação interagem entre si e o meio em que estão.

  15. Dinâmica de corpo rígido • Existe duas sub-categorias dentro desta categoria: • Sem restrição • Com restrições

  16. Dinâmica de corpo rígido • Sem restrições • São usados para representar elementos mais simples. Que não possuem obrigatoriamente uma ligação com outros elementos.

  17. Dinâmica de corpo rígido • Com restrições • São usados para representar elementos complexos, que possuem juntas e por este motivo tem um tratamento de colisão constante. • Um exemplo bem complexo disto é o RagDoll: Imagens retiradas do vídeo propaganda da EngineEuphoria

  18. Dinâmica de corpos macios • Dinâmica de corpos macios difere da de corpos rígidos devido ao fato de corpos macios estarem sujeitos a deformação. Este tipo de corpo é útil para retratar objetos que podem mudar de forma com a força aplicada sobre eles. • Eles são ideais para retratar objetos como tecidos, bolas, cabelos etc.

  19. Dinâmica de corpos macios • O tratamento da deformação em corpos macios segue os seguintes passos: • Detecção de colisão • Cálculo da força de impacto entre os corpos • Cálculo a força de deformação • Aplicação do algoritmo de deformação do corpo.

  20. Dinâmica de corpos macios • Alguns outros detalhes: • Corpos macios podem colidir tanto com corpos rígidos quanto com outros corpos macios sem mudar a suas propriedades. • Corpos macios diferentes podem se deformar de modo diferentes. • Corpos macios podem se recuperar elasticamente.

  21. Sistema de partículas • Usado para simular diversos eventos complexos como poeira sendo arrastada pelo vento, ou líquidos. • No caso de líquidos existem muitas formas de ser feito em computação gráfica, uma das mais comuns é o uso de sistema de partículas. Isto nós chamamos de pseudo-fluido.

  22. Pseudo-fluido • A geração do pseudo-fluido pode ser simplificada em 4 passos: • Geração das partículas • Geração de meta-partícula ou bolhas • Preenchimento destas bolhas • Aplicação de algoritmos para completar a superfície do fluido. Imagem retirada do Paper de Colin Braley e Adrian Sandu

  23. Propriedades Modeladas

  24. Propriedades Modeladas • As propriedades modeladas são principalmente: • Resistência do ar • Elasticidade • Estado da matéria • Algumas Engines mais novas: • Efeitos de luz • Sistema de partículas • IA

  25. Arquitetura de Baixo nível

  26. Implementação Módulo de detecção de colisão Módulo de simulação • Um engine físico pode ser visto em alto nível como a composição de dois componentes: • Módulo de detecção de colisão • Módulo de simulação • Estes componentes interagem de forma alternada e iterativa para produzir a simulação física.

  27. Implementação Tratador de Colisões Controlador de Tempo Tratador de movimentação Tratador de restrições • Módulo de simulação é responsável por efetuar o “step” físico dos componentes, ou seja, todas as posições e rotações são atualizadas de acordo com as regras físicas do sistema. • Este módulo normalmente é composto por 4 sub-módulos: • Tratador de colisões • Controlador de tempo da aplicação • Tratador de movimentação • Tratador de limitações

  28. Implementação Fase ampla Fase estreita Determinador de contato Analisador de contato • O módulo de detecção de colisão é responsável por obter a lista de componentes presentes na simulação e dá como resultado a lista de componentes que colidem de alguma forma. • Este módulo normalmente é composto por 4 sub-módulos: • Fase ampla • Fase estreita • Determinador de contato • Analisador de contato

  29. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Controlador de Tempo Fase estreita Simulação Tratador de movimentação Usuário Determinador de contato Tratador de restrições Próximo quadro Analisador de contato

  30. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Controlador de Tempo Tratar Impactos Estado Fase estreita Tratador de movimentação Usuário Estado Determinador de contato Tratador de restrições Analisador de contato Avançar ou realizar backtracking Estado intermediário Resultados da colisão

  31. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Fase estreita Avançar ou realizar backtracking Tratador de movimentação Estado intermediário Usuário Controlador de Tempo Determinador de contato Tratador de restrições Analisador de contato Aplicar limitações Forças limitadoras

  32. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Fase estreita Tratador de movimentação Usuário Controlador de Tempo Determinador de contato Tratador de restrições Forças limitadoras Aplicar limitações Analisador de contato Estado Resultados da colisão

  33. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Tratar Impactos Estado Fase estreita Tratador de movimentação Usuário Controlador de Tempo Determinador de contato Tratador de restrições Analisador de contato

  34. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Pares próximos Fase estreita Tratador de movimentação Usuário Controlador de Tempo Determinador de contato Estado Tratador de restrições Analisador de contato

  35. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Pares próximos Fase estreita Tratador de movimentação Informação de proximidade Usuário Controlador de Tempo Determinador de contato Tratador de restrições Analisador de contato

  36. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Fase estreita Tratador de movimentação Informação de proximidade Usuário Controlador de Tempo Determinador de contato Tratador de restrições Pontos de Contato Analisador de contato

  37. Implementação Módulo de simulação Módulo de Detecção de colisão Tratador de Colisões Fase ampla Fase estreita Tratador de movimentação Usuário Controlador de Tempo Determinador de contato Tratador de restrições Pontos de Contato Analisador de contato Grupos de contato

  38. Arquitetura de alto nível(PHYSX)

  39. Componentes da Arquitetura • NxPhysicsSDK • NxScene • NxActor • NxShape • NxJoint • NxMaterial

  40. NxPhysicsSDK • Classe única e estática(Singleton) • Responsável por todos os componentes físicos do programa • Poderá conter uma ou mais cenas.

  41. NxScene • Representa uma entidade de espaço. • Conterá um conjunto de elementos e irá definir regras sobre eles.

  42. NxActor • Entidade principal da engine. • Pode ser estático ou dinâmico. • Contém uma lista de NxShapes (Dinâmico) (Estático)

  43. NxShape • Usadas para detectar e controlar colisões: • Formas do Physx: • NxBoxShape • NxCapsuleShape • NxConvexShape • NxHeightFieldShape • NxPlaneShape • NxSphereShape • NxTriangleMeshShape • NxWheelShape

  44. NxJoint • Entidade capaz de unir dois atores. • Ex: fixed joint hinge joint spring joint

  45. NxMaterial • Determina as propriedades de um shape que são usados em colisões, atrito, etc.

More Related