Simple video export/render as 3d SBS (Stereoscopic)

I’m not interested in 360 panoramic, interactive vr. I just want to a plain video file with both a left and right perspective that I can play on a google cardbox setup. This shouldn’t be that complicated, yet I can’t find a simple answer regarding this. I’ve seen a bunch of replies pointing towards a plugin but… this shouldn’t that complicated. I’m sure I could build a hack of my own, no need to even buy that plugin, but is there really no simple way to just export a cinematic sequence as a 3d sbs video?

Unfortunately this is not all that easy in Unreal. You currently have three options to render stereo 360:

  • The deprecated Stereo Panoramic plug-in by Kite & Lightning
  • The Nvidia Ansel plugin
  • The experimental Omni Directional Stereo capture feature in Unreal, from Google

Each has its downsides. The Stereo Panoramic plugin does not support post process effects out of the box, you need an engine modification to make it work. Even then, no screen space effects will work, since the scene is captured in many tiles. I.e. bloom will lead to some small squares within the 360 being bloomed and some not. Exposure does work, which is something at least. It also takes a really long for each frame (20-60s on 4k, depending on scene complexity and quality settings), but the result is accurate. If you want to use this, read through this article first.

The Ansel plugin does not support taking multiple snapshos in a row, i.e. you can’t render a movie with it. I really don’t understand why this still isn’t a thing, but that’s the way it is. You either have to resort to using a macro which simulates clicks on the “Snap” button, or use a modified version of the plugin available on Github, which simulates pressing the space bar from code. Post effects work, and the capture is easily twice to three times as fast as the SP plugin. However, any objects which are close to the camera are blurry. This is a major issue, which Nvidia has been aware of since 2017, and they are not solving it. Ansel also only works in “Launch” mode or in a packaged build, not in Play In Editor, which can be an issue since Unreal is prone to having errors outside of PIE which you need to cope with before being able to render.

Lastly, there is the wholly undocumented Omni Directional Stereo (ODS) capture. You can turn it on the project settings, and then you can create 360 stereo images using a SceneCaptureCube when you set the left, right and ODS render targets. Unfortunately, unlike 2D scene captures, cube captures still do not support post effects. Also, there seems to be something very wrong with the result - it’s hard to focus on anything. I might just need to get the IPD just right though.

There is a hack of the Ansel Plugin available that allows you to render out images sequences: GitHub - rdeioris/AnselCapture: Hack of the official Unreal Engine Ansel plugin for allowing continuou

This works fine for me and I prefer it to the Stereo Panoramic PlugIn.

Yes, I mentioned this in my post. However, this is still a far cry from a professional solution. Since it only simulates pressing space, the window has to be focussed at all times. Just last night my renders stopped because the Epic games launcher decided to pop up and request a log in, resulting in a night of rendering lost. You also can’t leave something rendering in the background while you get other work done.

I thought I was clear when I said I have no interest in full 360 scenes. I just want to render a plain sbs 3d video like this: - YouTube

Assuming there is no simple solution, is there any giant problem with simply creating a left eye camera, a right eye camera, and rendering each to a couple of texture boxes which are captured by the primary camera?

I gotta be honest, that wasn’t very clear. “360 panoramic interactive VR” sounds like a regular 3D VR experience to me. Side by side stereo video is what I described, it’s a VR video.

The fixed perspective SBS video you want can definitely be done by having 2 scene captures, an eye distance apart, and exporting their captures every frame. I would personally recommend against that kind of video though, since having a video stuck to your view is not comfortable.

First, start the engine with the following command line arguments: -usefixedtimestep -fps=30 -notexturestreaming
To start the engine with command line arguments, it’s easiest to create a shortcut to the engine (<Engine install location>\UE_4_<engine version>\Engine\Binaries\Win64\UE4Editor.exe) and add those parameters to the end of the Target.

Next, create a new actor with this Blueprint: Render frame sequence posted by anonymous | blueprintUE | PasteBin For Unreal Engine 4
And this function as well in that same actor, set to Pure: Add leading zeroes posted by anonymous | blueprintUE | PasteBin For Unreal Engine 4

Finally, add 2 scene capture 2D’s and 2 of the above actor to your scene, and reference the scene captures in those actors. Set up the variables on the frame export actors correctly. Hit play or simulate, and a frame sequence will be exported.

2 Likes