分形布朗运动(Fractal Brownian Motion)
波的两个重要特征是振幅(amplitude)和频率(frequency)
波的另一个有趣的特性是可以相加,这一特性的正式说法叫叠加性

float amplitude = 1.;
float frequency = 1.;
y = sin(x * frequency);
float t = 0.01*(-u_time*130.0);
y += sin(x*frequency*2.1 + t)*4.5;
y += sin(x*frequency*1.72 + t*1.121)*4.0;
y += sin(x*frequency*2.221 + t*0.437)*5.0;
y += sin(x*frequency*3.1122+ t*4.269)*2.5;
y *= amplitude*0.06;
通过在循环(循环次数为 octaves,一次循环为一个八度)中叠加噪声,并以一定的倍数(lacunarity,间隙度)连续升高频率,同时以一定的比例(gain,增益)降低 噪声 的振幅,最终的结果会有更好的细节。这项技术叫“分形布朗运动(fractal Brownian Motion)”(fBM),或者“分形噪声(fractal noise)”
// Properties
const int octaves = 1;
float lacunarity = 2.0;
float gain = 0.5;
//
// Initial values
float amplitude = 0.5;
float frequency = 1.;
//
// Loop of octaves
for (int i = 0; i < octaves; i++) {
y += a

博客介绍了分形布朗运动(fBM),通过循环叠加噪声,升高频率、降低振幅,模拟分形性质,其二维实现可生成分形图案,广泛用于构造程序化风景。还提及域翘曲,即如何用 fBm 来扭曲 fBm 空间。
最低0.47元/天 解锁文章
841

被折叠的 条评论
为什么被折叠?



