Version: Unity 6.0 (6000.0)
语言 : 中文
光照探针和移动的游戏对象
使用脚本放置光照探针

使用编辑器放置光照探针

Switch to Scripting

要将光照探针置于场景中,必须使用已附加 Light Probe Group 组件的游戏对象。您可以从菜单中添加 Light Probe Group 组件:__组件 (Component) > 渲染 (Rendering) > 光照探针组 (Light Probe Group)__。

可将 Light Probe Group 组件添加到场景中的任何游戏对象。但是,最好创建一个新的空游戏对象(菜单:__游戏对象 (GameObject) > 创建空对象 (Create Empty)__),然后将该组件添加到这个游戏对象,从而降低意外将该组件从项目中移除的可能性。

放置光照探针

要在 Light Probe Group 中移动、添加或删除光照探针,请执行以下操作:

  1. 在层级视图 (Hierarchy) 窗口或场景 (Scene) 视图中选择 Light Probe Group。
  2. 在场景视图中的工具覆盖层 (Tools overlay) 中,选择编辑光照探针组 (Edit Light Probe Group) 工具。

编辑 Light Probe Group 时,可按照与游戏对象类似的方式来操作单个光照探针。但是,光照探针不是游戏对象,而是 Light Probe Group 组件中的一组点。

开始编辑新的 Light Probe Group 时,从一个立方体中排列的八个探针的默认编队开始,如下所示:

光照探针的默认排列。
光照探针的默认排列。

可以使用编辑光照探针组工具中的控件向该组添加新的探针位置。探针在场景中显示为黄色球体,这些球体可按照与游戏对象相同的方式定位。此外,还可以使用“复制”键盘快捷键(Ctrl+DCmd+D)或复制粘贴来选择和复制单个探针或按组进行这些操作。

选择光照探针位置

与通常在对象表面具有连续分辨率的光照贴图不同,光照探针信息的分辨率取决于放置光照探针的紧密程度。

为了优化光照探针存储的数据量以及游戏在进行时完成的计算量,通常应尝试尽可能少量放置光照探针。但是,在可以接受的范围内,建议放置足够多的光照探针来记录一个空间到另一空间的光线变化。这意味着,在具有复杂或高对比度光线的区域周围可提高光照探针的放置密度,而在光线没有显著变化的区域可降低它们的放置密度。

在简单场景周围放置不同密度的光照探针
在简单场景周围放置不同密度的光照探针

在以上示例中,建筑物附近和之间的对比度和颜色变化较大,因此光照探针放置得较密集,而沿着道路的光照没有显著变化,因此放置密度较小。

定位光照探针的最简单方法是将它们排列成常规 3D 网格图案。虽然此设置简单有效,但可能会消耗不必要的内存,并可能有大量冗余的光照探针。例如,在以上场景中,如果沿着道路放置大量光照探针,将会浪费资源。光照沿着道路的长度不会发生太大变化,因此许多光照探针会将几乎相同的光照数据存储到相邻光照探针中。在此类情况下,通过在稀疏光照探针之间插入此光照数据,效率会高得多。

光照探针不会单独存储大量信息。从技术角度来看,每个探针都是来自采样点的球形全景__ HDR__高动态范围
See in Glossary
图像,使用存储为 27 个浮点值的球谐函数 L2 进行编码。然而,在具有数百个光照探针的大型场景中,这些探针可以累加,而设置密集度过高的光照探针可能导致游戏中大量内存浪费。

创建体积

即使游戏位于 2D 平面上(例如,在路面上行驶的汽车),光照探针也必须形成 3D 体积。

这意味着光照探针组中至少应有两个垂直“层”的点。

在以下示例中,在左侧看到光照探针仅排列在地面上。由于光照探针系统无法从光照探针计算明显的四面体体积,因此这种排列方式不会产生良好光照。

在右侧,光照探针排列为两层,一些低至地面,另一些高于地面,因此它们一起形成由大量单个四面体组成的一个 3D 体积。这是一种良好的布局。

左图显示了不当的光照探针位置选择,因为光照探针定义的体积没有高度。右图显示了较恰当的光照探针位置选择。
左图显示了不当的光照探针位置选择,因为光照探针定义的体积没有高度。右图显示了较恰当的光照探针位置选择。

用于实时全局光照的光照探针放置

Enlighten 实时全局光照使移动光源能够在静态游戏对象上投射动态反射光。

将光照探针与__ Enlighten__Geomerics 出品的光照系统,在 Unity 中用于 Enlighten 实时全局光照。更多信息
See in Glossary
实时全局光照结合使用时,移动光源也可以在移动的游戏对象上投射动态反射光。生成的光照质量取决于光照探针的定位方式,因此仔细定位它们非常重要。

光照探针会捕获其在空间中位置的间接光照。为了准确地捕获光照环境,必须在希望光照变化更大的区域放置更多探针。例如,具有移动光源或许多遮挡物的区域可能需要大量探针。在光照变化很小或没有变化的区域,可以放置更少的探针来节省内存和计算资源。

在大面积的静态光中,通常只需要几个光照探针。但是,如果计划在此静态光区域内设置移动光源,并希望移动对象从这些移动光源接收准确的反射光,则需要在此区域内设置密集的光照探针网络来提供足够的精度。光源的大小和范围、这些光源的移动速度以及接收动态光的移动对象的大小决定了光照探针的间距。

LightProbeGroup

光照探针和移动的游戏对象
使用脚本放置光照探针