duderino > learn > knowledge > snippets > color

hueShift

vec3 hueShift(vec3 color, float dhue) {
    float s = sin(dhue);
    float c = cos(dhue);
    return (color * c) + (color * s) * mat3(
        vec3(0.167444, 0.329213, -0.496657),
        vec3(-0.327948, 0.035669, 0.292279),
        vec3(1.250268, -1.047561, -0.202707)
    ) + dot(vec3(0.299, 0.587, 0.114), color) * (1.0 - c);
}