Unity:如何在同一UI画布内为不同对象应用不同后处理效果?
UI元素分层实现bloom效果的解决办法
办法一:相机分层渲染调整
- 把渲染UI层的主相机渲染顺序设低,bloom层相机的渲染顺序设高,保证带bloom的边框后画上去。
- bloom层相机只开启bloom层的剔除遮罩,对应的Volume仅给这个层启用bloom效果。
- 将红色外边框放在bloom层,文本和内部方块保留在UI层。
- 关键设置:UI主相机的清除标志改成
Don't Clear,避免覆盖bloom层的渲染结果。
办法二:材质标记控制后处理范围
- 给红色外边框制作单独的UI材质,在Shader中添加自定义标签,比如
Tags { "PostProcess"="BloomTarget" }。 - 调整bloom的Volume设置,让它仅对带有该标签的材质生效(需在Volume后处理设置中选择按Shader标签过滤)。
- 文本和内部方块使用默认UI材质,不带该标签,自然不会被bloom效果影响。
办法三:Render Texture中转方案
- 创建一个Render Texture,将bloom层相机的渲染目标设置为该纹理。
- 在UI画布中添加Raw Image组件,把这个Render Texture赋值给它,调整Raw Image的位置和大小与红色外边框完全重合,并放在UI层级最上层。
- 主相机正常渲染文本和内部方块,bloom层相机仅渲染红色外边框,最终通过Raw Image显示带bloom效果的边框。
内容的提问来源于stack exchange,提问作者Kynson
相关产品推荐
相关产品推荐

