Smooth Stepping Curve Function - Remap Noises for stylized look

Hi everyone!
I made a Substance Designer node that remaps noises using a Smooth Stepping Curve function, it’s very useful to get a stylized look! I’ve used it to make some stylized smoke, but it’s very flexible for any type of work.

more about it here:


this is fantastic! good work and thanks for sharing.

here’s a quantized tonemapping algorithm I’ve worked on to adjust contrast but it can also be used to apply ease in/out or smoothstep as a single fucntion. Really useful if you want a bit more control of the contrast of a smoothstep. The only main issue is that a pure smoothstep is hard to configure.

ShaderCode is:

vec3 QuantizedTonemapping(vec3 value, float t, float s, float p)
    //remap to from 0-1 to 0-5
    t *= 5.;

    value = saturate(value);

    // define min max for toe, shoulder and power
    t = min(5., t);
    t = max(0.0001, t);

    s = min(1., s);
    s = max(0.0001, s);

    p = min(5., p);
    p = max(0.0001, p);

    // p: Polynomial
    vec3 p1 = pow(value, vec3(t));

    // keeps the output as 0->1
    float a = 1.0 + s;
    float b = 1.0 - s;

    vec3 p2 = pow(p1, vec3(a));
    vec3 denominator = p2 * b + s;
    vec3 color = p1 / denominator;
    color = pow(color, vec3(p));

    return saturate(color);


Also if anyone can see any improvements or mistakes with this Math that would be fantastic, as it is not my strongest suit.

1 Like