10
3D Physics Simulation Steven Durant

3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Embed Size (px)

Citation preview

Page 1: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

3D Physics Simulation

Steven Durant

Page 2: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Contents

• Equations– Gravity– Euler’s Method– Simple Collisions– Correct Collisions

• Efficiency

• Applications

• Screenshots

Page 3: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Gravity

• F = G * M1 * M2 / R2

• Unavoidable efficiency of O(n2)

Page 4: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Euler’s Method

• a = F / M

• ∆v = a * ∆t

• ∆p = v * ∆t

Page 5: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Simple (Elastic) Collisions

• Check for collision via particle radius

• Conservation of momentum– v1’ = v2 * M2 / M1

– v2’ = v1 * M1 / M2

• This method is flawed

Page 6: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Correct Collisions

• Find next collision based on time– O(n2)

• Find distance between particles

• Find distance moved into each other

∆D∆d

Page 7: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Correct Collisions

• Find fraction of timestep until collision∆t = 1 – ( ∆d / ∆D )

• Move both particles for the fraction– Use ∆t in Euler’s Equations

• Calculate new velocities– Use conservation of momentum

• Move both particles for the other fraction– Use (1-∆t) in Euler’s Equations

Page 8: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Efficiency

• Pruning pairs of particles– Pairs moving away from each other.– Pairs too far apart.

• Pretend their velocities are towards each other• If they still won’t collide before the nearest collision

then their real velocities don’t need to be used or checked.

Page 9: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Application

• Find out how long it would take for two apples on a frictionless table to collide by using realistic masses for the apples.

• Put thousands of tiny little masses along a random distribution and see what the end product is.– Stuff orbiting each other?– One big blob?

Page 10: 3D Physics Simulation Steven Durant. Contents Equations –Gravity –Euler’s Method –Simple Collisions –Correct Collisions Efficiency Applications Screenshots

Screenshots