Skip to content

Tileset Selection for Vector 3D Tiles Support #1323

@azrogers

Description

@azrogers

Context and Problem Statement

We are looking to support Vector Tiles: 2D vector data contained within a 3D Tiles tileset. This vector data should be draped over the terrain in a similar way to how raster overlays currently work. This means that we need to find a way to support tile loading and selection from a 3D Tiles tileset within a raster / vector overlay.

Considered Options

  • Separate Tileset: Creating a separate tileset object on the game engine side that can be linked to the vector overlay through some means, allowing a vector overlay to grab the results of the existing tileset selection algorithm.
  • Embedded Tileset: Embedding a Tileset object within the vector overlay itself, with the same results as option 1 but without the need for the user to create and link a separate tileset.
  • New Selection Algorithm: Implementing an entirely new and separate tileset selection algorithm just for vector overlays.
  • Selection Algorithm Refactor: Refactoring the existing tileset selection algorithm so that the code can be shared across the tileset and vector overlay implementations.

Decision Outcome

We chose option "Selection Algorithm Refactor" as it will allow us to handle tileset selection efficiently for vector overlays without the development time of creating an entirely new tileset selection algorithm.

Consequences

  • Good, because we can do away with parts of the tileset that won't be needed for vector overlays (eg. uploading to the GPU)
  • Good, because we can avoid the development time of an entirely new tileset selection algorithm.
  • Good, because we can use this refactor to pave the way for future work to support customizable tileset selection algorithms (such as Implement predictive 3D Tiles loading from CesiumJS #85)
  • Bad, because this will involve refactoring an especially complex part of the codebase (tileset selection and loading internals)

Metadata

Metadata

Assignees

Labels

adrArchitectural Decision Records

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions