Panoramic Render - Cesium for Unreal

I’m wondering if anyone has found solutions for using the (native) Panoramic Render plugin for Unreal that satisfactorily loads high detail textures and geometry? I’ve found it to be intermittently successful, presumably due to having cached hi-rez textures for certain camera placements.
Frustrum culling etc is turned off, but apparently tiles that lie outside the lens ray cast are not loading. The same problem with Unreal marketplace solutions like 360 Camera - detail is fine in the main camera, but unreliable for the rest of the 360 pano.
My objective is to render 360 stereoscopic imagery for VR, but it seems this is currently outside the scope of Cesium for Unreal. An alternative would be to render 6 passes in a cubic mode and do stitching in post, but this is veruy onerous - so wondering if there are any blueprint solutions out there?
Thanks in advance :slight_smile:

Hello @PeMo, welcome to the community.

I took a look at the Panoramic Capture plugin (I assume this is the plugin you’re looking at, please let me know if that’s not the case.) Since this plugin uses SceneCapture2D actors to render the video, I think it’s likely that it will work in the next Cesium for Unreal update. Support for SceneCapture2D actors was recently completed in the github repo.

That update should be released near the beginning of September. If you want to test it out earlier, you can download the plugin from the Github repository. Please let me know how it goes - if that doesn’t help, I can create an issue so we can address it on our end.

1 Like

Thanks Alex! Yes, that is the right plugin, so I will have a crack with the github repo. Hopefully it will work with the other solution I’m testing Camera 360 in Blueprints - UE Marketplace as this employs 2D render targets as well & is a lot faster than the native Panoramic Capture plugin. I’ll post a follow up link to this discussion if I get it working :slight_smile :slight_smile:

No joy, so far. Just need to check I’m doing the right thing: downloaded the Cesium 1.5.1 release from Github (with prebuilt binary), swapped out the Marketplace-installed one from UE4.26, put the Github build in, launched project - same problem. I see from Github that it should support multiple frustrums for VR, so presumably for panoramic capture too.
Or do I need to build from source?

Thanks for testing it out! You will have to build from source - The SceneCapture2D addition is in the upcoming release. Alternatively, the upcoming release should be ready within a few days, in case you prefer to wait for a full release.

Please let me know how it goes!

Aha! I shall wait a few days then.

FY you don’t necessarily need to build from source. Our CI system produces a built plugin package for every branch on every commit. Just look for the green tick mark, click it, and click the Details link next to the “plugin-package-combined” label:

You can extract this plugin package to the Engine/Plugins/Marketplace directory and it should work just like a version of the plugin installed from the Epic Marketplace.

Unofficial plugin packages undergo little or no testing, of course.

Kevin

Thanks Kevin - that’s good to know. I’m still learning all the acronyms (“CI system” etc), but happy to have a crack at it. The issue for me (at this stage) is to identify which particular branch addresses the problem at hand - great to see all the variety, but also a jungle to the uninitiated :slight_smile:

A release that includes this fix change is available on the Epic Marketplace, now.

No luck, I’m afraid - seem to having the same problem. Is there some setting in Cesium World Terrain actor I need to adjust? I’ve got:
Max screen space error: 16
Preload ancestors: yes
Preload siblings: yes
Max simultaneous tile loads: 2000
Loading Descendent Limit: 1000
Frustrum culling: off
Fog culling: off

I’m using an RTX3090 cards (24MB VRAM) on a decent computer.
No problem (apart from a bit of texture popping) when I render with a normal camera.

Hi @PeMo,

Thanks for your patience, and I’m sorry to hear you’re still having trouble.
This is a use case that we definitely want to support, and I’ve created an issue in our github repository here: https://github.com/CesiumGS/cesium-unreal/issues/648

To make sure I’ve got the details right, are all tiles loading to some extent? Or are there still holes in the terrain? I’ve taken a look at the image you posted earlier and it looks like the back/problem tiles are mostly sea, but it’s hard to tell if tiles are missing altogether or just very low resolution. Is there any chance you’re able to render a wireframe view of the scene?

If you have any additional information you think might help, please feel free to post it here or add to the issue I linked above!

-Alex

@PeMo,

In addition to the settings you have above, can you set the following on the tileset?

  • EnforceCulledScreenSpaceError = true
  • CulledScreenSpaceError = 16

Hi @agallegos,

sorry for the very slow response - I finally had a holiday! So back to these tests.
It seems to be working ~much~ better with the above settings - but there are still some texture-popping issues.
Is there any sort of Blueprint functiosn that can check whether the highest-resolution textures have all loaded before executing saving a frame?
At least the high-rez textures seem to be loading all around the panoramic capture now (using the native UE plugin - I’ve not had any joy with 360 Camera yet, but have yet to test the latest Cesium version with this).


I wonder whether I need to change the distance the camera can be from the CesiumGeoreference origin (it is currently toggled to off)?
Also, there are strange z-fighting or texture loading artifacts occuring very noticeably with water texture tiles - here’s an example (and also in the frame above):

These generally only persist for a frame or two as a tile is loading. And yes, I am using the water mask feature of Cesium (turned on).
It would be nice to be able to fix water tiles to a specific source - in my case the location is the island of South Georgia, and the water textures must range from summer (no sea ice), to winter (sea ice), so there is a strong seasonal element to the available satellite texture imagery. A way of masking this around the terrain would be a very useful feature.
Anyway, thanks again for all your help & I shall push on.

FYI here is a kind of ‘fixed up’ video output. I deleted the frames with artifacts, interpolated up to 120fps using FlowFrames, downsampled to 60fps and added detail using Topaz Video AI: it’s smoothed out some of the jerkiness given the missing frames, but is obviously not satisfactory and will require all the missing frames to be re-rendered.
Nevertheless it was an instructive process to output the 360 video and illustrate the tile-loading problems that occur:

Your result is pretty great. Can we have a workshop on how you achieved making it in VR? or a youtube video?

Thanks Ayush - it was pretty straightforward using some standard UE assets and approaches. It’s something I’ll revisit over the next year or so, but I don’t have any immediate plans to make aa making-of :slight_smile: If there’s any specific questions I’m happy to answer them. cheers Peter

Hi there, I have tried to use the Panoramic renderer with cesium and unfortunately i’m not getting any results, except a white screen. When I turn on Allocate History per pan I do get something, as per image, but this error then occurs. I am using the anti-aliasing to warm up engine and renderer and have tried to use the above setting.

Any help would be appreciated!

Update: I have fixed the white image issue, due to auto exposure not able to work with pano renderer. but I still get this error and cesium tiles seem to be missing/ not rendering