ここにある Noise 関数を使用して、フラグメント シェーダーで非常に単純な Perlin ノイズ クラウドを作成しようとしています。
低いオクターブでの出力は、より適切な言葉が必要なため、'blobby' になります。これらのぼんやりした領域を滑らかにしてノイズを滑らかにしたいだけでなく、1 オクターブよりも少し詳細にしたいだけです。
フラグメント シェーダー:
#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
左が今持っているものです。どうすれば、適切な画像とよりインラインで何かを達成できるでしょうか?