NASA-AMMOS / NASA-AMMOS/3DTilesRendererJS
Allow higher zoom level overlay than "master" tileset tile's using ImageOverlayPlugin
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.5k
- Forks
- 416
- Avg merge
- 17h 52m
- Merged PRs (30d)
- 37
Description
Description
When overlaying aerial imagery on quantized mesh, for instance, I find the resolution of the texture to be lower than personal preference. I can reach the max zoom level of the overlay, but only when I am extremely zoomed in (almost not being able to see anything, being so close). errorTarget=1, if it helps; also tried with errorTarget=0 with same results.
My understanding is that the plugin uses the same zoom level for the overlay as the "master" tileset's current tile, and only uses a higher zoom level for the overlay in case the "master" tileset's max zoom level is reached and there is still a higher zoom level available for the overlay (and enableTileSplitting is set to true).
I personally find it to be too low, at least with Swiss dataset:
Quantized mesh
Aerial imagery
See fiddle here.
Solution
I would like to have a way to force using a higher zoom level for the overlay than the underlying tileset's tile.
I know 3D tiles work with setting errorTarget, but here I am not sure if that would make sense to have an errorTarget for the overlay as well.
Maybe having a zoom level offset? If zoomLevelOffset=2, for instance, the overlay zoom level will be picked at "master" tileset tile's zoom level + 2 (if the 3D tile or quantized mesh is zoom level 18, it will overlay the tile with zoom level 20 imagery).
Alternatives
None. Living with it :)
Additional context
I have much better overlay resolution using TextureOverlayPlugin. Live demo available here. Look for "Vevey" in the search bar top right to see the same location as the fiddle. Screen capture:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ImageOverlayPlugin and trace how the master tileset zoom level, errorTarget, and enableTileSplitting determine the overlay tile. Reproduce the Swiss quantized-mesh and aerial-imagery example from the linked fiddle, then define the smallest configuration that permits a higher overlay zoom when imagery is available. Done means the overlay can use the requested offset without breaking existing tile selection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, three.js
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100