tara.log

シェーダー備忘録

【Shader Forge】グラデーションのサンプリング

f:id:aitarai:20210316212609g:plain:w300

単調なサイン波を使わず、動きに緩急をつけたい・・・
でも緩急をつけるための方程式の組み込み方は分からない・・・

そういう時にグラデーションが使えました。
時間経過で左から右にグラデーションをサンプリングして、
サンプリングした値を 0~1 で(今回は速度として)使うという方法。


f:id:aitarai:20210316221046p:plain
オレンジで囲った部分。
まず時間(1秒)に0.1を掛けて、10%の速度で時間を経過させます。
(つまり1周期10秒。)

次に、10秒かけて「左から右」に移動してほしいので、時間(t)をX軸として扱います。

Appendノード で x = 時間(t)、 yを0 とすることで、
10秒かけて、(t,0) の値をサンプリングしていきます。
(yはゼロなので、グラデは1024×5pxとかで作成。)

f:id:aitarai:20210316221050p:plain
例えば上図のようなグラデーションであれば、
t秒の時に、サンプリングされた黒や白の色は、0~1の値として扱われ、右のようなグラフとして利用できます。

今回は Panner ノードに突っこんで 速度として利用しましたが、
使い道は思い付き次第。
自由度が高い割に簡単なので積極的に使っていこうと思います。
(ただし複数になると調整は大変めんどくさい。)