Added support for large Rectangles in OrientedBoundingBox.fromRectangle #8475
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.
There have been reports of 3D tiles that use
TileBoundingRegion
disappearing when viewing from a horizon angle. This is because the root tile generates a brokenOrientedBoundingBox
when theRectangle
's width is greater than half the ellipsoid. The terrain system doesn't have this problem because it handles this edge case and generates aBoundingSphere
instead.In this PR
OrientedBoundingBox.fromRectangle
has been made to work with larger rectangles. The approach is different than small rectangles which orient the OBB around the rectangle's center normal. I tried doing it this way for large rectangles but it produced very poorly fitted, albeit correct OBBs. The final approach ignores the latitude when calculating the OBBs orientation.With this fix, all of the special case code is gone. I did a good amount of testing but this change impacts a lot of core systems so more eyes on it the better.
Fixes #4483
Sandcastle
Examples:
3D tile before (incorrectly culled):
3D tile after:
@loshjawrence
@lilleyse
@jasonbeverage