Tileset bottom gets automatically stretched until it touches the terrain

Hello we have a project where we use KMZ/Collada models to represent facilities/buildings.

When uploading these kmzs into cesium ion and after the tiling process, we observe that for some of the buildings the lower part of the building gets stretched to the bottom until touching the terrain.

Here one example:

Original dae model which is contained in the KMZ:

Tiled result:

Is that something that happens as a part of the tiling process?

If yes, under which circumstances? We have some other models where this effect cannot be observed, for example this one, where the building is actually “flying” because the altitude an tilting is not correctly set.

We’d appreciate some insights that’d allow us to understand this effect and how to control or avoid it.

Thanks a lot.
Miguel

Hi Miguel,

When you upload your data, do you select the Clamp to terrain option? This is part of that feature: we add a “skirt” to the bottom of each building so that it becomes flush with uneven terrain.

If you tell us more about how you would like to control this (and any other details about what result you would like to see), I’d be happy to open a feature request.

Thanks,
Matt

Hi Matt,

thanks a lot for the response. We select the reference terrain “Cesium World Terrain” when uploading the model", is that what you mean with clamp to terrain?

Thx
Miguel

Hi Miguel,

Apologies—the options around this differ for KML/COLLADA vs. CityGML. Would you mind please sending us the KML/COLLADA data you are using so that I could reproduce the problem you are seeing? The easiest way would be to provide me with an ion asset ID of a set of files you uploaded.

Thanks,
Matt

Hi Matt,

sorry we missed your last answer. We are still observing the same behavior, and it seems that it happens or not depending if the whole model is touching the terrain or not, I give you three ION IDs where you can see the difference:

1171117, 1171136 and 1171261

You can see that the first two get some glitches, as the model is positioned so it does not touch the floor with all its sides.

The last one looks better as the whole bottom touches the floor.



Hi

This is intended to be a feature of the tiling process rather than a glitch.

When you are trying to place a building with a flat ground level on a terrain that is sloped or has undulations, then that building can appear to be floating in the air above the ground. In the examples you have shared, one side of the building would always end up floating, which I don’t believe is desirable.

If we tried to place a building where its at its lowest possible ground height, then its possible that another part of the building “sinks” beneath the ground too, and the height of the building, for example in the lower-right corner is not accurately represented above the ground.

In the 1st two screenshots, the building is being raised and “skirts” are being added, in the 3rd screenshot, the building is made to sink underground partially.

So its a matter of perspective on which representation is correct. The tiling pipelines use the skirt path as that is more robust and doesn’t sink buildings underground.

I hope this explanation helps. Please let me know if you have any questions.

Regards
Shehzan

Hi @Shehzan_Mohammed,

thanks a lot for your explanation. That made the behaviour more clear for me, and that makes sense so far. One question I still have is, why does the skirt get such strange artifacts like in the first two screenshots? Is there a way to improve that or make it more reproducible?

Regards
Miguel

The material used for the skirts is an extrapolation of the material used for the vertices at the bottom. Can you check whether the lighting appears that way from all angles?