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

<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2015-09-03T15:09:52.093Z
2015-09-03T15:09:52.093Z
geometrian
<p>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.</p>

<p>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. </p>

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

CC BY-SA 3.0
2015-08-25T05:15:09.187Z
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.
yuriks
CC BY-SA 3.0
2015-08-25T05:16:25.527Z
@yuriks that makes sense.
joojaa
CC BY-SA 3.0
2015-08-25T04:59:24.840Z
2015-08-25T05:06:26.757Z
2015-08-25T05:06:26.757Z
joojaa
<p>To render an image for use with red &amp; 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.</p>

<p>This can be prohibitive when rendering a single time is already very costly.</p>

<p>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?</p>

CC BY-SA 3.0
2015-08-24T20:55:31.253Z
Isn't the point of stereoscopic rendering to render the occluded parts of both views for each eye?
Mokosha
CC BY-SA 3.0
2015-08-24T20:58:08.737Z
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.
Alan Wolfe
CC BY-SA 3.0
2015-09-03T16:26:25.673Z
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.
Jessy
<rendering><3d><stereo-rendering>
Is it possible to render red / blue 3d from one image and a depth buffer?
Alan Wolfe
# Is it possible to render red / blue 3d from one image and a depth buffer?

(Asked by: username_0 on 2015-08-24)

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?

**Tags:** rendering, 3d, stereo-rendering

> **Comments:**
> **username_1**: Isn't the point of stereoscopic rendering to render the occluded parts of both views for each eye?  
> **username_0**: 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.  
> **username_2**: 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.  

---

## 2 answers

### Answer by username_3 on 2015-09-03. Score: 2 | Accepted answer

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.


---

### Answer by username_4 on 2015-08-25. Score: 4

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.

> **Comments:**
> **username_5**: 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.  
> **username_4**: @username_5 that makes sense.  

---

