Я предполагаю, что это связано с суммой трех функций, имеющих минимум там. См сумму, построенную в зависимости от длины волны
На самом деле это неправильный способ суммирования этих функций: модель sRGB указывает, что для получения светимости необходимо взвешивать компоненты RGB с соответствующими весами. Тогда, что неудивительно, светимость станет равной Y-компоненте XYZ-представления.
проблема в том, что изображение, кажется, имеет провал в интенсивности где-то около 490 нм
Я действительно могу видеть провал не только около 490 нм, но и меньший около 570 нм.
Во всяком случае, я думаю, что нашел причину для этого. Прежде всего, давайте нанесем ненасыщенные цвета, используемые при рендеринге, на диаграмму цветности:
Пунктирный треугольник - это гамма sRGB, а острие, образованное двумя нижними линиями зеленой кривой, соответствует белой (серой) точке D65. Обратите внимание, что от белой точки есть три «шишки», соответствующие фиолетовому, голубовато-зеленому и красному. Или, что имеется большой провал в насыщении в направлении 490 нм и умеренное уменьшение в направлении около 570 нм. Давайте охарактеризуем это графически, изобразив норму отличия отрисованных точек от белой точки:
Это именно то , что я воспринимаю визуально на изображении с точки зрения насыщенности и, таким образом, смешивания с фоном.
Вы можете спросить, откуда взялась эта странная форма? И ответ - из спектрального локуса в полном пространстве XYZ. См. Следующий рисунок: синяя кривая - это спектральный локус, а оранжевая - его проекция на плоскость, перпендикулярную вектору {1,1,1}
.
Таким образом, форма, которую мы получили на диаграмме цветности, является чем-то вроде плоского разворачивания спектрального локуса.
Что касается реализма этого рендеринга, я вполне уверен, что если мы попытаемся спроецировать реальный спектр на серую нефлуоресцентную поверхность, мы также увидим эти два "странных" провала. И они станут менее заметными по мере увеличения яркости спектра относительно яркости поверхности.