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

Improve 3D Tiles refinement algorithm to allow LOD skipping #16

Closed
kring opened this issue Jun 29, 2020 · 0 comments · Fixed by #26
Closed

Improve 3D Tiles refinement algorithm to allow LOD skipping #16

kring opened this issue Jun 29, 2020 · 0 comments · Fixed by #26

Comments

@kring
Copy link
Member

kring commented Jun 29, 2020

We're currently using the simplest possible 3D Tiles refinement algorithm, where we won't refine a tile until all of its children (visible or not) are loaded and able to be rendered. This prevents any LOD-skipping, and requires loading a lot more tiles than are actually rendered, which is inefficient. The main advantage of this algorithm (other than simplicity) is that we'll never find ourselves with holes in the mesh.

We should implement the selection algorithm from CesiumJS's terrain engine. It allows skipping any number of levels (and therefore much less loading) and will never allow scene geometry to disappear with camera movement (which looks terrible). But if the camera moves such that not-yet-loaded sections of model are now visible, those parts of the model will be missing entirely. The CesiumJS terrain engine renders "fill tiles" in this scenario, which will be very challenging for the more general case of 3D Tiles. For many 3D Tiles tilesets, though, it will be acceptable to simply render nothing until the new tiles are loaded.

Configuration options should allow the user to select between a guaranteed-complete mesh (current algorithm) or faster loading (this algorithm).

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

Successfully merging a pull request may close this issue.

1 participant