リボンTwisted Ribbon
幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
どう計算しているか
- 帯の中心線を、波(横に流れる sin 曲線)、輪(楕円に小さな波を重ねたもの)、8の字(x = sin s、y = sin 2s)のいずれかで決め、240 個の小さな区間に分けます。
- 各区間で進行方向に垂直な向き(法線)を求め、その向きに 「帯の幅」/2 × cos(角度) だけ広げて四角形を作ります。角度は 2π(「ねじれの数」·s − 「1ループの流れ」·t) なので、帯は場所によって細く見え、ねじれが流れていきます。
- cos が正なら表の色、負なら裏の色で塗り、帯が真横を向く(cos が 0 に近い)ところほど黒を混ぜて暗くします。暗さの最大値は「陰影」で調整します。
- 帯が複数あるときは、波では縦に並べ、輪と8の字では大きさを少しずつ変えて重ねます。「帯ごとの時間差」で帯ごとの位相をずらします。
辺 = 中心 ± n̂·(w/2)·cos(2π(twists·s − cycles·t))ループがつながる理由
ねじれの角度も中心線のうねりも、時間の項は整数 × t です。そのため t=1 で角度がちょうど整数回転し、帯の形と色が最初と一致します。輪と8の字では「ねじれの数」も整数なので、帯の継ぎ目でも途切れません。
調整できるパラメータ
形
| 経路 | 波・輪・8の字 |
|---|---|
| 本数 | 1 〜 10(初期値 4) |
| 帯の幅 | 10 〜 200(初期値 70) |
| うねり | 0 〜 300(初期値 90) |
| 陰影 | 0 〜 1(初期値 0.55) |
動き
| ねじれの数 | 1 〜 12(初期値 3) |
|---|---|
| 1ループの流れ | 1 〜 4(初期値 1) |
| 帯ごとの時間差 | 0 〜 1(初期値 0.2) |
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- ループするノイズNoise Field格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 二重らせんDouble Helix奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
- 波打つ地形Wave Mesh斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- マーブル・シェーダーGLMarbling絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。
- ドメインワープ・シェーダーGLDomain Warpノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。