Implementing OmniStereo Rendering

Hi guys,

I’m implementing OmniStereo (Omni-directional Stereographic Panoramas) rendering in Unreal using the per-vertex displacement approach.

Example Scene

Here’s my fork: https://github.com/donghaoren/UnrealEngine/tree/donghao-omnistereo
Remember to checkout the donghao-omnistereo branch.
It’s written on top of the newly released 4.10 version, you should be able to rebase it to older versions.

It adds a set of OmniStereo properties on the SceneCapture/SceneCaptureCube objects as well as the Camera object, just check OmniStereoEnabled and set the correct eye separation, sphere radius and up vector. Reasonable values are 6.5, 500, (0,0,1) respectively. Currently the code only does one eye (positive eye separation = left eye, negative = right eye), you have to capture twice or use two SceneCaptureCube objects to capture both eyes.

My implementation uses a function in BasePassVertexShader to transform the WorldPosition for each vertex for stereo disparity. Just doing this will result in a lot of shadow and lighting problems, as unreal uses deferred shading and transform the screen positions back to world positions with some ScreenToWorldMatrix. To solve this, I added a additional GBuffer to store the original world position, and changed a few shaders to use the GBuffer instead of the ScreenToWorldMatrix for world position. It’s not complete yet, so you’ll see some shadow and lighting problems.

I’m new to the engine, is there a way to record a video frame by frame from the SceneCaptureCube?

Donghao

OmniStereo video capture: https://www.youtube.com/watch?v=J1qZsyUkrck

Hi donghao,

I just stumbled on your thread while searching solutions for a true omnistereo render, You youtube example looks great. It seems your github fork of this is offline, is it still available to test?

Thanks!

HI guys,
i’m using Michael Allar Export Object Plugin to create 360 videos.
In that way i’ve got problems when i’ve some particles systems. Everything wrong and you can see the rendering cubes…
Do you know if with your option I can render something like this?
Thank you so much

giovanni

Hi donghao, your implementation looks great! It would be great to see the github fork too or some information.
Thanks!