Docstoc

siggraph_presentation

Document Sample
siggraph_presentation Powered By Docstoc
					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.
• A “shock propagation” technique for stacks.
Geometric Representation

• A dual representation.
• Explicit: Triangulated surface.
  – Supplies point samples on surface.

• Implicit: Signed distance function Φ.
  – ‌Φ ‌ distance to surface, Φ < 0 inside, Φ > 0 outside.
  – Stored on a uniform or octree grid.
  – Constant time inside/outside test.
  – Normal = Φ (defined throughout space).
Time Stepping:
Traditional Approach
• Traditional time stepping simulation loop:
  – Update position and velocity.
  – Process collision.
  – Process contact.
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.
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.
Time Stepping:
Our Approach
• A new ordering of the simulation loop:
  – Process collision.          Recall traditional approach:
  – Update velocity.            •Update pos & vel.
  – Process contact.            •Process collision.
  – Update position.            •Process contact.



• Some justification:
  – Velocity update integrates forces and contact
    processing resolves forces.
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.
TIME STEPPING COMPARISON
Time Stepping
Comparison
• Errors accentuated:
  – Perfectly elastic collisions (ε=1).
  – We don‟t rewind to collision time.
  – Impulses applied sequentially at point samples.
Accuracy

   Decelerating down inclined plane
Accuracy

   Accelerating down inclined plane
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].
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.
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.
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.
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).
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.
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.
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
Contact Processing:
Problem With Stacks
• Problem with stacks: Need many iterations.
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.




                    5
                                           
                                                           2
                    4                              2
                                                           2
                3       2
                    1                                  1
Shock Propagation
• Process contact bottom-up.
• After processing a level, set to infinite mass
  (but not static).
SHOCK PROPAGATION ONLY
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.
CONTACT & SHOCK PROPAGATION
SHOCK PROPAGATION ONLY
CONTACT & SHOCK PROPAGATION
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.

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:4
posted:10/20/2010
language:English
pages:39