FISL14 - Desmontando uma engine de física

Adriano Melo
Adriano MeloSoftware Engineer at INDT
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
FISL14 - Desmontando uma engine de física
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
•...
FISL14 - Desmontando uma engine de física
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
1 of 37

Recommended

Função quadrática aluno4 by
Função quadrática aluno4Função quadrática aluno4
Função quadrática aluno4dreforco
160 views3 slides
Graficodafuncaoquadratica by
GraficodafuncaoquadraticaGraficodafuncaoquadratica
Graficodafuncaoquadraticacon_seguir
493 views14 slides
Ficha trabalho1 mod6_lab_curvacaracteristicadiodoblog by
Ficha trabalho1 mod6_lab_curvacaracteristicadiodoblogFicha trabalho1 mod6_lab_curvacaracteristicadiodoblog
Ficha trabalho1 mod6_lab_curvacaracteristicadiodoblogCarla Pastor
187 views4 slides
Cinematica de robôs by
Cinematica de robôsCinematica de robôs
Cinematica de robôsCampus Party Brasil
7.7K views60 slides
Laser by
LaserLaser
LaserGILVANBP
20 views1 slide
Estudo de uma função by
Estudo de uma funçãoEstudo de uma função
Estudo de uma função21614
6.3K views11 slides

More Related Content

Viewers also liked

Roary Samsam by
Roary SamsamRoary Samsam
Roary Samsamgueste1827f
791 views25 slides
DigitalHubGO: Search Engine Optimization - SEM by
DigitalHubGO: Search Engine Optimization - SEMDigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEMAndré de Moraes
1.2K views22 slides
Condition monitoring case study by
Condition monitoring case studyCondition monitoring case study
Condition monitoring case studyjam900
1.8K views91 slides
PHPConf2010 - Introdução a Search Engine Optimization by
PHPConf2010 - Introdução a Search Engine OptimizationPHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine OptimizationRafael Capucho
1.2K views50 slides
Game Engine Architecture by
Game Engine ArchitectureGame Engine Architecture
Game Engine ArchitectureMichel Alves
2.2K views145 slides
App Engine: aplicações escaláveis em poucas horas by
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
1.4K views17 slides

Viewers also liked(20)

DigitalHubGO: Search Engine Optimization - SEM by André de Moraes
DigitalHubGO: Search Engine Optimization - SEMDigitalHubGO: Search Engine Optimization - SEM
DigitalHubGO: Search Engine Optimization - SEM
André de Moraes1.2K views
Condition monitoring case study by jam900
Condition monitoring case studyCondition monitoring case study
Condition monitoring case study
jam9001.8K views
PHPConf2010 - Introdução a Search Engine Optimization by Rafael Capucho
PHPConf2010 - Introdução a Search Engine OptimizationPHPConf2010 - Introdução a Search Engine Optimization
PHPConf2010 - Introdução a Search Engine Optimization
Rafael Capucho1.2K views
Game Engine Architecture by Michel Alves
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
Michel Alves2.2K views
App Engine: aplicações escaláveis em poucas horas by Osvaldo Santana Neto
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 by PeslPinguim
Google App Engine e PythonGoogle App Engine e Python
Google App Engine e Python
PeslPinguim1.3K views
Search Engine Marketing by FromDoppler
Search Engine MarketingSearch Engine Marketing
Search Engine Marketing
FromDoppler984 views
Seo - Search Engine Optimization by Heric Tilly
Seo - Search Engine OptimizationSeo - Search Engine Optimization
Seo - Search Engine Optimization
Heric Tilly1.4K views
liquid propellant rocket engine (Motor foguete Liquido) part6 by Edgard Packness
liquid propellant rocket engine (Motor foguete Liquido) part6liquid propellant rocket engine (Motor foguete Liquido) part6
liquid propellant rocket engine (Motor foguete Liquido) part6
Edgard Packness1.7K views
Tendências 2015: Kubernetes & Google Container Engine by Daniel Costa Gimenes
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) by Fabio Moura Pereira
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 Pereira3.5K views
Palestra Search Engine Marketing - Com foco nos resultados by ECDD Infnet
Palestra Search Engine Marketing - Com foco nos resultadosPalestra Search Engine Marketing - Com foco nos resultados
Palestra Search Engine Marketing - Com foco nos resultados
ECDD Infnet969 views
SOA na Prática – Criando uma Aplicação BPMN com Bonita Open Solution, Mule ES... by Michel Azevedo
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 Azevedo7.9K views
Marketing online, SEM (Search Engine Marketing) by Fundació Bit
Marketing online, SEM (Search Engine Marketing)Marketing online, SEM (Search Engine Marketing)
Marketing online, SEM (Search Engine Marketing)
Fundació Bit1.3K views
Criando Jogos 2D com Lua + Corona SDK by Leonardo Dalmina
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
Leonardo Dalmina7.6K views

Similar to FISL14 - Desmontando uma engine de física

Notas de aula 1 cinematica mecanismos by
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosVanessa Santos
3.3K views23 slides
Aula 1 mecânica aplicada by
Aula 1   mecânica aplicada Aula 1   mecânica aplicada
Aula 1 mecânica aplicada Juliana Jeniffer
935 views20 slides
Introdução aos kits Lego RCX by
Introdução aos kits Lego RCXIntrodução aos kits Lego RCX
Introdução aos kits Lego RCXFernando Passold
5K views71 slides
P spice guia_passo_a_passo by
P spice guia_passo_a_passoP spice guia_passo_a_passo
P spice guia_passo_a_passobetoshaper
2.3K views123 slides
Projeto, controle e análise de um manipulador robótico modular by
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
1.1K views237 slides
R - D - DANIEL KAMINSKI DE SOUZA by
R - D - DANIEL KAMINSKI DE SOUZAR - D - DANIEL KAMINSKI DE SOUZA
R - D - DANIEL KAMINSKI DE SOUZADaniel Kaminski de Souza
636 views102 slides

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

Notas de aula 1 cinematica mecanismos by Vanessa Santos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismos
Vanessa Santos3.3K views
P spice guia_passo_a_passo by betoshaper
P spice guia_passo_a_passoP spice guia_passo_a_passo
P spice guia_passo_a_passo
betoshaper2.3K views
Projeto, controle e análise de um manipulador robótico modular by Diego Varalda
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
Diego Varalda1.1K views
CAP 375 - Aula 1 - Introdução - Eduardo Luz by 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
Eduardo Luz433 views
Algoritmos e Estruturas de Dados, edição de 2013/2014 by Pedro Guerreiro
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
Pedro Guerreiro1.9K views
Campus Party - Computer Vision by dannyxyz22
Campus Party - Computer VisionCampus Party - Computer Vision
Campus Party - Computer Vision
dannyxyz22862 views
Bootstrap Evaluation in R - Source Code by Michel Alves
Bootstrap Evaluation in R -  Source CodeBootstrap Evaluation in R -  Source Code
Bootstrap Evaluation in R - Source Code
Michel Alves420 views
Aula 10 11 - terceira dimensao by Fábio Costa
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
Fábio Costa489 views
Aula 10 11 - terceira dimensao by Fábio Costa
Aula 10 11 - terceira dimensaoAula 10 11 - terceira dimensao
Aula 10 11 - terceira dimensao
Fábio Costa462 views

More from Adriano Melo

leanCoR: lean Connection-based DL Reasoner by
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerAdriano Melo
639 views52 slides
Aula sobre SWRL by
Aula sobre SWRLAula sobre SWRL
Aula sobre SWRLAdriano Melo
794 views30 slides
O axioma da escolha (the axiom of choice) - incomplete by
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
580 views12 slides
Mini-curso de Linux na CPRecife2 by
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2Adriano Melo
489 views77 slides
Apresentação FLOSS by
Apresentação FLOSSApresentação FLOSS
Apresentação FLOSSAdriano Melo
218 views12 slides
Linux Desktop (Campus Party Recife) by
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Adriano Melo
605 views81 slides

More from Adriano Melo(13)

leanCoR: lean Connection-based DL Reasoner by Adriano Melo
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL Reasoner
Adriano Melo639 views
O axioma da escolha (the axiom of choice) - incomplete by Adriano Melo
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
Adriano Melo580 views
Mini-curso de Linux na CPRecife2 by Adriano Melo
Mini-curso de Linux na CPRecife2Mini-curso de Linux na CPRecife2
Mini-curso de Linux na CPRecife2
Adriano Melo489 views
Apresentação FLOSS by Adriano Melo
Apresentação FLOSSApresentação FLOSS
Apresentação FLOSS
Adriano Melo218 views
Linux Desktop (Campus Party Recife) by Adriano Melo
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
Adriano Melo605 views
Protégé: Lógica de descrições na pratica! by 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!
Adriano Melo1.1K views
Trabalho de Graduação: Normalização de ontologias em lógica de descrições par... by 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...
Adriano Melo513 views
Mini-curso de linux básico by Adriano Melo
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
Adriano Melo2K views
Trabalho de Graduação - Normalização de ontologias em lógica de descrições AL... by Adriano 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...
Adriano Melo319 views
git: o primeiro passo do seu projeto de código aberto by Adriano Melo
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
Adriano Melo532 views

FISL14 - Desmontando uma engine de física