Hello community,
I’m building an app with a cesium viewer and at the beginning I was using entities to add billboards with icons (points)and clustering to the viewer. The total number added was around 40k, but I think this number is going to increase to 100k elements, so I’m afraid it can crash the browser or speed down the interface with lag, so I’m wondering If is it a better idea to move on to primitives with a billboardcollection and use a library like Supercluster to generate the cluster (because as far as I’m concerned primitives doesn’t support clustering). I am especially concerned about this problem if the user changes the terrain, if he goes from the plain ellipsoid to cesium world terrain, for example.
Thanks in advance for any recommendation.
Welcome @Fran_Acuna_Parra!
I believe you’re correct that 100k elements would be a bit much for BillboardCollection. It may be possible to improve BillboardCollection performance to this level — filing GitHub issues reproducing bad performance, or PRs improving performance, would be welcome!
These improvements are related to planned support for vector data in 3D Tiles and in CesiumJS. I know those GitHub issues seem quiet, but we are actively working on both, and you can expect more performance-focused options in the future. See the BufferPrimitiveCollection API proposal for some of the technical direction, though billboards and clustering are not discussed there yet.
Also, and available already — the new CesiumJS plugin by @vadymrostok announced at Plugin for massive markers rendering & animation - cesium-gpu-points-layer looks like it might be a good fit for your needs!
1 Like