CesiumGS / CesiumGS/cesium

Wrong metadata schema used for external implicit tilesets

Open
#11,638 0 comments 0 reactions 0 assignees View on GitHub
category - 3d tiles type - bug
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

When a tileset with implicit tiling is used as an external tileset of another tileset, then CesiumJS apparently tries to use the metadata schema of the root tileset to process the metadata that is stored in the subtree files of the implicit tileset.

Yeah, sounds complicated. Here's how far I zoomed into that unil now:

The attached archive contains ...

- An implicit tileset, called `implicitTilesetMetadataTest`
- This is a trivial implicit tileset, consisting of one tile with content, but with tile metadata
- A tileset that refers to this one as an _external_ tileset

When serving and loading the `implicitTilesetMetadataTest` _directly_, then the metadata is processed properly:

![Cesium External Tileset Metadata Bug 001](https://github.com/CesiumGS/cesium/assets/5597569/39b07ba5-32c6-41e7-94ee-fecc3b3cda7a)

(The archive also contains the appropriate `Sandcastle.js` for quick tests)

However, when serving the root directory, with the tileset that uses this implicit tileset as an _external_ one, CesiumJS bails out. Hoping that the stack trace and code section here might help for a first triage:

![Cesium External Tileset Metadata Bug 002](https://github.com/CesiumGS/cesium/assets/5597569/00877168-1405-4838-b190-8debd58a5dab)

When it tries to process the metadata of the implicit tileset, it seems to use the schema with the ID `EXAMPLE_ID_002`, which is the schema of the _outer_ tileset. (The implicit tileset has a schema with ID `EXAMPLE_ID_001`).

[Cesium External Tileset Metadata Bug 2023-11-20.zip](https://github.com/CesiumGS/cesium/files/13420099/Cesium.External.Tileset.Metadata.Bug.2023-11-20.zip)

Contributor guide

Open the contributing guide

Research direction

Start with the attached archive and its Sandcastle.js, serving the implicitTilesetMetadataTest directly and then through the external tileset to reproduce the failure. Trace metadata processing for the subtree files and compare the EXAMPLE_ID_001 and EXAMPLE_ID_002 schemas; done means the external implicit tileset loads using its own schema.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.