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.
Parameters_Steps
Parameters_Smoothness

more about it here:
https://www.artstation.com/artwork/RnXANO

9 Likes

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);
}

Example

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

2 Likes