SlideShare a Scribd company logo
1 of 37
Download to read offline
desmontando
uma engine
de física
Adriano Melo
Engenhero de Software (INdT)
Mestrando em IA (UFPE)
Membro do CInLUG
http://adrianomelo.com
http://github.com/adrianomelo
the incredible circus!
nas lojas: meego, symbian, windows phone
em breve: facebook e android
o que é uma
engine de física?
(ou motor de física)
simulações de sistemas físicos como dinâmica de
corpos rígidos, de corpos
maciose de fluidos
representação
gráfica
representação
geométrica
motor de físicaframework gráfico
como integrar a
representação geométrica
com a repre. gráfica?
main loop
•alimenta o sistema com eventos, atualiza a
simulação física e desenha os elementos na
tela
*16ms = 1 seg / 60 fps
exemplo de main loop #1
*16ms = 1 seg / 60 fpshttp://entropyinteractive.com/2011/02/game-engine-design-the-game-loop/
exemplo de main loop #2
movendo objetos
•Verlet integration
•Euler method
•Runge-kutta methods
•Symplectic integrator
métodos numéricos
https://en.wikipedia.org/wiki/Numerical_ordinary_differential_equations
position verlet - equações
Positionnew = Positioncurrent
+ Acceleration * Timestep2
+ (Positioncurrent - Positionold)
Positionold = Positioncurrent
http://www.pagines.ma1.upc.edu/~susin/files/AdvancedCharacterPhysics.pdf
positionold
positioncurrent
positionnew-g*t2
positioncurrent - positionold
trajetória livre
p1
p2
p2
p1
p0
trajetória com colisão
p0
p1
p2
p2 terá sua posição corrigida
para não entrar no outro objeto
detectando
colisões
e1
e2
e3
colidem!
(e2 e e3)
problema não trivial e de alto custo de processamento!
e4
volumes delimitadores
representação geométrica que otimiza a detecção de
colisões
http://en.wikipedia.org/wiki/Bounding_volume
alguns tipos..
e1
e2
e3
e4
usando AABBs como volumes
delimitadores (bounding volumes)
a checagem de colisão seria
feita apenas entre e2 e e3
teorema dos eixos de
separação
dois objetos convexos não se intersectam se e somente se
existe uma linha (chamada de eixo) em que as projeções
dos objetos não se cruzam.
http://en.wikipedia.org/wiki/Separating_axis_theorem
relembrando o que é uma projeção...
ponto P
reta R
projeção de P em R
http://en.wikipedia.org/wiki/Vector_projection
25º
70º
quais eixos testar?
0º
e1
e2
e3
usando Oriented
Bounding Boxes
e1
e2
e3
v1
v2
v5
v6
v4
v3
resolução
de colisões
informações para a
resolução
•normal do contato
•tamanho da interseção
•a depender da engine:
•ponto do contato
•vértice ou aresta envolvida na colisão
•formas dos objetos colididos
•...
restrições
usadas para remover liberdades entre corpos
restrição de distância
longe..
perto..
x0
x1
|x1 - x0| = d
restrição de angulo
x0
x1 x2
(x2 − x0) ⋅ (x1 − x0) < α
uma engine simples...
•verlet integration
•modelar corpos rígidos
como partículas com
restrições
•colisões usando as
informações do teorema
dos eixos de separação
•constraint solver (resolve
o comportamento das
restrições)
d1
d2
d3
d4
d5 d6
https://github.com/subprotocol/verlet-js
•Advanded Character Physics
•Thomas Jakobsen
•Real-time collision detection
•Christer Ericson
referências
palestras relacionadas
•Arquitetura para jogos multi-plataforma
•Sala P09 - quinta das 10 às 11 horas
•Workshop de Jogos em HTML5
•Sala 714 - quinta das 14 às 17 horas
obrigado
Adriano Melo
adrianomelo.com

More Related Content

Viewers also liked

DigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEMDigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEMAndré de Moraes
 
Condition monitoring case study
Condition monitoring case studyCondition monitoring case study
Condition monitoring case studyjam900
 
PHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine OptimizationPHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine OptimizationRafael Capucho
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine ArchitectureMichel Alves
 
App Engine: aplicações escaláveis em poucas horas
App Engine: aplicações escaláveis em poucas horasApp Engine: aplicações escaláveis em poucas horas
App Engine: aplicações escaláveis em poucas horasOsvaldo Santana Neto
 
Google App Engine e Python
Google App Engine e PythonGoogle App Engine e Python
Google App Engine e PythonPeslPinguim
 
Search Engine Marketing
Search Engine MarketingSearch Engine Marketing
Search Engine MarketingFromDoppler
 
Seo - Search Engine Optimization
Seo - Search Engine OptimizationSeo - Search Engine Optimization
Seo - Search Engine OptimizationHeric Tilly
 
liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6Edgard Packness
 
Tendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineTendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineDaniel Costa Gimenes
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Fabio Moura Pereira
 
Palestra Search Engine Marketing - Com foco nos resultados
Palestra Search Engine Marketing - Com foco nos resultadosPalestra Search Engine Marketing - Com foco nos resultados
Palestra Search Engine Marketing - Com foco nos resultadosECDD Infnet
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosGabriel Giordano Medina
 
Notifications push avec Android
Notifications push avec AndroidNotifications push avec Android
Notifications push avec AndroidBouhdida Mahmoud
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...Michel Azevedo
 
Marketing online, SEM (Search Engine Marketing)
Marketing online, SEM (Search Engine Marketing)Marketing online, SEM (Search Engine Marketing)
Marketing online, SEM (Search Engine Marketing)Fundació Bit
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensMarco Antonio Maciel
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKLeonardo Dalmina
 
Clés pour un meilleur référencement - OTC Evreux Normandie
Clés pour un meilleur référencement - OTC Evreux NormandieClés pour un meilleur référencement - OTC Evreux Normandie
Clés pour un meilleur référencement - OTC Evreux NormandieMarion Hossin Vuillermoz
 

Viewers also liked (20)

Roary Samsam
Roary SamsamRoary Samsam
Roary Samsam
 
DigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEMDigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEM
 
Condition monitoring case study
Condition monitoring case studyCondition monitoring case study
Condition monitoring case study
 
PHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine OptimizationPHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine Optimization
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
 
App Engine: aplicações escaláveis em poucas horas
App Engine: aplicações escaláveis em poucas horasApp Engine: aplicações escaláveis em poucas horas
App Engine: aplicações escaláveis em poucas horas
 
Google App Engine e Python
Google App Engine e PythonGoogle App Engine e Python
Google App Engine e Python
 
Search Engine Marketing
Search Engine MarketingSearch Engine Marketing
Search Engine Marketing
 
Seo - Search Engine Optimization
Seo - Search Engine OptimizationSeo - Search Engine Optimization
Seo - Search Engine Optimization
 
liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6
 
Tendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container EngineTendências 2015: Kubernetes & Google Container Engine
Tendências 2015: Kubernetes & Google Container Engine
 
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
Aula Desenvolvimento de Jogos - Game Engine (Motor de Jogos)
 
Palestra Search Engine Marketing - Com foco nos resultados
Palestra Search Engine Marketing - Com foco nos resultadosPalestra Search Engine Marketing - Com foco nos resultados
Palestra Search Engine Marketing - Com foco nos resultados
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
 
Notifications push avec Android
Notifications push avec AndroidNotifications push avec Android
Notifications push avec Android
 
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES...
 
Marketing online, SEM (Search Engine Marketing)
Marketing online, SEM (Search Engine Marketing)Marketing online, SEM (Search Engine Marketing)
Marketing online, SEM (Search Engine Marketing)
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas Nuvens
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
 
Clés pour un meilleur référencement - OTC Evreux Normandie
Clés pour un meilleur référencement - OTC Evreux NormandieClés pour un meilleur référencement - OTC Evreux Normandie
Clés pour un meilleur référencement - OTC Evreux Normandie
 

Similar to FISL14 - Desmontando uma engine de física

Notas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosVanessa Santos
 
Aula 1 mecânica aplicada
Aula 1   mecânica aplicada Aula 1   mecânica aplicada
Aula 1 mecânica aplicada Juliana Jeniffer
 
Introdução aos kits Lego RCX
Introdução aos kits Lego RCXIntrodução aos kits Lego RCX
Introdução aos kits Lego RCXFernando Passold
 
P spice guia_passo_a_passo
P spice guia_passo_a_passoP spice guia_passo_a_passo
P spice guia_passo_a_passobetoshaper
 
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularProjeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularDiego Varalda
 
Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel Opencadd Advanced Technology
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzEduardo Luz
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Pedro Guerreiro
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Visiondannyxyz22
 
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2Christopher Cerqueira
 
Bootstrap Evaluation in R - Source Code
Bootstrap Evaluation in R -  Source CodeBootstrap Evaluation in R -  Source Code
Bootstrap Evaluation in R - Source CodeMichel Alves
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoFábio Costa
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoFábio Costa
 

Similar to FISL14 - Desmontando uma engine de física (20)

Notas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismos
 
Aula 1 mecânica aplicada
Aula 1   mecânica aplicada Aula 1   mecânica aplicada
Aula 1 mecânica aplicada
 
Introdução aos kits Lego RCX
Introdução aos kits Lego RCXIntrodução aos kits Lego RCX
Introdução aos kits Lego RCX
 
P spice guia_passo_a_passo
P spice guia_passo_a_passoP spice guia_passo_a_passo
P spice guia_passo_a_passo
 
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularProjeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
 
R - D - DANIEL KAMINSKI DE SOUZA
R - D - DANIEL KAMINSKI DE SOUZAR - D - DANIEL KAMINSKI DE SOUZA
R - D - DANIEL KAMINSKI DE SOUZA
 
Arq orgcom (1)
Arq orgcom (1)Arq orgcom (1)
Arq orgcom (1)
 
ArqOrgCom.ppt
ArqOrgCom.pptArqOrgCom.ppt
ArqOrgCom.ppt
 
Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel Apresentação Prof. Luis Fernando Martha e Rafael Rangel
Apresentação Prof. Luis Fernando Martha e Rafael Rangel
 
MRO predict
MRO predictMRO predict
MRO predict
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo Luz
 
Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014Algoritmos e Estruturas de Dados, edição de 2013/2014
Algoritmos e Estruturas de Dados, edição de 2013/2014
 
Campus Party - Computer Vision
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Vision
 
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
[PRJ32][Christopher] Aula 4 – arduino,mems,prog v2
 
Bootstrap Evaluation in R - Source Code
Bootstrap Evaluation in R -  Source CodeBootstrap Evaluation in R -  Source Code
Bootstrap Evaluation in R - Source Code
 
Node.js: serious business
Node.js: serious businessNode.js: serious business
Node.js: serious business
 
Pmn slidesmecanica
Pmn slidesmecanicaPmn slidesmecanica
Pmn slidesmecanica
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
 
Aula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
 
Guia xna
Guia xnaGuia xna
Guia xna
 

More from Adriano Melo

leanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerAdriano Melo
 
O axioma da escolha (the axiom of choice) - incomplete
O axioma da escolha (the axiom of choice) - incompleteO axioma da escolha (the axiom of choice) - incomplete
O axioma da escolha (the axiom of choice) - incompleteAdriano Melo
 
Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Adriano Melo
 
Apresentação FLOSS
Apresentação FLOSSApresentação FLOSS
Apresentação FLOSSAdriano Melo
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Adriano Melo
 
Protégé: Lógica de descrições na pratica!
Protégé: Lógica de descrições na pratica!Protégé: Lógica de descrições na pratica!
Protégé: Lógica de descrições na pratica!Adriano Melo
 
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...Adriano Melo
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...Adriano Melo
 
git: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertogit: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertoAdriano Melo
 

More from Adriano Melo (13)

leanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL Reasoner
 
Aula sobre SWRL
Aula sobre SWRLAula sobre SWRL
Aula sobre SWRL
 
O axioma da escolha (the axiom of choice) - incomplete
O axioma da escolha (the axiom of choice) - incompleteO axioma da escolha (the axiom of choice) - incomplete
O axioma da escolha (the axiom of choice) - incomplete
 
Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2
 
Apresentação FLOSS
Apresentação FLOSSApresentação FLOSS
Apresentação FLOSS
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
 
Aula SWRL
Aula SWRLAula SWRL
Aula SWRL
 
Protégé: Lógica de descrições na pratica!
Protégé: Lógica de descrições na pratica!Protégé: Lógica de descrições na pratica!
Protégé: Lógica de descrições na pratica!
 
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par...
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
git 101
git 101git 101
git 101
 
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL...
 
git: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertogit: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código aberto
 

FISL14 - Desmontando uma engine de física