International Commission on Illumination

CIE stands for the International Commission on Illumination, which is responsible for defining the CIE color spaces and standard illuminants used in colorimetry and spectral rendering.

The CIE color system characterizes colors by a luminance parameter Y and two color coordinates x and y, which specify the point on the chromaticity diagram.

The image below is the CIE chromaticity diagram for the sRGB color space, where the corners of the triangle represent the primary R, G, B colors. Colors outside of the triangle cannot be represented on an sRGB monitor.

Courtesy of Rendering Spectra

To convert from CIE XYZ coordinates to sRGB in a GLSL shader, you can use the following code:

vec3 convertXYZtoRGB(vec3 XYZ) {
    mat3 XYZtoRGB = mat3(3.2406, -1.5372, -0.4986,
                         -0.9689, 1.8758, 0.0415,
                         0.0557, -0.2040, 1.0570);
    vec3 RGB = XYZtoRGB * XYZ;
    return RGB;

void main() {
    // Define the CIE XYZ values
    vec3 XYZ = vec3(0.25, 0.40, 0.10);

    // Convert from CIE XYZ to sRGB
    vec3 sRGB = convertXYZtoRGB(XYZ);

    // Output the sRGB color
    gl_FragColor = vec4(sRGB, 1.0);

References: 1, 2, 3