我有点进退两难,我敢肯定我不是第一个遇到这个问题的人。
我正在尝试为具有多个房间的办公楼建模。我希望玩家能够打开/关闭每个房间的灯。以下是我遇到的问题:
问题 1:使用前向渲染时,我不能使用阴影,因此我的点光源会从墙壁漏出(即关闭灯的房间不是漆黑的,因为它们正在接收来自相邻房间的光)。
解决方案:最初,我通过两次光照映射我的场景来解决这个问题 - 一次打开灯,一次关闭灯。当玩家关闭灯光时,我将房间中的所有渲染器切换为全黑光照贴图并关闭灯光。
问题2:上述解决方案还不错,但是我所有的动态对象仍然接收到通过墙壁泄漏的光。我想我可以使用 lightprobes 解决这个问题。但是,我不确定如何更改单个探针的光照贴图(即房间内的探针使用关闭光照贴图,房间外的探针使用开启光照贴图)。
如果我使用带有阴影的延迟照明,一切都会很好,但我的 fps 从 60 下降到 ~20。
谢谢