之前写每个物体的材质球控制屏幕bloom效果,由于性能问题,换了另外一种实现方式

部分泛光的功能,这个是之前写的,不过性能不行,如果简单的游戏还可以,如果大场景的话就不行了

原理分析

我这边就研究崩坏3编译过的源码,下面是分析崩坏bloom效果实现

1.我看崩坏编译过的源码基本所有shader都会有一个_BloomFactor,这个用于控制泛光强度,用于存储输入屏幕那张图的alpha通道上

2.泛光强弱图:通过source的rendertexture的alpha乘以source的RGB,就得到一张泛光强弱图

3.泛光图:根据泛光的亮度阈值来获取一张那些地方需要发光的图

4.泛光图模糊:按照泛光图4个大小依次递半的(1/4,1/8,1/16,1/32)尺寸的rendertexture来进行高斯模糊,得到的四张图进行叠加

5.最终效果图:原图+泛光模糊图

PS:最近遇到一个问题就是点光源(顶点模式除外),影响rendertexture的alpha通道(会使alpha通道变大)

之前的方案是alpha值越大就越亮,加了点光源,本来暗的东西都变亮,所以为了解决点光源问题,我们就反过来写,alpha值为1就没有bloom效果,就是alpha越小就越亮,mask图就是越黑越亮

让我突然想起之前抓取崩坏的渲染,一张白色为主的mask图,才明白人家做成这样是有他道理,我自己搞从黑色开始的mask图

最终方案:存储的alpha值越小,bloom效果越强烈

实现难点

2,3,4都比较容易,百度一下就有

关于存储alpha

1.对于Geometry渲染队列的直接在shader输入颜色的alpha直接修改就可以

standard存储alpha值

surface shader存储alpha值

2.对于半透的渲染物体来说(特效)因为输出本来就带alpha值,这个需要我们加一个pass来存储alpha值

第一个pass需要加ColorMask RGB(避免影响alpha存储)

第二个pass需要加ColorMask A(避免影响第一个pass输出颜色)

粒子shader alpha通道存储

(对于粒子系统,如果不用bloom效果就不要用改过可以存储alpha通道的shader,直接用原来没加alpha存储的版本

因为粒子系统,有两个pass的情况,相同材质球不能合并drawcall)

因为我看崩坏那些特效源码都是用两个pass,所以反推是这样用的,在实际项目中确实有效,不过多了pass,不过比之前那个方案渲染多一份来得快得多

建议:最好加个保底的bloom基础上再加单独这个bloom,效果会更好,这样子需要发光的粒子会更少

下面是输出屏幕的图source的alpha通道

下面是旧版的图,我就懒得更新,正常颜色应该和下图相反

这图可以在framedebug里面看到,选中alpha通道就可以

下面是优化过的bloom和扭曲效果

下面是提取出来的demo

链接:https://pan.baidu.com/s/1q4OcQlAFF5Zjm480pwdpPw 
提取码:zahv

Unity 关于仿崩坏3部分Bloom(部分泛光)效果实现原理(附源码)相关推荐

  1. android实现阅读器底部菜单,android仿新闻阅读器菜单弹出效果实例(附源码DEMO下载)...

    开发中碰到问题之后实现的,觉得可能有的开发者用的到或则希望独立成一个小功能DEMO,所以就放出来这么一个DEMO. 原本觉得是最后完成后发网站客户端的,可是这样体现不出一个功能一个功能的分析实现效果, ...

  2. android+仿iphone,Android编程实现仿iphone抖动效果的方法(附源码)

    Android编程实现仿iphone抖动效果的方法(附源码) 时间:2021-05-20 本文实例讲述了Android编程实现仿iphone抖动效果的方法.分享给大家供大家参考,具体如下: 布局文件: ...

  3. Android App开发实战项目之仿喜马拉雅的听说书App实现(超详细 附源码和演示视频)

    需要全部源码请点赞关注收藏后评论区留下QQ~~~ 一.需求分析 用户不仅能在平台上收听音频,还能成为内容创作者,总之长音频分享平台需要满足两种角色的使用:一种是作为内容创作者发布自己的音频,另一种是作 ...

  4. 帝国CMS7.5仿《问答库》题库问答学习平台网站源码 带手机版

    简介: 帝国CMS7.5仿<问答库>题库问答学习平台网站源码 带手机版 开发环境:帝国cms 7.5 安装环境:php+mysql 学历考试等各类题库以及一些常见的普通练习的题目题库供大家 ...

  5. (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航...

    (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航 首页支持微信登陆,只有第8套模板支持(endv模板),后 ...

  6. 一款仿网易云音乐Java开源系统(附源码)

    嗨喽!Java后端编程的各位小伙伴们,由于公众号做了乱序推送改版,为了保证公众号的推文能够第一时间及时送达到大家手上,大家记得将公众号 加星标置顶 ,公众号每天会送上Java技术干货推文 ! 上篇推文 ...

  7. 仿翁天信网站旅行足迹地图HTML单页源码

    介绍: 本文是仿翁天信网站旅行足迹地图HTML单页源码 index.html第85行修改去过的地方,源码内有标注. 网盘下载地址: http://kekewl.net/HxDxt18Hyaf 图片:

  8. 仿酷狗音乐播放器开发日志二十二 动态调色板控件第二版(性能大幅提升附源码)...

    转载请说明原出处,谢谢~~ 在上次写的博客<仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)>发布后,我在群里和网友讨论这个控件的性能和优 缺点,发现了他很多不足,还有很多提升 ...

  9. 【附源码】计算机毕业设计Python安卓仿驾考宝典系统APPye8qu(源码+程序+LW+调试部署)

    [附源码]计算机毕业设计Python安卓仿驾考宝典系统APPye8qu(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Python3 ...

最新文章

  1. 框架页面jquery装载
  2. win10 中redis client提示 ERR Client sent AUTH,but no password is set
  3. 最大流增广路(KM算法) HDOJ 1853 Cyclic Tour
  4. CSS布局教程:用DIV CSS实现国内经典式三行两列布局-CSS布局实例
  5. 【转】C#命名空间大全详细教程
  6. 基于阿里云物联网平台,我们这样实现简易出入监控
  7. html绘制圆形和弧形的代码,html5 canvas用来绘制弧形的代码实现
  8. python入门教程 非常详细-Python编程入门教程:从入门到高级,非常详细
  9. struts2的知识
  10. android获取手机联系人信息(电话,邮箱,姓名,头像)
  11. Solaris 11中的变化
  12. dts双轨制会员积分系统,直销系统,分销系统
  13. X5WebView使用
  14. 三节串联锂电池充电管理芯片,IC电路图,BOM表
  15. 嵌入式linux触摸屏校正命令,[转]基于嵌入式Linux的通用触摸屏校准程序
  16. 支付宝红包机器人不加好友解决思路
  17. 输入10个互不相同的数字并分成5对,问有多少种分法。
  18. CSS | 盒模型的宽度计算规则
  19. python 拆分excel工作表_Python几行代码轻松拆分表格
  20. Cadence Allegro PCB添加泪滴的方法

热门文章

  1. cmake(二十七)Cmake中target再理解
  2. 512mb内存linux,小谈Windows Phone的“512MB 内存够用理论”
  3. 现在有好多培训机构都说承诺包就业,是真的还是假的?
  4. 计算机第一次开机进行重要设置很慢,为何开机加载程序很慢!
  5. 华为哪些手机最先升级鸿蒙,哪些旧型号能升级鸿蒙系统 华为手机最低Mate 9系列起跳...
  6. cru测试中的risc-v基础指令
  7. Go :生成索引和切片边界检查的测试(附完整源码)
  8. 2010 27寸 imac 升级固态_2020年27英寸iMac的SSD模块已经被焊死 无法自行升级
  9. 软判决与硬判决的区别
  10. 51单片机入学第四课——使用在线仿真(以流水灯程序为模板)