CesiumGS / cesium

An open-source JavaScript library for world-class 3D globes and maps :earth_americas:
https://cesium.com/cesiumjs/
Apache License 2.0
13.01k stars 3.51k forks source link

Custom 3DTiles not properly displayed since v1.115 #12264

Open JackD83 opened 3 weeks ago

JackD83 commented 3 weeks ago

What happened?

I have a custom 3DTileset that was created with a third party software that is not properly loading/displaying.

Since v1.115 the tileset looks likes this: 3DTiles_error_1

Looking at the network tab, the higher quality tiles are loaded, but not displayed.

Setting skipLevelOfDetail: true for the tileset fixes the error, but has negative side effects (https://github.com/CesiumGS/cesium/issues/7903)

3DTiles_error_2

Unfortunately, I can not share the full tileset. Any idea what cold cause such behavior change? The change log mentions a change in the handling of empty and non-empty tiles, but I'm not sure if that could be the problem.

tileset.json

Reproduction steps

load faulty tileset with cesium v.1.115

Sandcastle example

No response

Environment

Browser: any CesiumJS Version: 1.115 and up Operating System: any

ggetz commented 3 weeks ago

Hi @JackD83,

The change log mentions a change in the handling of empty and non-empty tiles, but I'm not sure if that could be the problem.

This is possible. Here's the exact change that was made. This change was made to prevent similar behavior in a different tileset. I wonder if we need to balance the previous behavior with the new behavior based on whether the the tilseet is using implicit tiling or not. @lilleyse Do you have any thoughts?

I see you mention you are using a third-party tiling process. Is it one you have access to, or no?

JackD83 commented 3 weeks ago

I see you mention you are using a third-party tiling process. Is it one you have access to, or no?

Unfortunately no. I believe the tileset was created with a very old version of the Bentley software and even converted to Gltf 2.0 at one point

lilleyse commented 3 weeks ago

I'm curious how it looks in Cesium for Unreal or Cesium for Unity. That would help us confirm whether it's a CesiumJS bug or some issue with the tileset that CesiumJS was previously working around.

If it looks correct there, then I would start by looking at edge cases like https://github.com/CesiumGS/cesium/pull/11843#discussion_r1500739206.