gpt4 book ai didi

3d - 多间带灯的房间

转载 作者:行者123 更新时间:2023-12-04 05:07:45 25 4
gpt4 key购买 nike

我有点陷入困境,而且我确信我不是第一个遇到这个问题的人。

我正在尝试为具有多个房间的办公楼建模。我希望玩家能够打开/关闭每个房间的灯。以下是我遇到的问题:

问题 1:使用前向渲染时,我不能使用阴影,因此我的点光源会从墙壁漏出(即关灯的房间不是漆黑的,因为它们从相邻房间接收光线)。

解决方案:最初,我通过对场景进行两次光照映射来解决此问题 - 一次打开灯光,一次关闭灯光。当玩家关灯时,我将房间中的所有渲染器切换到全黑光照贴图并关灯。

问题二:上面的解决方案还不错,但是我所有的动态物体仍然接收到通过墙壁泄漏的光。我想我可以使用 lightprobes 来解决这个问题。但是,我不确定如何更改单个探测器的光照贴图(即房间内的探测器使用关闭光照贴图,房间外的探测器使用开启光照贴图)。

如果我使用带有阴影的延迟照明一切正常,但我的 fps 从 60 下降到 ~20。

谢谢

最佳答案

拥有两个光照贴图确实是一种解决方案,但将您限制在静态漫反射场景中。其他任何东西(移动物体或镜面反射场景)都需要更高级的技术。

  • 一个简单的廉价解决方案是使用“单元和门户”(例如, this paper )并保留您的第一个解决方案。这种方法构建了一个表示不同房间之间链接的图表,并应防止漏光 - 至少是近似的。
  • 更好的解决方案是使用 shadow maps .您基本上从每个光源的角度渲染一次场景的深度图(如果准时!),然后通过一个简单的测试来确定当前点是否在阴影中。如果您有很多房间,您当然可以将此方法与单元格和门户分解合并以加快计算速度。
  • 一个可能更好的解决方案是使用 shadow volumes .这种方法计算每个光锥(或聚光灯具有的任何形状)与场景几何体之间的几何交集。使用它,您可以确定当前点是在阴影体积的内部还是外部。

  • 如果您在网上搜索,所有这些都已扩展到软阴影。

    关于3d - 多间带灯的房间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303389/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com