一、基本概念
HDR = High Dynamic Range LDR = Low Dynamic Range 动态范围=最高亮度/最低亮度
LDR: ●8位精度 ●单通道0- 1 ●常用LDR图片储存格式有jpg/png等。 ●拾色器、一般的图片、电脑屏幕。
HDR: ●远高于8位的精度 ●单通道可超过1 ●常用HDR图片储存格式hdr/tif/exr/raw等。 ●HDRI、真实世界
二、为什么需要HDR
1、更好的色彩,更高的动态范围和更丰富的细节,并且有效的防止画面过曝,超过亮度值1的色彩也能很好的表现,像素光亮度变得正常,视觉传达更加真实。LDR是对现实颜色进行压缩并呈现出来,看似丰富实际上和现实的颜色相比还是有很多局限性,一旦进行后效和后续加工会因为颜色不够而难以进行。
2、HDR才有超过1的数值,才有光晕(bloom)的效果,高质量的bloom能体现画面的渲染品质。
三、Unity中的HDR
Camera-HDR设置 ●场景将渲染为HDR图像缓冲区 ●屏幕后处理: Bloom &Tonemapping ●完成转化:HDR->LDR ●LDR图像发送给显示器
Lightmap HDR设置 ●选择High Quality将启用HDR光照贴图支持,而Normal Quality将切换为使用RGBM编码。 ●RGBM编码:将颜色存储在RGB通道中,将乘数(M)存储在Alpha通道中
拾色器HDR设置 ●使用Intensity滑动条可以调整颜色的强度 ●滑动条每增加1,则提供的光量增加一倍
优点: ●画面中亮度超过1的部分不会被截为1,增加亮部的细节并且减少曝光,减少画面较暗部分的色阶感 ●更好地支持Bloom效果
缺点: ●渲染速度较慢,需要更多显存 ●不支持硬件抗锯齿 ●部分手机不支持
四、HDR与Bloom
Bloom用来表现高光的光晕效果。
具体的实现过程:先渲染出基本颜色,然后计算超出某个阈值的高光像素,并对这些像素进行高斯模糊,最后叠加光晕,成图。
五、HDR与Tonemapping
LDR颜色为0-1,HDR颜色为超出1或低于1的颜色,想要在显示器显示更多而颜色就需要把HDR压缩成LDR,而这种映射关系即为色调映射Tonemapping。但是线性映射效果极差,需要把高亮区域和阴影区域向中等亮度方向压缩-> S曲线。
ACES曲线:Academy Color EncordingSystem学院颜色编码系统,最流行、最被广泛使用的Tonemapping映射曲线,对比度提高,很好地保留暗处和亮处的细节。
|