Top Banner
CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang
49

CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Jan 05, 2016

Download

Documents

Timothy Watkins
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

CSCE 552 Fall 2012

Math, Physics and Collision Detection

By Jijun Tang

Page 2: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Homework #2

Major use cases of your system Due on Wednesday Oct 17th, before

class.

Page 3: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Use Cases Use Case Name: Place Order Actors:

Registered Shopper (Has an existing account, possibly with billing and shipping information) Fulfillment System (processes orders for delivery to customers) Billing System (bills customers for orders that have been placed)

Triggers: The user indicates that she wants to purchase items that she has selected.

Preconditions: User has selected the items to be purchased.

Post-conditions: The order will be placed in the system. The user will have a tracking ID for the order. The user will know the estimated delivery date for the order.

Flow: The user will indicate that she wants to order the items that have already been selected. The system will present the billing and shipping information that the user previously stored. The user will confirm that the existing billing and shipping information should be used for this order. The system will present the amount that the order will cost, including applicable taxes and shipping charges. The user will confirm that the order information is accurate. The system will provide the user with a tracking ID for the order. The system will submit the order to the fulfillment system for evaluation. The fulfillment system will provide the system with an estimated delivery date. The system will present the estimated delivery date to the user. The user will indicate that the order should be placed. The system will request that the billing system should charge the user for the order. The billing system will confirm that the charge has been placed for the order. The system will submit the order to the fulfillment system for processing. The fulfillment system will confirm that the order is being processed. The system will indicate to the user that the user has been charged for the order. The system will indicate to the user that the order has been placed. The user will exit the system.

Page 4: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Real-time Physics in Game at Runtime:

Enables the emergent behavior that provides player a richer game experience

Potential to provide full cost savings to developer/publisher

Difficult May require significant upgrade of game engine May require significant update of asset creation pipelines May require special training for modelers, animators, and

level designers Licensing an existing engine may significantly

increase third party middleware costs

Page 5: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Location of Particle in World Space SI Units: meters (m)

Changes over time when object moves

Particle Position

zyx ppp ,,p

Page 6: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Particle Velocity and Acceleration

Velocity (SI units: m/s) First time derivative of position:

Acceleration (SI units: m/s2) First time derivative of velocity Second time derivative of position

)()()(

lim)(0

tdt

d

t

tttt

tp

ppV

)()()(2

2

tdt

dt

dt

dt pVa

Page 7: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Newton’s 2nd Law of Motion

Paraphrased – “An object’s change in velocity is proportional to an applied force”

The Classic Equation:

m = mass (SI units: kilograms, kg) F(t) = force (SI units: Newtons)

tmt aF

Page 8: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Concrete Example: Target Practice

F = w eig ht = m gTarget

Projectile LaunchPosition, pinit

Page 9: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Finite Difference Methods-I

The Explicit Euler Integrator:

Properties of object are stored in a state vector, S Use the above integrator equation to incrementally update S over time

as game progresses Must keep track of prior value of S in order to compute the new For Explicit Euler, one choice of state and state derivative for particle:

)( 2

derivative statestateprior statenew

tOtdt

dtttt

SSS

pVS ,m VFS ,dtd

Page 10: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Finite Difference Methods-II

The Verlet Integrator:

Must store state at two prior time steps, S(t) and S(t-t) Uses second derivative of state instead of the first Valid for constant time step only (as shown above) For Verlet, choice of state and state derivative for a particle:

pS aFS mdtd /22

derivative state

2

22

2 stateprior 1 stateprior state new

)(2

t

dt

dtttttt SSSS

Page 11: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Errors

Exact

Euler

Page 12: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Linear Springs

dllkF restspring )(

Page 13: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Viscous Damping

ddVVcF epepdamping ))(( 12

Page 14: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Aerodynamic Drag

S: projected front area

CD: drag coefficient

Page 15: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Friction

Page 16: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Collision Detection and Resolution

Page 17: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

What is Collision Detection

A fundamental problem in computer games, computer animation, physically-based modeling, geometric modeling, and robotics.

Including algorithms: To check for collision, i.e. intersection, of

two given objects To calculate trajectories, impact times and

impact points in a physical simulation.

Page 18: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Collision Detection

Complicated for two reasons Geometry is typically very complex, potentially

requiring expensive testing Naïve solution is O(n2) time complexity, since

every object can potentially collide with every other object

Two basic techniques Overlap testing: Detects whether a collision has

already occurred Intersection testing: Predicts whether a collision

will occur in the future

Page 19: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Overlap Testing (a posteriori)

Overlap testing: Detects whether a collision has already occurred, sometime is referred as a posteriori

Facts Most common technique used in games Exhibits more error than intersection testing

Concept For every (small) simulation step, test every pair

of objects to see if they overlap Easy for simple volumes like spheres, harder for

polygonal models

Page 20: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Overlap Testing Results

Useful results of detected collision Pairs of objects will have collision Time of collision to take place Collision normal vector

Collision time calculated by moving object back in time until right before collision Bisection is an effective technique

Page 21: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: collision detected

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 22: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: Iteration I

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 23: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: Iteration II

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 24: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: Iteration III

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 25: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: Iteration IV

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 26: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bisect Testing: Iteration V

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Time right before the collision

Page 27: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Overlap Testing: Limitations

Fails with objects that move too fast Thin glass vs. bulltes Unlikely to catch time slice during overlap

t0t -1 t1 t2

b u lle t

w in d o w

Page 28: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Solution for This Limitation

Speed of the fastest object multiplies the time step should be smaller than the smallest objects in the scene

Possible solutions Design constraint on speed of objects:

hard to apply without affecting the play Reduce simulation step size: too

expensive

Page 29: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Intersection Testing (a priori)

Predict future collisions When predicted:

Move simulation to time of collision Resolve collision Simulate remaining time step

Page 30: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Intersection Testing:Swept Geometry

Extrude geometry in direction of movement Swept sphere turns into a “capsule” shape

t0

t1

Page 31: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Intersection Testing:Sphere-Sphere Collision

Q 1

Q 2

P 1

P 2

P

Q

t= 0

t= 0

t= 1

t= 1

t

,

2

2222

B

rrΑBt

QP

BAΒΑ .QQPPB

QPA

1212

11

d

Page 32: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Special Cases

No collision:

B2 = 0: both objects are stationary, or they are traveling at parallel

When will collision occur?

02222 QP rrΑBBA

02222 QP rrΑBBA

Page 33: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Intersection Testing:When to Collide

Smallest distance ever separating two spheres:

If

there is a collision

2

222

BAd

BA

22QP rrd

Page 34: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Intersection Testing:Limitations

Issue with networked games Future predictions rely on exact state of

world at present time Due to packet latency, current state not

always coherent Assumes constant velocity and zero

acceleration over simulation step Has implications for physics model and

choice of integrator

Page 35: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Dealing with Complexity

Two issues1. Complex geometry must be simplified

2. Reduce number of object pair tests

Page 36: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Simplified Geometry

Approximate complex objects with simpler geometry, like this ellipsoid or bounding boxes

Page 37: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Minkowski Sum

By taking the Minkowski Sum of two complex volumes and creating a new volume, overlap can be found by testing if a single point is within the new volume

Page 38: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Minkowski Sum

Y}B and :{ XABAYX

X Y =YX X Y =

Page 39: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Using Minkowski Sum

t0

t1

t0

t1

Page 40: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Bounding Volumes

Bounding volume is a simple geometric shape Completely encapsulates object If no collision with bounding volume, no

more testing is required Common bounding volumes

Sphere Box

Page 41: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Box Bounding Volumes

Ax is - Alig n ed Bo u n d in g Bo x O r ien ted Bo u n d in g Bo x

Page 42: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

More Examples

Page 43: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Using Bounding Box in Game

Complex objects can have multiple bounding boxes Human object can have one big bounding box

for the whole body Human object can have one bounding box per

limb, head, etc Bounding box can be hierarchical:

Test the big first if possible collision, test the smaller ones

Page 44: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Reduce Number of Detections

O(n) Time Complexity can be achieved.

One solution is to partition space

Page 45: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Achieving O(n) Time Complexity

Another solution is the plane sweep algorithm

Requires (re-)sorting in x (y) coordinate

C

B

R

A

x

y

A 0 A 1 R 0 B0 R 1 C 0 C 1B1

B0

B1A 1

A 0

R 1

R 0

C 1

C 0

Page 46: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Quadtree

Page 47: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

Octree

Page 48: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

R-tree

Page 49: CSCE 552 Fall 2012 Math, Physics and Collision Detection By Jijun Tang.

K-d tree