I have multi floor buildings data which is in 3D tiles format(screenshot attached), now i want to have building outline edges floorwise as like OSM buildings tileset have. I tried using silhouette but that is not working for every edge of the building.
Is it possible to add outline edges before publishing to ion as pre processing as like OSM buildings tileset. I also gone through the link( glTF/extensions/2.0/Vendor/CESIUM_primitive_outline at master · KhronosGroup/glTF · GitHub) for CESIUM_primitive_outline but i did not understand how to do it.
Or can it be done post processing at the client end as like silhouette?
Unfortunately it is currently not possible to add outlines to your own 3D tileset. This feature is requested and discussed here.
The link you included in your post (glTF/extensions/2.0/Vendor/CESIUM_primitive_outline at master · KhronosGroup/glTF · GitHub) is actually for glTF models. You can add outlines to a glTF building model by including
CESIUM_primitive_outline as an extension.
Thanks dzung… I can see the outline edges in different color for OSM buildings tileset(Cesium ion), how it is possible in this case. is it happened in the preprocessing stage? if so how can we do that?
Hi, I’m also really interested on that topic. How are the outlines on the OSM buildings generated?
In this sandcastle link you can see I’m even able to disable the outlines for them, but haven’t found how to enable that outlines on my own tilesets.
Thank you for your questions! I recommend checkout out our source code for more information on how we generate outlines for OSM buildings.
Unfortunately, I can’t think of a simple way to enable outlines on your tilesets. Our API currently does not support this functionality. Any suggestions from the rest of the community?
@sam.rothstein thx a lot for your quick answer. I looked into the code and as far as I understand this is the class which handles outline loading for models.
There is a property
showOutline [boolean] in the Cesium3dTileset class, which seems to activate that logic and which supposedly only works for gltf models.
Currently I’m testing with tilesets which are created from a kmz file wich contains a
My question is, would that work if my tileset would contain a glb/gltf file instead of a dae model?
While my intuition leads me to believe that this would not work, our documentation seems to state otherwise. Regardless, there is no downside to trying this out. Can you please give this a try and let me know if it works?
I just tried following things:
- Tileset (kmz) whose internal models are in .glb format
- Tileset (kmz) whose internal models are in .dae format
For both cases
Cesium.Cesium3DTileset#showOutline: true or false does not seem to have any effect.
For my understanding, how do the tileset for the OSM Buildings (Asset ID 96188) technically differ from my own ones?
Thank you for giving this a try. As I eluded to above, I am not particularly surprised with the outcome of your test.
While I have access to the OSM Buildings dataset, I have not taken the time to look through the files to determine what is unique about the dataset regarding the
showOutline method. I did find this page which provides some high-level information about the dataset:
I suspect that the dataset includes additional 3d data representing the building outlines that can be toggled by the
showOutline property. While I worked on this somewhat relevant pull request a few months ago, I may need to check in with some other CesiumJS developers for more context on our OSM buildings dataset.
thanks for the further info, after investigating a bit further I can only some misleading information about the topic. If you look to this announcement you can read the following:
How can I activate the CESIUM_primitive_outline extension? The documentation on that aspect is not really clear even if here its stated that
showOutlines relays on that extension.
Thank you for providing some more information. I just shared this thread with another Cesium developer who helped write the spec that you shared. He should get back to us shortly
It’s not possible to enable outlines unless the tileset has the CESIUM_primitive_outline extension already.
OSM buildings are generated with a custom pipeline that is different than the general purpose 3D buildings tiler in ion, so the only way to get outlines is by writing your own tiling pipeline. However we can consider adding this feature to ion in the future.
Hi @sean_lilley & @sam.rothstein,
thx for the insights. It’d be awesome if that’d be supported in ion.
We are really interested on using that feature for our project, is there any documentation resources on writing your own tiling pipeline?
I’ve also seen there is an on premise option for the tiling process. Is that something that could be solved that way?
any finding since then?
generate a line primitive with gltf.
Just to follow up on this topic, does Ion now support the CESIUM_primitive_outline extension? I see some reference to it in the new release notes. I’d love to be able to have Ion process my tileset and then show the edges of my geometries
ion doesn’t support
CESIUM_primitive_outline yet, we just added more for more visualization options in CesiumJS