Custom ball physics - Impact velocity


I’ve purchased the “Game Physics - Introducing Gravitation & Rotation in Unity” course to apply the knowledge in Unreal Engine in order to create custom physics for a soccer ball.
The course is great and I got a good push in the right direction to understand how basic game physics work, but unfortunately there is no material about collisions.

I’m having trouble calculating the linear and angular velocity for a ball after the impact.
Ignoring the angular velocity, I was able to make the ball bounce and come to a rest on the ground pretty nicely like this:
LinearVelocity = RestitutionCoefficient * LinearVelocity.MirrorByVector(HitResult.ImpactNormal)

But how do I find the linear velocity based on the angular velocity? The ball needs to change bounce direction if the ball is spinning. The angular velocity also needs to change based on the linear velocity.

Any idea how the impact impulse could be calculated?

My entire code for the ball physics can be seen on the unreal engine forum:

Privacy & Terms