computer animation algorithms and techniques
DESCRIPTION
Computer Animation Algorithms and Techniques. Collisions & Contact. Collision handling detection & response. Particle-plane collision detection Polyhedron-polyhedron collision detection overlap of Bounding volumes Vertex inside polyhedron test Concave case Convex case - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/1.jpg)
Computer AnimationRick Parent
Computer AnimationAlgorithms and Techniques
Collisions & Contact
![Page 2: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/2.jpg)
Computer AnimationRick Parent
Collision handlingdetection & response
Particle-plane collision detectionPolyhedron-polyhedron collision detection
overlap of Bounding volumesVertex inside polyhedron test
Concave caseConvex case
Edge-face intersection test
kinematic responsePenalty methodImpulse force of collision
detection
response
![Page 3: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/3.jpg)
Computer AnimationRick Parent
Collision detection: point-plane
dpNdczbyaxpE )(
0)( pE
0)( pE
0)( pEN
![Page 4: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/4.jpg)
Computer AnimationRick Parent
Collision detection: time of impact
2 optionsConsider collision at next time stepCompute fractional time at which collision actually occurred
Tradeoff: accuracy v. complexity
![Page 5: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/5.jpg)
Computer AnimationRick Parent
Collision response: kinematic
N
)( itv)( itvN
)()( ii tvNtv
)()1()(
))(()()()( 1
ii
iiii
tvNktv
tvNktvNtvtv
k – damping factor=1 indicates no energy loss
No forces involved!
Negate component of velocity in direction of normal
![Page 6: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/6.jpg)
Computer AnimationRick Parent
Collision response: damped
Damping factor = 0.8
![Page 7: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/7.jpg)
Computer AnimationRick Parent
Collision response – penalty method
![Page 8: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/8.jpg)
Computer AnimationRick Parent
Collision response: penalty
![Page 9: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/9.jpg)
Computer AnimationRick Parent
Collision detection: polyhedra
2. test for vertex of one object inside of other object
1. test bounding volumes for overlap
3. test for edge of one object intersecting face of other object
Order tests according to computational complexity and power of detection
![Page 10: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/10.jpg)
Computer AnimationRick Parent
Collision detection: bounding volumes
Don’t do vertex/edge intersection testing if there’s no chance of an intersection between the polyhedra
Want a simple test to remove easy cases
Tradeoff complexity of test with power to reject non-intersecting polyhedra(goodness of fit of bounding volume)
![Page 11: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/11.jpg)
Computer AnimationRick Parent
Bounding Spheres
Compute bounding sphere of verticesCompute in object space and transform with object
1.Find min/max pair of points in each dimension2. use maximally separated pair – use to create
initial bounding sphere (midpoint is center)3. for each vertex adjust sphere to include point
![Page 12: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/12.jpg)
Computer AnimationRick Parent
Bounding Boxes
Axis-aligned (AABB): use min/max in each dimension
Oriented (OBB): e.g., use AABB in object space and transform with object. Vertex is inside of OBB iff on inside of 6 planar equations
![Page 13: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/13.jpg)
Computer AnimationRick Parent
Bounding SlabsFor better fit bounding polyhedron: use arbitrary
(user-specified) collection of bounding plane-pairs
Is a vertex between each pair?
12 dPNd
![Page 14: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/14.jpg)
Computer AnimationRick Parent
Convex HullBest fit convex polyhedron to concave polyhedron but takes some (one-time) computation
1. Find highest vertex, V12. Find remaining vertex that minimizes angle
with horizontal plane through point. Call edge L
3. Form plane with this edge and horizontal line perpendicular to L at V1
4. Find remaining vertex that for triangle that minimizes angle with this plane. Add this triangle to convex hull, mark edges as unmatched
5. For each unmatched edge, find remaining vertex that minimizes angle with the plane of the edge’s triangle
![Page 15: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/15.jpg)
Computer AnimationRick Parent
Collision detection: polyhedra
2. test for vertex of one object inside of other object
1. test bounding volumes for overlap
3. test for edge of one object intersecting face of other object
![Page 16: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/16.jpg)
Computer AnimationRick Parent
Collision detection: polyhedra
Intersection = NOFor each vertex, V, of object A
if (V is inside of B) intersection = YESFor each vertex, V, of object B
if (V is inside of A) intersection = YES
A vertex is inside a convex polyhedron if it’s on the ‘inside’ side of all faces
A vertex is inside a cancave polyhedron if a semi-infinite ray from the vertex intersects an odd number of faces
![Page 17: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/17.jpg)
Computer AnimationRick Parent
Collision detection: polyhedra
Edge intersection face testFinds ALL polyhedral intersectionsBut is most expensive test
If vertices of edges are on opposite side of plane of face
Calculate intersection of edge with plane
Test vertex for inside face (2D test in plane of face)
![Page 18: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/18.jpg)
Computer AnimationRick Parent
Collision detection: swept volumeTime & relative direction of travel sweeps out a volume
Only tractable in simple cases (e.g. linear translation)
If part of an object is in the volume, it was intersected by object
![Page 19: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/19.jpg)
Computer AnimationRick Parent
Collision reactionCoefficient of restitution
N
)( itv)( itvN
)()( ii tvNtv
)()1()(
))(()()()( 1
ii
iiii
tvNktv
tvNktvNtvtv
k – coefficient of restitution
But now want to add angular velocity contribution to separation velocity
![Page 20: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/20.jpg)
Computer AnimationRick Parent
Rigid body simulation
Object PropertiesMassPositionlinear & angular velocitylinear & angular momentum
Calculate forcesWindGravityViscosityCollisions
Calculate accelerationsLinear & angular using mass and inertia tensor
Calculate change in attributesPositionlinear & angular velocitylinear & angular momentum
![Page 21: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/21.jpg)
Computer AnimationRick Parent
Impulse response
)(tvA
)(tvB )(tB
)(tA)(txA
)(txB
How to compute the collision response of two rotating rigid objects?
![Page 22: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/22.jpg)
Computer AnimationRick Parent
Impulse response
GivenSeparation velocity is to be negative of colliding velocityComputeImpulse force that produces sum of linear and angular velocities that produce desired separation velocity
![Page 23: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/23.jpg)
Computer AnimationRick Parent
Rigid body simulation
relrel vv
)(tvA
)(tvB )(tB
)(tA)(txA
)(txB
BpAp
Impulse force Separation velocity
tfj
![Page 24: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/24.jpg)
Computer AnimationRick Parent
))((
))((1
1
jnrtI
jnrtI
M
jnvv
M
jnvv
BBBB
AAAA
BBB
AAA
)(tvA
)(tvB )(tB
)(tA)(txA
)(txB
BpAp
Update linear and angular velocities as a result of impulse force
![Page 25: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/25.jpg)
Computer AnimationRick Parent
Velocities of points of contact
BBBB
AAAA
BArel
BBB
AAA
rttvtp
rttvtp
ntptpv
txpr
txpr
)()()(
)()()(
))()((
)(
)(
)(tvA
)(tvB )(tB
)(tA)(txA
)(txB
BpApAr
Br
![Page 26: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/26.jpg)
Computer AnimationRick Parent
Rigid body simulation
))()((11
))1((
)))(())(((
))()()()((
))()((
11
11
BBBAAABA
rel
BBBBB
BAAAAA
Arel
BBBAAArel
BArel
rnrIrnrInMM
vj
rjnrIM
jnvrjnrI
M
jnvnv
rttvrttvnv
tptpnv
vrel-
j applied to object A; -j applied to B
![Page 27: Computer Animation Algorithms and Techniques](https://reader033.vdocuments.us/reader033/viewer/2022051416/56812c68550346895d90ff94/html5/thumbnails/27.jpg)
Computer AnimationRick Parent
Resting contact
Complex situations: need to solve for forces that prevent penetration, push objects apart, if the objects are separating, then the contact force is zero