SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Collision Detection That Collision Detection That Collision - - PowerPoint PPT Presentation
Collision Detection That Collision Detection That Collision - - PowerPoint PPT Presentation
Collision Detection That Collision Detection That Collision Detection That Really Works Really Works Really Works David Baraff David Baraff David Baraff Robotics Institute Robotics Institute Robotics Institute Carnegie Mellon University
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Philosophy/Overview Philosophy/Overview Philosophy/Overview
- This is a highly-biased talk
This is a highly-biased talk
- Theory is a good thing to understand
Theory is a good thing to understand
- Most implementations don’t work all that well
Most implementations don’t work all that well
- Many codes don’t solve
Many codes don’t solve your your problem problem
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Philosophy/Overview Philosophy/Overview Philosophy/Overview
- This is a highly-biased talk
This is a highly-biased talk
- Theory is a good thing to understand
Theory is a good thing to understand
- Most implementations don’t work all that well
Most implementations don’t work all that well
- Many codes don’t solve
Many codes don’t solve your your problem problem
- Code needs to be as simple as possible—know
Code needs to be as simple as possible—know what is important and what isn’t what is important and what isn’t
- This talk: two real-life (commercial) solutions
This talk: two real-life (commercial) solutions
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
What My Rigid Body Simulator Needs What My Rigid Body Simulator Needs What My Rigid Body Simulator Needs
- Does polyhedron
Does polyhedron A A overlap polyhedron
- verlap polyhedron B
B? ?
- If so, by how much?
If so, by how much?
- If not, then where are the contacts?
If not, then where are the contacts?
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
What My Rigid Body Simulator Needs What My Rigid Body Simulator Needs What My Rigid Body Simulator Needs
- Does polyhedron
Does polyhedron A A overlap polyhedron
- verlap polyhedron B
B? ?
- If so, by how much?
If so, by how much?
- If not, then where are the contacts?
If not, then where are the contacts?
- What are the contact
What are the contact normals normals? ?
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Some Available Codes Some Available Codes Some Available Codes
- http://www.cs.unc.edu/~geom/collide.html
http://www.cs.unc.edu/~geom/collide.html
– – RAPID RAPID – – V-COLLIDE V-COLLIDE – – I-COLLIDE I-COLLIDE
- http://www.merl.com/people/mirtich/vclip.html
http://www.merl.com/people/mirtich/vclip.html
- http://www.comlab.ox.ac.uk/oucl/users/
http://www.comlab.ox.ac.uk/oucl/users/ stephen.cameron/distances.html stephen.cameron/distances.html
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Separating Planes Separating Planes Separating Planes
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Separating Planes Separating Planes Separating Planes
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Separating Planes Separating Planes Separating Planes
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Coherence Coherence Coherence
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Coherence Coherence Coherence
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Contact Contact Contact
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Interpenetration Interpenetration Interpenetration
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Separating Planes (in 3D) Separating Planes (in 3D) Separating Planes (in 3D)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Separating Planes (in 3D) Separating Planes (in 3D) Separating Planes (in 3D)
contact contact plane plane
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Does It Really Work? Does It Really Work? Does It Really Work? Yes, but... Yes, but...
- Requires convex decomposition
Requires convex decomposition
- Needs a
Needs a good good decomposition: decomposition: ? ?
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
An Actual Implementation An Actual Implementation An Actual Implementation
- Coriolis
CoriolisTM
TM—rigid body dynamics engine in
—rigid body dynamics engine in Alias|Wavefront’s Alias|Wavefront’s Maya MayaTM
TM
- Fast and reliable
Fast and reliable
- Compares pairs of polygons from non-convex,
Compares pairs of polygons from non-convex, topologically specified polyhedra (using a topologically specified polyhedra (using a coherence-based separating plane approach) coherence-based separating plane approach)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
An Actual Implementation An Actual Implementation An Actual Implementation
- Coriolis
CoriolisTM
TM—rigid body dynamics engine in
—rigid body dynamics engine in Alias|Wavefront’s Alias|Wavefront’s Maya MayaTM
TM
- Fast and reliable
Fast and reliable
- Compares pairs of polygons from non-convex,
Compares pairs of polygons from non-convex, topologically specified polyhedra (using a topologically specified polyhedra (using a coherence-based separating plane approach) coherence-based separating plane approach)
- Hierarchical bounding-box tree to eliminate
Hierarchical bounding-box tree to eliminate most false hits most false hits
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Culling—First (and Foremost!) Culling—First (and Foremost!) Culling—First (and Foremost!)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Culling—First (and Foremost!) Culling—First (and Foremost!) Culling—First (and Foremost!)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Sweep Sort Sweep Sort Sweep Sort
A A B B
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Sweep Sort Sweep Sort Sweep Sort
A A B B
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation
- Cloth/solid
Cloth/solid detection is fast—test individual detection is fast—test individual cloth particles against solid-object hiearchical cloth particles against solid-object hiearchical bounding-box tree bounding-box tree
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
cloth cloth vertex vertex solid solid skin skin (outside)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
cloth cloth vertex vertex solid solid skin skin
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
cloth cloth vertex vertex solid solid skin skin
Leaf-level Bounding Boxes Leaf-level Bounding Boxes Leaf-level Bounding Boxes
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
cloth cloth vertex vertex solid solid skin skin
Mid-level Bounding Boxes Mid-level Bounding Boxes Mid-level Bounding Boxes
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
cloth cloth vertex vertex
Root-level Bounding Box Root-level Bounding Box Root-level Bounding Box
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation
- Cloth/solid
Cloth/solid detection is fast—test individual detection is fast—test individual cloth particles against solid-object hiearchical cloth particles against solid-object hiearchical bounding-box tree bounding-box tree
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation
- Cloth/solid
Cloth/solid detection is fast—test individual detection is fast—test individual cloth particles against solid-object hiearchical cloth particles against solid-object hiearchical bounding-box tree bounding-box tree
- Cloth/cloth
Cloth/cloth detection requires complicated detection requires complicated triangle/triangle test (vertex/face, edge/edge) triangle/triangle test (vertex/face, edge/edge)
SIGGRAPH ’98 COURSE NOTES PHYSICALLY BASED MODELING
Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation Collision Detection in Cloth Simulation
- Cloth/solid
Cloth/solid detection is fast—test individual detection is fast—test individual cloth particles against solid-object hiearchical cloth particles against solid-object hiearchical bounding-box tree bounding-box tree
- Cloth/cloth
Cloth/cloth detection requires complicated detection requires complicated triangle/triangle test (vertex/face, edge/edge) triangle/triangle test (vertex/face, edge/edge)
- Vast majority of time spent culling out the