Constraint Solver
Anybody knows about how to implement a constraint solver using impulses?
For a dynamic simulation, many physics engines uses Gradient an Lagrange Multipliers for calculate the movement of a rigid body subject to multiple constraints, such springs and collision contacts.
But I've heard about someone that made a physics engine that fit the movement of a physical object based on reaction impulses. Can it be?
Also I've heard that Id Software had Implemented a impulse based dynamic simulation in Doom3 engine.
doom3 uses the novodex physics library*
I don't belive it uses impulses, but I'm not sure what it does use
*[I'm having trouble finding a good link to prove that though, slashdot and a blog don't qualify]
I don't belive it uses impulses, but I'm not sure what it does use
*[I'm having trouble finding a good link to prove that though, slashdot and a blog don't qualify]
I could be wrong but last time I checked I read Dom3 has its own build in Physics engine. It was even released publicly.
Maybe the news source I read was incorrect
Maybe the news source I read was incorrect
I'm pretty sure Doom 3 does not use Novodex. AFAIK it's impulse-based. Just download the SDK - it's all there.
Doom 3 physics written in-house by Jean Paul van Waveren:
http://articles.dailytelefrag.com/index.php?type=id&publ_id=48826&page=2
Stable (and accurate) impulse-based physics is possible through a variety of methods (I've done it many ways). Each method has strengths and weaknesses.
Verlet-like (but not with particles, as with Jacobson):
http://www.gdconf.com/archives/2004/baltman_rick.pdf
Verlet methods are effectively impulse methods: instantaneous changes in velocity are impulses.
It is possible to use 100% impulse physics for stable object settling, as well as energy accurate simultaneous collisions. See the Perfect Physics link on my website.
Impulse-based general constraints are typically relaxed over time to provide stability at the expense of error (See Jacobson's and Baltman's papers). I believe Danny Chapman (MrRowl) also relaxes impulse constraints: http://www.rowlhouse.co.uk/jiglib/ (see the last few paragraphs).
Iterative implicit and semi-implicit ("optimization") methods appear to generate more overall error (motion looks plausible, but not as realistic), but provide better general stability.
Thus, for a game the requires realism (Kinetic Energy accuracy), perhaps examine impulse methods, for a game that specializes on complex joints/constraints, examine implicit and semi-implicit "optimization" methods (open source example: ODE). See also Erin's (Nire) paper: http://www.gphysics.com/archives/6
http://articles.dailytelefrag.com/index.php?type=id&publ_id=48826&page=2
Stable (and accurate) impulse-based physics is possible through a variety of methods (I've done it many ways). Each method has strengths and weaknesses.
Verlet-like (but not with particles, as with Jacobson):
http://www.gdconf.com/archives/2004/baltman_rick.pdf
Verlet methods are effectively impulse methods: instantaneous changes in velocity are impulses.
It is possible to use 100% impulse physics for stable object settling, as well as energy accurate simultaneous collisions. See the Perfect Physics link on my website.
Impulse-based general constraints are typically relaxed over time to provide stability at the expense of error (See Jacobson's and Baltman's papers). I believe Danny Chapman (MrRowl) also relaxes impulse constraints: http://www.rowlhouse.co.uk/jiglib/ (see the last few paragraphs).
Iterative implicit and semi-implicit ("optimization") methods appear to generate more overall error (motion looks plausible, but not as realistic), but provide better general stability.
Thus, for a game the requires realism (Kinetic Energy accuracy), perhaps examine impulse methods, for a game that specializes on complex joints/constraints, examine implicit and semi-implicit "optimization" methods (open source example: ODE). See also Erin's (Nire) paper: http://www.gphysics.com/archives/6
Quote:Original post by oliii
I wouldn't know about that. But it looks quite springy (impulses?).
The springy look comes from using a Lagrange Multiplier constraint system (optimization: LCP solver, etc.). An impulse-based solution will provide sharper, less springy motion, but will be harder to generalize for arbitrary constraints (trade offs for each method).
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement