CesiumGS / 3d-tiles

Specification for streaming massive heterogeneous 3D geospatial datasets :earth_americas:
2.04k stars 459 forks source link

Implicit tiling doesn't support transforming subtiles/content from local coordinate systems #717

Closed elfprince13 closed 1 year ago

elfprince13 commented 1 year ago

Currently there is no equivalent to specifying transform on a tileset when using implicit tiling. The discussion in #587 and #633 hint at some ingredients that could allow this.

Unfortunately #633 appears to be limited to support of "well known" CRSes, which aren't sufficient for tile-local model coordinate systems: https://github.com/CesiumGS/3d-tiles/blob/ee447232952597c32f1d1faaf2097e5d893e2e71/specification/Metadata/Semantics/README.md?plain=1#L51-L51

Moreover, this semantic still cannot be reliably used with implicit tiling unless the 3DTILES_metadata extension is listed under extensionsRequired, which conflicts with the instructions in the current documentation: https://github.com/CesiumGS/3d-tiles/blob/2f65de477d2b15568f21b160aa390b5318655bde/extensions/3DTILES_metadata/README.md?plain=1#L33-L36

It seems as though what is required here is just a metadata semantic corresponding to the existing transform property in explicitly subdivided tilesets, and which when used renders the 3DTILES_metadata extension mandatory.

lilleyse commented 1 year ago

It seems as though what is required here is just a metadata semantic corresponding to the existing transform property in explicitly subdivided tilesets

I believe this already exists: TILE_TRANSFORM (scroll to the bottom of the list).

I would also recommend looking at the draft-1.1 branch which is where the 3D Tiles 1.1 spec lives. Most of the 3D Tiles Next extensions have been promoted to core.

elfprince13 commented 1 year ago

Aha, my bad - not sure how I missed that - I definitely searched for transform in a few places.

And it still seems like using TILE_TRANSFORM with 3DTILES_metadata requires pushing 3DTILES_metadata into extensionsRequired, as otherwise some clients might display in the wrong location? Is this a correct interpretation of the spec?

lilleyse commented 1 year ago

Yeah, I think you're right about extensionsRequired. Though not really a concern with 3D Tiles 1.1 since the extension was promoted to core.

Also I should point out that CesiumJS doesn't actually support the TILE_TRANSFORM semantic but it should be easy to add.