remove a specific building from the photogrammetric model

Hello! Is it possible to remove a specific building from the photogrammetric model?

Yes! You can use a set of clipping planes to do this. See the code example here:

https://sandcastle.cesium.com/index.html?src=3D%20Tiles%20Clipping%20Planes.html

This longer code example shows how to cut a hole in a 3D Tileset using clipping planes:

https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Apps/Sandcastle/gallery/development/Many%20Clipping%20Planes.html

Let me know if this helps.

Thanks for the answer. I saw these examples earlier in the study of cutting planes. But I can’t create several planes for a building of complex shape. (As in the picture)

Dear Omar Shehata,
Joining the same question.

Thanks for the answer. I saw these examples earlier in the study of cutting planes. But I can’t create several planes for a building of complex shape. (As in the picture)

If you have a polygon defining the building’s shape, you can use invert classification to do the opposite operation, hide everything outside that polygon. You can read a bit about this here:

https://cesium.com/blog/2018/11/05/dynamic-3d-tiles-annotations/

And there’s an example of it here:

https://sandcastle.cesium.com/index.html?src=Classification.html

Perhaps it would be useful to add a feature to CesiumJS to allow you to hide what is intersected by your polygon with the photogrammetry. Can you tell me a bit more about your use case here? Is the goal to add a different version of the building in its place?

Yes exactly. We want to combine the gltf model of the planned building with the existing photogrammetric model, with the removal from fgm of the elements that intersect the gltf model.

Dear Omar Shehata,

Do you have any updates or any ideas regarding the latest question from the topic starter?

It would be very useful if cesium make such function.

Regards,

Dmitry

This is certainly a use case we’d like to better support although I don’t have a timeline on when we will release a feature to make this easier.

My best advice for now is to use clipping planes. It is not ideal since it does not yet support clipping out concave shapes, but you can see an example of this in this Sandcastle:

https://sandcastle.cesium.com/index.html?src=development%2FMany%20Clipping%20Planes.html&label=Development

If you try the “b3dm” option in the dropdown you’ll see an example of removing a convex area from a 3D Tileset.

Dear Omar, many thanks for your support.

Just chipping in that this would be very useful.

For example imagine a large dataset of a whole city, and we capture an updated section of just one block with drone data, we could use that to insert the update rather than re-processing it all or editing the existing dataset to specifically replace a complete tile.

AC.

Andrew, I would actually consider that a slightly different use case. We do plan on supporting partial updates like you describe, in the same way that Cesium ion currently supports uploading your own local terrain and combining it with Cesium World Terrain, you would do the same thing with 3D Tiles. The feature request for this is open here (which I’ve just bumped with your post):

https://github.com/AnalyticalGraphicsInc/cesium-ion-community/issues/244

For removing specific buildings, I imagine that would be useful when you either want to put something that isn’t 3D Tiles there (such as a glTF model of a new proposed building) or perhaps just because you want to see the underlying terrain underneath a specific property perhaps.