【问题标题】:Unity Frostrum Culling in top-down or isometric view自上而下或等距视图中的 Unity Frostrum Culling
【发布时间】:2021-02-08 07:39:02
【问题描述】:

我在 Unity 中遇到了一个问题,它阻止它在自上而下或等距视图中剔除相机外对象,因为阴影投射。

定向光是对角线,因此在光线来自的方向上,相机视图之外的任何物体都可能在相机视图中投射阴影。现在,在现实中,几乎所有这些对象只会将它们的阴影投射到远低于地面的相机视图中,因此它们并不需要被渲染。然而,Unity 并不知道这一点,它仍然会渲染它们的阴影,从而显着降低性能。

我尝试通过遮挡剔除来解决这个问题。我在地面创建了一个巨大的平面,将其标记为静态,并为该对象烘焙了遮挡剔除,这样地下的任何东西都不会被渲染。不幸的是,这无济于事,所有那些其阴影可能进入地面下方相机视图的对象仍在渲染中。

另一种可能的解决方案是限制为每个对象生成阴影的范围。这些物体中的许多都非常低并且总是在地面上,所以我知道它们的阴影不可能超过 1-2 米。但是我找不到定义这样一个值的方法,以便统一可以使用它进行剔除。

关于如何克服这个问题的任何其他想法?

注意:整个场景是程序生成的,所以我不能使用静态遮挡剔除,除了地面本身。

【问题讨论】:

    标签: unity3d graphics rendering game-development occlusion-culling


    【解决方案1】:

    也许有关剔除过程的信息将帮助您了解您需要做什么:

    1. 当一个对象离开平截头体时,Unity立即剔除它,其余仍然存在的 tris 属于阴影。
    2. 当一个物体离开平截头体时,它仍然会投射阴影。在内部,Unity 将对象投射阴影模式转换为“仅阴影”。这意味着对象本身会被剔除,但阴影不会被剔除。
    3. 阴影在离开视锥体时不会立即被剔除,它们使用相机的视野、远剪切平面和定向光四元数的组合来确定何时剔除它们
    4. 没有镶嵌的巨大物体也会破坏遮挡
    5. 这都是编辑器的明智之举,构建通常会表现出完全不同的行为。

    反过来,减少阴影级联、阴影距离、角度较小的定向光、相机透视和远剪辑平面都将有助于剔除过程并\或减少阴影的 tris 计数。

    顺便说一句,遮挡剔除是一种有效的解决方案,如果不熟悉系统,它就不太容易使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多