ループするノイズNoise Field
格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
どう計算しているか
- 画面を「分割数」で決まるマス目に区切り、各マスの中心に要素を1つ置きます。
- 各点で、なめらかに変化する乱数の場(勾配ノイズ)を位置と時間から引き、値 nv(おおよそ −1〜1)を得ます。「ノイズの細かさ」は座標に掛ける倍率で、大きいほど隣どうしの値が大きく変わります。
- 線分は nv·2π·「回転量」だけ回転させます。点は nv に応じて半径を変え、四角と十字は回転と大きさの両方を nv で変えます。
- 色は nv を 0〜1 に直してパレットの数で区切り、値の範囲ごとに色を割り当てます。
n(t) = (N(x,y,s·t)·(1−t) + N(x,y,s·(t−1))·t) / √((1−t)²+t²)ループがつながる理由
時刻 t のノイズと t−1 のノイズを t の割合で混ぜ合わせ、分散が変わらないように割り戻しています。t=0 と t=1 ではどちらも同じ断面を参照するので、最後のフレームが最初のフレームとつながります。「変化の大きさ」はこの時間方向の移動距離です。
調整できるパラメータ
形
| 要素 | 線分・点・四角・十字 |
|---|---|
| 分割数 | 6 〜 80(初期値 30) |
| 長さ・大きさ | 0.1 〜 2(初期値 0.9) |
| 線幅 | 0.5 〜 14(初期値 3) |
動き
| ノイズの細かさ | 0.3 〜 8(初期値 1.8) |
|---|---|
| 変化の大きさ | 0.2 〜 3(初期値 1) |
| 回転量 | 0.25 〜 3(初期値 1) |
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 二重らせんDouble Helix奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
- 波打つ地形Wave Mesh斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
- リボンTwisted Ribbon幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- マーブル・シェーダーGLMarbling絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。
- ドメインワープ・シェーダーGLDomain Warpノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。