HDR图像的编码与存储是PBR、IBL中的一个重要问题。其主要是将scene-referred的颜色信息存储并保存后在渲染时进行使用,然后通过tone-mapping这样的操作将其映射到output-referred的R8G8B8的颜色值并输出到终端显示器上。当然,一般来说不需要直接存储并读取HDR图像,但如果要实现一些PBRT的效果或是一个自己的LightMap baker的话,那么HDR的存取就是必不可少的了。这里总结一下HDR的存储编码格式。
主要有以下三种格式:
- HDR;对应的编码方式主要是RGBE/XYZE
- TIFF;对应的编码方式主要是RGB/LogLuv24/LogLuv32
- EXR;对应的编码方式主要是HalfRGB
1. HDR格式
其编码方式为RGBE,即通过ldr的rgb值,配合一个该组值对应的exponent来还原最初的HDR颜色信息。在一个32bits的RGBE中,通常是R8G8B8E8的占位方式。假设场景中的原始scene-referred的颜色为RsGsBs,那么将其向RGBE的映射操作如下式所示: