Мне были в 2018 году нужны функции зависимостей спектра на каждой длине волны от величины приращения полутона при создании модели трансформации всех полей тесткарты под заданные TVI.
Идею как-то так реализовал: для XYZ просчитывается три типа зависимостей по циклу, ну примерно как на скриншоте за тремя фильтрами, только в XYZ не статусные фильтры на скрине, а CMF стандартного наблюдателя. А для чистых спектров - те же циклы, но уже зависимости строились не 3 раза, а 40 раз, или 80 раз, или 400 раз - в зависимости от шага замера в нанометрах и измеренного диапазона длин волн. Очевидно, в спектрах просчитывается функция немного медленнее, чем в XYZ, циклов сильно больше, есть разница: 3 и 40. Зависимости просчитывались от заданного измеренного материала, я не брал их как некие константы или готовые функции, поэтому в целом было пофиг, какая кривая на какой длине волны на каком материале получается. Я моделировал каждую кривую сплайнами и мог найти на ней любую требуемую точку с высокой точностью.
Зная из замера, где находится точка 40% и где находится точка 50% и все соседние - можно на каждой длине волны просчитать с высокой точностью сплайновых интерполяций где именно будет сидеть точка 42%, 43%, любая, какую хотим получить. Очевидно, сплайновых интерполяций много, очевидно разработчики используют разные сплайновые интерполяции. Я для себя сделал три на разные случаи, но чаще юзаю кубическую.
Обратил внимание, что со времен Гретага многие разработчики не используют кубическую интерполяцию, а что-то значительно проще, но что именно - я не выяснял. Просто по форме кривых сплайновых представлений графиков вижу у многих программ, что это точно не кубическая сплайновая интерполяция. Ну я ее сам для себя писал году примерно в 2012, а что из сплайнов взяли и где другие разработчики - мне не ведомо. Может им для таких вещей достаточно примитивной кусочно-линейной интерполяции, скорости расчетов будут выше, а погрешность не на столько высока, чтобы париться сплайнами. Да черт его знает кто что решил для себя.
Но такая модель не дает точного ответа на вопрос, если патчей мало, если у нас например только бумага, только краска, и только один полутон. Сплайновой интерполяции по хорошему подавай не менее 5 точек. Для моделирования по малому кол-ву патчей нужно что-то иное придумать, нежели сплайновые интерполяции на каждой длине волны.