4
$\begingroup$

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?

$\endgroup$
  • 1
    $\begingroup$ Isn't the point of stereoscopic rendering to render the occluded parts of both views for each eye? $\endgroup$ – Mokosha Aug 24 '15 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 '15 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 '15 at 16:26
2
$\begingroup$

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.

$\endgroup$
4
$\begingroup$

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.

$\endgroup$
  • 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 '15 at 5:15
  • $\begingroup$ @yuriks that makes sense. $\endgroup$ – joojaa Aug 25 '15 at 5:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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