How to visualize points from 3D Tiles / gltf?

Hi,

I’m implementing conversion of our terrains to 3D Tiles and I’m having problems with small light points that are implemented as regular point geometry. When imported in ion, they seem to occupy 16x16 pixels, can I customize this in 3D Tiles or gltf somehow? Force round points of a certain size or connect them to a sprite maybe? There are only few points, so a real point cloud be overkill.

Regards,
Andreas

It could be good to know what these points actually are - are they ending up as glTF data with POINTS primitive mode?

You may try assigning a style to the tileset as a whole, and configure the point size in this style - roughly like this:

tileset.style = new Cesium.Cesium3DTileStyle({
  pointSize: "20",
});

(for more examples, see Cesium Sandcastle ).

If that doesn’t help, there may be other options to achieve that goal (after all, you already showed the screenshot with the desired result).

Thanks, the points are originally light points from an OpenSceneGraph model, converted to regular POINTS primitives in the .b3dm files. They wouldn’t resize automatically as the original light points but could be useful as mast top lights anyway if I can set a decent static size and appearance.

I discovered that it’s only directly in ion that they appear as 16x16 pixels of solid color. In Sandcastle, they are just 1 pixel. Neither of these are the desired result, I would like to be able to control a more realistic appearance of a light point, e.g. with a sprite or at least a size in between 1 and 16 pixels.

I tried using Cesium3DTileStyle as you suggested, but it changes nothing unfortunately, they are still 1 red pixel in Sandcastle even if I set another size or even try to set an image URL. So maybe they are not converted to geometry that react to Cesium3DTileStyle for some reason.

Optimally, I would like a working solution to this to be encoded directly in the .b3dm or 3D Tile format, so that it’s self-contained, without having to add any javascript. But if that’s not possible, some javascript could be acceptable as well.

More suggestions are highly appreciated.