There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
I'm curious how collisions (and possibly restitution) have changed in Farseer Physics 3.5. I tried switching to 3.5 in my XNA project (upgrading from an unmodified 3.3.1), and the collision physics feel subtly but significantly different to me.
Here's my basic scenario: I have a ball that bounces around a room. There is no gravity in the room. The ball is created with BodyFactory.CreateCircle, its restitution is 0, and its density is 0. The room also has a bunch of walls and rectangular blocks. They're
created with BodyFactory.CreateRectangle, their restitution is 1f, and their densities are 0.
With Farseer 3.3.1, if I give the ball a little push (set its velocity to, say, Vector2(5,5)), it will bounce around the room pretty much perpetually. Every time it hits a wall, it ricochets off. If it happens to hit a wall at a really low angle (pretty much
parallel to the wall), it just "sticks" and slides along the wall instead of bouncing off. This is good, and the way I would expect things to work.
With Farseer 3.5, however, the ball sticks to the walls much more frequently, even when it collides at an angle that should clearly result in a "bounce". I'm not sure what causes this exactly, because the ball often bounces around appropriately
for 5-10 collisions and works exactly as I would expect it to, but then suddenly it will just stop bouncing and stick to the wall.
My collision code and restitution settings are identical in both projects (3.3.1 vs 3.5), and they're really quite basic. Nothing crazy or fancy going on.
Has the collision code changed in some significant way in Farseer 3.5?