cesium icon indicating copy to clipboard operation
cesium copied to clipboard

3D Tiles pick improvement: Check intersections with tile bounding volumes

Open ggetz opened this issue 2 years ago • 1 comments

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.md with 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

ggetz avatar Feb 07 '24 21:02 ggetz

@jjspace Can you take a review pass on this?

ggetz avatar Feb 07 '24 21:02 ggetz