Eu acho que isso está relacionado à soma das três funções com um mínimo lá. Veja a soma plotada em relação ao comprimento de onda
Esta é realmente uma maneira errada de somar essas funções: o modelo sRGB especifica que, para obter luminosidade, é necessário pesar os componentes RGB com pesos apropriados. Então a luminosidade, sem surpresa, se tornará igual ao componente Y da representação XYZ.
o problema é que a imagem parece ter um mergulho de intensidade em algum lugar em torno de 490 nm
Na verdade, eu posso ver o mergulho não apenas perto de 490 nm, mas também um menor perto de 570 nm.
Enfim, acho que encontrei o motivo disso. Primeiro, vamos traçar as cores dessaturadas usadas na renderização no diagrama de cromaticidade:
O triângulo tracejado é a escala de sRGB e a cúspide formada pelas duas linhas inferiores da curva verde corresponde ao ponto branco (cinza) do D65. Observe que existem três "saliências" afastadas do ponto branco, correspondentes a violeta, verde azulado e vermelho. Ou que há uma grande queda na saturação na direção de 490 nm e uma diminuição moderada na direção de cerca de 570 nm. Vamos caracterizar isso graficamente, plotando a norma de diferença dos pontos renderizados do ponto branco:
É exatamente isso que percebo visualmente na imagem em termos de saturação e, portanto, misturando-me com o fundo.
De onde vem essa forma estranha, você pode se perguntar. E a resposta é, a partir do locus espectral no espaço XYZ completo. Veja a figura a seguir: a curva azul é o locus espectral e a laranja é sua projeção em um plano normal ao vetor {1,1,1}
.
Portanto, a forma que obtivemos no diagrama de cromaticidade é algo como um desdobramento planar do locus espectral.
Quanto ao realismo dessa renderização, estou razoavelmente certo de que, se tentarmos projetar o espectro real em uma superfície cinza não fluorescente, também veremos esses dois mergulhos "estranhos". E eles se tornarão menos visíveis à medida que você aumenta o brilho do espectro em relação ao brilho da superfície.