Mixbox for Shaders

GLSL Shader

#ifdef GL_ES
precision highp float;
#endif

// uncomment the following line if you work in linear space
// #define MIXBOX_COLORSPACE_LINEAR

uniform sampler2D mixbox_lut; // bind the "mixbox_lut.png" texture here

#include "mixbox.glsl" // paste the contents of mixbox.glsl here

void main(void)
{
    vec3 rgb1 = vec3(0, 0.129, 0.522); // blue
    vec3 rgb2 = vec3(0.988, 0.827, 0); // yellow
    float t = 0.5;                     // mixing ratio

    vec3 rgb = mixbox_lerp(rgb1, rgb2, t);

    gl_FragColor = vec4(rgb, 1.0);
}
vec3 mix_three(vec3 rgb1, vec3 rgb2, vec3 rgb3)
{
    mixbox_latent z1 = mixbox_rgb_to_latent(rgb1);
    mixbox_latent z2 = mixbox_rgb_to_latent(rgb2);
    mixbox_latent z3 = mixbox_rgb_to_latent(rgb3);

    // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3
    mixbox_latent z_mix = 0.3*z1 + 0.6*z2 + 0.1*z3;

    vec3 rgb_mix = mixbox_latent_to_rgb(z_mix);

    return rgb_mix;
}

HLSL Shader

// uncomment the following line if you work in linear space
// #define MIXBOX_COLORSPACE_LINEAR

Texture2D MixboxLUT; // bind the "mixbox_lut.png" texture here
SamplerState MixboxSampler; // FILTER_MIN_MAG_LINEAR_MIP_POINT

#define MIXBOX_LUT(UV) MixboxLUT.SampleLevel(MixboxSampler, UV, 0)

#include "mixbox.hlsl"

float4 PSMain() : SV_Target
{
    float3 rgb1 = float3(0, 0.129, 0.522); // blue
    float3 rgb2 = float3(0.988, 0.827, 0); // yellow
    float t = 0.5;                         // mixing ratio

    float3 rgb_mix = MixboxLerp(rgb1, rgb2, t);

    return float4(rgb_mix, 1.0);
}
float3 MixThree(float3 rgb1, float3 rgb2, float3 rgb3)
{
    MixboxLatent z1 = MixboxRGBToLatent(rgb1);
    MixboxLatent z2 = MixboxRGBToLatent(rgb2);
    MixboxLatent z3 = MixboxRGBToLatent(rgb3);

    // mix together 30% of rgb1, 60% of rgb2, and 10% of rgb3
    MixboxLatent zMix = 0.3*z1 + 0.6*z2 + 0.1*z3;

    float3 rgbMix = MixboxLatentToRGB(zMix);

    return rgbMix;
}

Pigment Colors

Pigment

RGB

Float RGB

Linear RGB

Cadmium Yellow

254, 236, 0

0.996, 0.925, 0.0

0.991, 0.839, 0.0

Hansa Yellow

252, 211, 0

0.988, 0.827, 0.0

0.973, 0.651, 0.0

Cadmium Orange

255, 105, 0

1.0, 0.412, 0.0

1.0, 0.141, 0.0

Cadmium Red

255, 39, 2

1.0, 0.153, 0.008

1.0, 0.02, 0.001

Quinacridone Magenta

128, 2, 46

0.502, 0.008, 0.18

0.216, 0.001, 0.027

Cobalt Violet

78, 0, 66

0.306, 0.0, 0.259

0.076, 0.0, 0.054

Ultramarine Blue

25, 0, 89

0.098, 0.0, 0.349

0.01, 0.0, 0.1

Cobalt Blue

0, 33, 133

0.0, 0.129, 0.522

0.0, 0.015, 0.235

Phthalo Blue

13, 27, 68

0.051, 0.106, 0.267

0.004, 0.011, 0.058

Phthalo Green

0, 60, 50

0.0, 0.235, 0.196

0.0, 0.045, 0.032

Permanent Green

7, 109, 22

0.027, 0.427, 0.086

0.002, 0.153, 0.008

Sap Green

107, 148, 4

0.42, 0.58, 0.016

0.147, 0.296, 0.001

Burnt Sienna

123, 72, 0

0.482, 0.282, 0.0

0.198, 0.065, 0.0