Version: 6000.3
语言: 中文
思考
反射探头的类型

反射探针简介

一个反射探针一个渲染组件,可捕获周围环境的各个方向的球形视图,就像相机一样。然后,捕获的图像将存储为立方体贴图,可供具有反射材质的对象使用。更多信息
请参阅术语表
更像是一个相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
从各个方向捕捉周围环境的球形视图。然后,捕获的图像将存储为立方体贴图(Cubemap) 六个方形纹理的集合,可以表示环境中的反射或几何体后面绘制的天空盒。这六个正方形形成了一个围绕物体的假想立方体的面;每个面表示沿世界轴方向(上、下、左、右、前和后)的视图。更多信息
请参阅术语表
可以由具有反光材料的物体使用。在给定的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
并且可以将对象设置为使用最近探针生成的立方体贴图。结果是物体上的反射可以根据其环境而发生令人信服的变化。

显示附近对象反射的反射探针
显示附近对象反射的反射探针

CG 电影和动画通常具有高度逼真的反射,这对于给人一种场景中物体之间的“联系感”非常重要。然而,这些反射的准确性伴随着处理器时间的高成本,虽然这对电影来说不是问题,但它严重限制了实时游戏中反射对象的使用。

传统上,游戏使用一种称为反射映射的技术来模拟对象的反射,同时将处理开销保持在可接受的水平。该技术假设场景中的所有反射对象都可以“看到”(因此反射)完全相同的环境。如果游戏的主角在开放空间中,这对游戏的主角(例如一辆闪亮的汽车)来说效果很好,但当角色进入不同的环境时却没有说服力;如果一辆汽车驶入隧道,但天空仍然明显地反射在窗户上,这看起来很奇怪。

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

反射探针的工作原理

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

天空盒立方体贴图的内部表面(正面已删除)
天空盒立方体贴图的内部表面(正面已删除)

对于显示反射的对象,其着色器在 GPU 上运行的程序。更多信息
请参阅术语表
必须有权访问表示立方体贴图的图像。对象表面的每个点都可以在表面所面向的方向(即表面法线向量的方向)上“看到”一小块立方体贴图。着色器此时使用立方体贴图的颜色来计算对象表面的颜色;镜面材料可能会准确反射颜色,而闪亮的汽车可能会褪色并使其有些着色。

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

除了视点之外,探针还具有由场景中不可见的框形状定义的效果区域。通过探针区域内的反射对象具有由该探针临时提供的反射立方体贴图。当对象从一个区域移动到另一个区域时,立方体贴图也会相应地发生变化。

默认反射探针

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

隐藏反射探针中的数据是固定的。例如,如果在“照明”窗口中更改天空盒材质,则探针中的数据不会更改,因此对象上的环境照明保持不变。

要停止使用隐藏的反射探针,请在 光照(Lighting) 窗口中选择 生成光照(Generate Lighting)清除烘焙数据(Clear Baked Data)。然后,Unity 创建并使用新的默认烘焙反射探针(环境反射探针)。此反射探针是项目窗口一个窗口,显示您的内容Assets文件夹(项目选项卡)更多信息
术语表中查看
,并在选择“生成照明”时更新。

其他资源

思考
反射探头的类型