反射探头

介绍

如中所述 空间材料 ,对象可以显示反射光或漫反射光。反射探头用作受影响区域内物体的反射和环境光源。

这种类型的探测器捕捉周围环境(类似于360度的图像),并存储其版本随着 blur . 这用于模拟材料的粗糙度以及环境照明。

虽然这些探针是存储反射的有效方法,但它们有一些缺点:

  • 它们渲染效率高,但计算成本高。这将导致默认行为,即它们只在场景加载时捕获。

  • 它们最适用于矩形房间或地方,否则所示的反射就不那么准确(尤其是粗糙度为0时)。

设置

创建一个ReflectionProbe节点,并将其环绕在要进行反射的区域:

../../_images/refprobe_setup.png

这将导致立即的局部反射。如果使用的是天空纹理,则默认情况下会将反射与它混合。

默认情况下,在内部,反射可能看起来不太一致。在这种情况下,请确保勾选 “方框正确” 财产。

../../_images/refprobe_box_property.png

此设置将无限SkyBox的反射更改为探头大小的反射框:

../../_images/refprobe_boxcorrect.png

调整盒壁可能有助于改善反射一点,但它总是在盒形的房间看起来最好。

探测器从小控件的中心捕捉周围环境。如果由于某种原因,房间形状或内容遮挡了中心,则可以通过移动中心的手柄将其移动到空位置:

../../_images/refprobe_center_gizmo.png

默认情况下,渲染探测时禁用阴影映射(仅在探测内的渲染图像中,而不是实际场景中)。这是一种节省性能和内存的简单方法。如果要在探测器中使用阴影,可以使用 启用阴影 设置:

../../_images/refprobe_shadows.png

最后,请记住,您可能不希望反射探测渲染某些对象。一个典型的场景是房间里的敌人会四处移动。要防止在反射中渲染对象,请使用 剔除遮罩 设置:

../../_images/refprobe_cullmask.png

内部与外部

如果在内部设置中使用反射探头,建议 内部 属性已启用。这将阻止探测器渲染天空,并允许自定义环境照明设置。

../../_images/refprobe_ambient.png

当探针设置为 内部 ,可为每个探头指定自定义恒定环境照明。只需选择颜色和能量。

或者,您可以通过调整 环境贡献 属性(0.0表示纯环境色,1.0表示纯漫反射捕获)。

混合

可以使用多个反射探头,Godot将使用智能算法在它们重叠的地方进行混合:

../../_images/refprobe_blending.png

正如您所看到的,这种混合永远都不是完美的(毕竟,这些都是框反射,而不是真实的反射),但只有在使用完全镜像反射时,这些工件才可见。通常情况下,场景具有正常的映射和不同的粗糙度级别,这可以隐藏这一点。

或者,反射探头与屏幕空间反射很好地混合在一起,以解决这些问题。结合它们可以使局部反射看起来更加真实,而探针仅在未找到屏幕空间信息时用作回退:

../../_images/refprobe_ssr.png

最后,建议将内部和外部探测器混合在一起,以实现内部和外部的结合。在门附近,探针可以标记为 外部 (这样它会得到天空的反射)而在内部,它可以是内部的。

反射图谱

在当前的渲染器实现中,所有探测器的大小都相同,并且都适合反射图集。探头的尺寸和数量可在项目设置->质量->反射中自定义。

../../_images/refprobe_atlas.png