Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Contact Manifolds

Содержание

Executive SummaryConstraint solvers need contact points to prevent penetration.We can use SAT to compute a contact manifold in one shot.We can use GJK to build up a contact manifold point-by-point.
Contact ManifoldsErin Catto Blizzard Entertainment Executive SummaryConstraint solvers need contact points to prevent penetration.We can use SAT ContactContact occurs when two shapes touch.We model contact to prevent penetration and Contact ManifoldsFor convex polyhedra, a contact manifold is ideally a single point, Overlap HappensWhat we want.What we get. Approximate ManifoldsWe use a collection of contact points to approximate the contact Contact PointsPositionNormalPenetrationContact ID Example ManifoldTwo points and a common normal Contact Manifold QualityWhen objects penetrate significantly the contact manifold is fuzzy.Contact solvers Fuzzinessmanifold 1manifold 2manifold 3 Extreme Fuzzinessmanifold 1manifold 2 Using the SATMainly useful for convex polyhedra (boxes, triangles, etc).Find the axis Example: 2D Box-Box SATFirst find the separating axis with the minimum penetration.In Box-Box Clipping SetupIdentify reference faceIdentify incident faceincidentreference Box-Box ClippingClip incident face against reference face side planes (but not the Feature Flip-FlopWhich normal is the min separating axis?Apply weightings to prefer one axis over another.Improved coherence. CoherenceApply old force/impulse solution at the beginning of the step.Fewer iterations and Feature-Based Contact PointsEach contact point is the result of clipping.It is the Contact Point IDs12 GJK Contact PointsThree cases:- No contact- Shallow contact- Deep contact GJK Shallow ContactThe support points are scaled up by a small margin GJK Contact MarginsCore ShapeMarginCore Shape GJK Contact Pointpointnormaldistance GJK Deep ContactAn awkward encounter … Deep ContactUse some other algorithm.It will be slower than GJK, but it GJK ManifoldsGJK only gives one contact point at a time.We hold on Building the Manifoldt = 0t = 1t = 2 Manifold PersistenceTrack the points in each body.If the points move too far Adding New PointsKeep a minimal set of points per manifold (e.g. 4 Manifold ReductionThis applies to one-shot and incremental manifolds.We want to keep the Example ReductionA TableBeforeAfter Further Readinghttp://www.gphysics.com/downloads/http://www.continuousphysics.comCollision Detection in Interactive 3D Environments by Gino van den BergenFast
Слайды презентации

Слайд 2 Executive Summary
Constraint solvers need contact points to prevent

Executive SummaryConstraint solvers need contact points to prevent penetration.We can use

penetration.
We can use SAT to compute a contact manifold

in one shot.
We can use GJK to build up a contact manifold point-by-point.

Слайд 3 Contact
Contact occurs when two shapes touch.
We model contact

ContactContact occurs when two shapes touch.We model contact to prevent penetration

to prevent penetration and to simulate friction.
Modeling contact requires

some geometry and a lot of finesse.

Слайд 4 Contact Manifolds
For convex polyhedra, a contact manifold is

Contact ManifoldsFor convex polyhedra, a contact manifold is ideally a single

ideally a single point, a line segment, or a

convex polygon.
For general convex 3D shapes, the contact manifold is a convex 2D shape.
Did I mention overlap?

Слайд 5 Overlap Happens




What we want.
What we get.

Overlap HappensWhat we want.What we get.

Слайд 6 Approximate Manifolds
We use a collection of contact points

Approximate ManifoldsWe use a collection of contact points to approximate the

to approximate the contact manifold.
Our goal is fast, stable,

and plausible simulation.
In this sense, computing good manifolds is an art.

Слайд 7 Contact Points
Position
Normal
Penetration
Contact ID

Contact PointsPositionNormalPenetrationContact ID

Слайд 8 Example Manifold




Two points and a common normal

Example ManifoldTwo points and a common normal

Слайд 9 Contact Manifold Quality
When objects penetrate significantly the contact

Contact Manifold QualityWhen objects penetrate significantly the contact manifold is fuzzy.Contact

manifold is fuzzy.
Contact solvers like coherence.
Be consistent from step-to-step.


Слайд 10 Fuzziness






manifold 1
manifold 2
manifold 3





Fuzzinessmanifold 1manifold 2manifold 3

Слайд 11 Extreme Fuzziness


manifold 1


manifold 2




Extreme Fuzzinessmanifold 1manifold 2

Слайд 12 Using the SAT
Mainly useful for convex polyhedra (boxes,

Using the SATMainly useful for convex polyhedra (boxes, triangles, etc).Find the

triangles, etc).
Find the axis of minimum penetration.
For edge-edge contact,

find the midpoint.
For face contact, use Sutherland-Hodgeman clipping.

Слайд 13 Example: 2D Box-Box SAT


First find the separating axis

Example: 2D Box-Box SATFirst find the separating axis with the minimum

with the minimum penetration.
In 2D the separating axis is

a face normal.

Слайд 14 Box-Box Clipping Setup
Identify reference face
Identify incident face


incident
reference

Box-Box Clipping SetupIdentify reference faceIdentify incident faceincidentreference

Слайд 15 Box-Box Clipping
Clip incident face against reference face side

Box-Box ClippingClip incident face against reference face side planes (but not

planes (but not the reference face).
Consider clip points with

positive penetration.


clipping planes




Слайд 16 Feature Flip-Flop
Which normal is the min separating axis?
Apply

Feature Flip-FlopWhich normal is the min separating axis?Apply weightings to prefer one axis over another.Improved coherence.

weightings to prefer one axis over another.
Improved coherence.



Слайд 17 Coherence
Apply old force/impulse solution at the beginning of

CoherenceApply old force/impulse solution at the beginning of the step.Fewer iterations

the step.
Fewer iterations and greater stability.
We need a way

to match old and new contacts.

Слайд 18 Feature-Based Contact Points
Each contact point is the result

Feature-Based Contact PointsEach contact point is the result of clipping.It is

of clipping.
It is the junction of two different edges.
An

edge may come from either box.
Store the two edge numbers with each contact point – this is the Contact ID.

Слайд 19 Contact Point IDs




1
2




Contact Point IDs12

Слайд 20 GJK Contact Points
Three cases:
- No contact
- Shallow contact
-

GJK Contact PointsThree cases:- No contact- Shallow contact- Deep contact

Deep contact


Слайд 21 GJK Shallow Contact
The support points are scaled up

GJK Shallow ContactThe support points are scaled up by a small

by a small margin to detect contact.
Compute the closest

points (no margin).
This gives the position and normal.
The penetration is the margin minus the true distance.

Слайд 22 GJK Contact Margins




Core Shape
Margin
Core Shape

GJK Contact MarginsCore ShapeMarginCore Shape

Слайд 23 GJK Contact Point

point
normal
distance

GJK Contact Pointpointnormaldistance

Слайд 24 GJK Deep Contact




An awkward encounter …

GJK Deep ContactAn awkward encounter …

Слайд 25 Deep Contact
Use some other algorithm.
It will be slower

Deep ContactUse some other algorithm.It will be slower than GJK, but

than GJK, but it won’t last long.
SAT, EPA, brute

force.
Read Gino’s book to learn EPA.

Слайд 26 GJK Manifolds
GJK only gives one contact point at

GJK ManifoldsGJK only gives one contact point at a time.We hold

a time.
We hold on to and treasure each contact

point.
Build a manifold over several time steps.
This automatically provides coherence.

Слайд 27 Building the Manifold

t = 0

t = 1


t =

Building the Manifoldt = 0t = 1t = 2

2



Слайд 28 Manifold Persistence
Track the points in each body.
If the

Manifold PersistenceTrack the points in each body.If the points move too

points move too far apart, dismiss them.
This is bad

for sliding.
Use Contact IDs?

Слайд 29 Adding New Points
Keep a minimal set of points

Adding New PointsKeep a minimal set of points per manifold (e.g.

per manifold (e.g. 4 points).
Reject new points that are

too close to old points.

Слайд 30 Manifold Reduction
This applies to one-shot and incremental manifolds.
We

Manifold ReductionThis applies to one-shot and incremental manifolds.We want to keep

want to keep the minimum number of contact points

for a stable simulation.
This improves performance drastically.

Слайд 31 Example Reduction



A Table






Before
After

Example ReductionA TableBeforeAfter

  • Имя файла: contact-manifolds.pptx
  • Количество просмотров: 119
  • Количество скачиваний: 0