Presentation is loading. Please wait.

Presentation is loading. Please wait.

Timewarp Rigid Body Simulation Brian Mirtich. Simulation Discontinuities “Events that change the dynamic states or the equations of motion of some subset.

Similar presentations


Presentation on theme: "Timewarp Rigid Body Simulation Brian Mirtich. Simulation Discontinuities “Events that change the dynamic states or the equations of motion of some subset."— 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

12 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

13 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

14

15 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

16

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

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


Download ppt "Timewarp Rigid Body Simulation Brian Mirtich. Simulation Discontinuities “Events that change the dynamic states or the equations of motion of some subset."

Similar presentations


Ads by Google