Skip to main content

2. 遮挡剔除如何影响物体

遮挡剔除分别静态对象(如地图元素)和动态对象(如玩家和拾取物的处理方式有所不同

  • 静态对象可以隐藏其他物体,也可以被其他物体隐藏。(在某些情况下,可能总是希望静态对象同时具备这两件事种特性。)它们将这些对象的遮挡信息会在运行前烘焙进数据中并且在运行时不能无法更
  • 动态对象不能则无法隐藏它们背后的物体,但它们可以根据一粗略的特殊计算其他物体隐藏,这计算判断它们是否位于某个静态物体对象之

Unity使用Unity 通过检查对象上的静态标志来确定遮挡剔除将会如何影响它们。遮挡剔除考虑了以下三种不同的情况

  • 静态遮挡物。唯一可以能够遮挡的是不移动其他物体的静态物体对象——特别是网格渲染器和地形。如果它们被标记为遮挡静态,则它们后面的物体会被隐藏。它们将这些遮挡信息会在运行前预先烘焙进遮挡数据中
  • 静态被遮挡物。这指定了会的是那些可以被隐藏的静态物体对象。被遮挡物可以是任何带有渲染器的物体,只要它在运行过程中不移动。
  • 动态被遮挡物。涵盖包括了场景中的其他任何东西所有物体。如果启用了“动态遮挡”属性,那么这些物体可以被静态遮挡物使用烘焙数预先计算的遮挡信息隐藏。

需要注意的是,动态遮挡的效果通常不如静态遮挡精确。实际上,只有那些大型的、实心的物体才可能有效地隐藏动态对象。