1 / 39

Nonconvex Rigid Bodies with Stacking

Nonconvex Rigid Bodies with Stacking. Eran Guendelman Robert Bridson Ron Fedkiw Stanford University. Paper Overview. Goal: Plausible simulation of a large number of nonconvex rigid bodies. Handle collision, contact, friction, stacking. Main Contributions. A new time stepping scheme.

nitza
Download Presentation

Nonconvex Rigid Bodies with Stacking

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. Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University

  2. Paper Overview Goal: • Plausible simulation of a large number of nonconvex rigid bodies. • Handle collision, contact, friction, stacking.

  3. Main Contributions • A new time stepping scheme. • A “shock propagation” technique for stacks.

  4. Geometric Representation • A dual representation. • Explicit: Triangulated surface. • Supplies point samples on surface. • Implicit: Signed distance function Φ. • ‌Φ‌ distance to surface, Φ< 0inside, Φ> 0 outside. • Stored on a uniform or octree grid. • Constant time inside/outside test. • Normal = Φ (defined throughout space).

  5. Time Stepping: Traditional Approach • Traditional time stepping simulation loop: • Update position and velocity. • Process collision. • Process contact.

  6. Problem With Traditional Approach • Problem: e.g. Block sliding down inclined plane. • Initially sliding down. • Update position and velocity  interpenetrating plane. • Process collision  velocity reflected. • No contact to process. • Next iteration  object bounces.

  7. Fixing Problem • Velocity threshold. • e.g. [Mirtich & Canny ’95 – 2 papers] • Process as contact if speed below threshold. • Our approach doesn’t require such threshold.

  8. Time Stepping:Our Approach • A new ordering of the simulation loop: • Process collision. • Update velocity. • Process contact. • Update position. • Some justification: • Velocity update integrates forces and contact processing resolves forces. • Recall traditional approach: • Update pos & vel. • Process collision. • Process contact.

  9. Inclined Plane Revisited • Using our approach. • No collision to process. • Update velocity  block gains downward velocity. • Process contact  stops normal motion. • Update position  slides down with no bounce.

  10. TIME STEPPING COMPARISON

  11. Time Stepping Comparison • Errors accentuated: • Perfectly elastic collisions (ε=1). • We don’t rewind to collision time. • Impulses applied sequentially at point samples.

  12. Accuracy Decelerating down inclined plane

  13. Accuracy Accelerating down inclined plane

  14. Simulation Step • Choose sufficiently small time step ∆t. • Advance bodies using time stepping scheme. • Use forward Euler for position and velocity update. • Doesn’t guarantee non-interpenetration, but achieves good results. • Experimented with “pushing out” to reduce penetration as in [Baraff ‘95].

  15. Interference Detection • We don’t rewind to collision time. • Find all penetrating vertices. • Use implicit surface inside/outside test. • Optionally compute edge-face intersections. • Accelerations: • Uniform spatial partition. • Bounding boxes.

  16. Impulse • Impulses are used for collision and contact. • Collision parameters: ε and μ. • Collision normal = Φ. • Use Coulomb friction model: • Compute impulse to stop tangential motion. • If outside friction cone, find kinetic friction impulse. • Similar to [Hahn ‘88; Moore & Wilhelms ‘88]. • Rolling and spinning friction.

  17. Collision Processing • Detect and resolve collisions during time step. • One approach: Process in chronological order. • Computationally expensive for scenes with frequent collisions. • Approach we use: Process all at end of step. • Gives plausible results. • Don’t need to rewind to exact time of collision.

  18. Collision Processing: Algorithm Overview • Compute candidate positions of bodies. • For each intersecting pair of bodies: • Determine interpenetrating points. • Sort points by penetration depth (deepest first). • For each point in order: • Apply frictional impulse (unless bodies receding).

  19. Collision Processing:Algorithm Overview • Repeat above a number of times. • Resolving one collision might create new ones. • Applies series of impulses rather than simultaneously resolving all collisions.

  20. Contact Processing • Determine contacts and prevent penetration. • Approaches: • Simultaneously solve for all contact forces. e.g.[Baraff ‘94] • Penalty method (repulsion forces). e.g.[Moore & Wilhelms ‘88] • Approach we use: • Approximate continuous contact by a series of inelastic impulses. e.g. [Mirtich & Canny ‘95] • Algorithm similar to collision processing (with ε=0), but modified for improved accuracy.

  21. Improving Accuracy • Gradually slow down bodies. • Transition impulses from ε=-1 to ε=0. • -1<ε<0: Slows normal approach velocity. • Use more (smaller) impulses for contact. • Compute impulses in old position. • Still use candidate position to find contact points. OLD CANDIDATE

  22. Contact Processing: Problem With Stacks • Problem with stacks: Need many iterations.

  23. Computing Stack Ordering • Order bodies in stacks into increasing levels: • Compute directed graph of “resting on” relation. • Group together cycles (get a DAG). • Find levels consistent with DAG.  

  24. Shock Propagation • Process contact bottom-up. • After processing a level, set to infinite mass (but not static).

  25. SHOCK PROPAGATION ONLY

  26. Combining Contact and Shock Propagation • Run a number of regular contact iterations. • Without setting levels to infinite mass. • Transmits weight through stack. • Run a single iteration of shock propagation. • Get good behavior without requiring many iterations.

  27. CONTACT & SHOCK PROPAGATION

  28. SHOCK PROPAGATION ONLY

  29. CONTACT & SHOCK PROPAGATION

  30. Summary • Dual representation of geometry. • Impulse-based simulator. • New time stepping approach eliminates need for a velocity threshold. • Shock propagation shocks the stack into a reasonable configuration without requiring many contact iterations.

More Related