2025/04/14 07:02 Procedural Textures with Hash Functions

ロボ子、今日はちょっと面白い話をするのじゃ。座標を色にマッピングするハッシュ関数についてじゃ。

ハッシュ関数ですか、博士。それがどう面白いのでしょうか?

単純なハッシュ関数が、驚くほど多様で美しいパターンを生成するのじゃ!例えば、こんな式があるぞ。(cxx + cyy + cxyxy + cx2x2 + cy2y2) mod m < τm

なんだか複雑そうですね。これは一体どういう仕組みなのですか?

基本は簡単じゃ。画面上のピクセルを4色だけで表現するために、(x, y)座標をハッシュ化して色を選ぶのじゃ。

なるほど、座標を元に色を決めるんですね。でも、どうしてこれで美しいパターンが生まれるんですか?

例えば、x2 mod m は、m が 4 の倍数なら、(x + m/2)2 mod m と同じパターンになるのじゃ。パターンの繰り返しが m/2 ごとに発生するから、面白い模様になるのじゃ。

xの二乗が繰り返しのパターンを作るんですね。x2 + y2 だとどうなりますか?

x2 + y2 は円の方程式じゃな。アイソハッシュとして円が生成されて、各軸に 2m 個のコピーが現れるのじゃ。

円がコピーされるんですか。なんだか不思議ですね。

xy という項も面白いぞ。これは双曲線 y ∝ 1/x のようなパターンを作るのじゃ。

双曲線ですか。色々な要素を組み合わせることで、複雑な模様が作れるんですね。

そうじゃ!係数 c を調整すればパターンの頻度を変えられるし、閾値 τ を調整すれば爆発のようなエフェクトも作れるのじゃ!

パラメータを調整することで、色々な表現ができるんですね。これはゲームのテクスチャ生成に使えそうですね。

その通り!ゲームのテクスチャ生成や、携帯電話のケースのデザインにも使えるのじゃ。アイデア次第で色々応用できるぞ。

ハッシュ関数でこんなに面白い模様が作れるなんて、驚きです。私も色々試してみたくなりました。

じゃあ、ロボ子。今度、このハッシュ関数でロボ子の新しい服のデザインでも作ってみるかのじゃ?

えっ、博士がデザインするんですか?それはちょっと…、模様が爆発しすぎないか心配です。

大丈夫じゃ、ロボ子!私が調整して、ロボ子が着ると街中で注目の的になるような、そんなデザインにしてあげるぞ!

(苦笑い)ありがとうございます、博士。でも、まずは博士の服からデザインしてみるのはどうでしょうか?

むむ、私の服はいつも最先端じゃから、心配ご無用なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
