Open sanjeetsuhag opened 2 years ago
If the content can be split up in nodes, one approach might be to include the geometry in only one of the tile (e.g. where its centre of mass lies), and then reference the sibling tile and the particular node(s) spilling into the current tile.
This way a client knows they need to render only this part of a neighboring tile if that full tile is not also rendered. An idea we first came up with in OGC Testbed 13 and also described in our GNOSIS Map Tiles draft specification.
It was originally thought of for points vector tiles referencing individual models, but I think the approach works as well if you can refernce individual nodes within a glTF model for an entire tile batching models.
Another advantage of having a glTF node structure in the batched 3D models of the tile would be to adjust the height of models based on the DEM in use, or the current LoD of that DEM.
Just adding a use case here: When generating a tileset out of vector data (e.g. shapefiles) it is usually not desireable to split up that data at bounding box boundaries. It's doable and surely way easier than splitting a 3D model, but it doesn't really make sense from a user's point of view (because one vector geometry represents one "thing that I want to see" + reducing the vector geometry for higher LODs often makes no sense, so you end up with content only in the leaf tiles anyways).
I can see that explicitly defining overlaps between tiles is kinda against the "philosophy" of using implicit tiling. Still it would be very nice to have this option available, maybe as an extension to the 3DTiles 1.1 spec?
The
3DTILES_implicit_tiling
extension enforces tile subdivision through a quadtree or octree, and there is no overlap in "sibling" tiles. However, for a tileset, the content may intersect with one of these boundaries. How should that be handled?3DTILES_metadata
per-tile semantics should be uses to shrink tile volumes, not expand them. This is to preserve spatial coherence.