collision processing - university of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...cs838...

72
CS838 Advanced Modeling and Simulation Collision processing Different types of collisions Collision of a simulated deformable structure with a kinematic structure (easier) Collision with a rigid moving object, the ground, etc. Collision object can even be deforming as long as its deformation is kinematic (i.e. scripted), not simulated Self collision within a deformable structure (harder) Also includes collision between 2+ deformable structures

Upload: others

Post on 12-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision processing

• Different types of collisions

• Collision of a simulated deformable structure with a kinematic structure (easier)

• Collision with a rigid moving object, the ground, etc.

• Collision object can even be deforming as long as its deformation is kinematic (i.e. scripted), not simulated

• Self collision within a deformable structure (harder)

• Also includes collision between 2+ deformable structures

Robust Treatment of Collisions, Contact and Friction for Cloth Animation

Robert BridsonStanford [email protected]

Ronald FedkiwStanford University

Industrial Light & [email protected]

John AndersonIndustrial Light & [email protected]

Abstract

We present an algorithm to efficiently and robustly process colli-sions, contact and friction in cloth simulation. It works with anytechnique for simulating the internal dynamics of the cloth, andallows true modeling of cloth thickness. We also show how oursimulation data can be post-processed with a collision-aware sub-division scheme to produce smooth and interference free data forrendering.CR Categories: I.3.7 [Computer Graphics]: Three-DimensionalGraphics and Realism—Animation; I.3.5 [Computer Graphics]:Computational Geometry and Object Modeling—Physically basedmodeling;Keywords: cloth, collision detection, collision response, contacts,kinetic friction, static friction, physically based animation

1 Introduction

Collisions are a major bottleneck in cloth simulation. Since allpoints are on the surface, all points may potentially collide witheach other and the environment in any given time step. Moreover,for believable animation the number of particles is generally in thetens of thousands or more. Since cloth is very thin, even small inter-penetrations can lead to cloth protruding from the wrong side. Thisis visually disturbing and can be difficult to correct after the facteither in the next time step or in post-processing. While rigid bodysimulations often have relatively few collisions per object (apartfrom resting contact), deformable bodies naturally give rise to largenumbers of collisions varying in strength from resting contact tohigh speed impact. Two-dimensional manifolds like cloth are theworst case. Naı̈ve methods for detecting and stopping every colli-sion can quickly grind the simulation to a halt.This paper presents a collision handling algorithm that works

with any method for simulating the internal dynamics (i.e. stretch-ing, shearing, and bending) to efficiently yet robustly produce vi-sually complex motion free from interference as in figure 1. Thekey idea is to combine a fail-safe geometric collision method with afast (non-stiff) repulsion force method that models cloth thicknessas well as both static and kinetic friction. Ever since [Moore andWilhelms 1988] proposed that repulsion forces are useful for con-tact whereas exact impulse-based treatment is useful for high veloc-

Figure 1: Initially, a curtain is draped over a ball on the ground.The ball moves, flipping the curtain over on top of itself pro-ducing stable folds and wrinkles using our static friction model.Another ball enters the scene and pushes through the compli-cated structure of folds before slipping underneath unravelingthe curtain.

ity impact, authors have toyed with using both. For example, [Sims1994] switched between instantaneous impulses for high velocitiesand penalty spring forces for low velocities to treat his evolvingarticulated rigid body creatures. Although similar in spirit to ourapproach, we always use both techniques in a fully hybridized andefficient manner.We view repulsion forces, e.g. during resting contact, as a way

to deal with this vast majority of collisions in a simple and efficientmanner allowing us to use a more expensive but completely robustmethod to stop the few that remain. Since our repulsion forces han-dle most of the self-interaction, it is desirable to make them compu-tationally efficient to apply. Therefore we propose using a repulsionspring model that is not stiff. In contrast, many authors use compu-tationally expensive stiff repulsion springs, e.g. with force inversely

Page 2: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision processing

• Different types of collisions

• Collision of a simulated deformable structure with a kinematic structure (easier)

• Collision with a rigid moving object, the ground, etc.

• Collision object can even be deforming as long as its deformation is kinematic (i.e. scripted), not simulated

• Self collision within a deformable structure (harder)

• Also includes collision between 2+ deformable structures

Robust Treatment of Collisions, Contact and Friction for Cloth Animation

Robert BridsonStanford [email protected]

Ronald FedkiwStanford University

Industrial Light & [email protected]

John AndersonIndustrial Light & [email protected]

Abstract

We present an algorithm to efficiently and robustly process colli-sions, contact and friction in cloth simulation. It works with anytechnique for simulating the internal dynamics of the cloth, andallows true modeling of cloth thickness. We also show how oursimulation data can be post-processed with a collision-aware sub-division scheme to produce smooth and interference free data forrendering.CR Categories: I.3.7 [Computer Graphics]: Three-DimensionalGraphics and Realism—Animation; I.3.5 [Computer Graphics]:Computational Geometry and Object Modeling—Physically basedmodeling;Keywords: cloth, collision detection, collision response, contacts,kinetic friction, static friction, physically based animation

1 Introduction

Collisions are a major bottleneck in cloth simulation. Since allpoints are on the surface, all points may potentially collide witheach other and the environment in any given time step. Moreover,for believable animation the number of particles is generally in thetens of thousands or more. Since cloth is very thin, even small inter-penetrations can lead to cloth protruding from the wrong side. Thisis visually disturbing and can be difficult to correct after the facteither in the next time step or in post-processing. While rigid bodysimulations often have relatively few collisions per object (apartfrom resting contact), deformable bodies naturally give rise to largenumbers of collisions varying in strength from resting contact tohigh speed impact. Two-dimensional manifolds like cloth are theworst case. Naı̈ve methods for detecting and stopping every colli-sion can quickly grind the simulation to a halt.This paper presents a collision handling algorithm that works

with any method for simulating the internal dynamics (i.e. stretch-ing, shearing, and bending) to efficiently yet robustly produce vi-sually complex motion free from interference as in figure 1. Thekey idea is to combine a fail-safe geometric collision method with afast (non-stiff) repulsion force method that models cloth thicknessas well as both static and kinetic friction. Ever since [Moore andWilhelms 1988] proposed that repulsion forces are useful for con-tact whereas exact impulse-based treatment is useful for high veloc-

Figure 1: Initially, a curtain is draped over a ball on the ground.The ball moves, flipping the curtain over on top of itself pro-ducing stable folds and wrinkles using our static friction model.Another ball enters the scene and pushes through the compli-cated structure of folds before slipping underneath unravelingthe curtain.

ity impact, authors have toyed with using both. For example, [Sims1994] switched between instantaneous impulses for high velocitiesand penalty spring forces for low velocities to treat his evolvingarticulated rigid body creatures. Although similar in spirit to ourapproach, we always use both techniques in a fully hybridized andefficient manner.We view repulsion forces, e.g. during resting contact, as a way

to deal with this vast majority of collisions in a simple and efficientmanner allowing us to use a more expensive but completely robustmethod to stop the few that remain. Since our repulsion forces han-dle most of the self-interaction, it is desirable to make them compu-tationally efficient to apply. Therefore we propose using a repulsionspring model that is not stiff. In contrast, many authors use compu-tationally expensive stiff repulsion springs, e.g. with force inversely

Page 3: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision processing

• Typically partitioned into two tasks/phases

• Collision detection

• Detect if an interpenetration event occurred

• Localize such events, in space and time

• (If required) determine depth and direction of collision

• Collision response (or resolution)

• Attempt to resolve and fix all collisions, and/or

• Try to make collision less severe (but tolerate some), and/or

• Take steps to prevent collisions in the imminent future

Page 4: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision processing

• Typically partitioned into two tasks/phases

• Collision detection

• Detect if an interpenetration event occurred

• Localize such events, in space and time

• (If required) determine depth and direction of collision

• Collision response (or resolution)

• Attempt to resolve and fix all collisions, and/or

• Try to make collision less severe (but tolerate some), and/or

• Take steps to prevent collisions in the imminent future

The exact nature of collision detection depends on how we expect to use that information in the response stage!

Page 5: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 6: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 7: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 8: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 9: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 10: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 11: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 12: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Page 13: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Penalty-based methods

• Detect proximity to collision objects and apply a repulsive “penalty” force when the distance to the collision target is small

• Increase strength of repulsion force as distance decreases (or as interpenetration starts to occur)

• Does not strictly enforce a collision-free state, but attempts to prevent it, and lessen the degree of collision

Requirements for the detection stage:• Detection of static proximity (not just collision)• Estimation of proximity or collision distance

(such that forces can be accordingly scaled)• Estimation of collision direction

(such that forces can be accordingly oriented)

Page 14: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Impulse-based methods

• Usually attempt to guarantee that no collision is produced or left untreated, at any time

• Starting from a collision-free state at time t*, the system is advanced to time t*+dt

• Collisions that occurred in the interval [t*,t*+dt] are localized (in space and time)

• An impulse is applied to instantaneously correct the object trajectory and prevent (or fix) any collision events

Page 15: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Impulse-based methods

• Usually attempt to guarantee that no collision is produced or left untreated, at any time

• Starting from a collision-free state at time t*, the system is advanced to time t*+dt

• Collisions that occurred in the interval [t*,t*+dt] are localized (in space and time)

• An impulse is applied to instantaneously correct the object trajectory and prevent (or fix) any collision events

Page 16: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Impulse-based methods

• Usually attempt to guarantee that no collision is produced or left untreated, at any time

• Starting from a collision-free state at time t*, the system is advanced to time t*+dt

• Collisions that occurred in the interval [t*,t*+dt] are localized (in space and time)

• An impulse is applied to instantaneously correct the object trajectory and prevent (or fix) any collision events

Page 17: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Impulse-based methods

• Can be structured to provide guarantees of non-interpenetration (makes other parts of the simulation simpler and easier)

• Capable of enforcing tight contact, instead of modeling a large, artificial “thickness” for the collision object

• Not guaranteed to succeed, especially with conflicting nonphysical constraints

• Relatively slow and expensive

Page 18: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Impulse-based methods

• Can be structured to provide guarantees of non-interpenetration (makes other parts of the simulation simpler and easier)

• Capable of enforcing tight contact, instead of modeling a large, artificial “thickness” for the collision object

• Not guaranteed to succeed, especially with conflicting nonphysical constraints

• Relatively slow and expensive

Requirements for the detection stage:• Detection of moving collisions (not just static)• Estimation of the exact time/location of every

impact event

Page 19: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Continuous time collisions

• Most “physically justified” technique : handle one collision event at a time, in the order they occur

• Can be structured to pursue full avoidance of collisions, while not requiring collision objects to be thickened

• Response can be formulated in terms of simple and intuitive penalty forces

• Disadvantage : May lead to very small time steps

Page 20: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Continuous time collisions

• Most “physically justified” technique : handle one collision event at a time, in the order they occur

• Can be structured to pursue full avoidance of collisions, while not requiring collision objects to be thickened

• Response can be formulated in terms of simple and intuitive penalty forces

• Disadvantage : May lead to very small time steps

Page 21: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Continuous time collisions

• Most “physically justified” technique : handle one collision event at a time, in the order they occur

• Can be structured to pursue full avoidance of collisions, while not requiring collision objects to be thickened

• Response can be formulated in terms of simple and intuitive penalty forces

• Disadvantage : May lead to very small time steps

Page 22: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Continuous time collisions

• Most “physically justified” technique : handle one collision event at a time, in the order they occur

• Can be structured to pursue full avoidance of collisions, while not requiring collision objects to be thickened

• Response can be formulated in terms of simple and intuitive penalty forces

• Disadvantage : May lead to very small time steps

Page 23: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision response (general approaches)

• Continuous time collisions

• Most “physically justified” technique : handle one collision event at a time, in the order they occur

• Can be structured to pursue full avoidance of collisions, while not requiring collision objects to be thickened

• Response can be formulated in terms of simple and intuitive penalty forces

• Disadvantage : May lead to very small time steps

Page 24: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for kinematic objects)

• Simplest case: Collision object is rigid

• We can pre-process the object into a levelset

• Query : Is a point x* colliding with the object?

➡ Yes, if and only if

• Query : Is a point x* within a distance D of the object?

➡ Yes, if and only if

• Query : What is the direction of the collision (i.e. what is the “shortest way out”?)

➡ Given by the vector

• Query : What point on the surface of the object is closest to x*?

➡ Given as

Page 25: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Represent a curve in 2D (or, a surface in 3D) as the zero isocontour of a (continuous) function, i.e.

e.g.

C = {(x.y) ∈ R2 : φ(x, y) = 0}

circle x2 + y2 = R2 ≡ {(x, y) : φ(x, y) = 0}

where φ(x, y) = x2 + y2 −R2

z = 0

Page 26: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

0.1

0.6

0.9

1.5 1.1

0.1−0.6

−0.3 −0.5

φ(x, y) < 0, if (x, y) is inside Cφ(x, y) > 0, if (x, y) is outside C

φ(x, y) = 0, if (x, y) is on C

and |φ(x, y)| = distance of (x, y) from C

Page 27: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for kinematic objects)

• Simplest case: Collision object is rigid

• We can pre-process the object into a levelset

• Query : Is a point x* colliding with the object?

➡ Yes, if and only if

• Query : Is a point x* within a distance D of the object?

➡ Yes, if and only if

• Query : What is the direction of the collision (i.e. what is the “shortest way out”?)

➡ Given by the vector

• Query : What point on the surface of the object is closest to x*?

➡ Given as

φ(x∗) < 0

Page 28: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for kinematic objects)

• Simplest case: Collision object is rigid

• We can pre-process the object into a levelset

• Query : Is a point x* colliding with the object?

➡ Yes, if and only if

• Query : Is a point x* within a distance D of the object?

➡ Yes, if and only if

• Query : What is the direction of the collision (i.e. what is the “shortest way out”?)

➡ Given by the vector

• Query : What point on the surface of the object is closest to x*?

➡ Given as

φ(x∗) < 0

φ(x∗) < D

Page 29: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for kinematic objects)

• Simplest case: Collision object is rigid

• We can pre-process the object into a levelset

• Query : Is a point x* colliding with the object?

➡ Yes, if and only if

• Query : Is a point x* within a distance D of the object?

➡ Yes, if and only if

• Query : What is the direction of the collision (i.e. what is the “shortest way out”?)

➡ Given by the vector

• Query : What point on the surface of the object is closest to x*?

➡ Given as

φ(x∗) < 0

φ(x∗) < D

∇φ(x∗)

Page 30: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for kinematic objects)

• Simplest case: Collision object is rigid

• We can pre-process the object into a levelset

• Query : Is a point x* colliding with the object?

➡ Yes, if and only if

• Query : Is a point x* within a distance D of the object?

➡ Yes, if and only if

• Query : What is the direction of the collision (i.e. what is the “shortest way out”?)

➡ Given by the vector

• Query : What point on the surface of the object is closest to x*?

➡ Given as

φ(x∗) < 0

φ(x∗) < D

∇φ(x∗)

xsurface = x∗ − φ(x∗)∇φ(x∗)

Page 31: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for simulated objects)

• Cannot (easily and efficiently) convert into levelsets to facilitate O(1) collision queries

• Sometimes we seek collisions between open surfaces, which do not have an “interior” to describe as a levelset

• If simulation contains N primitives (particles, segments, triangles, etc) there is a potential for O(N^2) “candidate” intersection pairs

• Brute force check would require O(N^2) cost

• Every simulation step ideally requires O(N) effort(e.g. with Forward Euler, or BE with fixed CG iterations)

• Ideally the detection cost should not exceed O(N) by much

• Popular approach : Using axis-aligned bounding box (AABB) queries to accelerate collision detection

Page 32: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 33: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 34: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 35: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 36: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 37: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 38: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 39: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 40: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 41: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 42: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 43: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 44: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 45: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 46: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 47: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 48: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 49: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 50: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 51: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 52: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 53: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 54: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 55: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 56: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 57: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 58: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 59: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 60: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 61: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 62: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

?

Page 63: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 64: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 65: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

? ?

Page 66: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 67: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 68: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

?

?× ×

Page 69: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 70: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Page 71: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

? ?

×××

Page 72: Collision processing - University of …pages.cs.wisc.edu/~sifakis/courses/cs838-f11/lecture...CS838 Advanced Modeling and Simulation Collision processing • Different types of collisions

CS838 Advanced Modeling and Simulation

Collision detection (for simulated objects)

• Popular approach : Using axis-aligned bounding box (AABB) queries to accelerate collision detection

• Prunes away most of the “faraway” collisions

• Cost to check one primitive, against a box B-tree hierarchy with k leaves : O(logk) in the best case

• Cost will increase if the box hierarchy is not optimally constructed (i.e. if we chose to merge faraway boxes)

• Quality of hierarchy will degrade as object moves : May choose to re-build the hierarchy from scratch every few time steps

• KD-Tree or Quad-/Oct-trees can be used to generate box hierarchies