Download presentation

Presentation is loading. Please wait.

Published byAngeline Gorin Modified about 1 year ago

1
Advanced Character Physics Paper writtten b y Thomas Jakobsen from IO Interactive Presentation by Semih Kekül

2
Glacier The methods and algorithms in this paper have all been integrated to this engine IO Interactive’s in-house game engine Used for Hitman: Codename 47 Goals: believability (stability) high speed of execution An iterative aproach: Adjustable error margin can be stopped at any time

3
the right combination of several techniques A so-called Verlet integration scheme. Handling collisions and penetrations by projection. A simple constraint solver using relaxation. A nice square root approximation that gives a solid speed-up. Modeling rigid bodies as particles with constraints. An optimized collision engine with the ability to calculate penetration depths.

4
Verlet integration(1) f=ma

5
Verlet integration(2) It is quite stable since the velocity is implicitly given and consequently it is harder for velocity and position to come out of sync. It works due to the fact that 2x – x* = x + (x- x*) x- x* is an approximation of the current velocity(the distance traveled last time step).

6

7
Collision and contact handling by projection Offending points are simply projected out of the obstacle.

8
Solving several concurrent constraints by relaxation Infinitely stiff springs! How do we do that? |x2 – x1| = 100

9
Solving several concurrent constraints by relaxation (2) delta = x2 – x1; deltalength = sqrt ( delta*delta); // dot product diff = (deltalength - restlenght) / deltalength ; x1 += delta * 0.5 * diff; X2 -= delta * 0.5 * diff; How do we combine this constraint with the previous cube constraint? Relaxation

10

11
Cloth Simulation delta = x2 – x1; deltalength = sqrt ( delta*delta); // dot product diff = (deltalength - restlenght) / deltalength ; x1 += delta * 0.5 * diff; X2 -= delta * 0.5 * diff; delta = x2-x1; deltalength = sqrt(delta*delta); diff = (deltalength-restlength)/deltalength; x1 += delta*0.5*diff; x2 -= delta*0.5*diff; Get rid of sqrt

12
Rigid bodies A tetrahedron: 4 particles at vertices, 6 edges which are stick constraints Put it in a cube, Verlet handles it.

13
Rigid bodies(2) What if the world is concave?

14
Rigid bodies(3) A simpler approach with sticks Assume we can detect collisions and we know the penetration depth and penetration points: A linear combination of x1 and x2 is p = c1 * x1 + c2 * x2 ; c1 + c2 = 1 We want p’ = q

15
Rigid bodies(4)

16
Rigid bodies(5) p’ ∆ = q ∆ (they are moving in the same direction)

17
Articulated Bodies (x2-x0) ○ (x1-x0) < α ; for reality of human body

18
Articulated Bodies(2) No rotation around lenght axis of limbs.

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google