マーブル・シェーダーMarbling
絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。
どう計算しているか
- 画素の座標に「模様の大きさ」を掛け、ノイズの値だけ座標をずらします。これを「混ぜる回数」だけ繰り返し、ずらした座標でまたノイズを引くので、渦を巻くように混ざった形になります。「渦の強さ」はずらす量です。
- ここで使うノイズは、向きと細かさの違う 7 つの平面波(一方向に進む sin 波)を足し合わせたもので、「シード」で向きや位相の組み合わせが変わります。
- ゆがめた座標 q から v = q.x·「縞の数」/4 + q.y·0.15 という斜めの縞の値を作ります。直線の縞が座標のゆがみで曲がり、マーブル模様に見えます。
- なめらかは sin(2v) でパレットのグラデーションを引き、縞は v の整数部分で色を切り替え、細線は v の整数の境目だけを描きます。
q ← q + warp·(n(q, t), n(q + 5.2, t)), v = q.x·bands/4 + 0.15·q.yループがつながる理由
ノイズを作る各平面波は、時間の項が ±1 か ±2 の整数 × 2πt です。t=1 で全ての波がちょうど整数周期進んで元に戻るため、それを何度重ねたゆがみも元に戻ります。
調整できるパラメータ
形
| 描き方 | なめらか・縞・細線 |
|---|---|
| 模様の大きさ | 0.5 〜 8(初期値 2.2) |
| 縞の数 | 1 〜 30(初期値 6) |
動き
| 渦の強さ | 0 〜 3(初期値 1.1) |
|---|---|
| 混ぜる回数 | 1 〜 4(初期値 3) |
| シード | 0 〜 99(初期値 2) |
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- ループするノイズNoise Field格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 二重らせんDouble Helix奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
- 波打つ地形Wave Mesh斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
- リボンTwisted Ribbon幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- ドメインワープ・シェーダーGLDomain Warpノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。