Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Objective
Fixes #403.
#927 added
ColliderTreesfor the new BVH broad phase. We should reuse them for spatial queries instead of maintaining and using a separate BVH from Parry.Solution
In short:
Bvh2via extension traits (we should probably upstream these)sweep_traverse,sweep_traverse_miss,sweep_traverse_anyhit, andsweep_traverse_dynamicsquared_distance_traverseandsquared_distance_traverse_dynamicColliderTreeray_traverse_closestandray_traverse_allsweep_traverse_closestandsweep_traverse_allsquared_distance_traverse_closestpoint_traverseaabb_traverseSpatialQueryPipeline, and use theColliderTreestraversal methods forSpatialQueryThis involved some other miscellaneous changes:
max_hits > 1, similar to ray casts.point2andnormal2were previously in local space, despite what the docs state. They are now in world space.Testing
Tested different spatial queries in examples.
Showcase
Before, updating the spatial query pipeline was extremely expensive for large scenes with a lot of colliders:
(note that the tree optimization cost is partially hidden here, as it is run in parallel with the spatial query pipeline update)
Now, using the much more optimized
ColliderTrees, that overhead is gone:Future Work