Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明

项目需要在UI界面显示角色模型,使用一个模型相机投射到RT上然后放在Raw Image上,现在这个模型相机需要开启后处理Post Processing。只针对模型添加了后处理效果,问题是开启后,Raw Image背景变了,把UI背景图遮住了。

Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明_第1张图片

在网上找的一篇帖子,Unity2020.3版本的Unity测试有效。

请教一个模型相机开启Post Processing后处理的问题 -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技 (uwa4d.com)

以下对第一个回答进行详细的步骤解释:

  1. 打开Frame Dubug窗口
  2. 运行Unity后打开UI界面
  3. 点击Frame Debug左上角的Enable
  4. 选择渲染UI模型的Camera
  5. 点击右侧的UberPost.Shader
  6. Project会跳出Shader文件所在位置,也可以省略以上步骤,直接在Project视图搜索UberPost.Shader

Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明_第2张图片

Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明_第3张图片

打开后,拉到最下面,找到下面的代码注释掉

return half4(color, 1.0);

新增一行获取原本uv的alpha值的代码

return half4(color, SAMPLE_TEXTURE2D_X(_SourceTex, sampler_LinearClamp, uv).a);

Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明_第4张图片

保存后,重新运行Unity就可以

Unity之URP开启PostProcessing后使用RenderTexture渲染模型背景为不透明_第5张图片

可以显示UI背景:粉色

你可能感兴趣的:(Unity,unity,ui,游戏引擎)