Version: 6000.3
语言: 中文
启用反射的反射
反射问题排查

优化反射

渲染反射探针一种渲染组件,可捕获各个方向周围环境的球面视图,就像相机一样。然后,捕获的图像将存储为立方体贴图,可供具有反射材质的对象使用。更多信息
请参阅术语表
立方体贴图六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。这六个正方形形成了一个围绕物体的假想立方体的面;每个面表示沿世界轴方向(上、下、左、右、前和后)的视图。更多信息
请参阅术语表
由于多种原因,占用了大量的处理器时间:

  1. 六个立方体贴图面中的每一个都必须使用”相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
    请参阅术语表
    “在探针的原点。

  2. 探针需要为每个反射反弹级别渲染单独的时间(有关更多详细信息,请参阅有关高级反射探针的文档)。

  3. 立方体贴图的各个 mipmap 级别必须经过模糊处理,以允许光泽反射。

渲染探针所花费的时间会影响编辑器中的烘焙工作流程,更重要的是影响播放器的运行时性能。以下是将反射探针对性能影响降至最低的一些提示。

一般提示

以下问题会影响脱机烘焙运行时性能。

分辨率

立方体贴图的分辨率越高,其渲染时间就越长。您可以通过在反射细节不太重要的地方设置较低的分辨率来优化探针(例如,如果反射对象很小和/或较远,那么它自然会显示较少的细节)。只要细节明显,仍应使用更高的分辨率。

剔除遮罩

提高普通摄像机性能的标准技术是使用剔除遮罩(Culling Mask) 允许您按图层包含或省略要由摄像机渲染的对象。
请参阅术语表
属性以避免渲染无关紧要的对象;该技术同样适用于反射探头。例如,如果您的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
包含许多小对象(例如,岩石和植物),您可以考虑将它们全部放在同一个图层上,然后使用剔除遮罩来避免在反射中渲染它们。

纹理压缩

要优化渲染时间并降低 GPU 内存消耗,请使用纹理压缩。要控制烘焙反射探针的纹理压缩,请打开 光照(Lighting) 窗口(菜单:窗口>渲染>光照),导航到 环境光照(Environmental Lighting) > 反射(Reflections),然后使用压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩动画压缩音频压缩构建压缩
请参阅术语表
下拉菜单。请注意,实时反射探针不会在内存中压缩,它们在内存中的大小取决于分辨率和HDR设置。因此,对实时反射探针进行采样通常比对烘焙反射探针进行采样更耗费资源。

实时探头优化

对于实时探针,渲染开销通常比在编辑器中烘焙的探针更大。更新可能非常频繁,如果管理不当,这可能会对帧速率产生影响。考虑到这一点,实时探针提供了以下属性,使你能够尽可能高效地处理探针渲染:

刷新模式

刷新模式允许您选择何时更新探头。就处理器时间而言,资源最密集的选项是 Every Frame。这样可以以最少的编程工作量进行最频繁的更新,但如果对所有探针使用此模式,则可能会遇到性能问题。

如果模式设置为 On Awake,则探测将在运行时更新,但仅在场景开始时更新一次。如果场景(或其中的一部分)在运行时设置,但在其生存期内未更改,则此功能非常有用。

最后一种模式,通过脚本,允许您从脚本控制探针更新。尽管编写脚本需要一些工作,但这种方法确实允许有用的优化。例如,您可以根据经过对象的表观大小更新探针(即,远处的小对象或大对象不值得更新)。

时间切片 Time Ssliceing

当上述刷新模式设置为 每帧(Every Frame) 时,处理负载可能会相当大。时间切片允许你将更新成本分散到多个帧上,从而在任何给定时间减少负载。此属性有三个不同的选项:

  1. All Faces at Once 将导致立即渲染六个立方体贴图面(在同一帧上),但随后六个第一级 Mipmap 中的每一个的模糊作将在单独的帧上进行。然后,剩余的 mipmap 将在单个帧上进行模糊处理,并将结果复制到另一帧的立方体贴图中。因此,完整更新需要 9 帧才能完成。

  2. 单个面的工作方式与一次所有面相同,只是每个立方体贴图面的初始渲染发生在自己的帧上(而不是第一帧上的所有六个)。完整更新需要十四帧才能完成;此选项对帧速率的影响最小,但当照明条件突然变化时,例如,灯突然打开时,相对较长的更新时间可能会很明显。

  3. 无时间切片完全禁用时间切片作,因此每次探针更新都在单个帧内进行。这确保了反射与周围物体的外观完全同步,但处理成本可能过高。

与其他优化一样,您应该考虑在反射不太重要的地方使用较低质量的选项,并将 无时间切片 选项保存在会注意到细节的地方。



  • 在 5.6 中更新

  • 2017–06–06 页面已发布

启用反射的反射
反射问题排查