If you follow my work (aka my anual blog update ūüėČ ) you know I’m a great enthusiastic of anything slightly resembling sci-fi, geek, gadget things. And sometimes I’m lucky enough to team up with amazing people¬†in order to put those toys to some good use.

In this video I¬†showcase the¬†Planovision¬†system¬†–¬†a ‘3D Table’ compound of a¬†head-tracking device, a 3D projector, and 3D glasses.¬†I’m currently working towards integrating the Planovision with an authoring tool in order to build real demos, and help the project to kick-off.

After the initial integration with Blender¬†via¬†the Blender Game Engine (after all we don’t want just to see the 3d models, but to interact with them), today I got¬†the system to work with BlenderVR to help the integration with different inputs (head-tracker, 3d mouse, leap motion, …). I’m helping the development of BlenderVR since last October, and we only¬†recently released its¬†1.0 version. BlenderVR is a well behaved guinea pig I must say.

The Planovision has being developed under the guidance of professor Luiz Velho, director or Visgraf/IMPA in Rio de Janeiro, Brazil.

BlenderVR is an virtual-reality open source framework built on top of the Blender Game Engine. BlenderVR was created and is developed by LIMSI/CNRI in Orsay, France and is aimed at Oculus, CAVE, Video Walls among other VR display types.

Links:

If you want to learn more about the Blender Game Engine, don’t forget to check the book¬†Game Development with¬†Blender, written by Mike Pan and yours truly.

I guess this is one of those times when the line between work and play gets really blurry. I hope it keeps this way for a long time ūüėČ

Dear visitor, welcome!

This week I visited the Blender Institute and decided to wrap up the multiview project. But since I had an Oculus DK2 with me I decided to patch multiview to support Virtual Reality gadgets. Cool, right?

Oculus DK2 and Gooseberry

Gooseberry Benchmark viewed with an Oculus DK2

There is something tricky about them. You¬†can’t just render a pair of panoramas and expect them to work. The image would work great for the virtual objects in front of you, but it would have the stereo eyes swapped when you look at behind you.

How to solve that? Do you remember the¬†3D Fulldome Teaser? Well, the technique is the exactly same one. We start by determining an interocular distance and a convergence distance based on the stereo depth we want to convey. From there the software (Cycles) will¬†rotate a ‘virtual’ stereo camera pair for each pixel to be rendered, so that¬†both cameras’ rays converge at the specified distance.

gooseberry-oculus

Oculus barrel correction screen shader applied to a view inside the panorama

This¬†may sound complicated, but it’s all done under the hood. If you want to read more about this technique I recommend this paper from Paul Bourke¬†on Synthetic stereoscopic panoramic images. The paper is from 2006 so there is nothing new under the Sun.

If you have an Oculus DK2 or similar device, you can grab the final image below to play with. I used Whirligig to visualize the stereo panorama, but there are other alternatives out there.

Gooseberry Benchmark Panorama

Top-Bottom Spherical Stereo Equiretangular Panorama – click to save the original image

This image was generated with a spin off branch of multiview named Multiview Spherical Stereo. I’m still looking for a industry standard name for this method. But in the meanwhile that name is¬†growing on me.

I would also like to remark the relevance of Open projects such as Gooseberry. The always warm-welcoming Gooseberry team just released their benchmark file, which I ended up using for those tests. To be able to get a production quality shot and run whatever multi-vr-pano-full-thing you may think of is priceless.

Builds

If you want to try to render your own Spherical Stereo Panoramas, I built the patch for the three main platforms.

  • Windows 64 [link] *
  • Mac 64 ¬†[link] *
  • Linux 64 [link] *

* Don’t get frustrated if the links are dead. As soon as this feature is officially supported by Blender I will remove them. So if that’s the case, get¬†a new Blender.

How to render in three steps

  1. Enable ‘Views’ in the Render Layer¬†panel
  2. Change camera to panorama
  3. Panorama type to Equirectangular

And leave ‘Spherical Stereo’ marked (it’s on by default at the moment).¬†Remember to post in the comments the work¬†you did with it!

 

Last and perhaps least is the small demo video above. The experience of seeing a 3D set doesn’t translate well for the video. But I can guarantee you that the overall impression from¬†the Gooseberry team was super positive.

Also, this particular feature was the exact reason I was moved towards implementing multiview in Blender. All I wanted was to be able to render stereo content for fulldomes with Blender. In order to do that, I had to design a proper 3D stereoscopic pipeline for it.

What started as a personal project in 2013 ended up being embraced by the Blender Foundation in 2014, which supported me for a 2-month work period at the Blender Institute via the Development Fund. And now in 2015, so close to the Multiview completion, we finally get the icing on the cake.

No, wait … the cake is a lie!

Links

  • Multiview Spherical Stereo branch [link] *
  • Multiview: Cycles Spherical Stereo Support Official Patch [link] *
  • Gooseberry Production Benchmark File [link]
  • Support the Gooseberry project by signing up in the Blender Cloud [link]
  • Support further Blender Development by joining the Development Fund [link]

* Time traveller from the future, hi!¬†If the branch doesn’t exist anymore, it means that the work was¬†merged into master.

Nice Oculus

Thanks! This is not mine though ūüôā Oculus is one of the supported platforms¬†of¬†the Blender-VR project, to be presented at the IEEEVR 2015 next week.

If you are interesting in interactive virtual reality and need an open source solution for your CAVE, multiple Oculus or video wall, give Blender-VR a visit. I’m participating in the development of a framework built on top of the Blender Game Engine.

Also if Oculus¬†feels like sending me my own Oculus, I wouldn’t mind. If you do, though, consider sending one to the Blender Foundation¬†as well. I will feel bad when I take the device away from them next week.

Have a good one,
Dalai

Update:

Due to the long review process the patch is not yet in Blender. That said, since there were enough people interested on this feature, I just updated the links above with a more recent build (on top of current Blender 2.76 RC3).

Update:

The build now also supports regular perspective cameras. This is required for cube map vr renders. For this I also recommend an addon that I was commissioned to build, to render or to simply setup cubemap renders [link].

Note: remember to change your camera pivot to center.

* Last build update: October 2nd 2015

For a “tinkering” developer there is no satisfaction like trying your code into production and have it working out of the box. I’ve been coding the 3-D stereo support for the multiview branch with no stereoscopic display, so today was the first time I could see it in action… and it works ūüėČ

I tested top-bottom, side-by-side and interlaced (windowed and fullscreen). For interlaced windowed mode the “swap left-right images” is particularly important.

Caminandes - 3-D still courtesy of caminandes.com

Caminandes – 3-D still courtesy of caminandes.com

The one thing I didn’t test is the pageflip functionality. I came to the realization that my laptop doesn’t support 120Hz displays. I heard it’s working though, so I’m at ease.

I would like to express my gratitude to Dr. Maria Lantin, director of the¬†Stereographic 3D Centre¬†of Emily Carr university of art + design for so kindly open the doors and let me play with their “toys”. The same goes for her lab research team, ¬†in particular¬†Alan Goldman,¬†Denise Quesnel and¬†Sean Arden for taking the time to show their latest (extremely cool) projects and to help setting me up with the 3-D display and projector. And last and not least, for my friend Dr. Barry Po for connecting me with them (thanks Barry!).

For my own records: with the BenQ projector they are using a 3D-XL 3D Projector Adapter from Optoma to convert side-by-side or top-bottom inputs to time-sequential format.

And if you like the Llama, make sure to check the short movie Caminandes.

Related Links:

I got a bit tired of the back end coding for the Multi-View branch and decided to tackle the frontend for a change.

Anaglyph

Anaglyph Mode for 3-D (Multi-View) – Los Padres OpenEXR [link]

Stereo Display Options

Stereo Display Options

Blender has a very modern drawing system (nicknamed Triple Buffer) which takes control over the buffer swapping routines (instead of relying on the graphic card Front/Back Buffer handling). That allows Blender to redraw the UI really efficiently. That also made the front-end implementation a breeze.

Now in User Preferences you can set the 3-D display you will be using with Blender. At some point I may make it a per-window option, but for now it will affect all the opened windows.

Next thing you need is a 3-D (Multi-View) image. You can simply render your own images (make sure the RenderViews are named “left” and “right”) or download a few OpenEXR samples.

3-D View

 

With no 3-D display set, when you open a 3-D image you should see the views in the Image Editor drop-down. When any 3-D display is set, however, you will see a new “3-D” option. Once this is set, you can take full advantage of your 3D-gear.

 

 

The following are samples from the other current display options. Be aware that the image I’m using doesn’t converge in a nice stereo 3-D photo. It’s in fact intentionally produced to show very different images, to make sure the code is working (programmers, go figure).

Side-by-Side

Side-by-Side

Top-Bottom

Top-Bottom

Interlaced

Interlaced

 

 

 

 

 

 

And not that you asked, but this was a great weekend for my 3-D philia. Iron Man 3 was a nice movie, and yesterday I attended two seminars at the SID – Display Week 2013 which turned to be quite inspiring talks with the addition of seeing some jaw-drop 3-D displays. I’m actually going there again tomorrow for the exhibit booth to see if I can clarify some pending questions that I have. I guess I should thank¬†Queen Victoria¬†for the long weekend ūüėČ

Related Links:

This video showcases the current snapshot of the multiview branch I’ve been working on.

Source Code: http://github.com/dfelinto/blender/tree/multiview

Original Proposal: http://wiki.blender.org/index.php/User:Dfelinto/Stereoscopy

For follow ups in the development I will keep posting in the bf-committers mailing list. But I will try to keep my blog up to date as well.

If you like my desktop background, this is the cover of my upcoming “Game Development with Blender” book with Mike Pan. The book is its final revision stage (checking the final pdfs about to be printed) and should be shipped soon. The pre-sale campaign on Amazon is still on-going.

Have a good day!

Dalai

Related Links: