Free 360 Spherical Panorama Capture Tool (And getting trolled by Marketplace staff)

Hi, here’s my story:

about a year and a half ago, I was doing a job in UE4 which required output to be a spherical panorama image sequence/video. Not stereo, just simple Mono 360 equirectangular projection video. I though UE4 has got me covered. With all the things it’s already been used for at that point, it surely has to have some sort of 360 sphere camera concept. Oh boy was I wrong…

The first obvious choice was the SceneCaptureComponentCube. The CubeRenderTarget asset has a resolution limit hardcoded at 2k, which made it not an option. Furthermore, it had issues with certain post processing effects. Some were just flat out not rendered.

The second option was some sort of Panoramic Capture Tool shipped with UE as third party plugin. But it rendered very slowly, the workflow was terrible, full of obscure cvar tweaking and the integration with the Sequencer was sketchy at best. Like the first option, this one also had quite a few issues with specific post processing effects.

The third option was some external nVidia ansel based tool, but it showed the same issues as the Panoramic Capture Tool, with a few more workflow issues on top.

The job had to be done, so I’ve came up with my own solution. I’ve made a Blueprint which not only manages to capture the level and stitch it into 360 panorama without any manual work or need for external software, it does it also with overscan and smooth blending of the captured sections. This means you can actually use it with low radius screen space effects like bloom, SSAO, contact shadows, sometimes even SSR, and still get no visible seams! Of course ray tracing is also fully supported. To see how the tool works, check this video:

I tried to make it as simple and quick to use as possible. The last thing anyone wants to deal with when trying to meet the deadline is a huge space shuttle style control panel with dozens of buttons, knobs and manual steps. I wanted it to be as simple as: select the output folder, select the file name, select the image format, resolution and click render! And it really just works.

Well, that turned out to be a mistake. Knowing how valuable the tool was for me in the production, I wanted to make it available to others as well. I wanted to put it on the marketplace for a reasonable price of $9. I assumed that with my track record of quite simple to use and reliable tools I’ve already made (https://www.unrealengine.com/marketplace/en-US/profile/Army+of+One+Games?count=20&sortBy=effectiveDate&sortDir=DESC&start=0) I should have no issues.

Once I submitted the tool for approval, I promptly got a response back:

The first thing I thought to myself is that the reason must be an error, given that similar tools already exist on marketplace: Camera 360 in Blueprints - UE Marketplace So if this class of the tools would not quality as sufficient, content wise, then surely this one would not make it onto the marketplace either.

When I read the mail closely again, I’ve realized that the “Marketplace Seller Guide” link leads to some older, outdated, more specific marketplace guidelines:
https://marketplacehelp.epicgames.com/s/seller-guide?language=en_US

While the guidelines sellers are presented with on the new publisher portal lead to this link:

I scoured both old and new guidelines for differences, and while my product has met the criteria in the newer guidelines, it did not meet one criteria of the older, obscure one, that I got linked in the mail:

Ha! That was it I thought. I did not include any demo map on purpose, because I know how I myself dislike, when simple stuff from marketplace comes with unnecessary bloat I have to remove to keep my project size in check.

So I have created a demo map, added it to the content project and resubmitted.

And, once again, I got the same mail… The mail even contains the phrase "However, after careful consideration we have decided not to move forward with your product at this time due to the following reasons: "

Given the speed I have received those mails, I highly doubt actual careful consideration ever happened. Whoever is on the approval end of the things most likely measures the value of Marketplace content in megabytes, .uasset file count or number of buttons. I mean, people buying Marketplace stuff need to get enough megabytes and buttons to get their money’s worth, right?

I can’t interpret it in any other way than that I got simply punished for wanting to make the tool as simple and easy to use as possible to save user’s time, and to include as little bloat as possible, because I know how much people hate bloat.

I know the tool is a bit minimalistic, but provides value in how easily and quickly it does what it’s supposed to do. And I’ve also considered the minimalism in the price. I don’t think $9 is much to ask considering how much time this can possibly save.

Anyway, due to this debacle, I’ve decided to make the tool free instead. Anyone who wants it can grab it here:

(Ignore the .uproject file and just put the contents inside of the content folder into the root of your content folder)

Here are some examples of the output, showing how well all postprocessing effects work:




Here’s copypasta from the publisher portal description. I wanted to be honest about the capabilities of the tool:

This tool simplifies creation of spherical 360 panorama images and videos from within the engine. It provides performant and easy to use alternative to existing solutions integrated within the engine, which are either slow, difficult to use or do not support enough graphical features.

NOTE: This too does NOT support creation of stereoscopic 360 images and videos. It produces only MONOscopic images and video sequences. Please consider this before purchasing.

Known limitations:

  • The tool uses 6 camera cube setup to render images and stitch it into a panorama. This means using it with large radius screen space effects such as certain types of atmospheric fog, lit particle translucency, large radius bloom, lens flares or screen space reflections will cause seams. The tool uses overscan rendering with blurry seam blending to cover the seams up, so it means it will work fine with smaller radius screen space effects, such as regular bloom, glares or screen space ambient occlusion.
  • When rendering large resolutions, sufficient VRAM amount is necessary. Trying to render 8k sequences of complex levels with GPU that has less than 11GB of VRAM may not be the best idea and result into crashes.

Features:

  • Simple and easy to use
  • Full Ray Tracing support
  • Very fast rendering performance compared to alternatives
  • Low dynamic range JPG and PNG output
  • High dynamic range EXR output
  • Full postprocessing support, including DOF, Motion Blur, TAA, etc…

Suffice to say, after this experience I probably won’t be making any Marketplace content anymore, despite being somewhat successful with it. I can’t afford this kind of uncertainty when it comes to my time investment. :frowning:

12 Likes

Hey friend,

These marketplace auto emails is a joke & they should get rid of soon. If this happens further either a lot of people will leave like this or someone will create a better marketplace.

I recently had something like that as well.
I think they replaced the review process either with some automated tools or outsourced with some cheap labor.

Anyway, it seems like you have a really valuable product.
Send an email to the marketplace team explaining your product and why it should be allowed.
Then a real person will respond to you.

1 Like

I did, and they did not respond. That’s why I decided to publish the tool for free :slight_smile: At least it will help more people this way, if they manage to find it in this obscure thread :slight_smile:

3 Likes

Good luck. Hope they will talk to you soon.

If you already have a few items on the marketplace then you should know how much of a PITA it is to deal with them. I dealt with the same kind of thing back in the day where you have incompetent staff that don’t even understand the content they are reviewing. They are slow to process everything and it takes forever to get updates out. Plus there is no obvious consistency as they allow some of the most ridiculous unprofessional items on the marketplace sometimes, yet someone such as yourself who takes the time to write up nice descriptions and whatnot, uses proper spelling…they act as if you don’t even have something useful to people let alone with quality content in it.

Maybe you’ll get their attention and resolve this issue but since you already released it for free it doesn’t really matter at this point does it? And you’re going to deal with the same thing again on your next item…

My company completely left the marketplace for GitHub a little over 2 years ago and it was the best thing we could have done. Especially since we primarily focus on C++ plugins, and it would make sense to be able to make plugins that depend on other plugins, ya know? You can’t really build anything modular if all features have to be contained within a single plugin, but that’s how it works on the marketplace so there’s no actual infrastructure that any programmer can build up. Each product has to be 100% standalone, even if you were going to offer baseline/required products for free. They just don’t want to deal with compiling plugins that depends on other plugins, which makes sense, but is just plain lazy and showcases their inability to develop a custom piece of software that would just get that done (such as allowing programmers to upload their source code to the website, and then having it remote compile…uneducated novices such as the people who run this website would never think of something so ingenuitive or out of the box as that).

So take it from experience, it feels great to be in control of your own content, to just upload your updates to GitHub the moment they are ready. Not waiting for the greenlight from some uneducated “reviewer” that understands nothing about what you’re developing. Then you can build a collection of items yourself, update on your terms, and never have to deal with them again. I mean if you’re someone willing to upload your item for free like that the same way we did, then this might be something you should seriously consider.

It just takes a bit more effort, and a lot more proactive self-promotion and advertisement where you can to let developers know you exist. Good luck to you.

Your blueprint looks like useful, thanks for the share! You should place a paypal link somewhere in case someone wants to buy you a beer :slight_smile:

I don’t understand how the Capture condition needs to be active, Frame Capture was stuck here:

image

Linking Event Tick node directly to Draw Material to Render Target did the work
though :+1:t5:

Hey, just check the video :slight_smile: It show how to use t hat capture bool. It just needs to be added as a sequencer track :slight_smile: The relevant part starts at 2:00

1 Like

OK thanks! (I’m more a text-tutorial guy than a video one, that’s why I didn’t get the idea to click on it :grinning:)

In ue5 Post process GI and reflections with Lumen is not working. How did u make screenspace and raytracing features to work. i searched in materials and BP also there is no such thing exclusively added for Postprocessing

I have not tested this with UE5 yet, but once UE5 is out of EA and final, I will do my best to make it work with all the features.

Postprocessing and Ray Tracing works with simply having correctly set up SceneCapture components that are then stitched together.

Hello! Thanks for your work and the video it’s very helpful, i just have some issues with the render, i can’t choose the capture mode and the capture resolution. It’s stuck to 0. Here is
a screenshot of my UE scene.


Because you have unpacked the blueprint into a wrong folder. This could not happen if this was proper marketplace asset, but since it’s not been approved to be on marketplace, it’s prone to user errors like this :frowning:

thank you so much this solved the problem :wink:

Great work !
your plugin is simple to use and the rendering is really fast.
no problem for me in UE5. I have a question about the resolution capture.
how can i set up a specific resolution. by exemple, i need a 5k render at 5160 by 2880 or a 7680 by 4320 ?

thank you

M.°

Hi,

it’s simple. First, in the resources subfolder, open E_CaptureResolution and add a new row with your custom resolution:


Then, open the 360_Capture_BP Blueprint, and open the GetCaptureResolution and GetPanoMapResoltuon functions:

In both of these functions, specify the horizontal resolution for your new added resolution setting:

The vertical resolution will automatically be derived from horizontal resolution divided by two. Your resolution don’t seem to adhere to 2:1 aspect ratio though. The whole shader which generates these has been written with that in mind, so aspect ration would be much harder to change.

What I’d suggest is to do the following:

  • Take your desired vertical resolutions and multiply them by two (2880 and 4320 end up 5760 and 8640)
  • Add these two resulting horizontal resolutions as described above (You can name them like 5k+ and 8k+)
  • Render at those resolutions. The horizontal size will be a bit bigger than desired
  • In some postprocessing package, such as Nuke, or Fusion, or even image editor if it’s just a still frame, resize them horizontally. This should ensure no quality loss as you are downscaling larger image rather than upscaling smaller one.

Just keep in mind that at 8640x5760 resolution, chances of you running out of GPU memory are significant :slight_smile:

I am still a bit confused as to why you’d need non 2:1 equirectangular map, since you’ll just mostly get a distortion that way.

1 Like

Thank you so much for your précise and clear explanation !
i can’t tell more about the “Why” i need this…really sorry about that. If i can, i will post some infos about here, in a near futur.

Do you have a link where i can buy your plugin ?

do you think you will add a stereoscopic version for Ue4 and Ue5 Soon ?

thank so much for your beautifull work.

Does it work with Lumen? I get a lot of noise in the final image and the lighting seems a little bit off

Lumen is significantly screen space dependent, based on how much lumen-friendly your level geometry is. Overall, I’d expect you to get issues with blurry seams when using this, because every single out of 6 capture cameras will have a bit different lighting.

1 Like

Hi Rawalanche, first of all congrats on making such a great tool despite the fact you couldn’t submit it to the Marketplace. I have a question, does it work with Path Tracing view mode in 4.27?

Thanks

@Rawalanche thank you so much for making this available. I have been trying to use it to get a render out of my VR project. I finally was able to get my settings to where it was producing frames, but for some reason, I seem to be getting 5x the framerate of the Level Sequence. Would you happen to know why that might be? To clarify, the 360_Capture seems to be rendering 5 frames for every one frame of the Movie Render Queue low-rez jpeg sequence.