遮挡剔除

遮挡剔除

Unity User Manual 2022.3 (LTS)

图形

摄像机

遮挡剔除

使用斜视锥体

开始使用遮挡剔除

遮挡剔除

“遮挡剔除”过程可防止 Unity 为那些被其他游戏对象完全挡住(遮挡)的游戏对象执行渲染计算。

摄像机在每一帧中执行剔除操作,这些操作会检查场景中的渲染器,并排除(剔除)那些不需要绘制的渲染器。默认情况下,摄像机执行视锥体剔除,这一过程将排除所有不在摄像机视锥体范围内的渲染器。但是,视锥体剔除不会检查渲染器是否被其他游戏对象遮挡,因此 Unity 仍会浪费 CPU 和 GPU 时间进行在最终帧中不可见的渲染器的渲染操作。遮挡剔除将阻止 Unity 执行这些徒劳的操作。

常规视锥体剔除将会渲染摄像机视野内的所有渲染器。

遮挡剔除将会删除被更近的渲染器完全遮挡的渲染器。

何时使用遮挡剔除

要确定遮挡剔除是否有可能改善项目的运行时性能,请考虑以下事项:

防止无意义的渲染操作可以节省 CPU 和 GPU 时间。Unity 的内置遮挡剔除在 CPU 上执行运行时计算,这可能会抵消其节省的 CPU 时间。因此,当项目因过度绘制而具有 GPU 密集型特征时,遮挡剔除最有可能提高性能。

Unity 在运行时将遮挡剔除数据加载到内存中。必须确保有足够的内存来加载此数据。

当场景中一些界限明确的小区域被实体游戏对象彼此隔开时,遮挡剔除的效果最好。一个常见的例子是通过走廊连接的房间。

可以使用遮挡剔除来遮挡动态游戏对象,但动态游戏对象不能遮挡其他游戏对象。如果项目会在运行时生成场景几何体,则 Unity 的内置遮挡剔除不适用于该项目。

遮挡剔除的工作原理

遮挡剔除会在 Unity Editor 中生成有关场景的数据,然后在运行时使用该数据来确定摄像机可以看到的内容。这种生成数据的过程称为烘焙。

在对遮挡剔除数据进行烘焙时,Unity 将场景划分为多个单元,并生成描述单元内几何体以及相邻单元之间可见性的数据。然后,Unity 尽可能合并单元,以减小生成的数据的大小。要配置烘焙过程,可以在 Occlusion Culling 窗口中更改参数,并在场景中使用遮挡区域。

在运行时,Unity 会将这些烘焙的数据加载到内存中,并且对于每个启用了 Occlusion Culling 属性的摄像机,将会对数据执行查询以确定该摄像机可以看到的内容。请注意,启用遮挡剔除后,摄像机将执行视锥体剔除和遮挡剔除。

其他资源

Unity 使用 Umbra 库来执行遮挡剔除。有关详细介绍 Umbra 的文章的链接,请参阅“其他资源”页面。

使用斜视锥体

开始使用遮挡剔除

相关推荐

支付宝理财怎么玩?快速入门指南
365娱乐场投注

支付宝理财怎么玩?快速入门指南

📅 07-02 👁️ 4170
【图】nike小吕布怎么样?nike小吕布测评
365bet在线官网

【图】nike小吕布怎么样?nike小吕布测评

📅 07-06 👁️ 7535
简笔画僵小鱼的画法
365娱乐场投注

简笔画僵小鱼的画法

📅 07-20 👁️ 7861
如何在NBA2K14手机版中设置为中文模式?
365bet在线官网

如何在NBA2K14手机版中设置为中文模式?

📅 07-11 👁️ 9607
dnf武器附魔属性强化宝珠有哪些 武器附魔宝珠大全平民职业
FIFA公布世界杯最佳新秀候选名单:3新人PK
天天365彩票软件官方下载3D

FIFA公布世界杯最佳新秀候选名单:3新人PK

📅 07-17 👁️ 3437