Skip to content

ImageOverlayPlugin: Improvements #1206

@gkjohnson

Description

@gkjohnson

Performance & Preload

  • Add an asynchronous option for tile splitting to avoid framerate hiccups. Either add to a priority queue or perform one iteration per frame.
  • Instead of blocking on image loading we should display the best loaded parent tiles until the necessary ones are ready. Or cascade the parent tile loads downward.
  • Afford a more intelligent selection of tile mapping layer to tiles (Allow higher zoom level overlay than "master" tileset tile's using ImageOverlayPlugin #1278)
    • Can compute some implicit geometric error for the tiles.
    • Calculate target overlay resolution based on the size of the bounds of the tile and associated image tile resolution rather than using a fixed 256x dimension texture.

Quality

  • Add option for fading images in after they've loaded
  • Add option for not showing a new layer until all images are loaded
  • Add a custom priority queue function to ensure most relevant tiles are loaded ASAP
    • Load images for "visible", "in frustum" and "used" tiles first.
  • Consider drawing lower-res versions of tiles if high-res versions aren't present to enable more dynamic updates? Ideally we could update child tiles when parent LoDs load but this is more complex.
    • Could be done in the "onTileVisible" callback such that if the data isn't loaded yet we can draw the next best complete data set.
  • Add preload for tile when using planar projection. Requires projecting the bounds into the tiled image space.
  • Add support for frustum transform frames
    • eg when projecting a high res camera view
  • TileSplitting: Detect if using quantized mesh and switch to QuantizedMesh clipper, instead?
  • TileSplitting: Add support for mesh ranges, multi material.

Other

  • Allow for mipmap generation option?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions