Alpha 输出
为了最大限度提高性能、降低带宽使用量,默认情况下 HDRP 以 R11G11B10 格式渲染图像帧。但是,此格式不包括 Alpha 通道;希望在其他图像上合成 HDRP 输出的应用程序可能需要使用该通道。
要将 HDRP 配置为输出 Alpha 通道,用户应首先在 HDRP 资源的渲染部分中选择 R16G16B16A16 Color Buffer Format(位于 [ Edit > Project Settings ] 菜单中)。但请注意,启用此选项将产生性能开销。
此外,启用后期处理时,还应将后期处理操作的 Buffer Format 设置为 R16G16B16A16,以便在 Alpha 通道中应用后期处理操作。可从 HDRP 资源的后期处理部分中进行此项选择。如果后期处理格式设置为 R11G11B10,则 HDRP 将输出没有任何后期处理的 Alpha 通道副本。
下表总结了与输出帧的 Alpha 通道有关的 HDRP 行为。
渲染缓冲区格式 | 后期处理缓冲区格式 | Alpha 输出 |
---|---|---|
R11G11B10 | R11G11B10 | 无 Alpha 输出 |
R16G16B16A16 | R11G11B10 | 没有后期处理的 Alpha 通道 (AlphaCopy) |
R16G16B16A16 | R16G16B16A16 | 有后期处理的 Alpha 通道 |
DoF 和 Alpha 输出
可能需要对 Alpha 通道进行后期处理的另一种情况是使用景深的场景。在这种情况下,如果不处理 Alpha,则合成操作将使本应模糊显示的对象出现清晰的界限。下图更好地说明了这一点:
在纯蓝色背景上合成的失焦球体,渲染和后期处理均使用 R16G16B16A16 缓冲区格式。在这种情况下,在 Alpha 通道中应用了 DoF,从而形成了恰当的合成结果(嵌入的图像中显示了合成结果中使用的输出 Alpha)。
使用 AlphaCopy 在纯蓝色背景上合成的失焦球体。在这种情况下,没有在 Alpha 通道中应用 DoF,从而在合成球体周围产生了锐利的轮廓(嵌入的图像中显示了合成结果中使用的输出 Alpha)。
时间抗锯齿和 Alpha 输出
启用时间抗锯齿 (TAA) 时,强烈建议为 Alpha 通道启用后期处理(渲染和后期处理均使用 R16G16B16A16 格式)。如果未对 Alpha 通道进行后期处理,则 Alpha 遮罩将出现抖动,如下图所示:
使用 AlphaCopy 通过 TAA 渲染的球体,使用 Alpha 通道在纯蓝色背景上合成。TAA 无法临时稳定 Alpha 通道,从而导致最终图像抖动。
通过 TAA 渲染的球体(渲染和后期处理均使用 R16G16B16A16),使用 Alpha 通道在纯蓝色背景上合成。Alpha 通道中还应用了 TAA,从而产生稳定的合成。