Освещение HDR (Direct3D 9)
Освещение в реальном мире содержит очень высокий динамический диапазон (HDR) значений яркости. Реальный мир имеет около 10 порядков динамического диапазона (DR) для значений яркости, распределенных по спектру темноты до яркости. С другой стороны, экран компьютера имеет очень ограниченную гамму отображения (или диапазон значений яркости): приблизительно два порядка динамического диапазона. Задача создания изображений в формате HDR заключается в сопоставлении реальных значений HDR с ограниченной гаммой экрана компьютера.
Сопоставление тонов — это метод, используемый DirectX для сопоставления сведений HDR в более ограниченный диапазон. Сопоставление тонов, применяемое к отрисовке CGI, может значительно улучшить объем отрисовки деталей освещения, позволяя видеть детали в самых темных областях и обеспечивая контрастность в тех областях, которые настолько ярки, что они выглядят сожженными. Результирующая сцена отрисовывается с гораздо более заметными подробностями освещения.
Пример HDRLighting — это пример пакета SDK, демонстрирующий освещение в формате HDR.
Сопоставление тонов
Сопоставление тонов обычно имитирует оптические явления, которые не могут быть вызваны аварийное восстановление монитора. Примерами этого являются вспышки или цветение (которые в основном свойства линз), синий сдвиг, который происходит в человеческом глазу в условиях низкой освещенности, и другие адаптации, которые являются результатом биохимии глаза. Если аварийное восстановление дисплея было бы достаточно большим, сопоставление тона не было бы необходимым, за исключением предоставления художественных эффектов или некоторых свойств объектива камеры или устройства с зарядом (CCD).
Сопоставление тонов разделяет диапазон значений яркости в сцене на набор зон. Каждая зона охватывает диапазон значений яркости.
HDR использует следующие термины:
- Зона — диапазон значений яркости
- Средний серый — средняя область яркости сцены
- Динамический диапазон — отношение самой высокой яркости сцены к самой низкой яркости сцены.
- Ключевое — субъективное измерение освещения сцены: оно варьируется от света к умеренному к темным
Чтобы вычислить яркость на основе rgb-значений, используйте следующее:
L = 0.27R + 0.67G + 0.06B;
Средняя яркость журнала является полезным аппроксимацией для ключа сцены. Общее уравнение выглядит следующим образом:
Lw = exp[ 1 / N( sum[ log( delta + Lw( x, y ) ) ] ) ]
Где:
- Lw — средняя по журналу яркость
- N — количество пикселей на изображении.
- delta — небольшой фактор, чтобы избежать проблем с черными пикселями
- Lw( x, y ) - яркость мирового пространства для пикселя ( x, y )
Чтобы сопоставить это значение со средним серым значением, ниже приведен оператор масштабирования яркости:
L( x, y ) = a * Lw( x, y ) / Lw
Где:
- L( x, y ) — масштабируемая яркость для пикселя ( x, y )
- a — значение ключа изображения после применения масштабирования
И, наконец, вот простой оператор сопоставления тонов для сжатия высоких яркости:
Ld( x, y ) = L( x, y ) / ( 1 + L( x, y ) )
Где:
- Ld( x, y ) — сжатая и масштабируемая яркость для пикселя ( x, y )
- a — значение ключа изображения после применения масштабирования
Этот оператор масштабирует высокие яркости на 1/l и низкие яркости на 1. Дополнительные сведения см. в следующем документе.
Рейнхард, Эрик, Майк Старк, Питер Ширли и Джеймс Ферверда. "Фотографическое воспроизведение тона для цифровых изображений". ACM Transactions on Graphics (TOG), Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH), pp. 267-276. Нью-Йорк, Нью-Йорк: ACM Press, 2002.
Связанные темы