位置: 编程技术 - 正文

Unity3d HDR和Bloom效果(高动态范围图像和泛光)

编辑:rootadmin
文章开始先放两组效果,文章结尾再放两组效果本文测试场景资源来自浅墨大神,shader效果为本文效果

推荐整理分享Unity3d HDR和Bloom效果(高动态范围图像和泛光),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

HDR人们有限的视觉系统,只支持.7百万的颜色,超出这个范围的颜色就不能显示了bmp或jprg每个像素就是,或位每个像素都由红绿蓝构成,如果储存为位,每个&#;的范围就在0,之间,只能表现出:1的差别,unity的shader中是0到1然而在自然中太阳光下的对比度是:1HDR(High Dynamic Range)使图像能表现出更大范围的对比,普通的范围就叫LDR(Low Dynamic Range)你在照相的时候能控制曝光时间从而控制亮度。HDR效果就是可控的曝光,色调映射 tone-mapping传统的显示设备不能完全的显示出HDR,所以我们用tone-mapping技术。tone-mapping让图像从HDR映射为LDR显示 Mapping原是摄影学中的一个术语,因为打印相片所能表现的亮度范围不足以表现现实世界中的亮度域,而如果简单的将真实世界的整个亮度域线性压缩到照片所能表现的亮度域内,则会在明暗两端同时丢失很多细节,这显然不是所希望的效果,Tone Mapping就是为了克服这一情况而存在的,既然相片所能呈现的亮度域有限则我们可以根据所拍摄场景内的整体亮度通过光圈与曝光时间的长短来控制一个合适的亮度域,这样既保证细节不丢失,也可以不使照片失真。人的&#;睛也是相同的原理,这就是为什么当我们从一个明亮的环境突然到一个黑暗的环境时,可以从什么都看不见到慢慢可以适应周围的亮度,所不同的是人&#;是通过瞳孔来调节亮度域的。一个tone-mapping的公式

Middlegrey为全屏幕或部分屏幕的中间灰度,可以控&#;屏幕的亮度AvgLogLuminance就是全屏幕或部分屏幕的亮度的对数的平均&#; AvgLogLuminance的公式Lw是亮度,n是所取亮度数这个操作能让L&#;限制位[0,1)一些tone-mapping操作用exposure或gamma作为参数控制最终的图像。tone-mapping是非线性的,他对暗色保有一定范围并且对亮色逐步接近动态这个技术产生吸引人的视觉效果,有着强烈的对比和细节。HDR Rendering In OpenGL一文中给出简要且效果不错的公式 关键代码如下_Exp,_BM为外部可控变量HDR流程如下

如果分不清HDR与加亮light,可以看看skybox,加亮light是不会加亮skybox的,HDR使颜色更鲜明,像素更清晰。Bloom泛光辉光的原因是由于人&#;晶状体的散射我们制造bloom的原理是把图像的亮的部分通过卷积模糊再叠加到原图像上,就产生了bloom效果。高斯模糊的滤波器是一种低通滤波器就是去当前像素和周围的像素按一定权重混合,产生一定模糊效果

权重分布如下,离当前像素越远,权重越低

高斯正态分布曲线

Unity3d HDR和Bloom效果(高动态范围图像和泛光)

二维公式可以通过这个公式直接算出权重Kernel即为权重Radius为所求像素与当前像素距离(半径)

针对这个公式我们可以算出3*3,5*5,7*7等滤波器,出于性能考虑,我们还是使用5*5滤波器

3*3滤波器

5*5滤波器有现成的就不算了,算这个也消耗一些性能我们直接用这个权重关键代码如下_inten为模糊程度觉得冗长麻烦也可用for循环代替。然后我们要取其中的亮色部分与原有图像混合,这一部分直接调用unity内部函数Luminance函数求出亮度,把它与模糊的图像相乘,暗色部分自然消除但如果直接相乘就会在暗色的边缘产生不自然的黑影,就是把暗色也“泛光了”,为此我们不让Luminance后的&#;为0,再加上0.1,也不影响亮度。最终与HDR结合再一起就是上图例子的最终效果最后一道工序就是放入相机中,我们建立一个c#并负责传&#;

代码如下:

Unity 的imageEffect有一个叫做BloomAndLensFlares

与本文的差别是多了色彩平衡和lens flare效果,可以试着再加上去

------- by wolf

创建一个扇形Mesh usingUnityEngine;usingSystem.Collections;/*==============================================================================*功能描述:测试Mesh创建*创建者:cjunhong*QQ:*创建日

Unity3D函数调用顺序 转载自::

C#中DateTime转化成秒 1.就是它了TimeSpan.FromTicks(newDateTime(,1,1).ToLocalTime().Ticks).TotalSeconds

标签: Unity3d HDR和Bloom效果(高动态范围图像和泛光)

本文链接地址:https://www.jiuchutong.com/biancheng/382571.html 转载请保留说明!

上一篇:unity3d接入GameCenter成就显示有问题(unity连接)

下一篇:创建一个扇形Mesh(怎么做一个扇形图)

  • 劳务报酬所得税可以退税吗
  • 工会开户所需资料怎么写
  • 甲企业持有乙企业的非上市股票2000股
  • 注册资本转出可以吗
  • 专用发票给客户的是第几联
  • 一般纳税人收入会计分录
  • 个税手续费返还属于政府补助吗
  • 亏损企业研发费加计扣除可以递延吗
  • 填开了红字信息表但未开红字发票
  • 餐饮业个体工商户怎么交税
  • 7月3日事业单位
  • 个人公寓出租给公司要交税吗?
  • 以货换货账务怎么处理
  • 房地产预售阶段增值税进项
  • 将商业承兑汇票进行贴现 符有追索权的会计分录
  • 单位代收员工退休金会计分录
  • 广告公司文化事业建设费申报表如何填写
  • 未缴纳出资的股东未到期能否追加为被执行人
  • 资产评估入账的评估报告
  • 账上少了25元怎么做账
  • 报税文件是纳税申报表吗
  • VM虚拟机怎么安装网心容器
  • mac 双系统如何调整系统空间
  • 该系统的软件
  • 关于获得政府补助的公告
  • 在window操作系统中
  • PHP:session_name()的用法_Session函数
  • 购货方收到红字发票怎么报税
  • 材料成本差异贷方表示
  • php批量更新数据库
  • vue3+ts+vite
  • 总分机构 分总机构
  • gpt 中文
  • javaweb入门简单小项目
  • Midjourney之外21款免费的AI Image画图网站集合
  • 固定资产加速折旧最新税收政策2023
  • 图像超分辨率重建数据集
  • php实现将base64格式图片保存在指定目录的方法
  • 印花税没交会怎么样
  • 小规模纳税人季度不超30万怎么做账
  • 发票升位需要什么资料
  • 股东退股怎么入账
  • 今年利润弥补以前年度亏损如何记账
  • 融资租赁的种类
  • 银行存款 会计科目
  • 员工领了备用金怎么办
  • 资产负债表第二年怎么填
  • 公司把股权转让给个人员工该怎么办
  • 外地预缴个人所得税凭证怎么弄
  • 货物什么情况下需要分批运输
  • 金税三期个税申报
  • 采用账龄分析法计提坏账准备时,收到
  • 收到银行借款并存入银行会计分录
  • 折扣方式销售如何确定销售额?
  • 待处理财产损溢属于什么类科目?
  • 房租费会计分录
  • 付款后没有发票怎么办
  • 资产负债表上应交税费是什么意思
  • 固定资产多少钱入账
  • mysql 5.7.11 winx64安装配置方法图文教程
  • server2012打开sqlserver
  • SQL server字符串存数据库大还是二进制大
  • CentOS6.7 mysql5.6.33修改数据文件位置的方法
  • win7如何设置自动锁屏时间
  • ubuntu怎么用
  • rhel7
  • window八
  • win7激活2020
  • 32/64位Win10预览版11102(中英日韩等)多国语言包官方iso镜像下载大全
  • linux的虚拟终端有几个
  • win7空间不足c盘
  • 3dmax创建图形怎么用
  • node.js document
  • cocos2d::Vector
  • linux查看目录的权限的命令
  • JS中call/apply、arguments、undefined/null方法详解
  • 人力资源差额发票
  • 没工作个人所得税
  • 个体户注销还要交税吗?
  • 退契税可以不用本人银行卡吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设