Radiance HDR (.hdr)
Radiance СтандартRadiance RGBE (HDR) - це базовий формат з високим динамічним діапазоном, розроблений для синтетичної системи візуалізації Radiance, який зберігає фотометрично точні значення яскравості за допомогою спільного 8-бітного експонента.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли HDR, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли HDR, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII-УЯВЛЕННЯ: #?RADIANCE\n
Стандартизація: Radiance Synthetic Imaging System Standard
Технічні характеристики
| Архітектура контейнера | ASCII-заголовок, що закінчується порожнім рядком, за яким слідують рядок роздільної здатності та бінарні рядки RLE |
| Стиснення | Адаптивне кодування довжин серій (RLE), що застосовується до кожного каналу рядка |
| Порядок байтів (Endianness) | Побітовий порядок від старшого до молодшого / Мережевий порядок байтів |
| Колірні простори | Лінійний RGB Rec.709 з координатами кольоровості CIE |
| Канали та структура | RGBE: Червоний, Зелений, Синій (8-бітні мантиси) + спільний 8-бітний Експонент |
| Максимальні розміри | Практично необмежені (32-бітні беззнакові рядки роздільної здатності) |
| Прозорість | Відсутня (фізичні вимірювання випромінюваної яскравості) |
| Потокове та прогресивне завантаження | Послідовне потокове відтворення рядків за рядками |
Технічна матриця порівняння: HDR проти конкурентів
| Технічний атрибут | HDR (Поточний) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Піксельне кодування | 32-бітне RGBE (спільний 8-бітний експонент) | 16-бітне половинне / 32-бітне плаваюче на канал | Цілочисельне 8/16-бітне або 32-бітне плаваюче | 8-бітне цілочисельне з гамма-кодуванням |
| Основне призначення | Освітлення середовища на 360 градусів (IBL) | Багатопроходковий компонування VFX | Фотографія та додрукарська підготовка | Стандартна вебграфіка |
| Динамічний діапазон | 76 порядків величини (10^-38 до 10^38) | Практично нескінченний плаваючий діапазон | Змінюється залежно від глибини бітів | Обмежений 8-бітний діапазон SDR |
| Підтримувані канали | Лише RGB | Необмежена кількість довільних каналів | Кілька довільних каналів | RGB / CMYK |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
На зображенні відображаються горизонтальні смуги по всій ширині кадру.
Першопричина: Пошкоджений байт кількості довжини серії при розпакуванні RLE рядка.
Відновлення: Відновіть пошкоджені маркери рядків за допомогою відновлення File2File HDR або конвертуйте в 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 'Відновлення карт яскравості з високим динамічним діапазоном за фотографіями' використала цей формат для революції в освітленні комп'ютерної графіки.
Поширені технічні запитання
Для чого використовується файл HDRI в 3D?
Файли HDRI (.hdr) використовуються як панорамні карти середовища на 360 градусів для забезпечення фотореалістичного реального освітлення, тіней та відбитків на 3D-об'єктах.
Як працює 32-бітне кодування RGBE?
Замість зберігання трьох окремих чисел з плаваючою комою, RGBE використовує по 8 біт для червоного, зеленого та синього, плюс спільний 8-бітний експонент, поміщаючи повний динамічний діапазон HDR лише в 4 байти на піксель.
Чи можу я конвертувати HDR у JPG?
Так. File2File.app може виконувати тонування та конвертувати 32-бітні файли Radiance HDR у стандартні зображення JPG або PNG безпосередньо у вашому браузері.