噪声纹理

5 / 15
学习创建伪随机噪声纹理,理解噪声在程序化纹理生成中的重要作用。

这个示例综合了多种噪声技术——分形叠加、时间动画和蓝白颜色映射——让噪声变成会流动的类云效果:

下面拆解各个部分。


分形叠加

循环 4 次,每次叠加一层:amplitude 从 0.5 开始每次减半,frequency 从 1.0 开始每次翻倍。叠加结果同时包含大尺度的起伏和细小的纹路。


时间偏移让噪声流动

+ u_time * 0.1 让采样坐标每帧向前推进,产生缓慢流动的动画感。


颜色映射

fractalNoise 映射到深蓝→浅蓝→白色的渐变上:

噪声值小于 40% 时在深蓝和浅蓝之间插值,大于 40% 时在浅蓝和白色之间插值,亮部呈现出云朵感。


试着改一改

改动效果
u_time * 0.1 改成 u_time * 0.5流动加快
循环次数 4 改成 6更丰富的细节层次
color1 改成 vec3(0.8, 0.3, 0.1)红色熔岩风格
0.4 两处改成 0.6白色区域扩大,云更多

练习

示例代码输出动态流动的蓝白噪声纹理。它综合了分形叠加、时间动画和两段颜色映射——在不改变结构的前提下,把颜色方案从蓝白改成暖色(比如橙黄白),让它看起来像流动的熔岩。

答案解析

只需替换三个颜色变量,其余代码不变。

  • color1:暗部(噪声低值区)→ 深红
  • color2:中间过渡 → 橙色
  • color3:亮部(噪声高值区)→ 浅黄白

原始代码的蓝白配色让高值区显现为云。换成暖色之后,同样的亮暗结构变成熔岩流动的视觉效果。

试着把 u_time * 0.1 改成 vec2(u_time * 0.15, u_time * 0.05),让流动方向变为对角。

GLSL 代码编辑器

正确代码预览

当前代码预览