Creative-Coding-with-DCTL / LGGO.dctl
LGGO.dctl
Raw
DEFINE_UI_PARAMS(offset, Offset, DCTLUI_SLIDER_FLOAT, 0.0, -1.0, 1.0, 0.1)
DEFINE_UI_PARAMS(lift, Lift, DCTLUI_SLIDER_FLOAT, 0.0, -1.0, 1.0, 0.1)
DEFINE_UI_PARAMS(gamma, Gamma, DCTLUI_SLIDER_FLOAT, 1.0, 0.0, 3.0, 0.1)
DEFINE_UI_PARAMS(gain, Gain, DCTLUI_SLIDER_FLOAT, 1.0, 0.0, 2.0, 0.1)

__DEVICE__ float3 transform(int p_Width, int p_Height, int p_X, int p_Y, float p_R, float p_G, float p_B)
{
    
    float3 rgb = {p_R, p_G, p_B};

    rgb.x = _powf(rgb.x, 1 / gamma);
    rgb.y = _powf(rgb.y, 1 / gamma);
    rgb.z = _powf(rgb.z, 1 / gamma);

    rgb.x = rgb.x + offset;
    rgb.y = rgb.y + offset;
    rgb.z = rgb.z + offset;

    rgb.x = rgb.x * (1 - lift) + lift;
    rgb.y = rgb.y * (1 - lift) + lift;
    rgb.z = rgb.z * (1 - lift) + lift;

    rgb.x = rgb.x * gain;
    rgb.y = rgb.y * gain;
    rgb.z = rgb.z * gain;

    return rgb;
}