2D systém souřadnic
3D systém souřadnic
Sčítání a odčítání
Sčítání a odčítání
Velikost vektoru
Velikost vektoru
Normalizace
Normálový vektor
Skalární součin
Vektorový součin
Projekce
Lineární dynamika
Úhlová dynamika

Pohyb projektilu
Pohyb po nakloněné rovině (bez tření)
Implicitní metody
Explicitní metody
Semi-implicitní metody
Runge-Kutta family
Verlet family
Explicitní metoda
Vylepšená metoda
Implicitní metoda
Seek
Flee
Arrive
Pursuit
Evade
Wander
Path follow
Flocking




Pinbally (1980+)
The Incredible Machine (1993)
Worms (1995)
Half-Life 2 (2004)




World of Goo (2008)
Angry Birds (2009)
INSIDE (2016)
Half-Life Alyx (2020)
Noita (2020)





Body
Rigid Body
Soft body
Shape
Fixture

Constraint
Sensor/Phantom/Trigger
Rag doll
Roztříštitelné objekty
rope
revolute
prismatic
cone-twist



Paratrooper (1982)

Fictorium (2017)

Teardown (2020)
Aplikace


| 1 | if (min(min(min(body.M,ibody_inv.x),ibody_inv.y),ibody_inv.z)<0) { |
| 2 | body.M = body.Minv = 0; |
| 3 | body.Ibody_inv.zero(); body.Ibody.zero(); |
| 4 | } else { |
| 5 | body.P = (body.v=v)*body.M; |
| 6 | body.L = body.q*(body.Ibody*(!body.q*(body.w=w))); |
| 7 | } |

Kroky
Kolidující objekty

Koule
Kapsule
AABB
OBB
k-DOP
Složené tvary
Konvexní obálka


Naivní řešení
Quad-tree
Sweep and Prune
BSP
Grid, Oct-tree, R-tree, R+tree, R*tree, X-tree, M-tree,...
Koule-koule
Koule-paprsek
AABB-AABB
AABB-paprsek
OBB-OBB
SAT (separating axis theorem)
Substeps
Continuous Collision Detection (CCD)
Jak reagovat na kolizi?
Exploze
Fracturing
Odraz
Tření
Constraint

Relaxace
Klidový stav


Do you guys not have phones?Wyatt Cheng, BlizzCon 2018