主要观点总结
本文介绍了HDR(高动态范围成像)与LDR(低动态范围成像)的区别及其在摄影、渲染、手机拍照等领域的应用。文章详细解释了HDR的原理,以及与渲染所用的HDR的差异。此外,文章还涉及了游戏引擎使用HDR的实例以及未来HDR发展的前景。
关键观点总结
关键观点1: HDR与LDR的基本概念及区别
HDR能够捕捉更广泛的亮度范围,使照片或图像在暗部与亮部的细节更丰富。而LDR则只能记录有限的亮度范围,导致在调整曝光时可能出现色带。
关键观点2: 手机拍照中的HDR应用
手机中的HDR模式能够在拍摄时通过算法合成多张曝光不同的照片,使照片的细节更丰富,避免过曝或死黑。
关键观点3: HDR在渲染中的应用及与手机拍照HDR的区别
渲染中使用的HDR具有更高的位深(32bit),能够记录更广泛的亮度范围和高光细节。而手机拍照的HDR则是为了提高屏幕上细节,位深较低(8bit)。
关键观点4: HDR在特效制作和实时渲染中的优势
随着硬件的进步,游戏引擎也开始使用HDR,以提高灯光、反射等计算的精度。HDR还为自动曝光、光晕等特效提供了可能。
关键观点5: HDR的未来发展及挑战
虽然HDR具有许多优势,但由于储存空间大、计算量大以及主流屏幕位深限制,目前仍广泛使用8bit图片。随着硬件和屏幕技术的不断进步,未来HDR可能会有更广泛的应用。
正文
HDR这个词
相信接触过摄影和渲染的朋友都听说过
因为普通照片“发灰”
所以手动拍几张曝光不同的图
再合成出对比度更高的照片
图片来自于 https://en.wikipedia.org/wiki/High-dynamic-range_imaging
甚至手机也有HDR模式
打开以后能让照片暗部亮部的细节更丰富
不容易过曝或死黑
其原理跟手动合成一样
拍摄时在很短时间内完成多张曝光不同的图
再通过算法自动合成得到结果
这些HDR跟渲染用的HDR有什么不同
曾经有同学问过
直接用手机拍的HDR
能否放在渲染中当做照明
当然不能
这个HDR并非HDR
手机拍到的HDR后缀为*.jpg
而渲染所用的HDR后缀则为*.hdr
前者每像素位深8bit
颜色分级有2^8=
256
级
是低动态范围LDR
后者则是32bit
颜色分级有2^32=
4294967296
级
是高动态范围HDR
手机拍得的HDR
只是
屏幕上
细节更多一些
将原本更宽的颜色范围
压缩到0~255之间
显然
比255更亮的颜色就被舍弃了
曝光调低后
本来该看到的亮部细节
啥都看不到
而32bitHDR
拥有一吨的细节
记录着亮度范围非常大的信息
几乎能任性地调节曝光
如果只是8bit图
图片调亮以后
得到的只有满屏的色带
(Color Banding)
所谓调整亮度
是给每个像素的颜色值乘以一个数值
为了便于解释
我编辑了一个简单的shader
用于展示8bit和32bit在调整曝光时的区别
黄色的波是色阶分布图
可以看到
在调亮的过程中
色阶分布受到横向拉伸
8bit图由于色阶不足
在拉伸之后显示出明显的断层
这个断层
正是这张图中的色带
HDR vs LDR
下面用一些HDR图作背景
给场景照明
左侧是HDR提供的照明
右侧是被转换成LDR后的照明
在反射很强的材质上
区别并不是很大
若是反射较弱
能明显看到LDR下的反射亮度较低
有种掉色的感觉