I'm hoping to implement something like this on Cesium.
I have a 3D vector flow field (Lat/long/Elevation/u/v/w) and I would like to animate the wide velocity and direction in 3d in the atmosphere over the cesium globe. I expect to have 500 - 2500 flow lines visible at any one time depending on the zoom level
I am new to cesium so I am still trying to find my way around. My initial thought is to define the complete path for the flow line using 3D Tiles or glTF. Then apply material, appearance or custom shaders to the problem to do the animation.
It does not need to look exactly like that example but just using a similar technique that can be extended to 3D.
Questions:
1. Is that the right approach? Is there a better way to achieve this?
2. Could anyone point me to samples, examples or docs that could get me started?
3. Any other thoughts or ideas are most welcome. I know this is going tobe a lot of work so anything that can shave some of the complexity off would be very helpful.
Just going with my gut here, using 3D Tiles or glTF would not be the right approach. I think this effect could be achieved with a post-processing effect over the whole screen. Given that the vectors refresh when moving/changing zoom, you can probably render the whole effect to a texture and then overlay on the screen. The whole effect would be bundled in a DrawCommand that is of the OVERLAY pass and uses alpha blending - check out Context.prototype.createViewportQuadCommand. As for the effect itself, you could render the vector current positions every frame to the texture while also fading the texture slightly since the trails in that demo disappear over time. I’m not sure what the code would look like for updating the vectors (possibly all in JS, or possibly utilize the GPU in some way (using a ComputeCommand), but the vector positions will ultimately need to be saved to a texture that the overlay shader can use.
So that’s just my idea, I have no idea if something like this could be achieved with the regular Cesium API.