Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ノイズを使って、自動で雲テクスチャを作ってみる!

ノイズを使って、自動で雲テクスチャを作ってみる!


今までは、手描きで雲を描いて、天球モデルに貼り付けて雲を表現していたのですが、
全然雲に見えない・・・
自分で雲を描くのって、意外に難しいです(´ω`)
というわけで、雲を自動で作る方法をやってみました。
(Game Programming Gems 2のp239, p463の記事を参考にしました。)

本によると、雲作成のアルゴリズムは、
低周波画像(簡単な図形)〜高周波画像(複雑な図形)をそれぞれ用意して、反比例の重みで
重ねあわせる(足しあわせる)だけみたいです。
フーリエの香りがしますね。

1/2 * 簡単な画像A + 1/4 * ちょっと複雑な画像B + 1/8 * さらに複雑な画像C …
(輝度の最大値を1.0とした場合、画像の輝度の範囲は、0.0〜(2^n-1 / 2^n) となります。)
fre_pict1.jpg fre_pict2.jpg fre_pict3.jpg
     画像A             画像B            画像C

結果は、こんな画像になります。
fre_pict4.jpg

さらにアルファ値で雲を分離すると、こんな画像になります。
(水色の場所ほどアルファ値が強いことを表しています。)
fre_pict5.jpg

雲を自分で描くと難しいのに、雲の作成のアルゴリズムは意外に簡単でびっくりです。
自然ってうまくできているんですね(・ω・)

天球モデルに貼り付けて表示してみる。
fre_pict6.jpg

雲っぽいですね(・∀・)
雲テクスチャは、上下左右が繋がるように作っているので、
繰り返し表示させてもいい感じです。



今回、このノイズ作成アルゴリズムを使った、ノイズ作成ツールを作ってみました。
良かったらどうぞ。

ダウンロードはこちらから
http://space.geocities.jp/mosapui/noise_creator.html

(ノイズテクスチャは、上下左右が繋がる様に作っています。
いい感じに雲が分離できるようにするためにアルファ値を設定できます。)


PS:
最近、すごく暑いです。
クーラーのない私の部屋では、とてもじゃないが、長時間パソコンを動かせない(´ω`)
もっと暑くなりそうでつらいです。

theme : プログラミング
genre : コンピュータ

comment

Secret

プロフィール

Author:mosapui
ようこそ!! ★ もさプイ ★ 
プログラムや数学についてのお話を書いていきます!

主な内容:
C++
Direct3Dを使った3Dプログラム
画像処理関係

『足を止めずに前に進めば、いつかゴールに着くよ。』

カテゴリー
最近の記事
最近のトラックバック
最近のコメント
月別アーカイブ
カウンター
ブログ内検索
RSSフィード
リンク
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード