Looking at the CyberCity3D Seattle demo, I had some questions about how the demo was configured for good performance while displaying many buildings.
Are the buildings being streamed in by geometry workers tied to the building czml?
Is there any performance benefit to creating sources files in radians or cartesian coordinates?
How does the demo handle showing/hiding buildings based on camera distance?
What’re the performance benefits to only initializing a partial list of visualizers?
Streaming a base layer of 3d buildings is a key feature I’m very interested for cesium, but I’ve also seen a need for loading a high number of custom models for various applications, and want to have an idea of how to maintain good performance in those cases.
Are the buildings being streamed in by geometry workers tied to the building czml?
Surprisingly, no. The main work is to create WebGL buffers for each building, and there isn’t a WebGL extension to do that in a worker yet.
Is there any performance benefit to creating sources files in radians or cartesian coordinates?
Cartesian can save some load-time overhead since that is the native coordinate system for Cesium, but it can also use more space in the file depending on the specific case.
How does the demo handle showing/hiding buildings based on camera distance?
Check out DistanceDisplayCondition in the gfx branch. Note that this hasn’t landed in master yet so it is subject to change.
We plan to have native support for streaming a massive number of 3D buildings (or any type of model). I’ll have more details soon, which I’ll post here on the forum.