Culling / OBB optimizations
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
Ideas for later.
- [ ] Use OBB for determining what frustums a command belongs in. This should result in fewer commands overlapping more than one frustum. It will have additional overhead, but perhaps we can exploit temporal coherence to reduce the number of distance checks?
- [ ] Instead of culling terrain/buildings/etc with the tile's OBB, use the union of the children's OBBs. It will be more precise but will have more operations. Perhaps use spatial coherence to minimize the number of checks. _3D Tiles now does this, https://github.com/AnalyticalGraphicsInc/cesium/pull/4978_
**References**
- http://cesiumjs.org/2015/06/24/Oriented-Bounding-Boxes/
- https://fgiesen.wordpress.com/2010/10/17/view-frustum-culling/
- http://www.cse.chalmers.se/~uffe/vfc_bbox.pdf
- http://www.cse.chalmers.se/edu/year/2009/course/TDA361/2006/TDA360/Designing%20a%20PC%20Game%20Engine.pdf
- https://smartech.gatech.edu/bitstream/handle/1853/3486/98-38.pdf (BV ideas)
Contributor guide
Research direction
No files, tests, or entry points are named. Start by reviewing the linked OBB, frustum-culling, and BV references, then locate Cesium's current command and tile culling paths. Done would require selecting and implementing a scoped optimization, with evidence that culling precision or frustum overlap improves without unacceptable overhead.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100