2022年8月23日火曜日

Tiling Noise

前回の草が揺れる風にノイズテクスチャを使っていたけど、uvのオフセットが端に行った時草の動きが激しくなる。草むらの中で動物が走ってるような感じ。

ノイズ画像を並べて見る


ノイズ画像を並べた時こんな感じになる。

ValueNoise

PerlinNoise

CellularNoise

VoroNoise

SimplexNoise

1枚の四角にUVを0~3で表示すると、3回ラップして表示される。
真ん中と隣接する絵がつながっていない。

ノイズ作成のパラメータには画像サイズとGridサイズを渡す。
画像サイズが256で、Gridサイズが64とすると、256÷64=4つ分のグリッドでノイズを生成する。
ノイズ関数は渡されたx,yを整数部分と小数部分に分解するが、この整数部分を画像サイズ÷Gridサイズの値でmodしてやるとつなぎ目がなくなる。

TilingValueNoise

TilingPerlinNoise

TilingCellularNoise

TilingVoroNoise

ただし、シンプレックスノイズだけはうまくいかない。
歪ませた三角形で処理するためmodが使えない。

Tiling Simplex Noise


ネット上でいくつかシンプレックスノイズを繋げる方法を見つけたが、うまく自分のソースに適用できなかった。
シンプレックスノイズは諦めようかと思った時、このサイトを見つけた。

4次元のシンプレックスノイズ関数を使って、縦と横にぐるっと回り込むように参照することで実現するようだ。

パラメータの指定方法などが現状とかなり違っていたので調整に時間がかかった。最初はシンプレックスノイズ単体でしか出来なくて、fBMを通すと同じように境目が出来てしまったんだけど、いろいろやっているうちにfBMを使ってもつながるようになった。

TilingSimplexNoise

0 件のコメント:

コメントを投稿