Table of Contents

局部反射

中级 美术 程序员

Warning

目前,局部反射与移动平台不兼容,会导致崩溃。

Note

与其他基于深度的后处理效果一样,启用局部反射会使 MSAA(多采样抗锯齿)失效。

启用**局部反射(Local reflections)**后,场景会反射到光泽材质上。

局部反射

局部反射能显著提升场景的真实感。当它们把亮斑反射到其他表面上时效果最为明显。在对比度高的黑暗场景中,以及存在大量反光表面和高光的环境下,该效果尤为突出。

夜景反射

局部反射的适用场景

局部反射是一种屏幕空间效果,这意味着它只能反射已经出现在屏幕上的物体;它不会反射屏幕外的物体或被其他物体遮挡的物体。简单来说,如果摄像机在那一刻看不见某个物体,那么该物体就不会被反射。

这意味着局部反射在走廊、房间等封闭区域表现良好,但在开阔空间中效果较差——在开阔空间里你往往期望反射出更多的世界内容。它在凹凸不平的表面上效果也最好,因为这类表面能隐藏反射中的瑕疵;而在非常光滑、类似镜面的表面上效果较差。例如在镜子中,缺失的反射会很明显。

算法

Stride 通过四个通道处理局部反射:

  1. raycast 通道在深度缓冲区上执行屏幕空间光线追踪,寻找交点。

  2. resolve 通道解析光线并计算反射颜色。

  3. temporal 通道使用历史缓冲区在当前帧与上一帧之间不断进行模糊混合。这会减少反射中的噪点,但会产生有时较为明显的动态"抖动"效果。你可以调整或禁用这一步,以获得想要的效果。

  4. combine 通道将效果结果与渲染图像混合。

启用局部反射

要使用局部反射,请在图形合成器中启用该效果。

  1. 在 Asset View(默认位于底部窗格)中,双击 Graphics Compositor 资产。

    Graphics Compositor 资产

    图形合成器编辑器随之打开。

    Graphics Compositor 编辑器

  2. 选择 post-processing effects 节点。

    Tip

    如果没有后处理效果节点,右键单击并选择 Create > post-processing effects 来创建一个。在新的 forward renderer 节点上,点击 PostEffects 插槽并拖动连线到 post-processing effects 节点。

    连接节点

  3. 在 Property Grid(默认位于右侧)中,启用 Local reflections。

    启用局部反射

启用局部反射后,场景会反射到光泽材质上。 你可以使用 gloss threshold(见下文)来设置材质需要达到多高的光泽度才会反射场景。

属性

局部反射的属性会影响场景中的所有反射。

Raycast 属性

Raycast 属性

BRDF bias

反射的扩散程度。较高的值能提供更细腻、更接近镜面的反射。此设置不影响性能。默认值为 0.82。

BRDF: 0.6 BRDF: 0.8 BRDF: 1.0
BRDF: 0.6 BRDF: 0.8 BRDF: 1.0

Depth resolution

降低深度缓冲区的分辨率以优化 raycast 性能。full 质量更好,half 性能更好。默认为 half。

Gloss threshold

材质要反射场景所需的光泽度。例如,若该值设为 0.4,则只有 gloss map 值为 0.4 或更高的材质才会反射场景。默认值为 0.55。

Note

如果在材质的 micro surface 属性中勾选了 Invert 复选框,则情况相反。例如,若反射的 gloss 值设为 0.4,则只有 gloss map 值低于 0.4 的材质才会反射场景。

有关光泽度的更多信息,请参阅材质 — 几何属性。

Max steps

每个像素允许的最大 raycast 步数。较高的值效果更好,但性能更差。默认值为 60。

Note

这是控制性能最重要的属性。

Resolution

raycast 的分辨率。有两个选项:full 和 half。full 质量更好,half 性能更好。默认值为 half。

Ray start bias

raycast 起点的偏移量。较低的值能使反射位置更准确,但会产生更多伪影。建议使用 0.03 或更低的值。默认值为 0.01。

Start bias: 0.01 Start bias: 0.1
Start bias: 0.03 Start bias: 0.1
反射与箱子之间的间隙较大(更准确) 反射与箱子之间的间隙较小(欠准确)

Resolve 属性

Resolve 属性

Resolution

使用 raycast 结果计算反射颜色。有两个选项:full 和 half。full 效果最好,half 性能更好。默认值为 full。

Samples

用于解析反射颜色的光线数量。较高的值噪点更少,但性能更差。默认值为 4。

Reduce highlights

降低反射中特别明亮区域的亮度。此设置不影响性能。

Reduce highlights:开 Reduce highlights:关
Edge fade factor: 0.5 Edge fade factor: 0

Edge fade factor

反射远端边缘开始淡出的位置。此设置不影响性能。默认值为 0.1。

Edge fade factor: 0 Edge fade factor: 0.5
Edge fade factor: 0 Edge fade factor: 0.5

Use color buffer mips

降低输入颜色缓冲区的分辨率,并在解析反射颜色时使用模糊后的 Mipmap。通过模糊粗糙(低光泽)材质中反射的远距离部分,可以产生更真实的结果。它也能提升大多数平台上的性能。不过它会占用更多内存,因此你可能需要在(例如)移动平台上禁用它。

Temporal 属性

Temporal 属性

Temporal effect

启用 temporal 通道。这可以减少噪点,但会产生有时较为明显的动态"抖动"效果。temporal 效果默认启用。

Temporal effect:开 Temporal effect:关
Temporal effect enabled Temporal effect disabled
Note

如果禁用 temporal 效果,其他 temporal 属性将不起作用。

Response

反射在当前帧的反射与历史缓冲区之间混合的速度。较低的值能更快产生反射,但抖动更多。注意下面反射中的抖动:

抖动

如果游戏中的摄像机移动不多,建议使用接近 1 的值。默认值为 0.9。

Scale

temporal 效果的强度。较低的值能更快产生反射,但噪点更多。默认值为 4。

另请参阅