Jump to content


- - - - -

Rigid Body Dynamics


12 replies to this topic

#1 Nyx

    Member

  • Members
  • PipPip
  • 95 posts

Posted 26 December 2008 - 07:33 AM

Does someone have good links explaining rigid body dynamics? The less cryptic the explanations the better.

I just implemented OBB intersection detection, and now I'm looking to understand how I can implement collision reaction *with rotation*.

I think I heard someone say you could treat each vertex of the OBB as a point particle linked to the others, but I don't know any more than this.

#2 rouncer

    Senior Member

  • Members
  • PipPipPipPip
  • 2758 posts

Posted 26 December 2008 - 07:48 AM

this idea is completely crazy, but you could use springs attached to points, perform the collisions on the points (points are easy) then the springs should activate to keep the shape together right.

#3 Nyx

    Member

  • Members
  • PipPip
  • 95 posts

Posted 26 December 2008 - 08:01 AM

Well I obviously don't need/want collision detection on points. That wouldn't be reliable. I will, however, need some kind of contact determination mechanism... And for that I'm thinking of just picking the closest vertex as an easy approximation.

#4 Kenneth Gorking

    Senior Member

  • Members
  • PipPipPipPip
  • 939 posts

Posted 26 December 2008 - 05:07 PM

There is always the classic from Baraff
"Stupid bug! You go squish now!!" - Homer Simpson

#5 Kenneth Gorking

    Senior Member

  • Members
  • PipPipPipPip
  • 939 posts

Posted 26 December 2008 - 05:24 PM

By the way, you can actually use point-based collisions. Not only can it be unconditionally stable, but it makes it very easy to simulate soft-body objects and tearing/fracturing: http://cg.informatik...gSIGGRAPH05.pdf
"Stupid bug! You go squish now!!" - Homer Simpson

#6 Nyx

    Member

  • Members
  • PipPip
  • 95 posts

Posted 26 December 2008 - 06:19 PM

Kenneth Gorking said:

There is always the classic from Baraff

Lots of equations, scary :blink:

Do you understand what is being explained in this paper?

Kenneth Gorking said:

By the way, you can actually use point-based collisions. Not only can it be unconditionally stable, but it makes it very easy to simulate soft-body objects and tearing/fracturing: http://cg.informatik...gSIGGRAPH05.pdf

Do you think this would require more implementation effort than a system based on bounding volumes?

#7 Kenneth Gorking

    Senior Member

  • Members
  • PipPipPipPip
  • 939 posts

Posted 29 December 2008 - 12:47 PM

Nyx said:

Lots of equations, scary :blink:

Do you understand what is being explained in this paper?
Collision response and preventing inter-penetrations, I think. I must admit, I never studied it to much, I just used some of the code once. Like you said, lots of equations :)

Nyx said:

Do you think this would require more implementation effort than a system based on bounding volumes?
Hard to say really, I guess it depends on what kind of collision detection you need. The standard rigid body solution might be easier, because of all the code already on the net, but it would be limited to solid objects.

On the other hand, doing a point-based goal-oriented implementation should not prove difficult at all, and it has the nice side-effect of allowing soft bodies.
"Stupid bug! You go squish now!!" - Homer Simpson

#8 Nyx

    Member

  • Members
  • PipPip
  • 95 posts

Posted 29 December 2008 - 07:35 PM

Kenneth Gorking said:

On the other hand, doing a point-based goal-oriented implementation should not prove difficult at all, and it has the nice side-effect of allowing soft bodies.

Well, I read the paper quickly, and unfortunately it only addresses part of the collision response, from what I could see. They don't really talk about how they implemented their collision detection (ie: how do they detect when points should stop moving to prevent inter-penetration between the point clouds).

#9 PlayStationX

    New Member

  • Members
  • PipPip
  • 26 posts

Posted 13 January 2009 - 02:41 AM

do i understand correctly:

- you are asking how momentum is transferred during elastic/inelastic collision, more precisely - how angular momentum is transferred/conserved, right?

i think that would have to do with:
1.) centers of mass of colliding objects
2.) distances from mass centre to collision points
3.) translation velocity vectors of colliding objects
4.) angular velocity vectors of colliding objects


quick copy/paste from Wiki:

Angular momentum
http://en.wikipedia....ngular_momentum

Conservation of Angular Momentum
http://www.lightandm.../ch05/ch05.html

Angular Momentum in a Collision Process
http://www.hakenberg..._resolution.htm

#10 z80

    Valued Member

  • Members
  • PipPipPip
  • 104 posts

Posted 13 January 2009 - 08:15 PM

rouncer said:

this idea is completely crazy, but you could use springs attached to points, perform the collisions on the points (points are easy) then the springs should activate to keep the shape together right.

That will work. In fact that is how the physics was done in the first hitman game.

http://www.teknikus.dk/tj/gdc2001.htm

#11 roel

    Senior Member

  • Members
  • PipPipPipPip
  • 698 posts

Posted 14 January 2009 - 11:02 AM

When I was interested in physics, I read Hecker's series for the basics, and the "Nonconvex Rigid Bodies with Stacking" paper for more advanced stuff. It required a lot of thinking, but I managed to create a very acceptable simulation.

#12 Phlex

    Member

  • Members
  • PipPip
  • 53 posts

Posted 14 January 2009 - 01:44 PM

There's a whole bunch of stuff on collision detection here

http://www.pfirth.co.uk/

#13 MarekKnows.com

    Valued Member

  • Members
  • PipPipPip
  • 190 posts
  • LocationOntario, Canada

Posted 04 February 2009 - 07:51 PM

This is where I go when I need help with physics:
http://www.digitalru...US/default.aspx
C++, 3D OpenGL and Game Programming video tutorials:
www.MarekKnows.com
Play my free games: Ghost Toast, Zing





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users