6
$\begingroup$

In am interested in setting up cameras and rendering settings to create a stereoscopic image or animated scene.

I have found easily how to export one image where the red and blue channels are slightly off (which is good for stereoscopy that involves red/green glasses).

But what I am trying to achieve is stereoscopy that can be looked at without glasses, for a short period of time, by crossing one's eyes. Such as this image, in which the left and the right views are combined in one image (courtesy of Wikipedia):

enter image description here

I have found stereoscopy settings in the right-hand side menu of the viewport, as well as settings in the Scene properties panel, but my various attempts didn't result in two images side-by-side being produced, but always them overlapping.

The closest I have gotten to what I'm trying to obtain are these settings in the Camera panel:

enter image description here

I quickly run into the limits of the two fields and the resulting images are not rendered with their own colors. The angles of the cameras are also hard to figure out.

Ideally, the two left and right views would have all their colors, and be exported as one image side-by-side. This way, only one image would be exported for each frame in case I create an animation with this technique.

$\endgroup$
8
  • $\begingroup$ I think this will answer the image format question: blender.stackexchange.com/questions/42289/… Regarding cross-eyed images. I think if you flip the left and right image you will get what you want. $\endgroup$
    – reden
    Commented May 9, 2016 at 6:06
  • $\begingroup$ There's also another way to do it here: blender.stackexchange.com/questions/6277/… $\endgroup$
    – 360ueck
    Commented May 9, 2016 at 6:09
  • 1
    $\begingroup$ The easiest way is probably using two different camera objects in your scene instead. $\endgroup$ Commented May 9, 2016 at 14:56
  • $\begingroup$ I can't seem to make use of these comments. Anyone got a screen grab of what it looks like on their end? (viewport + rendered version). Ideally both cameras should point to an object's origin, not away from it... $\endgroup$ Commented May 11, 2016 at 3:51
  • 1
    $\begingroup$ I don't think people have been getting your comments. I have asked precisely about this before, and unfortunately Stack Exchange doesn't notify users about comments unless you ping them like you just did to me. Anyway I'll try and think of a solution and post an answer as soon as I can, but my computer is currently busy rendering a project I have limited usability, I probably wont be able to until tomorrow. $\endgroup$ Commented Jul 13, 2016 at 23:17

1 Answer 1

6
$\begingroup$

OK, after some fumbling around I found a workable, if a bit hacky, solution for this.

Stereoscopic Render

The main issue here is that Blender's compositor was designed assuming all frames and image are the same size, and thus wasn't really made for handling differently sized pictures or composing images of arbitrary dimensions.

Anyway it's a bit of a involved process that will rely on a three scene system Scene A, Scene B and scene Size

Three Scenes

  1. Create you scene Scene A regularly (set up your render objects, meshes, lights, etc)
  2. Make sure you add all objects to a certain group with Ctrl + G (that we shall call for the sake of example Group) including lights but excluding your camera objects. (Use a purpose made collection for this goal in Blender 2.8+)
  3. Make sure this group's center is at the scene 0,0,0 coordinate
  4. Create your camera object wherever desired but do not add it to this group
  5. Set up your render size and render preferences all as desired
  6. Now add a new scene Scene B to your blend file using the option Copy Settings

Add new scene

  1. In the new scene add a new group instance of the previously created Group
  2. Make sure this group instance center is also at the scene $0,0,0$ coordinate
  3. Make sure the new scene is using the same World shader and all other scene settings match, so that the two renders are alike.
  4. Go back to Scene A select your camera object and link it to Scene B by pressing Ctrl + L > Make Links > Object to Scene > Scene B
  5. Go back to Scene B and select the linked camera and make it's object unique by pressing U > Object. For Blender 2.8+ go to Object > Relations > Make Single User > Object. This will keep the camera settings linked and in sync with the previous one, but allow you to move them independently.
  6. Now Place this camera as many units to the side as desired. If you want them both centered, you may want to consider moving one $X$ units in one direction in Scene A and the other one $-X$ units in the opposite direction in Scene B. If they are somehow rotated in global coordinates you may double press X > X to move them in local $X$ axis. If they are animated consider parenting them both to a helper empty object, and animate the parent object instead.

Your scene should now be setup, now you need to setup the rendering system to automate image assembly.

Add a third empty scene called Size using the New option from the menu. This scene will only exist as a hack to setup an image size. Disable everything in the render layers so it will render instantly. The only important thing to do here is to make sure you setup render size double the width of the previous Scene A and Scene B.

Disable render settings

Say if scene A and B have both a rendering size of 800 x 600 (and this must be kept in sync manually) scene Size must have a rendering size of exactly 1600 x 600 so images can be correctly combined side by side.

Add a camera to the scene Size (anywhere is fine, it won't be used much anyway) and set it as active.

Now you must specifically set up compositing in scene Size and configure your compositing nodes as shown bellow, so Blender will automatically fetch the renders from the other scenes and compose them into one large stereoscopic image.

Add two additional Render Layer nodes, and for each change the Scene dropdown menu to pick both Scene A and Scene B and combine them using Alpha Over nodes after transforming them half their with in the X axis.

Compositing

You must always render from scene Size from now on to obtain your stereoscopic images automatically, and you will probably have to update each scene's render manually from the little rendering buttons in the nodes themselves (instead of just pressing F12) to render from other scenes, otherwise Blender will probably render them in the incorrect size because it was never meant to render this way.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .