分形布朗运动 (FBM)

1 / 3

📝 练习目标

通过叠加多个不同频率和振幅的噪声层(通常是Perlin噪声或Simplex噪声)来创建具有自相似性的复杂图案,常用于生成自然现象如山脉、云彩、水面等。

💡 💡 教程内容

学习如何实现分形布朗运动(fBm)来创建复杂的自然纹理。

学习目标

- 理解分形布朗运动的数学原理

- 学习如何叠加多个噪声八度

- 掌握创建自然纹理的高级技术

核心概念

分形布朗运动 (fBm)

fBm是通过叠加多个不同频率和振幅的噪声函数创建的:

- 每个八度的频率是前一个的2倍

- 每个八度的振幅是前一个的一半

- 产生自相似的分形特性

八度叠加

`glsl

float fbm(vec2 p) {

float value = 0.0;

float amplitude = 0.5;

float frequency = 1.0;

for (int i = 0; i < octaves; i++) {

value += amplitude * noise(p * frequency);

amplitude *= 0.5;

frequency *= 2.0;

}

return value;

}

`

参数控制

- 八度数 (Octaves):细节层次数量

- 持续性 (Persistence):振幅衰减率

- 间隙性 (Lacunarity):频率增长率

练习

实现一个分形布朗运动函数,创建类似云朵或地形的自然纹理。

提示

1. 从基础噪声函数开始

2. 实现八度叠加循环

3. 尝试不同的八度数量(4-8个)

4. 调整持续性和间隙性参数

5. 使用结果控制颜色或高度

预期效果

你应该看到复杂的自然纹理,具有多层次的细节,类似云朵、山脉或其他自然现象的外观。

GLSL 代码编辑器

正确代码预览

当前代码预览