cesium
cesium copied to clipboard
3D Tiles pick improvement: Check intersections with tile bounding volumes
Description
This adjust the tileset pick code such that we are testing intersections with the tile content bounding volumes directly rather than the bounding spheres.
The bounding sphere could be quite large, especially for tileset bounding region volumes, leading to need to check intersections more models directly, leading to poorer performance particularly in tilesets like OSM.
Along with @javagl's suggestions in https://github.com/CesiumGS/cesium/issues/11814 (which can go in separately), this should help remedy the drop in performance seen for OSM.
Issue number and link
At least partial addresses https://github.com/CesiumGS/cesium/issues/11811.
Testing plan
- [ ] Test OSM performance in Sandcastle by adding:
viewer.scene.debugShowFramesPerSecond = true;
- [ ] Spot check other 3D tilesets (like Google P3DT) to wnsure performance was not negatively affected
- [ ] Test to make sure camera collisions still work with the surface of 3D Tiles
Author checklist
- [x] I have submitted a Contributor License Agreement
- [x] I have added my name to
CONTRIBUTORS.md - [ ] I have updated
CHANGES.mdwith a short summary of my change - [x] I have added or updated unit tests to ensure consistent code coverage
- [x] I have update the inline documentation, and included code examples where relevant
- [x] I have performed a self-review of my code
- [ ] I need to address the remaining TODO in S2 tileset bounding volumes
@jjspace Can you take a review pass on this?