Hi everybody,

i have implemented discrete SAT (Separating Axis Theorem) in the past successfully.

Therefore i have now remade this to fix the "fast moving issue" - calculate the time when the collision first happens - to get a value for scaling the velocity to remove the penetration in the first place.

What i basically do is to test two OBB with two fixed axis of (1, 0) and (0, 1) with the following algorythm:

- Get the relative position (distance) between the 2 OBBs (pA - pA)

- Get the relative velocity between the 2 OBBs (vA - Vb) - Just to remove the second velocity to make the second one static.

- For loop over the two axes

- Project the relative position onto the axis to get an offset based on current axis

- Project A onto current axes and get min/max projection

- Add the offset to projection of A

- Project B onto current axes and get min/max projection

- Calculate distances between min/max projections of A and B (d0, d1)

- Calculate time enter and time leave factor by divide both distances by projected velocity on axis

- Swap time enter with time leave if required (Time enter must always be smaller than time leave)

- Get the highest overlap to skip out collisions which not happens or are too late

- Time Enter is the factor used to fix the velocity.

These steps are implemented a simple JSFiddle demo i have written to visualize the entire process, see here:

It would be really great if you can help me to fix these problems.

Thanks,

Final