首页 > 解决方案 > Unity - 后期处理前景,但保持背景不变

问题描述

我正在使用 Unity 2019.3.5f1,并且正在使用通用渲染管道 (URP)。

我正在尝试仅将 URP 中的后处理用于前景(在我的情况下是玩家),并且我希望保留背景(在我的情况下,它只是一个带有纹理的四边形),原样。

我曾尝试使用相机堆栈,但它对我不起作用,因为根据文档,叠加相机不能具有后期处理效果。

我能想出的唯一解决方案是创建某种自定义渲染:

  1. 将背景渲染到缓冲区 A。
  2. 将前景渲染到缓冲区 B,并保存深度。
  3. 使用既获取纹理又获取深度纹理的着色器将两者结合起来,并根据深度获取缓冲区 A 或缓冲区 B。

我认为这个问题是我不能将它与 Unity 的后处理一起使用。

知道我能做什么吗?

编辑

我在 Unity 中尝试了另一件似乎不起作用的事情(可能是一个错误):

  1. 我创建了 3 个摄像头:前景摄像头、深度摄像头(仅渲染前景)和背景摄像头。
  2. 我设置了深度相机,以便它可以渲染到渲染纹理,实际上现在我有了一个具有我需要的适当深度的渲染纹理。

现在,从这里一切都出错了,使用 Unity 新的后期处理(内置)时似乎发生了奇怪的事情:

  1. Foreground Camera 设置为 Tag=MainCamera,当我启用Post Processing并添加效果时,我们确实可以看到它。(如预期)
  2. 背景相机本质上是前景相机的副本,但使用 Tag=Untagged,我使用相同的选项(启用 Post)。

现在,预期的事情是我们看到背景相机具有类似前景的效果,但没有:

  1. 在我的背景层上使用Volume Mask时,后处理只是关闭,无论如何都没有效果(我已经设置了我的背景Background层)。
  2. 当我禁用前景摄像头(或删除其标签)并将背景摄像头设置为 MainCamera 时,仍然没有任何变化,帖子仍然无法工作。
  3. 当我设置Volume MaskDefault(或所有内容)时,结果仅显示在场景视图中,我尝试将相机渲染为RenderTexture但仍然,您清楚地看到没有应用效果!

标签: unity3d

解决方案


推荐阅读