unity3d - Unity - 后期处理前景,但保持背景不变
问题描述
我正在使用 Unity 2019.3.5f1,并且正在使用通用渲染管道 (URP)。
我正在尝试仅将 URP 中的后处理用于前景(在我的情况下是玩家),并且我希望保留背景(在我的情况下,它只是一个带有纹理的四边形),原样。
我曾尝试使用相机堆栈,但它对我不起作用,因为根据文档,叠加相机不能具有后期处理效果。
我能想出的唯一解决方案是创建某种自定义渲染:
- 将背景渲染到缓冲区 A。
- 将前景渲染到缓冲区 B,并保存深度。
- 使用既获取纹理又获取深度纹理的着色器将两者结合起来,并根据深度获取缓冲区 A 或缓冲区 B。
我认为这个问题是我不能将它与 Unity 的后处理一起使用。
知道我能做什么吗?
编辑:
我在 Unity 中尝试了另一件似乎不起作用的事情(可能是一个错误):
- 我创建了 3 个摄像头:前景摄像头、深度摄像头(仅渲染前景)和背景摄像头。
- 我设置了深度相机,以便它可以渲染到渲染纹理,实际上现在我有了一个具有我需要的适当深度的渲染纹理。
现在,从这里一切都出错了,使用 Unity 新的后期处理(内置)时似乎发生了奇怪的事情:
- Foreground Camera 设置为 Tag=MainCamera,当我启用
Post Processing
并添加效果时,我们确实可以看到它。(如预期) - 背景相机本质上是前景相机的副本,但使用 Tag=Untagged,我使用相同的选项(启用 Post)。
现在,预期的事情是我们看到背景相机具有类似前景的效果,但没有:
- 在我的背景层上使用
Volume Mask
时,后处理只是关闭,无论如何都没有效果(我已经设置了我的背景Background
层)。 - 当我禁用前景摄像头(或删除其标签)并将背景摄像头设置为 MainCamera 时,仍然没有任何变化,帖子仍然无法工作。
- 当我设置
Volume Mask
为Default
(或所有内容)时,结果仅显示在场景视图中,我尝试将相机渲染为RenderTexture
但仍然,您清楚地看到没有应用效果!
解决方案
推荐阅读
- airflow - 气流长时间运行的每小时 DAG 缺少几个小时
- python-3.x - 在 txt 文件中查找唯一单词时出错
- functional-programming - 标准 ML:迭代列表时检查条件
- android - 我可以在多个线程中从 kotlin 集合中拆分 mapIndexed 工作吗?
- ruby-on-rails - 验证错误 * 签入时间必须是有效的当前或未来时间 - ruby on rails
- linux - 将 csv 数据文件导入 DB2 中的 Linux shell 脚本
- java - 不是由内存泄漏引起的痛苦缓慢的 JVM?
- jenkins - 如何将命令的输出放入 Jenkinsfile 中的环境变量中?
- python - 在行(字符串)中找到子字符串后打印下一行,直到满足条件
- r - 使用 sf::st_cast 时所有数据都会丢失