波打つ地形Wave Mesh
斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
どう計算しているか
- 「分割数」×「分割数」の格子点を作り、座標 (u, v) を 45° 回転させてひし形に置きます。縦方向を「見下ろす角度」で縮め、高さぶんだけ上へずらすことで、簡易的な斜め投影にしています。
- 高さは、波紋なら中心からの距離 r を使った sin(2π(r·「波の細かさ」 − 周期数·t))、交差波なら u 方向の sin と v 方向の cos の積、ノイズなら時間方向に閉じたノイズで決めます。波紋は外側ほど少し弱めます。
- マス目は奥から手前へ、斜めの列(i + j が等しい列)ごとに描きます。「隠面処理」がオンのときは、各マスを先に背景色で塗ってから枠線を描くので、後から描く手前のマスが奥の線を隠します。
- 色は行番号でパレットを順に使います。「線」を横線のみにすると、各マスの上下の辺だけを描きます。
h = sin(2π(|uv|·freq − cycles·t)), Y = (u+v)·tilt/√2 − amp·hループがつながる理由
波紋と交差波の時間の項は整数の「1ループの周期数」× t なので、t=1 で位相がちょうど整数周期進んで形が戻ります。ノイズは始めと終わりで同じ値になるように作ったノイズを使っています。
調整できるパラメータ
形
| 波 | 波紋・交差波・ノイズ |
|---|---|
| 分割数 | 6 〜 60(初期値 26) |
| 大きさ | 0.4 〜 1.6(初期値 1) |
| 見下ろす角度 | 0.15 〜 1(初期値 0.5) |
| 隠面処理 | オン/オフ(初期値 オン) |
| 線 | 格子・横線のみ |
| 線幅 | 0.5 〜 8(初期値 2) |
動き
| 高さ | 0 〜 200(初期値 60) |
|---|---|
| 波の細かさ | 0.5 〜 10(初期値 3) |
| 1ループの周期数 | 1 〜 4(初期値 1) |
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- ループするノイズNoise Field格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 二重らせんDouble Helix奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
- リボンTwisted Ribbon幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- マーブル・シェーダーGLMarbling絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。
- ドメインワープ・シェーダーGLDomain Warpノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。