Skip to main content

1. 遮挡剔除的基本原理

在 Unity 场景中,遮挡剔除通过将世界划分为许多个越来越小的空间区块来实现的。在这些数据中,系统会记录每个区块中的哪些物体是可见的,哪些是不可见的。Unity 正是利用这些数据来“隐藏”那些被其他物体遮挡的游戏对象。

需要明确的是,遮挡剔除只会在视觉上隐藏物体。即使物体被隐藏,它们的状态也不会改变,大部分功能仍然会继续运行,因此遮挡剔除主要用于减少绘制调用 (Draw calls) ,而不是完全移除掉被遮挡的物体。此外,无论物体距离观察者有多远,Unity 都将不会隐藏它判断为可见的对象。所以我们可以看出,距离并不是影响遮挡剔除的因素。

遮挡剔除是否仅限于视觉效果?

是的,遮挡剔除的作用仅仅是阻止物体的渲染!它并不会终止物体的其他处理过程,因此如果你有一个划分为多个区域的大型世界,你可以通过剔除那些当前不活跃的区域来提高整体性能。