Radiance HDR (.hdr)
Radiance СтандартRadiance RGBE (HDR) е основополагащият формат с висок динамичен диапазон, разработен за синтетичната система за изображения Radiance, съхраняващ фотометрично точни стойности на осветеността с помощта на споделен 8-битов експонент.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират HDR файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират HDR файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII ПРЕДСТАВЯНЕ: #?RADIANCE\n
Стандартизация: Radiance Synthetic Imaging System Standard
Технически спецификации
| Контейнерна архитектура | ASCII header ending with empty line followed by resolution string and binary RLE scanlines |
| Компресия | Adaptive adaptive run-length encoding (RLE) applied per-channel scanline |
| Поредност на байтовете (Endianness) | Big-Endian / Network byte order |
| Цветови пространства | Linear Rec.709 RGB with CIE chromaticity coordinates |
| Канали и структура | RGBE: Red, Green, Blue (8-bit mantissas) + shared 8-bit Exponent |
| Максимални размери | Practically unlimited (32-bit unsigned resolution strings) |
| Прозрачност | None (physical radiant luminance measurements) |
| Стрийминг и прогресивно зареждане | Sequential scanline-by-scanline streaming playback |
Техническа сравнителна матрица: HDR спрямо конкуренти
| Технически атрибут | HDR (Текущ) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Пикселно кодиране | 32-bit RGBE (споделен 8-битов експонент) | 16-bit half / 32-bit float на канал | Цяло число 8/16-bit или 32-bit float | 8-битово гама-кодирано цяло число |
| Основно приложение | 360-градусово осветление на околната среда (IBL) | VFX многопасово композиране | Фотография и предпечат | Стандартна уеб графика |
| Обхват на динамичния диапазон | 76 порядъка (10^-38 до 10^38) | Практически неограничен диапазон с плаваща запетая | Варира според цветовата дълбочина | Ограничен 8-битов SDR диапазон |
| Поддържани канали | Само RGB | Неограничени произволни канали | Множество произволни канали | RGB / CMYK |
Често срещани режими на повреда и ръководство за хекс възстановяване
Изображението показва хоризонтални ивици по цялата ширина на кадъра.
Първопричина: Повреден байт за броя на дължината на серията (RLE) при декомпресия на ред.
Възстановяване: Възстановете повредените маркери на редовете с помощта на File2File HDR Repair или конвертирайте в EXR.
Анализ на сигурността и вектори на атака към парсера
Декодерите за Radiance HDR често парсират ASCII заглавни редове с помощта на несвързани низови рутини, които могат да предизвикат препълване на стек буфера (stack buffer overflows).
Известни вектори на атака
- Неограничени извиквания на sprintf/sscanf при четене на резолюционни низове ('-Y %d +X %d').
- Писане извън рамките на паметта (heap out-of-bounds write) по време на декомпресия на деформиран RLE ред.
- Препълване на цяло число (integer overflow) при получаване на целеви 32-битови буфери с плаваща запетая.
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- Компактен отпечатък в паметта от 32 бита на пиксел, обхващащ 76 порядъка на физическата светлинна осветеност.
- Универсална поддръжка в софтуерите за 3D рендериране (Blender, Unreal Engine, Unity, Cinema 4D) за 360-градусови карти на околната среда.
- Проста и надеждна файлова структура, лесно реализируема на всички софтуерни платформи.
Технически ограничения и минуси
- В екстремно тъмни региони може да се появи квантуващо нанизиране (banding) поради кодирането със споделен 8-битов експонент.
- RGB каналите не могат да съхраняват отрицателни числа или произволни многопасови слоеве.
- До голяма степен заменен от OpenEXR за производство на визуални ефекти с множество пасове.
Интересни технически факти
- Всеки Radiance HDR файл започва с текстовия заглавен ред '#?RADIANCE' или '#?RGBE'.
- Форматът е създаден за симулиране на физическо архитектурно осветление при проектиране на сгради преди тяхното построяване.
- Емблематичната статия на Пол Дебевек от 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 изображения директно във вашия браузър.