Вы можете захотеть пойти дальше: визуализировать изображение так, как его запечатлел бы человеческий глаз, или даже так, как его воспримет человек.
Есть два способа интерпретировать это. Я сделаю оба.
Интерпретация 1. Визуализируйте изображение, которое выглядит реалистично.
В конце дня ваше изображение все еще должно быть где-то отображено . Вот ключ: вы хотите визуализировать ваше изображение таким образом, чтобы при * отображении * этого изображения на определенном устройстве отображения оно создавало те же ощущения, что и оригинальное радиометрическое изображение.
Вот как распаковать эту идею.
В реальном мире радиометрические спектры (то есть реальные распределения света) проникают в ваш глаз и стимулируют приблизительно 1 четыре световых рецептора. Стимуляция рецепторов вызывает ощущение цвета, которое мы ассоциируем с изображениями.
При рендеринге мы не имеем произвольного контроля над производимыми нами спектрами. К счастью, поскольку у нас (обычно) есть только три конуса, каждый из которых дает только скалярное значение, цветовое зрение можно воспроизвести, используя ровно три основных цвета. Суть в том, что вы можете создать любое цветовое ощущение, используя только линейную комбинацию из трех длин волн (до нескольких цветов, которые могут быть отрицательными, в этом случае вы просто используете разные основные цвета).
У вас нет выбора праймериз. Почти все устройства цветного отображения используют стандарт sRGB, который обеспечивает три основных цвета (которые обычно не имеют единственной длины волны). Это хорошо, потому что оказывается, что все это абстрагировано, и вам не нужно заботиться.
Чтобы прояснить беспорядок, который является точным восприятием рендеринга, вот алгоритм:
- Визуализируйте свое изображение, используя правильные радиометрические расчеты. Вы отслеживаете отдельные длины волн света или сегменты длин волн. Без разницы. В конце концов, у вас есть изображение, представляющее спектр, полученный в каждой точке.
- В каждом пикселе вы берете спектр, который вы рендерили, и конвертируете его в цветовое пространство CIE XYZ . Это позволяет интегрировать произведение спектра со стандартными функциями наблюдателя (см. Определение CIE XYZ) .
- Это дает три скалярных значения, которые являются цветами CIE XYZ.
- Используйте матричное преобразование для преобразования этого в линейный RGB, а затем оттуда используйте линейное / мощное преобразование для преобразования линейного RGB в sRGB .
- Конвертируйте из плавающей запятой в uint8 и сохраняйте значения, находящиеся вне диапазона (ваш монитор не может их представлять).
- Отправьте пиксели uint8 в кадровый буфер.
- Дисплей принимает цвета sRGB, выполняет обратное преобразование для получения трех основных цветов определенной интенсивности. Каждый масштабирует вывод любого элемента изображения, за который он отвечает. Элементы изображения загораются, создавая спектр. Этот спектр будет (надеюсь) метамером для исходного спектра, который вы визуализировали.
- Вы воспринимаете спектр, как если бы вы воспринимали визуализированный спектр.
Интерпретация 2. Попытка смоделировать конечные данные, которые человеческий глаз может получить для целей визуализации или для компенсации LDR-дисплеев.
Это имеет менее полезное значение, я думаю. По сути, вы пытаетесь создать изображение, которое настраивает восприятие мозга для удовольствия / выгоды.
Например, в этом году на SIGGRAPH была статья, в которой они моделировали остаточные изображения и уменьшение цвета, чтобы сделать изображения воспринимаемыми по-другому. Конечно, единственная причина, по которой они делают это, заключается в том, что все дисплеи, с которыми мы работаем, имеют низкий динамический диапазон (LDR). Задача состоит в том, чтобы смоделировать эффекты, которые кто-либо может увидеть при воздействии на дисплей с высоким динамическим диапазоном (HDR), в качестве фактических данных изображения.
На практике это оказывается не очень хорошо работает. Например, для остаточных изображений мы видим остаточные изображения из-за очень яркого стимула, истощающего цветные клетки. Если вместо этого вы попытаетесь стимулировать эффект поддельным остаточным изображением, оно может выглядеть примерно одинаково - но поскольку это совершенно другой механизм, он не очень убедителен.
Эта графика на самом деле недостаточно изучена в литературе, если вы хотите попробовать ее. Упомянутая статья является примером более или менее самых современных подходов, которые мы имеем. Я думаю, что текущий консенсус заключается в том, что на самом деле не стоит пытаться симулировать (по крайней мере, в это время), поскольку в лучшем случае вы будете аппроксимировать реальные эффекты видения, заменяя другие, и что это не совсем так. Работа.
1 палочка + 3 * колбочки, обычный случай. Приблизительно потому, что у людей может быть всего лишь ноль функциональных световых рецепторов до предполагаемого максимума семи (самый высокий из когда-либо наблюдаемых - пять).