文章

利用简单噪声生成艺术效果

利用简单噪声生成艺术效果

利用简单噪声生成艺术效果

00 原文链接

Getting Creative with Perlin Noise Fields · Sighack

01 记录

以下内容为AI总结:

1. 核心算法

文章使用的是 Perlin Noise Field / Perlin Flow Field / Vector Field

基本思路是:

1
2
3
画布上的每个位置都有一个方向。
粒子在画布上移动时, 根据当前位置的方向场决定下一步往哪里走。
方向场不是纯随机, 而是由 Perlin Noise 生成, 所以方向变化更平滑, 更有自然感。

纯随机方向会产生突兀变化, 而 Perlin Noise 生成的方向场具有连续性, 粒子路径会更像烟雾, 水流, 毛发, 星云等自然形态。

2. 代码结构思路

作者用 Processing 写了一些简单类来支持快速迭代:

1
2
3
4
5
6
7
8
Particle:
    单个粒子, 负责位置更新。

Particle Set:
    一组粒子, 可以绑定不同的绘制函数。

Layer:
    多个粒子组组成一层, 一层模拟完成后再绘制下一层。

这个结构的重点不是复杂, 而是让作者可以快速替换参数, 图元, 颜色, 层级关系, 从而产生大量变化。

3. 25 个变体主要改了什么

文章后半部分是 25 次迭代。每次都基于同一个底层 flow field, 但修改不同维度:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
背景颜色:
    白底黑线, 黑底白线, 灰度背景, 星空背景。

透明度:
    低 alpha 叠加, 让粒子密集区域自然变暗或变亮。

线宽:
    固定线宽, 随生命周期变化, 尾迹逐渐变细。

颜色:
    手选调色板, HSB/HSL 空间随机, 黄金比例生成色相。

绘制图元:
    线段, 圆弧, 圆, 矩形, 三角形, 文字 X。

绘制方向:
    沿粒子运动方向绘制, 或垂直于运动方向绘制。

层级:
    多层粒子叠加, 每层使用不同颜色, 透明度, 粗细或图元。

Perlin Noise 参数:
    改变噪声尺度, 让运动从细碎涂鸦变成长距离流线。

所以这些图看起来差异很大, 但底层机制其实都没有变。作者刻意只在一个简单系统内做变化。

4. 文章真正想表达的观点

文章的重点其实有两个。

第一, 生成艺术不一定需要复杂算法。一个简单的粒子系统 + Perlin flow field, 如果开放颜色, 图元, 透明度, 层级, 噪声尺度等参数, 就可以产生非常丰富的结果。

第二, 创造力来自迭代, 不是一次性灵感。作者一开始也觉得变体很快就用完了, 但继续做下去之后, 会逐渐发现可复用的“创作积木”, 例如颜色生成器, 星空背景, 彗星形状, 多层叠加等。作者最后的结论是: 复杂作品通常不是一开始就完整设计出来的, 而是从简单系统持续迭代出来的。

5. 对技术美术比较有价值的点

这篇文章值得看的地方不是 Perlin Noise 本身, 而是它展示了一种很实用的效果开发方法:

1
2
3
4
5
6
7
8
先固定一个稳定的底层机制:
    Perlin Flow Field + Particle Simulation

然后开放表现层变量:
    颜色, 透明度, 图元, 宽度, 生命周期, 层级, 噪声尺度

最后通过批量迭代找视觉方向:
    不急着重写算法, 先扩大参数空间和绘制策略。

如果放到 Unity / Shader / VFX Graph 里, 它对应的思路就是:

1
2
3
4
5
6
7
8
9
10
11
Flow Field:
    用 noise texture 或 procedural noise 生成方向场。

Particle Update:
    粒子按方向场积分移动。

Renderer:
    不只画点或线, 可以画 ribbon, quad, arc, sprite, triangle, glyph。

Art Direction:
    用 lifetime, velocity, noise value, layer index 控制颜色, alpha, width, distortion。

简而言之, 这篇文章是在用一个很小的算法证明: 生成艺术的丰富度, 很大程度来自参数化表现和持续迭代, 而不是来自算法复杂度本身

02 备注

利用简单的Perlin Noise, 也可以迭代出负责的效果. 无论是直接使用算法, 还是利用算法在SD中生成图片. 或者是Houdini这种程序化建模工具中都有价值.

当然, 正如AI总结的.

  • 稳定的底层机制
  • 表现层变量
  • 迭代法

是一种稳定的创作方式.

参考网页
本文由作者按照 CC BY 4.0 进行授权