【发布时间】:2012-03-28 11:48:19
【问题描述】:
据我了解,阴影映射是通过从灯光的角度渲染场景以创建深度图来完成的。然后从摄像机的 POV 重新渲染场景,并为场景中的每个点(GLSL 中的片段)计算从那里到光源的距离;如果它与你的阴影贴图中的匹配,那么它就在光中,否则它就在阴影中。
我刚刚阅读了this tutorial,以了解如何使用点/全向光进行阴影映射。
在第 12.2.2 节中说:
我们为所有光源使用一个阴影贴图
然后在 12.3.6 下它说:
1) 计算当前像素到光源的平方距离。
...
4) 将计算出的距离值与获取的阴影贴图值进行比较,以确定我们是否处于阴影中。
这大致就是我上面所说的。
我不明白的是,如果我们将所有灯光烘焙到一个阴影贴图中,那么我们需要将距离与哪个灯光进行比较?烘焙到地图中的距离不应该对应任何东西,因为它是所有灯光的混合,不是吗?
我确定我遗漏了一些东西,但希望有人可以向我解释一下。
另外,如果我们使用单个阴影贴图,我们如何为所有光源混合它?
对于单个光源,阴影贴图只存储最近物体到光源的距离(即深度图),但对于多个光源,它会包含什么?
【问题讨论】:
标签: graphics 3d rendering shadow-mapping