@Jordan3d From what you’re describing, that behavior is due to the nature of 3D Tiles. 3D Tiles loads level of detail based on distance from the camera, so higher detail LODs are only loaded in once they’re necessary. This prevents the machine from being overwhelmed by too many high resolution meshes.
@janine Thanks for letting me know. so just to confirm; theirs no way to preload all of cesium in ue5 prior to rendering in the sequencer? its mainly the LOD’s popping we want to fix, even if the far LOD’s remain low based on their distance from the camera, we just want to “freeze” cesium from loading in anything else during the camera animation in sequencer.
“Preload all of Cesium” isn’t really feasible. For Google Photorealistic Tiles, for example, the total dataset is likely measured in petabytes.
However, you can reduce the visible popping by reducing the “Maximum Screen Space Error” property. For example, change it from the default of 16 to 8 or 4. That wil make it switch to higher LODs sooner (when the tiles are farther away), which will make the LOD switches less apparent.
first frame issues can be fixed by extending the shot camera track to -1 frame. its taking the previous frame from the first frame for warmup (if its empty or black you get weird results)
Hi, I tried this solution but still have the same problem of the tiles not loading when i send the sequence to render queue. My PC is having no issues rendering the animation in editor. Any other solutions please?
The tiles are also missing in the Camera cuts…
I just tried making a quick video using MRQ, and it appears to still be correctly waiting for tiles to load before snapping each frame. The two usual caveats apply:
- Your LevelSequence must be in your level (i.e., in the Outliner), not just an asset in the Content Browser.
- Cesium for Unreal will only use the camera associated with use PlayerController for selection. If you’re recording the video from the perspective of some other camera, it won’t necessary wait for (or even load at all) the tiles that are necessary from the viewpoint of that other camera. Simply adding a Cine Camera Actor to your Level Sequence should make that camera the player controller’s camera automatically, but this could be a problem in more complicated scenarios.
If neither of these help, please help us to reproduce the problem, preferably by providing detailed step-by-step instructions. Start with the Cesium for Unreal Samples project, if you can.
Dear Kevin, I have the same problem - already made it a topic, but basically all defects described here happen for me as well - my Level sequence definitely is in the level, I only have one camera. I rendr with a 360° capture, however the problem also persists when just renbdering a standard view. Funny effect: In th editor, I can even see tiles “blinking” , right in the middle of the view - this stops when I click on the google tileset- and starts again when I click on something else. Also, it is reproducably THE SAME TILES that do this, and it also shows in the renders, althrough sometimes they are just seen as dark shadows , not as fully missing ( see attached images) . PLEASE I need your help, my deadline is approaching and nothing works. Also, the problem seems to get worse every day.
I can’t really understand what you’re seeing from your screenshots. Which tiles are missing in the second one? Are there any tiles at all in the first one?
Since your first screenshot is 1920x1920, which is very different from the usual 16:9 aspect ratio, you may be running into the problem where Cesium for Unreal can’t tell what the aspect ratio of a MRQ capture is supposed to be (because Epic does not provide the necessary API), and so if it’s much different from 16:9 you’ll get tile selection artifacts. You can work around this by using the CesiumCameraManager. Detailed instructions for that are here:
Hi Kevin,
thanks for getting back to me. Well, things are weird here… I sent you two images to illustrate the fact that we have a phenomenon that gets worse with the panoramic capture, but also exists in standard camera views.
Sometimes I will get perfect images ( in 16:9, as well as in panoramic) , then crippled ones, and then images with no tiles at all! ( that was the blue sample image). And it changes… This morning I did a near perfect 16:9 render in low quality of the whole (4500 images) sequence. Then did a test of 30 images in panoramic capture - which rendered approximately half the tiles only. Then, one hour and 4 coffees later I rendered the same sequence in panoramic again ( all settings identical) and it came out completely empty. I am just going nuts here…
Another problem: I just tried your blueprint solution - but I am not used to creating blueprints, so I think that is going sideways… any idea for help?
I don’t have any ideas that I haven’t already shared. If you can give me detailed instructions for reproducing the problem you’re seeing, I can investigate more deeply.
hey Kevin I have a good one for you, how can I get the mountain, trees, and other small objects stop shifting when I have camera fly through the scene if you pay attention to the mountain in the back some of the trees appear and disappear. how can I send you a clip to see?
Hi Jose, Looping back on this. Did re-creating the level sequence per Kevin’s suggestion fix the problem? I am going through the same issue and tried re-creating all of them, as suggested, along with one master one that gets all the individual sequences together but still no luck.
I believe you can directly attach small videos. For larger ones, use any video hosting site.
Hi Kevin,
I’m using UE 5.3 and having trouble getting a complete sequence rendered with the Google tiles. Putting the sequence into the level definitely is required, and adding an engine warmup of 32-64 frames seems to help, but my results are pretty unstable as people are reporting.
I wanted to highlight one potential issue that some people might have (I definitely have it). When using the Google API key and not Cesium Ion, there is a maximum quota of 12,000 tile render requests per minute. Flying around my scene for a minute creates a few hundred requests. But trying to render a 24-frame MRQ sequence that spins the camera 180 degrees hits the 12,000 request limit and generates an error: "Received status code 429 for tile content..."
So I seem to be unable to have more than one second of footage using this method. The attached screenshot is what happens when the camera spins 90 degrees and the missing tiles and error logs begin to appear.
There might be an insane number of requests being sent to Google with every frame being re-requested from scratch, and maybe something else more technical is re-requesting render tiles over and over again with every sample. This is something you should consider and measure when looking into the issue.
Hmm that’s an incredible number of tiles to request in under 60 seconds. Are you rendering at an extraordinarily high resolution or something like that?
I identified one dumb error on my part. I ended up with a duplicate tileset in my level, which probably doubled the number of tiles to request. So I opened Map 12 in the Samples project to do basic tests there.
I had nearly no 429 errors this time, but the number of requests was still very high, getting close to the limit every time I rendered. Every spike in the attached timeline is a MRQ render, and the red line is the 12,000 limit. I tried a huge number of settings, like number of samples, number of frames rendered, frame resolution, screenspace error. Nothing made a significant difference. I also changed location from Googleplex to Manhattan with only a small increase in requests. The request limit does seem like a trap still, because if I were to render tiles on two UE instances at a time I would exceed that limit, but it doesn’t explain all the issues.
What did produce more reliable problems was using a fast spinning camera that turns around and also moves upwards quickly. Tiles fail to load towards the end of the sequence (just 24 frames), but did not produce the errors in the log. See the attached screenshot (it’s low res on purpose). I’m also attaching the sample level and my MRQ settings if you want to test.
Cesium_MRQ_Test.zip (75.1 KB)
The only thing I can think to try is to reduce the “Maximum Simultaneous Tile Loads” setting. 12k requests per minute is 200 per second. With 20 downloaded simultaneously (the default), the means you’re averaging about 100ms per tile, which isn’t crazy on a fast connection. Reducing the number of requests run in parallel should help.
Google tiles are pretty small, but 12k is still a lot of tiles. I’m not sure why you would need so many unless you’re moving very quickly close to the ground, or you’re rendering at an extremely high resolution. But barring some bug that we’re not aware of, it sounds like the per minute limit is simply too low, and you should reach out to Google with that feedback.