フラクタルによる風景画描画 r N D log log − = 1 m

フラクタルによる風景画描画
研究者:5EI 22 番
指導教員:
【研究目的】
中野
下條
希
雅史
【描画技法】
現在、テレビやゲーム等では、山や海のよ
地形データを、山や海として表現するための
うな自然の地形をCGで表現されている場合
技法を挙げる。
が多い。この研究ではランダムフラクタル理
(1)陰線処理
論に従って、地形データを自動生成し、これ
視点から見えない部分を隠す処理。
に様々なレンダリングテクニックを駆使して
前年度までは Z バッファ法を用いていたが、
風景画を描画することを目的としている。
処理の簡略化のため、視点から最も遠い場所
【フラクタルの概要】
から描いていくという方法を取った。これに
フラクタルとは、相似次元Dが非整数で位
よりレンダリング速度は従来の約 14 倍にな
相次元Eよりも大きい集合のことである。位
った。
相次元Eとは一般的に使われる「線は 1 次元、
(2)拡散反射光
面は 2 次元」といったことである。相似次元
地形に光を当てたときの輝度を、太陽方向
Dはある図形を縮小率 1/r で縮小したときに、
のベクトルと各面の法線ベクトルの大きさの
元の図形を復元するのに必要な縮小図形をN
内積によって決定した。
個とする。このときに、
(3)シェーディング
D=−
輝度を線形補間し、各面を多くの部分に分
log N
log r
割することで、色の変化が滑らかになるよう
である。
にした。
【フラクショナルブラウン運動】
(4)シャドーイング
自然の地形をフラクタルで表現する方法と
地形の別の部分に遮られることによってで
して、最も有効な数学モデルのひとつにフラ
きる日陰を表現するため、Z バッファ法を光
クショナルブラウン運動(fBm)がある。fBm
源を視点として用いて、影のできる部分を判
は下のような離散フーリエ変換によって生成
定した。
山の表現には(1)~(4)の描画技法を用いる
される。
N
−1
2
Vn = ∑ vm ⋅ e
m =0
が、水面の表現には(5)も考慮される。
2πif mt n
vm =
1
β
m2
βは fBm の形状を指定する変数で、 v m の
位相は乱数により決定される。
この式は 1 変数関数であるが、これを2次
元に拡張することによって自然の地形を表現
する。
(5)鏡面反射光
光沢のある物体に光を当てたとき、各面に
反射する光が、輝度にどれだけ影響をあたえ
るかを、太陽、視線、各面の法線ベクトルを
用いて決定した。
【水鏡(みずかがみ)の再現】
背景を湖面に映り込ませ、水鏡を再現させ
る手法を説明する。
(1)背景画作成
まず、湖面に映す背景画の作成を行う。
背景画作成には長い時間がかかるため、別
プログラムで先に作成し、そのデータを読み
込む形で描写することにする。従って背景は
立体的な地形データではなくスクリーン上の
一枚絵になっている。
背景は空、雲、山の順で描く事で表現する。
空はグラデーションになるように線を引き、
図2:水鏡の再現
山はシャドーイングまでを施したものを用い
【研究成果】
た。雲については fBm によるデータを用意し、
(1)陰線処理を Z バッファ法ではなく、視点か
ある値を超えた際に点を描くというようにし
ら最も遠い場所から描くことで行い、その結
ている。前年度と違ってあらゆる方向に進行
果、処理速度が約 14 倍になった。
する波を重ね合わせたことで、さらに雲らし
(2)光源を視点とする Z バッファ法を用いるこ
くなった。
とで、影のできる範囲を判断してシャドーイ
(2)水鏡
ングを行った。
(3)背景を直接描画することでスクリーン上
の一枚絵とし、水面に反射する視線をトレー
スして背景のどの部分に当たるかを判断する
ことで水鏡の再現を行うことができた。
【参考文献】
(1)パイトゲン/D ザウペ著
山口昌哉監訳
「フラクタルイメージ」
図1:水鏡の手法
湖面に背景を映しこむ手法は、まず図1の
ように視点から湖面の各面をそれぞれ結び、
各面ごとに反射する方向を計算によって導き
(2)石村貞夫/石村園子著「フラクタル数学」
(3)小堀研一/春日久美子著「基礎から学ぶ図形
処理」
(4)小笠原祐治著「C++による簡単実習 3 次元
CG 入門」
出す。そして、その反射した方向に一枚絵で
(5)宮下政宏/森崎雅之著「フラクタルを用いた
ある背景が存在するかを判断し、存在する場
風景画の作成」平成 14 年度卒業論文
合には一枚絵のその画素の色を暗くして湖面
(6)上石信吾著「フラクタルによる風景画描
の色としている。
画」平成 18 年度卒業論文
水鏡の再現手法により作成した画像を図 2
に示す。