1 / 18

Timewarp Rigid Body Simulation

Timewarp Rigid Body Simulation. Brian Mirtich. Simulation Discontinuities. “Events that change the dynamic states or the equations of motion of some subset of the bodies” Ex. “collisions, new contacts, transitions between rolling and sliding, and control law changes”. Retroactive Detection.

mauve
Download Presentation

Timewarp Rigid Body Simulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Timewarp Rigid Body Simulation Brian Mirtich

  2. Simulation Discontinuities • “Events that change the dynamic states or the equations of motion of some subset of the bodies” • Ex. “collisions, new contacts, transitions between rolling and sliding, and control law changes”

  3. Retroactive Detection • If an event occurs then backtrack to the moment of the event and then process • All bodies must be backed up to the time • The event might have affected their motion • There is no framework for maintaining bodies at different times.

  4. Conservative Advancement • Don’t integrate over a discontinuity • Lower bounds are maintained by a priority queue • Creeps up to a discontinuity

  5. The Timewarp Algorithm • Avoids unnecessary synchronization • Comes from discrete event simulation(DES) • Enables the simulation to be run in parallel

  6. Timewarp Continued • Each processor maintains part of the model • Each processor keeps a “Local Virtual Time” • Each processor advances its local time until an event occurs • Events are processed through messages

  7. Timewarp Continued • Rollback occurs to the latest time before the message time • This time becomes the LVT • Messages sent after the new LVT are unsent via anti-messages • GVT is the minimum of all LVT, it is provably valid

  8. Rigid Body Simulation • Each body is a process • There is a global event queue • Each event contains the time and the bodies that receive it • Four Events • Collision check events • Group check events • Redraw events • Callback events

  9. Collisions and Rollback Isolated Bodies • Each collision check has a “safe time” which is the time the group of bodies was last verified to be disjoint • GVT is the minimum of all LVT’s and all event safe times • If a rollback is earlier than an event’s safe time it is rescheduled to the rollback time

  10. Multibodies • One state queue serves for the whole multibody • Events are still handled on a per link basis however the whole multibody must be integrated

  11. Contact Groups • Groups of rigid and multibodies in persistent contact • The components again must be integrated as a unit • When bodies join or leave a new contact group is formed

  12. Group Events • If bodies A-B are in the same group but not currently in contact then standard A-B collision event • Group check events are fired at a user specified rate • While group check is enabled regular collision detection between A-B is disabled • Fission is checked for by performing a connected component algorithm

  13. Collision Checks • Events are enabled between active pairs • Axis aligned bounding boxes are used for each rigid body state to generate a “swept volume” • A collision detection event is scheduled once an integration step causes the swept volumes to intersect

  14. Callback Functions • Cannot access global data • Data that must persist across calls can use added slots to the body’s state

  15. Possible Expansion • Full parallel implementation • How to minimize inter-processor communication? • How best to load balance? • How to handle shared data?

More Related