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 0AПРЕДСТАВЛЕНИЕ ASCII: #?RADIANCE\n
Стандартизация: Radiance Synthetic Imaging System Standard
Технические спецификации
| Архитектура контейнера | ASCII-заголовок, заканчивающийся пустой строкой, за которой следует строка разрешения и двоичные RLE-строки сканирования |
| Сжатие | Адаптивное кодирование длин серий (RLE), применяемое для каждой строки сканирования канала |
| Порядок байтов (Endianness) | С прямым порядком байтов / сетевой порядок байтов |
| Цветовые пространства | Линейный Rec.709 RGB с координатами цветности CIE |
| Каналы и структура | RGBE: красный, зеленый, синий (8-битные мантиссы) + общий 8-битный показатель степени (экспонента) |
| Макс. габариты | Практически неограниченные (32-битные беззнаковые строки разрешения) |
| Прозрачность | Отсутствует (физические измерения лучистой яркости) |
| Потоковая передача и прогрессивная загрузка | Потоковое воспроизведение построчно (сканирование за сканированием) |
Техническая матрица сравнения: HDR против конкурентов
| Технический атрибут | HDR (Текущий) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Кодирование пикселей | 32-bit RGBE (общий 8-bit экспонент) | 16-bit half / 32-bit float на канал | Целочисленный 8/16-bit или 32-bit float | 8-битный с гамма-коррекцией |
| Основной вариант использования | 360-градусное освещение окружения (IBL) | Многопроходный композитинг VFX | Фотография и препресс | Стандартная веб-графика |
| Масштаб динамического диапазона | 76 порядков величины (10^-38 до 10^38) | Практически бесконечный диапазон с плавающей точкой | Зависит от глубины цвета | Ограниченный диапазон 8-bit SDR |
| Поддерживаемые каналы | Только RGB | Неограниченные произвольные каналы | Множество произвольных каналов | RGB / CMYK |
Типичные режимы повреждения и руководство по восстановлению в HEX
Изображение отображает полосы горизонтальных штрихов по всей ширине кадра.
Первопричина: Поврежден байт счетчика длин серий при распаковке RLE строк сканирования.
Восстановление: Восстановите поврежденные маркеры строк с помощью File2File HDR Repair или конвертируйте в EXR.
Анализ безопасности и векторы атак на парсер
Декодеры Radiance HDR часто анализируют строки заголовков ASCII с помощью функций работы со строками неограниченной длины, что может вызвать переполнение буфера стека.
Известные векторы атак
- Неограниченные вызовы sprintf/sscanf при чтении заголовков строки разрешения ('-Y %d +X %d').
- Запись за пределами кучи во время некорректного декодирования RLE строк сканирования.
- Целочисленное переполнение при выделении целевых буферов с плавающей точкой 32 бита.
Защитные лучшие практики: Проверяйте длину заголовка ASCII и размеры строк сканирования перед выделением буферов изображения.
Исторические истоки и вехи
Ключевые преимущества и плюсы
- Компактный объем памяти 32 бита на пиксель при охвате 76 порядков величины физической яркости света.
- Универсальная поддержка во всех пакетах 3D-рендеринга (Blender, Unreal Engine, Unity, Cinema 4D) для 360-градусных карт окружения.
- Простая, надежная структура файла, легко реализуемая на всех программных платформах.
Технические ограничения и минусы
- Квантование может вызывать полосы в крайне темных областях из-за кодирования с общим 8-битным экспонентом.
- Каналы RGB не могут хранить отрицательные числа или произвольные многопроходные слои.
- В значительной степени вытеснен форматом OpenEXR для производства многопроходных визуальных эффектов.
Интересные технические факты
- Каждый файл Radiance HDR начинается с текстового заголовка '#?RADIANCE' или '#?RGBE'.
- Формат был создан для симуляции физического архитектурного освещения при проектировании зданий до их возведения.
- Знаковая статья Пола Дебевека 1997 года для SIGGRAPH «Восстановление карт лучистой яркости с высоким динамическим диапазоном по фотографиям» использовала этот формат для революции в освещении CGI.
Часто задаваемые технические вопросы
Для чего используется файл HDRI в 3D?
Файлы HDRI (.hdr) используются в качестве 360-градусных панорамных карт окружения для обеспечения фотореалистичного освещения, теней и отражений реального мира на 3D-объектах.
Как работает 32-битное кодирование RGBE?
Вместо хранения трех отдельных чисел с плавающей запятой RGBE использует по 8 бит для красного, зеленого и синего, а также общий 8-битный экспонент, умещая полный динамический диапазон HDR всего в 4 байта на пиксель.
Могу ли я конвертировать HDR в JPG?
Да. File2File.app может применять тональную компрессию и конвертировать 32-битные файлы Radiance HDR в стандартные изображения JPG или PNG прямо в вашем браузере.