1

是否可以将相机深度投影到平面上?
让我解释一下,如果我只是在平面上传输深度缓冲区,它将始终显示从相机角度看的深度。但是我怎样才能继续显示深度,但从平面的角度来看。
我想将效果应用于着色器。对我来说,这可能是一个矩阵问题,但我不明白。

4

1 回答 1

2

深度缓冲区是相对于表示的,可以使用(例如)着色器将其投影到任何平面。但..

深度缓冲区不是对象的完整几何表示,而只是来自摄像机 POV 的“被看到”表面。如果您投影深度缓冲区,部分对象可能不会被投影(见图)。

在图片中,相机(红眼)正在注视一个物体(黑色)。深度缓冲区表示相机和红色表面之间的距离。对于平面(蓝线),您可能想要获得整个对象投影(蓝色表面),但是将红色表面投影到平面上,您只会得到整个蓝色表面的一小部分。

投影深度缓冲区

如果你想要整个蓝色表面,

  1. 将摄像机的 POV 更改为就在飞机后面。
  2. 渲染场景。
  3. 获取深度缓冲区并将其保存到纹理/图像/缓冲区(P)中。
  4. 重置你的相机 POV
  5. 使用图像着色器渲染场景 (P)
于 2013-06-19T09:57:27.423 回答