replace Riemann sum computation in SpectrumToPhotometric() with InnerProduct()

This commit is contained in:
Wentao Liu 2023-10-17 10:45:00 +08:00
parent b5be145843
commit 84634b94c2

View file

@ -43,11 +43,7 @@ Float SpectrumToPhotometric(Spectrum s) {
if (s.Is<RGBIlluminantSpectrum>())
s = s.Cast<RGBIlluminantSpectrum>()->Illuminant();
Float y = 0;
for (Float lambda = Lambda_min; lambda <= Lambda_max; ++lambda)
y += Spectra::Y()(lambda) * s(lambda);
return y;
return InnerProduct(&Spectra::Y(), s);
}
XYZ SpectrumToXYZ(Spectrum s) {