首页 > 其他分享 >HDR与色调映射

HDR与色调映射

时间:2024-09-01 08:55:18浏览次数:8  
标签:HDR 映射 渲染 色调 Unity 图像

HDR

高动态范围 (HDR) 技术能够产生比标准动态范围 (SDR) 图像更高的亮度动态范围的图像,使得图像中的亮部和暗部细节都能得到更好的保留和展现,黑色更加深邃,亮部更加明亮,同时图像的色彩也更加丰富、饱满。
在标准渲染中,像素的红色、绿色和蓝色值均使用一个 0 到 1 范围内的 8 位值进行存储,其中 0 表示零强度,1 表示显示设备的最大强度。这一有限的数值范围无法准确反映我们在现实生活中对光的感知方式,并且当存在非常亮或非常暗的元素时,会导致图像不真实。在 HDR 渲染中,像素值使用浮点数进行存储。这种情况下允许更大范围的值,可以更准确地表示人眼感知颜色和亮度的方式。

Unity 中的 HDR

在 Unity 中,可以将 HDR 图像用于内部渲染计算。此功能称为 HDR 渲染。启用 HDR 渲染后,Unity 会将场景渲染到 HDR 图像缓冲区,并使用该 HDR 图像执行渲染操作,例如后期处理效果。这意味着使用实际值执行计算,因此可能会产生更逼真的效果。
在某些兼容平台上,Unity 支持将该 HDR 图像发送到显示设备。此功能称为 HDR 输出。
使用 HDR 的优点

  • 在高强度区域不会丢失颜色
  • 更好地支持泛光和发光效果
  • 减少低频光照区域的条带

使用 HDR 的缺点

  • VRAM 使用量增加
  • 色调映射(如果使用)产生额外的计算开销
  • 硬件抗锯齿不兼容 HDR 渲染

色调映射

色调映射是指将颜色值从一个范围映射到另一个范围的过程。使用 HDR 时,必须使用色调映射来转换 HDR 图像缓冲区中的颜色,以使这些值位于显示设备可以处理的范围内。如果不使用色调映射,则可能会丢失图像中的许多细节和颜色信息,尤其是在非常明亮的区域。

在 HDR 中渲染了异常明亮的场景并输出到 SDR。如果不执行色调映射,大部分像素会看起来超出范围。

与上面相同的场景。但这一次,色调映射将大多数强度映射到了更合理的区间内。请注意,自适应色调映射甚至可以在上图和此图之间进行混合,从而模拟捕获介质(例如眼睛、摄像机)的自适应特性。

标签:HDR,映射,渲染,色调,Unity,图像
From: https://www.cnblogs.com/WoBok/p/18390996

相关文章

  • 数据映射:铸就企业数据互通之桥
    在先前的文章中,我们已经对勤研低代码开发平台的字典功能进行了详细介绍。那么,当面对海量数据时,该平台究竟如何促使不同数据之间实现有效的数据交互与协同工作呢?让我们一同来深入了解勤研低代码开发平台的数据映射功能。数据映射作为低代码平台的核心功能之一,为不同数据源之......
  • mybatis 实体类排除数据库字段映射
    1,使用关键字:"transient"transient关键字就是当对象存储时,它的值不需要维持,不需要序列化这个字段=====使用方式====private  transient  String userName2,使用关键字"static"和transient一样,使用这个修饰的变量也不会被序列化,所以在纯数存的时候也不会报错=====使......
  • 记Spring HTTP Invoker远程调用的使用(二)基于Servlet方式,配置servlet映射url-pattern实
    目录前言一、概念二、代码实现1.服务端实现2.客户端实现前言本篇接上一篇记SpringHTTPInvoker远程调用的使用(一)基于Url映射方式,DispatcherServlet统一处理实现-CSDN博客https://blog.csdn.net/u011529483/article/details/141678510?spm=1001.2014.3001.5501之......
  • Python实现等距映射(ISOMAP)降维算法
    目录Python实现等距映射(ISOMAP)降维算法的博客引言ISOMAP算法原理ISOMAP的优势与局限Python实现ISOMAP算法1.创建ISOMAP类2.在瑞士卷数据集上应用ISOMAP3.结果分析总结运行结果Python实现等距映射(ISOMAP)降维算法的博客引言在高维数据处理中,降维是一种常用的技......
  • 镜像的迁移、镜像的创建、使用docker查看ip、端口映射、容器持久化
    一、镜像的迁移打包镜像dockersave-o文件名称镜像名:标签#查看帮助命令 [root@docker~]#docker--help #查看save打包用法 [root@docker~]#docker save--help #查看原有镜像 [root@docker~]#dockerimages #将镜像打包 [root@docker~]#docke......
  • Docker中镜像文件的打包传输、容器导出镜像及虚拟机端口映射的实现
    内网私有仓库1、Docker私有仓库是集中存放镜像的地⽅,⽽注册服务器(Registry)是存放仓库的具体服务器。仓库可以被认为是⼀个具体的项⽬或⽬录。Docker公共仓库:https://hub.docker.com2、Docker私有仓库的作⽤:1)镜像上传到公共仓库不⽅便管理,且仅需要局域⽹⽤户之间传递......
  • 利用源生成器,在编译阶段生成映射代码,减少运行时反射
    利用源生成器,在编译阶段生成映射代码,减少运行时反射这里有一个Product类和ProductDto类,实现对象自身的拷贝,或者Product映射ProductDtoGenMapperAttribute标注了类型需要生成映射方法,同时要求实现IAutoMap接口(由生成器自动实现)构造函数可选参数为目标类型,默认是自身MaoToAttr......
  • 05-03 Map Persistent Objects to Database Views(将持久对象映射到数据库视图 )
    MapPersistentObjectstoDatabaseViews(将持久对象映射到数据库视图)CreateaPersistentClass(创建持久类)Createapersistentclass.Theclassnameshouldmatchtheviewname.创建一个持久类。类名应与视图名匹配。AssignthePersistentattributetotheper......
  • 深入理解Android MTP之存储映射分析
    深入理解AndroidMTP之UsbService启动分析 分析了MTP的服务端的启动,本文来分析切换MTP模式后,存储中的数据(文件、目录)是如何映射到PC端的。首先你得知道如何切换MTP模式。当手机通过usb连接电脑时,会出现一个关于usb的通知,点击通知后,会出现一个类似如下的界面这个FileTransfe......
  • EF Core使用SharedTypeEntity,映射实体类到不同的数据库表(转载)
    我们可以借助EFCore的SharedTypeEntity,映射一个实体类到多个结构相同的数据库表:publicclassUser{publicintId{get;set;}publicstringName{get;set;}}publicclassSomeDbContext:DbContext{protectedoverridevoidOnConfiguring(DbConte......