Dear Cesium Community,
I’m currently working on creating beautiful, drone-like landscape videos with Cesium. My workflow involves automating screenshots of the scene using Puppeteer and then compiling these into smooth videos with FFmpeg.
Current Workflow
-
Move the camera slightly.
-
Wait until all 3D Tiles are fully loaded and rendered.
-
Take a screenshot of the scene.
-
Repeat the process.
This works well when I manually control the camera, but I’d like to leverage Cesium’s built-in flyTo method to automate the camera movement. However, the flyTo method runs to completion without waiting for all 3D Tiles to load and render at each frame. This makes it difficult to capture high-quality, fully-rendered screenshots.
What I Need
I’m looking for a way to:
-
Pause (freeze) the viewer during the flyTo animation to allow time for all 3D Tiles to load and render.
-
Take a screenshot once everything is fully rendered.
-
Resume (unfreeze) the animation from where it left off, continuing the flight to the next frame.
What I’ve Tried
I attempted to use a combination of:
• viewer.clock.shouldAnimate = false
• viewer.clock.canAnimate = false
• viewer.scene.requestRenderMode = true
However, these methods only partially pause the scene and do not fully halt Cesium’s camera movement during flyTo.
My Question
Is there a way in Cesium to:
-
Completely pause or freeze the viewer during a flyTo animation?
-
Wait until all 3D Tiles are loaded and rendered before proceeding?
-
Resume the animation smoothly from the paused state?
Any insights, suggestions, or alternative approaches would be greatly appreciated!
Thank you for your time and assistance.
Best regards,
Andrei