Display 3DTiles sharing the same model origin

This question is kind of a follow up to issue #8148 on github.

I have N meshes I want to display in Cesium. I have converted them to 3D tiles. These meshes shares the same origin (which is far from the actual vertices).

From the discusssion we had in #8148, it’s stated that the Cesium ION geonormalize every object (ie: the origin of the model is centered around the actual model).

Is it possible to add them all in the same scene and keeping the actual distance between each tile ? I tried to use the global transform from the 3D tile to translate every 3D tile from the same offset, but I feel that this solution is not really ideal (and it’s not even working at the moment).

I uploaded some meshes to cesium ION but the result is that every tile is displayed at the same origin.

Any thoughts on how to proceed here ?

If your models are all positioned relative to each other, then when you upload them to ion they should still keep that distance intact. Are you seeing the models placed on top of each other instead? If so, could you let me know the asset ID on ion?

Cesium ion does this by normalizing the geometry of each model, but the tiles are positioned in the correct location using either the RTC_CENTER:


And/or the tile transform.

Yes I see the models on top of each other (ion Asset ID 43358 and 43359).

Thanks !

Looking at the average (X,Y,Z) of these two models, they seem to be very close to each other. Uploading them together (as opposed to two separate assets) should keep their relative distance intact. Although it’s a bit hard to tell where one ends and other begins since they seem to be missing the material/texture. Can you try reuploading them together as one asset with the materials?

I uploaded them together and the display is fine (Asset 43909), but this fact raises some questions on my side:

  • I guess in this case only one 3D tile is generated. My goal was to use LoD for each tile, so in this case, is it possible to use LOD on distinct region within the same 3D tile ?

  • On cesiumION, is it possible to update an existing asset with additional meshes ?

  • From what I see in the display, the origin offset is not displayed (I guess it’s normal because the offset is in projected coordinates). This is not a question, just a remark.

Do you mean that you’re generated your own LOD’s? Generally part of the convenience of using Cesium ion is that it will automatically generated levels of detail for your meshes, so you just have to upload the highest resolution mesh.

Right now there isn’t a way to add incremental updates to 3D Tiles on Cesium ion, so you’d have to re-upload all of them again together. It might be easy to add a feature to support adding data, but it may be trickier to support the case when the update you’re making is supposed to replace some existing mesh(es).