Skip to content

ImageOverlayPlugin improvements #1264

@xawill

Description

@xawill

Question

Hi!
I played a bit with ImageOverlayPlugin and I have a few "issues" I would like to discuss with you (let's call them "questions" for now and based on your answers I can provide a repro if needed):

  1. I was using the TextureOverlayPlugin available in the examples to texture my quantized mesh terrain (with a quick WMTS url replace for x,y,z tiles idx). What is the added value of ImageOverlayPlugin in your opinion? I see the architecture is more scalable; you can add a lot of different ImageOverlays, but why not just improve the existing TextureOverlayPlugin?
  2. Because I am experiencing a big performance degradation after migrating TextureOverlayPlugin -> ImageOverlayPlugin (see the diffs here). It is really slower to load the overlay tiles. Is the new plugin still WIP and you expect to fix known performance issues or is there something wrong on my side?
  3. Trying to overlay this 3d buildings tileset with ImageOverlayPlugin, I noticed only the root tile is loaded (note that this doesn't happen with other tilesets such as quantized mesh terrain I also use). Digging into the issue, I noticed that in the 3d buildings tileset, tile.__hasRenderableContent is set to false even though there are child tiles. This implies tile.__depthFromRenderedParent not being set properly and thus _calculateLevelFromOverlay returning a wrong value which stops the plugin from loading child tiles. It might be linked to you not being able to properly test functionality with "ADD" tilesets, as you wrote in TilesRenderer: "ADD" seems to always load all child tiles #1209. I don't know if this is the correct way to fix it, but currently I am using return tile.__depth - 1; instead of return tile.__depthFromRenderedParent - 1; (here) as a quick personal patch. Let me know how we can coordinate the fix, because this one I am pretty sure this is a bug of the tiles renderer.
  4. I know this is currently not possible to share the same plugin among multiple tilesets. Imagine however the following use case. I have a quantized mesh terrain I overlay with aerial imagery using the ImageOverlayPlugin. I also overlay the same aerial imagery over another tileset of 3d buildings (to have real roof textures). Currently the aerial imagery is loaded twice and I haven't been able to find a way to synchronize both overlays so that they are not processed twice for nothing. Any hints?

Supplemental Data

No response

Library Version

v0.4.14 (latest)

Three.js Version

r179.1 (latest)

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions