Tiling Procedural Texture

Image TextureノードはRepeat設定でタイリングできますが、Noise等のプロシージャルテクスチャノードはタイリング設定がありません。ノイズなどはタイリングする事はありませんが、Gradient Textureのタイリングは頻繁に使います。

プロシージャルテクスチャをタイリングしたい場合はTexture Coordinateノードから適当な座標を取り出し、タイリングしたい分だけ乗算(Multiply)し、折り返したい長さで剰余(modulo、割った余り)します。上の画像はUVそれぞれに2.0をかけて、1.0で割った余りを、テクスチャのVector入力へ渡しています。

実際にテクスチャを縮小しているわけでは無くテクスチャの読み取り位置を歪めている事になります。少し前に記事にした、放射状や渦巻変形も同じです。ゲームなどで使うシェーダプログラムと同じ考え方ですね。

Vector Mathノードに乗算とか割り算があるのはちょっと気持ち悪いですね(実際にはベクトル同士の乗算とかないですからね)。


Texture Vortex Distortion

文章もなくCGを4連続で投稿した後に所帯染みたパン作りの話題とか書けなくなりそうなので、文章も書きます!

テクスチャを渦巻き状に歪ませる例です。

任意のUVをセンター(0.5, 0.5)からの距離に応じて回転を大きくって感じですね。