FIT CTU
Adam Vesecký
vesecky.adam@gmail.com
Lecture 8
Physics
Linear Dynamics
Angular dynamics

Lex I
Lex II
Lex III
Projectile motion
Slope motion (no friction)
Mass-Spring Motion


Implicit methods
Explicit methods
Semi-implicit methods
Runge-Kutta family
Verlet family
Explicit method
Improved method
Implicit method
Regular Verlet
Verlet leap-frog
Velocity Verlet
Seek
Flee
Arrive
Pursuit
Evade
Wander
Path follow
Obstacle avoidance
Offset pursuit
Flocking

N-Collide
Box2D
Bullet
PhysX
p2.js
Havok





Pinballs (1980+)
The Incredible Machine (1993)
Half-Life 2 (2004)
Angry Birds (2009)
INSIDE (2016)
Half-Life Alyx (2020)
Noita (2020)






Body
Rigid Body
Soft body
Shape
Fixture

Constraint
Sensor/Phantom
Rag doll
Destructible object
rope
revolute
prismatic
cone-twist




Applications
Basic model


Steps
Collidable entities
| Static Collider | Rigidbody Collider | Kinematic Rigidbody Collider | Static Trigger Collider | Rigidbody Trigger Collider | Kinematic Rigidbody Trigger Collider | |
|---|---|---|---|---|---|---|
| Static Collider | collision | trigger | trigger | |||
| Rigidbody Collider | collision | collision | collision | trigger | trigger | trigger |
| Kinematic Rigidbody Collider | collision | trigger | trigger | trigger | ||
| Static Trigger Collider | trigger | trigger | trigger | trigger | ||
| Rigidbody Trigger Collider | trigger | trigger | trigger | trigger | trigger | trigger |
| Kinematic Rigidbody Trigger Collider | trigger | trigger | trigger | trigger | trigger | trigger |
Sphere
Capsule
AABB
OBB
k-DOP
Convex volume
Poly Soup
Compound shapes
Convex hull
Complex shape/volume


Naive solution
Quad-tree
Sweep and Prune
BSP
Grid, Oct-tree, R-tree, R+tree, R*tree, X-tree, M-tree,...
Sphere-Sphere
Sphere-ray
AABB-AABB
AABB-Ray
Capsules
OBB-OBB
Triangles
SAT (separating axis theorem)
Other methods
Stepped world
Continuous Collision Detection (CCD)
Queries:
Ray casting
Shape casting
How to respond to a collision?
Explosion
Fracturing
Restitution
Impulsive response
Friction

Collision Resolving
Coming to rest

Common issue of simple resolvers
