Expand AABBs only in the movement direction #83
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, AABBs were expanded equally in all directions based on the velocity of the body in order to avoid missing potential collisions during the broad phase. However, expanding the AABBs in the direction opposite of the movement direction is unnecessary.
This PR changes it so that AABBs are only expanded in the direction of the linear velocity. The angular velocity still expands AABBs in all directions regardless of the shape, but that can maybe be addressed in another PR.
This is how AABBs look now: (gizmos have a delay, so it can often look like the AABBs are still expanded behind the bodies; this is not actually the case)
2023-07-17.23-19-42.mp4
This also gives a significant performance boost for situations with many colliders close to each other. For example, previously 1040 moving marbles gave 10 FPS, but now it's a stable 60 FPS.