News for hackers. Stuff that matters.
Re:Physics Simulations by electricslpnsld on Wednesday January 03, 2018 @03:40PM (#16064872)
> The generic game physics engines use very simple models of mechanics and allow for numerical issues (e.g. by using finite differences)

Most modern game physics engines aren't actually discretizing an ODE or a PDE, at this point. The current standard techniques (see Nvidia's PhysX, for example) are instead solving something that look like a constraint satisfaction problem but gives force-like effects. You don't even get consistency under refinement with these methods, but they are cheap, and importantly, stable when terminated early (to remain under strict time budgets required of game based physics).

Re:Physics Simulations by fwilliams on Wednesday January 03, 2018 @03:50PM (#16064980)
Interesting. So are these minimizing some constrained energy based on the physical properties and current state of whatever you're trying to simulate? If so, I don't quite understand how you avoid solving (or approximating) a PDE/ODE. My research is mostly in meshing and I'm not familiar with real-time simulation stuff. Do you have a link to a good paper on the topic?
Re:Physics Simulations by electricslpnsld on Wednesday January 03, 2018 @04:16PM (#16065224)
Check out 'Position Based Dynamics' by Matthias Mueller, it was the first paper on the topic.
Re:Physics Simulations by maccard on Wednesday January 03, 2018 @07:54PM (#16067011)
Most games aren’t using anything remotely near as sophisticated as that. Most games use rigid body simulations, and while the details of each implementation is different, most of them work in a similar way. The common method in open source engines is a projected gauss Seidel [0] which is used in bullet physics. Most other engines (PhysX and Havok) are to the best of my knowledge using something very similar.

[0] http://www.bulletphysics.com/ftp/pub/test/physics/papers/Ite...

Re:Physics Simulations by electricslpnsld on Wednesday January 03, 2018 @08:43PM (#16067291)
> Most other engines (PhysX and Havok) are to the best of my knowledge using something very similar.

PhysX is position based dynamics. The Mueller guy who wrote that paper was a Co-founder of PhysX (back when it was NovodeX, then purchased by Ageia, then purchased by Nvidia) and is now a lead researcher at Nvidia. [1]

> The common method in open source engines is a projected gauss Seidel [0] which is used in bullet physics.

PGS is just the numerical method that Bullet uses to solve for the collision impulses between the rigid bodies (there are tons of other possible methods, Nvidia again had a cool paper a few years back, there are also global approaches with better convergence, etc). This is solving a so-called 'Contact Dynamics' contact model [2], which originates in the work of French mechanicians in the 70s and 80s.

Actually, if op is interested in PDEs in games, check out 'Digital Molecular Matter' [3]. It was used in some Star Wars games, iirc. It is a pretty straightforward Lagrangian discretization (linear shape functions on tets) of a linearized hyperelastic energy density. They added a simple fracture model on top which allowed for cool destruction effects in games.

[1] http://matthias-mueller-fischer.ch [2] https://en.wikipedia.org/wiki/Contact_dynamics [3] https://en.wikipedia.org/wiki/Digital_Molecular_Matter

Re:Physics Simulations by xchip on Friday January 05, 2018 @03:15PM (#16081281)
Great answer!