高动态范围成像
历史
在计算机图形学中开创高动态范围成像的先驱是Paul Debevec,据说Debevec是第一个使用高动态范围成像图生成计算机图像以逼真地对计算机图形物体进行照明与动画处理。人们普遍认为Gregory Ward是高动态范围成像文件格式的奠基人。
与传统数字图像的比较
通常保存在高动态范围图像中的信息对应于真实世界可以观察到的亮度(luminance)或者radiance值,这与传统的数字图像保存的在显示器或者打印纸上显示的颜色不同。所以,高动态范围图像格式也经常成为“与场景相关”,以区别于传统的“与设备相关”或者“与输出相关”的数字图像。另外,传统图像通常经常针对人类视觉系统进行编码(最大化保存在固定数据位中的可视信息),这些编码通常称作“伽玛编码”或者“gamma校正”。保存在高动态范围图像中的数据经常是线性的,这就意味着它们表示亮度或者radiance的相对或者绝对值(gamma 1.0)。
高动态范围图像每个颜色通道需要比传统图像更多的数据位,这是因为它的线性编码以及需要表示从 10 − − --> 4 {\displaystyle 10^{-4}} 到 10 8 {\displaystyle 10^{8}} 人眼可见亮度范围甚至是更大范围的数值。经常使用16位“half precision”或者浮点数浮点数表示高动态范围像素。但是,如果使用合适的传递函数进行变换,一些应用中的高动态范围像素可以用10-12位表示亮度,用8位表示色度,并且不会带来任何可见的量化误差 。
图像来源
高动态范围图像最初使用不同的渲染工具生成,其中著名的一个是Radiance。由于所使用单位都是基于如瓦/球面度/米 这样的实际物理单位,所以这种方法可以实现更加逼真的模型场景表现。这种方法可以模拟真实场景的光照,以及利用这个结果选择照明(假设几何形状、照明以及材料都是真实场景的精确表现)。
在1997年的SIGGRAPH上,Paul Debevec提交了题为“从照片中恢复高动态范围辐射图”的论文。这篇论文描述了按照不同的设置对同一个场景进行拍照,然后将这些采用不同的照片组合成高动态范围图像。这种高动态范围图像可以捕捉从黑暗的阴影到亮光源或者高反光的更大动态范围的场景。
在SIGGRAPH "98一年之后,Debevec又提交了一篇论文“将人造物体渲染成真实场景:沟通基于图像的传统图形与全局照明以及高动态范围照片”。在这篇论文中,他使用以前的技术对光滑的铬球照相以生成他所称作的“light probe”,即本质上的高动态范围环境图。然后将这个light probe用于合成场景的渲染。与普通的环境图简单地提供反射或者折射信息不同,light probe还提供了场景中的照明,实际上,这是唯一的光源。这种方法实现了一种前所未有的真实感效果,为整体照明模型提供了真实世界的照明数据。
色调映射
在查看高动态范围图像的时候经总是会遇到一个问题,CRT、LCD、打印机以及其它图像显示方法只能显示有限动态范围的图像。因此,人们开发了各种将高动态范围图像“转换”成可以查看的图像的方法,这些方法统称为“色调映射”。
早期的色调映射非常简单,这些方法设置一个动态范围窗口,按照最大值、最小值对图像进行裁剪。最近出现的方法试图显示更大的动态范围,一些更加复杂的方法已经在研究人眼及视神经感知场景的机制,并且争取在保持真实的颜色与对比度前提下显示全部的动态范围。
例子
Photographs
–4 stops
–2 stops
+2 stops
+4 stops
Merged to HDR then reduced to LDR
Simple contrast reduction
Local tone mapping
一些图像实例可以用来帮助说明高动态范围成像的用途。下面的实例所用的图片是用Uffizi图库中著名的Paul Debevec光探头在Radiance中渲染生成。
同一幅图像的三种不同效果
在将高动态范围图像通过色调映射生成用于显示的低动态范围图像的过程中,通过调整展示了高动态范围图像。中间的是所期望的,也最有可能是场景正常显示的效果。左侧较暗图像使用光圈4,只能显示天空较亮云彩的一些细节。右侧较亮图像使用光圈3,可以显示场景中较暗的部分。
高动态范围成像的最终效果图
模糊
这里的高斯模糊展示了高动态范围图像中超出取值范围的数值也是有用的,即使它们在转换成低动态范围图像的时候通常都要被裁掉。左侧图像是原始图像首先经过色调映射成的低动态范围版本,然后在GIMP中进行模糊得到,右侧的图像是原始高动态范围图像在 pgblur 中进行模糊,然后经过色调映射得到。
尽管两幅图像非常相似,但是明显的区别就是光滑铬球上的高亮光部分。在原始的高动态范围图像中,这些像素都有非常大的亮度值。当图像模糊的时候,周围的像素亮度被“拉高”并且在色度映射时裁剪成最大值,当然高亮像素的亮度也会被周围像素“拉低”,但是它们的亮度非常高所以在色度映射的时候仍然要超出最大值。这样的结果就是更大的区域变成了白色。
但是对于低动态范围模糊来说,高亮区域的像素在模糊处理之前已经裁剪成了最大值,这就从总体上大幅度地降低了亮度值。因此,在模糊处理之后,光亮区域周围的像素将不再有非常高的亮度,即使是高亮区域内的像素也由于周围像素的影响而被拉低。这样高亮区域就变得比较模糊,看起来不再非常明亮。
对于常见的动态模糊也是同样的结果。
其他例子
奥地利维也纳HDR图
某一教堂内HDR图
纽约州伊萨卡的色调映射HDR
法国贝尔福附近萨尔伯特堡东炮台高动态范围成像全景图
参见
高动态光照渲染(用高动态范围照明计算渲染虚拟场景,尤其是在计算机游戏场合)
OpenEXR
Radiance及其文件格式
Logluv TIFF文件格式
CinePaint图像编辑器
Pixel image editor
Panoscan
VectorWorks
高动态范围(HDR)软件
摄影
如何生成高动态范围图像 - Tutorial Compares Photomatix and Photoshop CS2 Bridge
高动态范围照相- Photoshop CS2实现
Photoshop CS2高动态范围图像介绍 - 用Photoshop CS2生成32位高动态范围图像
Exposure Bracketing Technique for HDR Photography
高动态范围显示
/高动态范围显示
高动态范围显示技术信息
高动态范围LCD显示原理
Studio rendering:
Commercial HDR maps derived from studio lighting setups
Commercial HDR panoramas and viewer.
PixelBox Academy HDRI Tutorial HDRI in PRMan using Image Based Illumination
On rendering
[1]
[2]
[3]
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
- 有价值
- 一般般
- 没价值