【URP趟坑】Unity在URP中使用RenderTexture在UI中渲染带透明相机背景的PostProcessing场景

这篇具有很好参考价值的文章主要介绍了【URP趟坑】Unity在URP中使用RenderTexture在UI中渲染带透明相机背景的PostProcessing场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近有个需求,需要使用Unity的URP通用管线来开发项目,其中有个场景是需要在UI中显示动态的角色模型,而且背景是透明的。初闻这个需求感觉挺简单的,普通管线下使用Rendertexture输出相机视角的内容输入到RawImage中可以很轻松解决,不过在URP中Unity官方为了体现出可编程管线(SRP)的自由性,RenderTexture渲染PostProcessing的Alpha值全部都默认返回1,简单解释就是PostProcessing在Rendertexture中显示不再有半透明通道。


一、实现思路

在查询大量资料后也找到几种解决方案,虽然亲测后全都无用,不过也给我提供了一个思路:虽然PostProcessing在Rendertexture中不返回Alpha通道,不过只要不显示PostProcessing的相机就可以正常为Rendertexture输出Alpha,那就用两个相机,一个相机开启PostProcessing渲染,一个相机不开启PostProcessing,使用Shader将两个相机输出的RenderTexture的像素相乘,即可过滤带PostProcessing的Rendertexture中的背景,最后讲输出的图片显示在UI上即可。

二、开发环境

Unity2021.3.13f1c1
URP12.1.7
Amplify Shader Editor v1.9.1.5

三、使用步骤

1.创建像素融合的Shader

创建Shder我选择的是ASE第三方Shader可视化编辑器(操作简单适合Shader新手):

  1. 因为我是要显示在UI上,所以就创建一个UI默认shader:Create/Amplify Shader/UI/Default;
  2. 原理比较简单,这里就不作赘述,见下图:urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

2.创建渲染相机

  • 创建基础相机,这个相机不渲染后处理效果,Background Type设置为Solid Color,颜色Alpha设置为0urp rendertexture,Unity SRP渲染管线成长之路,unity,ui
  • 创建后处理相机,Background Type设置为Solid Color,颜色Alpha设置为0urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

3.创建Rendertexture

分别为上一步的两个相机创建一个Rendertexture来输出相机渲染的内容,拖到相机中OutputTexture中,两个Rendertexture的Colorfomat都改为R16G16B16A16_SFLOAT。

4.以材质方式渲染Rawimage

  • 创建融合图片的材质球urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

  • 讲材质球拖到RawImage上
    urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

5.效果展示(UI背景是黄色)

  • 【只显示基本的Rendertexture,透明背景正常,但是没有PostProcessing效果】

urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

  • 【只显示PostProcessing的Rendertexture,PostProcessing效果正常,但是透明背景失效】urp rendertexture,Unity SRP渲染管线成长之路,unity,ui
  • 【融合两个Rendertexture的最终效果】urp rendertexture,Unity SRP渲染管线成长之路,unity,ui

总结

URP最为Unity中集表现效果和性能的渲染管线,现在使用场景越来越多,但是暴露的坑也越来越多,据Unity官方消息称,会在后续版本中将URP作为默认渲染管线,我们和Unity也会在开发道路上慢慢磨合。文章来源地址https://www.toymoban.com/news/detail-761208.html

到了这里,关于【URP趟坑】Unity在URP中使用RenderTexture在UI中渲染带透明相机背景的PostProcessing场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity URP相机使用简介

    使用URP后,相机组件的面板发生了变化,如下图。接下来简单的介绍下URP下的相机使用 RenderType 有2个选项,Base和Overlay。如下图 Overlay的相机无法单独显示,可以看到Game窗口一片黑 Base类型的相机可以单独显示,把RenderType模式修改为Base,可以看到Game窗口显示出来了 前面说了

    2024年02月10日
    浏览(50)
  • Unity-3DRPG游戏 学习笔记(1)--使用URP渲染管线

    教程地址: Unity2020 3DRPG游戏开发教程|Core核心功能01:Create Project 创建项目导入素材|Unity中文课堂_哔哩哔哩_bilibili 创建URP通用渲染管线(2021版本) 1. 打开:Windows--Package Manager--左上角下拉选择Unity Registry--搜索Universal RP--Install 2. Project窗口--Assets--右键Create--Rendering--URP Asstes

    2024年02月11日
    浏览(43)
  • 如何通过代码在Unity设置URP通用渲染管线资源的画质选项、后处理效果、渲染分辨率、抗锯齿效果、Renderer Features等效果并制作一个可以设置它们的UI

       Hello喔 这里是没有鱼的猫先生,本期文章的主题佬们有看到标题了 QWQ    当使用Urp管道项目时,我们需要在一个Urp通用管线资源的项目中修改它的各种效果以玩家自己设置不同的画质需求,那下面这个通用脚本便诞生了,它也许并不适用于所有的场景,但是相信应用过它

    2024年02月09日
    浏览(41)
  • Unity实战(10):如何将某个相机的画面做成贴图(RenderTexture)

    目录 前言 一、创建物体、材质与相机 二、将RenderTexture赋给材质 2.1 修改rt1的一些属性 2.2 将rtMat1材质的shader改为Unlit/Texture,并将rt1赋给这个材质 三、效果呈现 本文记录如何将某个相机的画面做成贴图,即游戏某些场景中小地图做法或虚拟监控效果,使用到的是RenderTexture

    2024年02月09日
    浏览(40)
  • 【Unity每日一记】(Canvas的相机渲染模式) 如何将模型显示在UI之前

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年04月09日
    浏览(46)
  • [Unity] 让LineRenderer显示在UI层上方(RenderTexture 、RawImage)

            网易Minigame2022中遇到的问题,项目中有设计点需要使用画笔的功能,已经做好了根据鼠标位置生成LineRenderer线段功能,但出现了一个问题:画板的界面是在Canvas UI层,但是LineRenderer的位置在世界空间中。按照正常显示顺序,UI层在场景渲染之后再渲染,LineRenderer会被

    2024年02月16日
    浏览(42)
  • unity urp 实现丝绸渲染

    首先看一下实际上真实的效果 再来一张 这是专门去找的。 可以看到丝绸渲染使用了各向异性的GGX去实现,有点仿头发的感觉,接下来看一下怎么实现的。 首先,准备实现双向反射率分布函数(BRDF)的DVF项。 D项使用UE里面的各项异性GGX: V项使用配合D项的Vis_SmithJointAniso F项

    2024年02月10日
    浏览(39)
  • Unity升级到URP渲染管线,

    首先 需要安装URP的包 安装后 然后打开ProjectSettings 替换 上一步创建 URP的配置文件 这个时候有些材质就会变成洋红色 选择RenderPipelineConverter 等待转换完成即可,

    2024年02月15日
    浏览(47)
  • Unity URP渲染管线与内置渲染管线的性能差别

    首先,我们来了解一下Unity的内置渲染管线。内置渲染管线是Unity较早版本中使用的默认渲染管线,它使用的是传统的图形渲染技术。内置渲染管线提供了一系列的渲染功能,如阴影、反射、抗锯齿等。但是,由于其较为庞大且复杂的设计,它的性能相对较低。在高质量图形效

    2024年02月08日
    浏览(38)
  • Unity内置渲染管线升级URP教程

    URP全称为Universal Render Pipeline(通用渲染管线),可以提供更加灵活的渲染方案,通过添加Render Feature实现各种渲染效果。并且可以针对移动平台进行专门的优化,同时还提供了SRPBatcher提高渲染效率。Unity的一些工具,比如ShaderGraph,也是必须在URP管线下才可以使用,可以说许多方

    2024年02月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包