To render an image for use with red & blue 3d glasses, the usual way to do it is to render from one point of view, convert it to a single intensity (greyscale) value per pixel, and then put that into the red color channel. Render from a slightly different point of view, convert that to greyscale again and put that into the blue channel.

This can be prohibitive when rendering a single time is already very costly.

Are there any methods by which you could take a single render, and corresponding depth buffer, and come up with something suitable for both red and blue channels?

  • 1
    $\begingroup$ Isn't the point of stereoscopic rendering to render the occluded parts of both views for each eye? $\endgroup$
    – Mokosha
    Aug 24, 2015 at 20:55
  • $\begingroup$ IMO, occlusion isn't really the point of it. The point is the illusion of depth that happens when giving different levels of parallax to each eye based on an object's distance. $\endgroup$
    – Alan Wolfe
    Aug 24, 2015 at 20:58
  • 1
    $\begingroup$ It is not blue you are thinking of; it is cyan. There are two options: Red/Cyan, and Magenta/Green. In both cases, all three human cone types (color channels) are covered, not just two. I think Magenta/Green is universally recognized as being superior but I could be misremembering; I prefer it anyway. $\endgroup$
    – Jessy
    Sep 3, 2015 at 16:26

2 Answers 2


I've done some VR research; this comes up a lot since rendering the scene multiple times (especially at predicted VR resolutions) is expensive.

The basic problem is that two views provide more information than only one. In particular, you have two slices of the light field instead of one. It's related to depth-of-field: screen-space methods fundamentally are incorrect.

There has been some work in this area, most related to reprojection techniques that try to do some kind of geometry-aware holefilling in the final image. This sortof works. As far as I know, the best approach so far is to render the scene directly for the dominant eye, and then reproject it to the other one.


Yes, this is essentially the same problem that occours in paralax mapping. What you basically have is a colored height field. That needs to be rendered from a second view.

There are several ways in which you can approach this. You could cheat and just shift pixels by their depth and ignore occlusion. Or you could just render a textured height map as if every pixel would be opaque. Or you could use any of the available paralax mapping methods to eliminate occlusion.

How well this works depends on the. A scene multiple transparent surfaces wouldnt work very well without some deep map.

  • 2
    $\begingroup$ This is usually called "stereo reprojection", since one way of implementing it is to take the matrix that transforms from the new perspective to the old perspective. $\endgroup$
    – yuriks
    Aug 25, 2015 at 5:15
  • $\begingroup$ @yuriks that makes sense. $\endgroup$
    – joojaa
    Aug 25, 2015 at 5:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.