我正在编写一个顶点抽取器,需要在网格上插值顶点颜色。我正在阅读域材料的 3D 图形的详细级别。在颜色插值部分,本书继续建议使用CIE-Luv*颜色空间来执行颜色的感知线性插值。
提供了与CIE XYZ色彩空间之间的转换方程。我能够实现它提供的方程,但维基百科省略了以下变量的数值:u'n、v'n 和 Y n。
文章说,这些值取决于"指定的白点"及其"亮度"。当使用 2° 观察者和标准光源 C 时,它表明 u'n = 0.2009 和 v'n = 0.4610。如果我使用这些,Yn 会是什么?我没有足够的物理学知识来解决这个问题,我无法在谷歌上搜索答案。
最后,我的问题归结为:我可以为您使用哪些令人满意/适当的值?
此外,我假设在此颜色空间中插值时,我只是分段插值CIE-L u v*(L*,u*和v*)的每个分量。这是对的吗?
值被省略了,因为它们取决于特定设备(例如显示器、打印机或相机)的色彩空间。由于计算机屏幕使用 RGB 色彩空间,其中感知的灰色为 R=B=G,因此您可以假设这些值不依赖于设备。我记不住 的值,所以我稍后会编辑它们。
人眼以对数方式感知亮度/强度,但是,线性插值足够接近,特别是因为您不知道实际的最小和最大屏幕级别是多少。
人眼线性感知颜色角度,但是,您需要考虑到角度id的循环,因此,最小和最大角度的插值应等于最小(或最大值)而不是中点。 例如,紫色和红色的平均值应该是紫色的。
我认为饱和度的感知也是对数的,但是,可以通过线性插值来近似。
编辑:
似乎大多数网站都使用 sRGB 到 XYZ 公式。
http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
http://www.easyrgb.com/index.php?X=MATH&H=02#text2
http://colormine.org/convert/rgb-to-xyz