版本:Unity 6 (6000.0)
语言:英语
反射
反射探测器类型

反射探测器简介

一个 反射探测器一个渲染组件,它以类似摄像机的形式捕获其周围环境的球形视图。捕获的图像随后被存储为立方体贴图,可供具有反射材质的物体使用。 更多信息
请参阅 术语表
类似于一个 摄像机一个组件,它在场景中创建一个特定视点的图像。输出将绘制到屏幕上或作为纹理捕获。 更多信息
请参阅 术语表
,它以所有方向捕获其周围环境的球形视图。捕获的图像随后被存储为一个 立方体贴图六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。六个方块形成围绕物体的假想立方体的面;每个面代表沿世界轴方向(上、下、左、右、前和后)的视图。 更多信息
请参阅 术语表
,可供具有反射材质的物体使用。在给定 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您可以放置环境、障碍物和装饰物,基本上是按部分设计和构建游戏。 更多信息
请参阅 术语表
中可以使用多个反射探测器,并且可以将物体设置为使用最近探测器生成的立方体贴图。结果是,物体上的反射可以根据其环境进行令人信服的变化。

A Reflection Probe showing reflections from a nearby object
一个反射探测器,显示了来自附近物体的反射

CG 电影和动画通常以高度逼真的反射为特色,这对营造场景中物体之间的“连接感”非常重要。但是,这些反射的准确性会带来高昂的处理器时间成本,虽然这对电影来说不是问题,但它严重限制了实时游戏中反射物体的使用。

传统上,游戏一直使用一种名为反射贴图的技术来模拟物体反射,同时将处理开销控制在可接受的范围内。该技术假定场景中所有反射物体都可以“看到”(因此反射)完全相同的周围环境。如果游戏的主要角色(例如一辆闪亮的汽车)在开阔的空间中,这效果很好,但在角色进入不同的环境时就无法令人信服了;如果一辆汽车驶入隧道但天空仍然在车窗上清晰可见,看起来很奇怪。

Unity 通过使用反射探测器改进了基本的反射贴图,它允许在场景中战略性地对视觉环境进行采样。通常,您应该将它们放置在任何反射物体外观会发生明显变化的地方(例如,隧道、建筑物附近区域和地面颜色变化的地方)。当反射物体靠近探测器时,探测器采样的反射可用于物体的反射贴图。此外,当附近有多个探测器时,Unity 可以对它们进行插值,从而允许反射逐渐变化。因此,使用反射探测器可以以可接受的处理开销创建非常令人信服的反射。

反射探测器的工作原理

场景中一个点的视觉环境可以使用立方体贴图表示。从概念上讲,这就像一个盒子,在盒子的内表面上绘制了来自六个方向(上、下、左、右、前和后)的视图的平面图像。

Inside surfaces of a skybox cubemap (front face removed)
天空盒立方体贴图的内表面(正面已移除)

为了让物体显示反射,其着色器在 GPU 上运行的程序。 更多信息
请参阅 术语表
必须能够访问表示立方体贴图的图像。物体表面的每个点都可以“看到”立方体贴图中一个很小的区域,该区域位于表面朝向的方向(即表面法线矢量的方向)。着色器使用立方体贴图在此点的颜色来计算物体表面应该是什么颜色;镜面材质可能会完全反射颜色,而闪亮的汽车可能会使颜色淡化并略微着色。

如上所述,传统的反射贴图只使用一个立方体贴图来表示整个场景的周围环境。立方体贴图可以由艺术家绘制,也可以通过从场景中一个点拍摄六张“快照”来获取,每张快照对应一个立方体面。反射探测器通过允许您在场景中设置许多预定义点来改进这一点,这些点可以拍摄立方体贴图快照。因此,您可以在场景中任何反射明显不同的点记录周围的视图。

除了其视点之外,探测器还具有一个由场景中不可见的框形状定义的作用范围。进入探测器作用范围内的反射物体将暂时从该探测器获得其反射立方体贴图。当物体从一个区域移动到另一个区域时,立方体贴图也会相应地变化。

默认反射探测器

当您添加一个新场景时,Unity 会自动创建一个隐藏的默认反射探测器,它存储 Unity 的内置默认 天空盒一种特殊类型的材质,用于表示天空。通常是六面的。 更多信息
请参阅 术语表
立方体贴图。

隐藏的反射探测器中的数据是固定的。例如,如果您在灯光窗口中更改天空盒材质,探测器中的数据不会改变,因此物体上的环境灯光保持不变。

要停止使用隐藏的反射探测器,请在灯光窗口中选择生成灯光清除烘焙数据。然后,Unity 将创建一个新的默认烘焙反射探测器(环境反射探测器)并使用它。此反射探测器是项目窗口一个显示您的Assets文件夹内容的窗口(项目选项卡)。 更多信息
请参阅 术语表
中的一个资源,并且在您选择生成灯光时会更新。

其他资源

反射
反射探测器类型