Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Advanced Character Physics  Paper writtten b y Thomas Jakobsen from IO Interactive  Presentation by Semih Kekül."— Presentation transcript:

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.


Download ppt "Advanced Character Physics  Paper writtten b y Thomas Jakobsen from IO Interactive  Presentation by Semih Kekül."

Similar presentations


Ads by Google