Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tile transforms performance hit #11267

Open
jjhembd opened this issue May 3, 2023 · 0 comments
Open

Tile transforms performance hit #11267

jjhembd opened this issue May 3, 2023 · 0 comments

Comments

@jjhembd
Copy link
Contributor

jjhembd commented May 3, 2023

When rendering camera flights through a detailed 3D Tileset, frame rate can suffer, with much of the CPU time taken up by tile transforms. This problem was partially addressed in #11211, but it can still be an issue in full-screen views.

See this Sandcastle of a detailed photogrammetry tileset, and click the fullscreen button in the bottom right of the Viewer.

Performance profiles are dominated by functions like Matrix4.multiplyTransformation, Matrix3.getColumn, and OrientedBoundingBox.distanceSquaredTo, most of which are being called from Cesium3DTile.prototype.updateVisibility.

2023-05-03 14_13_41-Hello World - Cesium Sandcastle

Cesium3DTile.prototype.updateVisibility is called for every tile in the scene, every pass of every frame. It should be sufficient to do the matrix work only once per tile per frame, and re-use the results for different passes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant