NASA-AMMOS / NASA-AMMOS/3DTilesRendererJS
Plugins: Make dynamically-expanding plugins resilient to "loadAncestors"
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.5k
- Forks
- 416
- Avg merge
- 17h 52m
- Merged PRs (30d)
- 37
Description
Right now some plugins will dynamically expand their children when loading geometry and delete the children when disposing the tile. However this means that the loaders don't behave as expected when the optimized "loadAncestors" setting is set to false since children aren't available until the parents are processed.
Somehow we need to know that an unloaded tile can "expand" further as well as afford unloading. Using a mechanism similar to "external tilesets" may work? Eg automatically insert an "external" node that will instantiate 3-4 layers of nodes. Then disposal should "just work" as it does with external tile sets.
The affected plugins:
- ImageFormatPlugins (deprecated)
- GeneratedSurfacePlugin
- QuantizedMeshPlugin
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 by tracing tile loading and disposal for ImageFormatPlugins, GeneratedSurfacePlugin, and QuantizedMeshPlugin, focusing on behavior when loadAncestors is false. Compare their dynamic child expansion with the external-tileset mechanism suggested in the issue. Done means affected plugins can expand unloaded tiles and unload their generated children correctly under that setting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, three.js
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100