Hi!
I’m experimenting some render techniques to make stereo panoramic rendering that can be used in Oculus Rift, GearVR and other VR headsets.
There’s some discussion in OculusVR Forums about what is the best way to render stereo panoramic images. What is common sense is that you need two images with a separation to simulate the eye separation. But if you just setup it that way and render with a panoramic projection the results will be wrong since the center of the panoramic projection will not be the center between the eyes, will be the center of the individual cameras. it produce this kind of problem:
See that the part in front of you is right you see it stereoscopic but the left and right parts of the image are not stereo and the back is inverted. Paul Bourke have explained this problem and made some solutions in this paper
Digging in the OculusVR forum they suggested:
Set the Fov to 1º (Now possible in blender 2.74 thanks this patch)
Render 360 strips with 5px width ( A camera rotating 360º , 1º per frame, 360 frames)
It seams a bit crazy and is a lot of work but it just work!
Here is the result:
This way we have a right stereo image in all directions!
I check too the Multiview Branch and it’s a great improvement in the stereo 3D workflow! At this time it don’t fix yet this problem with stereo and panoramic rendering, i talked with Dalai (dfelinto) that are working on it and looks he have a patch to implement but is not in the branch yet.
Conclusion:
Today we can use this hackish solution for static images but is quite impossible (not feasible) to render stereoscopic 3D movies like this. At least until dfelinto or other developer implement the solution for render stereo panoramic images.
Someone have a easier solution for that task?
Cheers!
Hi!
I am also experimenting with panoramic Stereo rendering. And i´m glad to show you my solution with an animation.
I use the same approche rotating an equirectangular camera. The animation is realised by a python script. I got for every frame 256 slices, that i stitch together with an batch script by using imagemagic.
For your question to render 3d movies a new lensshader for the equirectangular camera is necessary.
Cheers
To support this render was a bit off the scope of my tasks . But while I’m waiting for extra review in multiview I decided to resurrect my old dome-stereo branch and port it on top of the multiview branch.
I’m at the moment doing the last tests of a branch to support this render. Vitor is helping with some of the tests.
The branch won’t see master before multiview itself lands there, but for those willing to compile their own Blender the branch is here:
How to render: enable ‘Views’ in the scene panel, change camera to panorama, panorama type to equirectangular, and leave ‘Spherical Stereo’ marked (it’s on by default at the moment).
Note: branch extremely experimental, use at your own risk
How to render: enable ‘Views’ in the scene panel, change camera to panorama, panorama type to equirectangular, and leave ‘Spherical Stereo’ marked (it’s on by default at the moment).
I didn’t understand your first sentence. Or rather, the “but” part. Is that any downside on being more efficient? Anyways, I explain the technique here, let me know if it’s clear: http://www.dalaifelinto.com/?p=1009
No i meant your solution is much more efficient as mine. I used a pythonscript do render 256 slices of a frame by rotating the camera in an angle that depends on the render resolution and another batchscript stitches the slices by using imagemagic. for one frame its easy but for steroeo LR images it is a lot of render time, that increases exponentially.
Interessting, i´m familiar with the Paper of Paul Bourke. That was also my approach to forming the basis of my scripts.
At these time we (freelancers with Sebastian König from Leipzig) also work on a workflow for spherical Projectionsystems using Blender and Unity. So we decided to participated on the Gooseberry Project by working on Spherical Oculus Version, but this work is done i guess
By the way the name of technic you are looking for is omnistereoscopy.
@dfelinto, we ran a animation test (8000frames @ 60fps) over the weekend on our render grid… looks amazing. Just wanted to say thanks for all your hard work, it is much appreciated.