Radiance HDR 图像 (.hdr)

Radiance 标准

Radiance RGBE (HDR) 是为 Radiance 合成成像系统开发的基础高动态范围格式,它使用共享的 8 位指数来存储光度学精确的亮度值。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 HDR 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 HDR 文件:

十六进制签名 (偏移量 0):

23 3F 52 41 44 49 41 4E 43 45 0A

ASCII 表示形式: #?RADIANCE\n

标准化: Radiance 合成成像系统规范

技术规格

容器架构ASCII 标头以空行结束,后接分辨率字符串和二进制 RLE 扫描线
压缩方式对每个通道的扫描行应用自适应 RLE 编码
字节序大端序 / 网络字节序
色彩空间带 CIE 色度坐标的线性 Rec.709 RGB
通道与结构RGBE:红、绿、蓝各使用 8 位尾数,并共用 8 位指数
最大尺寸实际上不受限制(分辨率字符串采用 32 位无符号整数)
透明度无(存储的是物理辐射亮度测量值)
流式传输与渐进式加载支持按扫描线顺序逐行流式读取

技术对比矩阵:HDR 对比同类产品

技术属性HDR (当前)EXRTIFFJPEG
像素编码32 位 RGBE(共享 8 位指数)每通道 16 位半精度 / 32 位浮点数8 位 / 16 位整数或 32 位浮点标准 8 位伽马编码整数
主要使用场景360 度环境照明(IBL)VFX 多通道合成摄影与印前标准网页图形
动态范围76 个数量级(10^-38 至 10^38)浮点数范围实际上近乎无限视位深而定有限的 8 位 SDR 范围
支持的通道仅 RGB通道数量不限多个自定义通道RGB / CMYK

常见损坏模式与十六进制恢复指南

图像整幅画面出现水平条纹。

根本原因: 扫描线 RLE 解压时,行程长度计数字节损坏。

恢复方法: 使用 File2File.app HDR Repair 重建损坏的扫描行标记,或转换为 EXR。

安全分析与解析器攻击向量

Radiance HDR 解码器通常使用无边界字符串例程解析 ASCII 标头行,这可能会触发栈缓冲区溢出。

已知攻击向量

  • 读取分辨率字符串标头(“-Y %d +X %d”)时调用 sprintf/sscanf,未限制输入长度。
  • 在格式错误的 RLE 扫描行解码期间发生堆越界写入。
  • 分配目标 32 位浮点缓冲区时发生整数溢出。

防御性最佳实践: 在分配图像缓冲区之前,验证 ASCII 头长度和扫描行尺寸。

历史渊源与里程碑

2000保罗·德贝韦克(Paul Debevec)使用 Radiance .hdr 文件在计算机图形学中普及了基于高动态范围图像的照明(IBL)。
1997标准化自适应扫描行运行长度编码,以减小文件大小。
1989格雷格·沃德(Greg Ward)在劳伦斯伯克利国家实验室发明了 RGBE 32 位像素编码和 .hdr 格式。

核心优势与特点

  • 每个像素仅占 32 位,文件紧凑,却能表示跨越 76 个数量级的物理光亮度。
  • 3D 渲染软件包(Blender、Unreal Engine、Unity、Cinema 4D)对 360 度环境贴图提供普遍支持。
  • 文件结构简单、稳健,易于在所有软件平台上实现。

技术局限与劣势

  • 由于采用了共享的 8 位指数编码,极暗区域可能会出现量化条带。
  • RGB 通道无法存储负数,也不支持任意多重渲染层。
  • 在多通道视觉特效制作中,很大程度上已被 OpenEXR 取代。

趣味技术冷知识

  • 每个 Radiance HDR 文件都以“#?RADIANCE”或“#?RGBE”文本标头开头。
  • 该格式旨在建筑物建成前模拟建筑设计中的真实照明。
  • 保罗·德贝韦克(Paul Debevec)于 1997 年发表的标志性 SIGGRAPH 论文《从照片中恢复高动态范围辐射度贴图》使用该格式彻底革新了 CGI 照明。

常见技术问题

HDRI 文件在 3D 制作中有什么用途?

HDRI(.hdr)文件可用作 360 度全景环境贴图,为 3D 对象提供逼真的现实世界光照、阴影和反射。

RGBE 32 位编码是如何工作的?

RGBE 不存储三个独立的浮点数,而是为红色、绿色和蓝色分别使用 8 位,外加一个共享的 8 位指数,将完整的 HDR 动态范围压缩到每个像素仅 4 个字节。

我可以将 HDR 转换为 JPG 吗?

可以。File2File.app 可以在浏览器中直接对 32 位 Radiance HDR 文件进行色调映射,并将其转换为标准的 JPG 或 PNG 图像。