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

TilesRenderer: Traversal overhal plan #669

Closed
gkjohnson opened this issue Aug 5, 2024 · 2 comments
Closed

TilesRenderer: Traversal overhal plan #669

gkjohnson opened this issue Aug 5, 2024 · 2 comments
Milestone

Comments

@gkjohnson
Copy link
Contributor

gkjohnson commented Aug 5, 2024

Related to #667, #668

Next

  • If REPLACE tile's children are not in the frustum then the parent tile should not be in the frustum.
  • Make sure behavior of error is correct. Currently the loader will load and display tiles one level over the error target.
  • Compare times and optimize update times back to previous release.
  • Reduce number of traversal calls if possible
    • Merge some of the functions
    • Push tiles for toggling onto a stack rather than traversing again
  • Make sure "ADD" behavior is working correctly
    • See use of "ADD" in markVisibleTiles that assumes the tile with the "ADD" refine is added rather than the children.
    • Consider whether the traversal logic for "allChildrenLoaded" & "recursivelyLoadNextRenderableTiles" need to account for ADD refinement.
    • Check other ADD cases
  • See if perf can be improved for "flat" tile sets like the france model
    • Can we avoid calculating error in some cases? Lazy generate?

Goals

Behavior Changes

  • REPLACE tile should load next set of visible children only up to the used set
  • SSE should always be calculated for traversed tiles

Plans

  • Adjust precomputed tile flags to indicate __hasContent, __hasRenderableContent, and __hasUnrenderableContent.
  • Rename traverse methods to be more accurate to their functionality
  • Adjust frustum determination function not force immediate children to be used if there are no renderable parents.
  • Simplify and fix skipTraversal and markUsedSetLeaves implementation.
  • Fix recursivelyLoadTiles function to only load up to what should be visible / used.
@gkjohnson
Copy link
Contributor Author

Performance changes from 0.3.36 release using the google maps aerial example as a baseline:

Before
~0.85ms
visible tiles: 179
lru cache size: 517

After
~0.91ms
visible tiles: 179
lru cache size: 513

@gkjohnson
Copy link
Contributor Author

Closing in favor of #678, #679

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

No branches or pull requests

1 participant