我在延迟渲染器中实现全向阴影映射,但无法解决这个问题:
这是一张图片:
这就是当我将六个聚光灯沿正负方向指向每个轴时发生的。我知道这个问题是由聚光灯计算引起的,将灯光保持在锥体中,这就是为什么它是圆形的。
我的第一个想法是禁用锥体计算,但显然因为如果你通过一个灯看到另一个灯会混合在一起,就会有重叠。如果我将要为灯光渲染的几何形状从锥形更改为基于方形的金字塔(我认为我无论如何都需要这样做?)然后我将能够使用灯光的平截头体(我已经拥有)锥体计算来测试当前像素是否落在截锥体内,对吗?
如果是这样,有人知道在像素着色器中执行此操作的最佳方法是什么吗?我只想检查该点是否位于平截头体的每个平面的前面,但这在像素着色器中似乎很昂贵。