ノイズを使って、自動で雲テクスチャを作ってみる!
ノイズを使って、自動で雲テクスチャを作ってみる!
今までは、手描きで雲を描いて、天球モデルに貼り付けて雲を表現していたのですが、全然雲に見えない・・・
自分で雲を描くのって、意外に難しいです(´ω`)
というわけで、雲を自動で作る方法をやってみました。(Game Programming Gems 2のp239, p463の記事を参考にしました。)
本によると、雲作成のアルゴリズムは、低周波画像(簡単な図形)~高周波画像(複雑な図形)をそれぞれ用意して、反比例の重みで重ねあわせる(足しあわせる)だけみたいです。フーリエの香りがしますね。
1/2 * 簡単な画像A + 1/4 * ちょっと複雑な画像B + 1/8 * さらに複雑な画像C …
(輝度の最大値を1.0とした場合、画像の輝度の範囲は、0.0~(2^n-1 / 2^n) となります。)
画像A 画像B 画像C
結果は、こんな画像になります。
さらにアルファ値で雲を分離すると、こんな画像になります。(水色の場所ほどアルファ値が強いことを表しています。)
雲を自分で描くと難しいのに、雲の作成のアルゴリズムは意外に簡単でびっくりです。
自然ってうまくできているんですね(・ω・)
天球モデルに貼り付けて表示してみる。
雲っぽいですね(・∀・)
雲テクスチャは、上下左右が繋がるように作っているので、
繰り返し表示させてもいい感じです。
今回、このノイズ作成アルゴリズムを使った、ノイズ作成ツールを作ってみました。
良かったらどうぞ。
http://space.geocities.jp/mosapui/noise_creator.html
(ノイズテクスチャは、上下左右が繋がる様に作っています。
いい感じに雲が分離できるようにするためにアルファ値を設定できます。)
PS:
最近、すごく暑いです。
クーラーのない私の部屋では、とてもじゃないが、長時間パソコンを動かせない(´ω`)
もっと暑くなりそうでつらいです。