Smoothing low octave hawser noise

I am trying to create super simple Perlin noise clouds in a fragment shader using the Noise function found here .

In the low octaves, my result, because of a better word, is "bliss." I just wanted to smooth out these blobby areas and have a smooth noise, but have it a little more detailed than just one octave.

Fragment Shader:

#ifdef GL_ES
precision mediump float;
#endif

uniform float time;
uniform vec2 resolution;

// Noise related functions go here ..

float surface3 ( vec3 coord ) {
        float frequency = 4.0;
        float n = 0.0;  

        n += 1.0    * abs( cnoise( coord * frequency ) );
        n += 0.5    * abs( cnoise( coord * frequency * 2.0 ) );
        n += 0.25   * abs( cnoise( coord * frequency * 4.0 ) );

        return n;
}

void main( void ) {
        vec2 position = gl_FragCoord.xy / resolution.xy;

        float n = surface3(vec3(position, time * 0.1));

        gl_FragColor = vec4(n, n, n, 1.0);
}

Live example:
http://glsl.heroku.com/e#1413.0

On the left is what I have at the moment. How can I achieve something more in the right way?

+5
source share
1 answer

- . , - :

http://glsl.heroku.com/e#1450.0

abs(), () - 0.5 * (1.0 + cnoise()) ( cnoise -1.1).

http://glsl.heroku.com/e#1450.1

+4

All Articles