Version: 2021.3
反射探针
Using Reflection Probes

反射探针的类型

反射探针有三种基本类型,通过检视面板中的 Type 属性可进行相应选择(有关更多详细信息,请参阅组件参考页面)。

  • 烘焙 (Baked) 探针可存储 Editor 中生成(烘焙)的反射立方体贴图。可以通过单击 Reflection Probe Inspector 底部的 Bake 按钮或 Lighting 窗口中的 Build 按钮来触发烘焙。如果在 Lighting 窗口中启用了 Auto_,则在 Scene 视图中放置对象时,烘焙探针将自动更新。烘焙探针的反射只能显示 Inspector 中标记为 Reflection Probe Static_ 的对象。此设置向 Unity 指示这些对象不会在运行时移动。
  • 实时 (Realtime) 探针在运行时在播放器中而不是在 Editor 中创建立方体贴图。这意味着反射不仅限于静态对象,而且可以实时更新以显示场景中的变化。但是,刷新探针的视图需要相当长的处理时间,因此谨慎管理更新就显得十分重要。Unity 允许从脚本中触发更新,以便能够准确控制更新的发生时间。此外,还有一个选项是应用_时间切片_来探测更新,使更新可在几帧内逐渐发生。
  • 还可使用自定义 (Custom) 探针。这些探针允许在 Editor 中烘焙视图,就像烘焙探针一样,还能为反射提供自定义的立方体贴图。自定义探针无法在运行时更新。

下面将详细说明这三种类型。

烘焙和自定义反射探针

A Baked Reflection Probe is one whose reflection cubemap is captured in the Unity editor and stored for subsequent usage in the player (see the Reflection Probes Introduction for further information). Once the capture process is complete, the reflections are “frozen” and so baked probes can’t react to runtime changes in the scene caused by moving objects. However, they come with a much lower processing overhead than Realtime Probes (which do react to changes) and are acceptable for many purposes. For example, if there is only a single moving reflective object then it need only reflect its static surroundings.

使用烘焙探针

应将探针的 Type 属性设置为 BakedCustom 以将其用作烘焙探针(请参阅下面的自定义探针提供的其他功能)。

烘焙探针捕获的反射只能包含标记为 Reflection Probe Static 的场景对象(使用检视面板左上角的 Static 菜单标记所有对象)。可以使用 Culling MaskClipping Planes 属性进一步优化包含在反射立方体贴图中的对象;具体的工作方式与摄像机的工作方式相同(探针本质上类似于通过旋转观察六个立方体贴图面每一面的摄像机)。

Auto 选项启用时(从 Lighting 窗口中设置),烘焙反射将在对象放置到场景中时自动更新。如果不使用自动烘焙,则需要单击 Reflection Probe Inspector 中的 Bake 按钮以更新探针。(Lighting 窗口中的 Build 按钮也将触发探针更新。)

无论使用自动烘焙还是手动烘焙,烘焙过程都将继续在 Editor 中工作时异步进行。但是,如果移动任何静态对象、更改其材质或以其他方式改变其视觉外观,则会重新启动烘焙过程。

自定义探针

默认情况下,自定义探针的工作方式与烘焙探针的工作方式相同,但自定义探针还有其他选项可以更改此行为。

自定义探针检视面板上的 Dynamic Objects 属性允许未标记为 Reflection Probe Static 的对象包含在反射立方体贴图中。但是请注意,这些对象的位置在烘焙时仍然会在反射中“冻结”。

Cubemap 属性允许将自定义的立方体贴图分配给探针,从而使探针完全独立于可从其视点“看到”的对象。可以使用此属性来设置从 3D 建模应用程序生成的天空盒或立方体贴图作为反射源。

实时探针

烘焙探针可用于许多用途,并具有良好的运行时性能,但它们的缺点是不能在播放器中实时更新。这意味着对象可在场景中移动但不能让它们的反射随之移动。如果这种问题带来了太多限制,可以使用实时探针,它们会在运行时更新反射立方体贴图。这种效果会带来更高的处理开销,但可提供更强的真实感。

Using Realtime Probes

要使探针在运行时更新,应在反射探针检视面板中将其 Type 属性设置为 Realtime。不需要将对象标记为 Reflection Probe Static 来捕获它们的反射(就像使用烘焙探针一样)。但是,可以使用 Culling MaskClipping Planes 属性在反射立方体贴图中选择性地排除对象;具体的工作方式与摄像机的工作方式相同(探针本质上类似于通过旋转观察六个立方体贴图面每一面的摄像机)。

In the editor, real-time probes have much the same workflow as baked probes, although they tend to render more quickly.

Note: Currently, real-time probes will only update their reflections in the Scene view when Reflection Probe Static objects are moved or change their appearance. This means that moving dynamic objects will not cause an update even though those objects appear in the reflection. You should choose the Bake Reflection Probes option from the Build button popup on the Lighting window to update reflections when a dynamic object is changed.

反射探针
Using Reflection Probes