ドメインワープ・シェーダーDomain Warp
ノイズで座標をゆがめ、そのゆがんだ座標でまたノイズを引くことで、煙や流体のような有機的な模様を作ります。
どう計算しているか
- まず、細かさの違うノイズを3つ重ねたもの(fbm と呼ばれる、大きなうねりに細かい凹凸を足した値)を基本の関数にします。ノイズ自体は、向きの違う複数の sin 波を足し合わせたものです。
- 座標 p で2つの fbm を引いてベクトル q を作り、p + 「歪みの強さ」·q で再び2つの fbm を引いて r を作り、最後に p + 「歪みの強さ」·r で fbm を引いて値 f を得ます。座標のゆがみが二重にかかるので、渦や筋が入り組んだ形になります。
- f に「コントラスト」を掛けて 0〜1 に収め、q の長さと合わせてパレットのグラデーションから色を選びます。
- 不透明度は f を「濃さ」で決まる指数で曲げた値で、濃い部分ほど色がはっきり出ます。「シード」は各ノイズの組み合わせを変えます。
f = fbm(p + w·r), r = fbm(p + w·q), q = fbm(p)ループがつながる理由
土台の sin 波は、すべて時間の項が整数 × 2πt です。t=1 でどの波も整数周期進んで元に戻るので、それを何段重ねてゆがめても、最終フレームは最初のフレームと同じになります。
調整できるパラメータ
形
| 模様の大きさ | 0.5 〜 6(初期値 1.6) |
|---|---|
| 歪みの強さ | 0 〜 6(初期値 3) |
| 濃さ | 0.2 〜 2(初期値 1.1) |
| コントラスト | 0.5 〜 4(初期値 1.6) |
動き
| シード | 0 〜 99(初期値 7) |
|---|
同じ分類のシーン(線・波)
- 線・波Wave Lines横に引いた何本もの線を、正弦波や矩形波、ノイズで上下に揺らし、線ごとに少しずつ時間をずらして波を流します。
- ループするノイズNoise Field格子状に並べた線分や点、四角が、時間方向に閉じたノイズに従って回転・伸縮し、場全体がうねるように動きます。
- モアレMoiré同心円や縞を2組重ね、片方を少しずらしたり傾けたりすることで、干渉模様(モアレ)が流れるように動きます。
- 二重らせんDouble Helix奥行きに応じて大きさと濃さを変えた点で二重らせんを描き、横に流れながら回転して見えるようにします。
- 波打つ地形Wave Mesh斜め上から見下ろした格子の地形が、波紋・交差波・ノイズで上下にうねり、手前の面が奥の線を隠します。
- リボンTwisted Ribbon幅のある帯がねじれながら流れ、表と裏の色の切り替わりと陰影で立体感を出しています。
- 等高線の地図Contour Map時間とともに形を変えるノイズの地形を等高線で描き、地図のように5本ごとに太い線を入れます。
- ジグザグ・シェブロンChevron Flow山形に折れ曲がった色の縞が流れ続け、ジグザグの深さが呼吸するように変わります。
- オシロスコープOscilloscopeオシロスコープのビームがリサージュ図形や波形をなぞり、後ろに残光の尾を引いて光ります。
- 干渉縞・シェーダーGLInterference円を描いて周回する複数の波源から広がる波を重ね合わせ、渦を巻くように動く干渉縞を描きます。
- マーブル・シェーダーGLMarbling絵の具を水に浮かべて混ぜたようなマーブル模様を、ノイズで座標を何度もゆがめて作り、ゆっくり流します。