

如何使用MRT渲染UI?(UGUI Element)
,2 年前
发布于技术交流
1
问题描述
希望实现这么一个效果:在URP管线内,使用UICamera单独渲染UI,这个UICamera需要同时渲染两个RenderTexture:一个输出到屏幕和屏幕内的RT混合,另一个保存到脚本内的Static RenderTexture(渲染对象只包含UI元素,不包含Mesh)。
现在有已经写好的功能正常的MRT UI Shader,但在URP管线内用Command Buffer SetRenderTarget并不能起到设置多渲染目标的作用,输出还是只有RT0和Depth。
有没有什么办法能做到这件事情?(考虑性能原因不希望使用Graphics.Blit去做拷贝,而是希望在Shader绘制过程中就把这部分完成)
现在在考虑单独加个URP RenderPass单独画UI到两个RT上,或者把UI变成Mesh, 用CommandBuffer.DrawMesh绘制。 希望大家给些有用的建议或者思路。
Unity版本 2020.2.3f1
平台
相关代码
cmd.SetRenderTarget(rtGBuffersID, depthTexture.depthBuffer); render_cam.AddCommandBuffer(CameraEvent.BeforeFinalPass, cmd); Graphics.ExecuteCommandBuffer(cmd);
328 次浏览
评论 0
2个回答
已解决
0
RenderPipelineManager.endCameraRendering += CamTextureSet; 在渲染完成后会调相机数据,把相机数据渲染给RenderTexture
,2 年前回答
评论 4
0
Good Question
,2 年前回答
评论 0

问
AI
全新AI功能上线
1. 基于Unity微调:专为Unity优化,提供精准高效的支持。
2. 深度集成:内置于团结引擎,随时查阅与学习。
3. 多功能支持:全面解决技术问题与学习需求。

问
AI