5
我試圖在片段着色器中創建超級簡單的Perlin噪聲雲,使用發現的噪聲函數here。平滑低倍頻perlin噪聲
在低八度我的輸出是,因爲缺乏一個更好的詞,'blobby'。我只是想平滑這些骯髒的區域,並且有平滑的噪音,但它比一個八度音程更細一些。
片段着色器:
#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
左邊是我的時刻。我如何能夠通過正確的圖像實現更多內聯?
感謝ILMARI的結果。我考慮過你的解決方案,只使用一個八度的噪音,但結果似乎仍然顯得相當糟糕。我也不太喜歡黑白區域之間的高對比度。我的理解是添加額外的八度噪音增加了細節,但也減少了結果的對比度(基於http://libnoise.sourceforge.net/tutorials/tutorial4.html#octaves),這正是我所追求的。我是否合理? –
啊,好吧,我明白你的意思了。編輯答案。 –
可愛的,那個伎倆 - 謝謝! –