Сглаживание низкооктавного шума Перлина

Я пытаюсь создать супер простые облака шума Перлина во фрагментном шейдере, используя функцию шума, найденную здесь .

На низких октавах мой звук, если не так сказать, звучит как «клякса». Я просто хотел бы сгладить эти пятна и получить плавный шум, но чтобы он был немного более детализированным, чем одна октава.

Фрагментный шейдер:

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

Живой пример:
http://glsl.heroku.com/e#1413.0

Осталось то, что у меня есть на данный момент. Как я могу добиться чего-то большего с помощью правильного изображения?

5
задан Robin Pyon 25 January 2012 в 18:17
поделиться