Unity3D Bloom 替换渲染 后处理

Bloom 替换渲染 后处理


请结合范例工程阅读: GITHUB 地址

大多数Bloom效果都是通过色差对比的方式取得目标贴图 在大部分美术需求不高的项目情况下很难有较好的表现 查阅网上资料自己实现了一遍替换渲染Bloom

有使用到额外的屏幕特效控制脚本/基类, 后处理模糊与叠加

效果图

原图
渲染前
替换渲染图

通过Replacement Shader渲染出的Bloom效果图最终效果图渲染后

实现思路

渲染一张用于Bloom使用的Texture,模糊后与原图叠加

目标Texture渲染
Camera.RenderWithShader(Shader shader,string replacementTag,调用后目标摄像机会进行一次替换渲染
渲染提供的Shader为多个SubShader的集合,渲染时所有拥有相同Tag的材质Shader都会被替换成目标Shader内的SubShader

Shader Replacement
示例工程使用的replacementTag为 RenderType
当前里提供了4种Bloom效果
RenderType为 BloomColor/BloomTexture/BloomDissolveLine/BloomParticlesAdditive
后续也可以通过添加编写相同RenderType Shader的方式增加新的Bloom效果
其次通过将Opaque队列的目标渲染为纯黑 即可产生有遮罩效果的Bloom

将生成图片经过模糊处理并叠加即可得到最终效果图

注意事项

由于该实现方案使用的是二次渲染与多次迭代高斯模糊,通过或者更改模糊处理方案,或者进行Batching/Instancing优化会有较大的性能提升。

该文章只能提供思路,个人学疏才浅,无法保证是否会产生性能问题.                           
                                                                                         --StriteR 2019/12/8
©️2020 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值