在3D彩色立体中绘制CMYK颜色空间

3

我正在使用以下POV-Ray循环在其他颜色空间中绘制sRGB坐标。该循环仅生成沿外表面的点,然后用三角形将它们连接起来。由于sRGB空间是一种扭曲的立方体,这意味着有6个外部面和8个顶点。

#macro cie_calc_gamut_xyz_srgb()
    #for (i, 0, cie_sample_count_srgb)
        #for (j, 0, cie_sample_count_srgb)
            // side 0 & 3
            #local cooRGB = <i/cie_sample_count_srgb,j/cie_sample_count_srgb,0>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[0][i][j] = cooXYZ;
            #local cooRGB = <i/cie_sample_count_srgb,j/cie_sample_count_srgb,1>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[3][i][j] = cooXYZ;
            // side 1 & 4
            #local cooRGB = <i/cie_sample_count_srgb,0,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[1][i][j] = cooXYZ;
            #local cooRGB = <i/cie_sample_count_srgb,1,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[4][i][j] = cooXYZ;
            // side 2 & 5
            #local cooRGB = <0,i/cie_sample_count_srgb,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[2][i][j] = cooXYZ;
            #local cooRGB = <1,i/cie_sample_count_srgb,j/cie_sample_count_srgb>;
            #local cooXYZ = cie_convRGB2XYZ(cooRGB);
            #declare cie_point_array_srgb[5][i][j] = cooXYZ;
        #end
    #end
#end

这种方法对于几乎所有三维色彩空间都有效。下面是输出的示例:

enter image description here

然而,我想在CMYK颜色空间中使用相同的方法。我遇到的问题是,它有4个参数而不是3个。同样,我只想在最外层表面上绘制点,并用三角形将它们连接起来。我不认为所得到的颜色立体图是四维的,但我完全不知道如何继续下去。是否有人知道该怎么做?谢谢。
请注意,XYZ是一种颜色空间。链接
1个回答

1
主要问题在于CMYK不是一个适当的颜色空间——它更像是一种印刷过程,你可以在坐标上拥有一个额外的自由度来将它们映射到可见颜色。使使用K与100% CMY不同的是颜料的化学特性,这些特性无法在成像软件中模拟。(我试图在谷歌上寻找关于CMYK不是颜色空间的好参考资料——你也可以试一试,你会发现那些以科学为依据的文本倾向于将CMYK称为“颜色模型”而不是颜色空间)。
总之,拥有4个坐标轴会使大多数处理颜色的成像算法失效,这也是GIMP从未拥有过并且从未考虑过拥有内部CMYK颜色空间的主要原因。(导出到该空间是可以的,但不能在其中工作)。
总之,你应该选择一个固定的K值,用不同的CMY渲染你的立方体。如果需要,可以重复渲染其他立方体。

这里绘制了CMYK,这就是我提问的原因。https://en.wikipedia.org/wiki/File:CIE1931xy_gamut_comparison.svg - posfan12
1
是的,但为了在3D投影中打印它们,他们必须添加一个额外的约束条件。 - jsbueno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接