XYZ, xyY, CCT & tint

  • Автор темы Автор темы mihas
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

mihas

Топикстартер
15 лет на форуме
Сообщения
4 860
Реакции
2 882
Коллеги, никому не попадалась на глаза функция или формулы от CCT & tint к координатам xy?
От xy к CCT & tint у меня здесь есть, не помню где взял формулы, а обратной функции не нашел.
Для любознательных функция от XYZ к tint так выглядит:
Код:
var RefWhitexyY = {x:0.0, y:0.0}

function defineTint() {
    var Temp = CCT;
    var C1 = 2.0 * Math.PI * 6.626176 * 2.99792458 * 2.99792458;    // * 1.0e-18
    var C2 = (6.626176 * 2.99792458) / 1.380662;    // * 1.0e-3
    var nm;
    var i = 0;
    var XYZwX = 0.0;
    var XYZwY = 0.0;
    var XYZwZ = 0.0;
   
    for (nm = 360; nm <= 830; nm += 5)
    {
        var dWavelengthM = nm * 1.0e-3;    // * 1.0e-6
        var dWavelengthM5 = dWavelengthM * dWavelengthM * dWavelengthM * dWavelengthM * dWavelengthM;    // * 1.0e-30
        var blackbody = C1 / (dWavelengthM5 * 1.0e-12 * (Math.exp(C2 / (Temp * dWavelengthM * 1.0e-3)) - 1.0));    // -12 = -30 - (-18)
        XYZwX += (blackbody * CIE1931StdObs_x[i]);
        XYZwY += (blackbody * CIE1931StdObs_y[i]);
        XYZwZ += (blackbody * CIE1931StdObs_z[i]);
        i++;
    }
    XYZwX /= XYZwY;
    XYZwZ /= XYZwY;
    XYZwY = 1.0;
   
    var RefWhiteTintX = XYZwX;
    var RefWhiteTintY = XYZwY;
    var RefWhiteTintZ = XYZwZ;
   
   
    var Den = RefWhiteTintX + RefWhiteTintY + RefWhiteTintZ;
    /* TODO: divide by zero handling */
    if (Den > 0.0)
    {
        RefWhitexyY.x = RefWhiteTintX / Den;
        RefWhitexyY.y = RefWhiteTintY / Den;
    }
    else
    {
        RefWhitexyY.x = RefWhiteTintX / (RefWhiteTintX + RefWhiteTintY + RefWhiteTintZ);
        RefWhitexyY.y = RefWhiteTintY / (RefWhiteTintX + RefWhiteTintY + RefWhiteTintZ);
    }
    Tint = 1000 * (RefWhitexyY.x - xyY.x) - 650 * (RefWhitexyY.y - xyY.y);
}

И раз пошла такая пьянка - а никто не богат функцией, обратной от XYZ to TVI? Должна она быть, иначе бы фогру51 так как сейчас не смогли бы посчитать с идеальными TVI, нарисованными полиномами. Ищу в общем TVI to XYZ давно, если где что подобное встречали - известите плиз!
 
Нет нету. У меня вообще нету таблички локуса xy ни черного тела ни дневного света а считать их мне лень пока.
Обычно в светотехнике я не встречаю расчетов вокруг локуса дневного света, все вокруг АЧТ рисуют свои источники.
 
Я интересовался, данной темой, но мне высокая точность расчетов не нужна была. Насколько я понял, угол tint можно рассчитать точно только в Luv.
 
Статус
Закрыто для дальнейших ответов.