No | 119474 | |
著者(漢字) | 岩崎,慶 | |
著者(英字) | ||
著者(カナ) | イワサキ,ケイ | |
標題(和) | 水による光学的効果の高速計算法 | |
標題(洋) | Fast Calculation of Optical Effects from Water | |
報告番号 | 119474 | |
報告番号 | 甲19474 | |
学位授与日 | 2004.03.25 | |
学位種別 | 課程博士 | |
学位種類 | 博士(科学) | |
学位記番号 | 博創域第22号 | |
研究科 | 新領域創成科学研究科 | |
専攻 | 複雑理工学専攻 | |
論文審査委員 | ||
内容要旨 | 概要 コンピュータグラフィクスの分野において、自然現象の可視化は重要な課題の一つである。様々な自然現象の中でも、水面および水中景観の可視化は景観シミュレーション、バーチャルリアリティー、映画等の様々な分野へ応用されており有用な研究である。水面および水中を可視化するためには、光の散乱や屈折といった水による光学的効果を考慮して水面および水中の輝度分布を計算する必要があるが、この計算は複雑で計算コストが高いことが知られている。近年、ディスプレイへの描画を専門に行うグラフィクスハードウェア(以下GPUとする)の高性能化が急激に進んでおり、GPUを利用した可視化の高速化の研究が盛んに行われている。そこで、本論文ではGPUを利用して、水による光学的効果を高速に計算する手法を提案する。 はじめに 本論文では、海面の色、光跡およびコースティクス(水面波で集光された光の模様)の効率的な計算手法を提案する。3節において海面の色の計算法について述べる[1]。海面の色を計算する上で重要な要素の一つである散乱光について従来法では1次散乱までしか考慮していなかったが[2]、本論文では2次散乱光まで考慮する。さらに、水深の違いによる海面の色の変化も重要であると考え、水深の違いを考慮した海面の色の計算法を提案する。4節では、視点が水中にある際の水中の光跡およびコースティクスの計算法について述べる[3,4]。従来光跡やコースティクスの計算には分単位の時間がかかっていたが[5,6]、提案法により数秒で計算することが可能となった。5節では視点が水面上にある際の、水中物体にできる屈折光によるコースティクス、水面上の物体にできる反射光によるコースティクスおよび水面への映りこみの計算法について述べる[7]。提案法により、従来では成し得なかったコースティクスのリアルタイム表示が可能となった。 海面の色 本論文では、海面から視点に到達する光として、太陽光および天空光の水面での反射光、水中での散乱光および水底で反射した光を考慮する。散乱光については1次および2次散乱を考慮する。本稿では特に2次散乱の高速計算法について述べる。 2次散乱光の計算 水中の点Pκ(深さzκ)での視点方向への2次散乱光の輝度L(2)(zκ,λ)は次のような式で計算される(図1)。〓ここで、G(zκ)は点Pκから水面までの減衰率であり、exp(-c(λ)zκsecθji)で表現される。λは波長、c(λ)は水中の光の減衰係数、L(1)(zκ,θ,φ,λ)はPκに(θ,φ)方向から入射してくる1次散乱光の累積輝度、β(α,λ)は体積散乱関数とする。方向についての積分をnd方向に離散化して計算するものとする。 提案法では、式(1)を計算するために、水中に仮想平面(サンプル面)を設定し、視線とサンプル面との交点にサンプル点を設定する。サンプル面上の輝度分布を散乱マップと呼ばれるテクスチャとして保存する。散乱マップは、各サンプル点から視点へ向かう2次散乱光の輝度を保持している。散乱マップを計算するために、3つのマップ(輝度マップ、体積散乱関数マップ、減衰マップ)を用意する。輝度マップは式(1)のL(1)(zκ,θ,φ,λ)を保持したマップ、体積散乱関数マップは式(1)のβ(α,λ)を保持したマップ、減衰マップはG(zκ)を保持したマップとする。散乱マップは、nd方向ごとの輝度マップと体積散乱関数マップを掛け合わせたものをアキュムレーションバッファ(画像を累積するバッファ)に累積し、累積した結果に減衰マップを掛け合わせることによって計算される。マップ同士の掛け合わせはハードウェアのブレンディング機能を利用する。 水底の深さが一定でない場合は次のように計算する。点Pκ(θ,φ)方向から到達する1次散乱光の輝度の合計は、QpからPκまで1次散乱光を積分した輝度となる(図2)。そのため、水底と各サンプル方向との交点Qpを計算する必要がある。提案法では、距離PκQpをあらかじめ計算してテーブル化することによって輝度マップの計算を効率的に行った。 適用例 提案法によって生成された適用例を図3に示す。計算時間は、CPUがPentiumIII 1GHzでWildcat 4110を搭載したデスクトップマシンで図3(a)(b)は約0.5秒、図3(c)は2秒要した。2次散乱光を考慮することにより、より青みがかった海面の色を計算することができた。図3(c)は、水深の違いによる海面の色の差を見ることができる。提案法では、前処理としてテーブルを作成し、サンプル面における輝度を画像(散乱マップ)として処理することによってハードウェアによって効率的に海面の色を計算した。 水中の光学的効果 光跡 水中の視点Pυに到達する光跡の輝度Lυ(λ)は次のような散乱光の積分Kν(λ)=∫L0Lp(λ)exp(-c(λ)l)dlで計算される(図4)。ここで、Lは視点から水面までの距離、Lpは視線上の点Pにおける散乱光の輝度とする。提案法では、次のようにして光跡の輝度を計算する。まず、水面を図5のように格子分割し、三角形メッシュで表現する。各格子点における入射光(平行光線と仮定する)の屈折ベクトルを掃引してillumination volumeを作成する(図5)。視点に到達する散乱光の輝度Lυ(λ)は、各illumination volumeを通過する散乱光の輝度の和〓ni=0LPi(λ)exp(-c(λ)li)diで計算される。ここで、nは視線と交差するillumination volumeの数、Lpiはi番目のillumination volumeと視線との交差部分の平均輝度、diはillumination volumeと視線との交差する線分の長さ、liはillumination volumeから視点までの距離とする(図6)。光跡は、illumination volumeの表の面(視点から可視な面)を、視点に到達する散乱光の輝度で描画し、累積することによって可視化される。しかしながらこの計算は各illumination volumeと視線との交差部分を計算する必要があり、計算コストが高い。そこで、提案法では次のようにして高速に輝度計算を行う。 illumination volumeを輝度が線形に変化する程度の大きさのsub-volumeに分割し、sub-volumeをさらに四面体に分割する。各視線ごとにillumination volumeを通過する散乱光の輝度を計算する代わりに、四面体の各頂点を通過する散乱光の輝度を計算し、それ以外の部分については補間する。輝度の補間および散乱光の累積はハードウェアの機能を利用する。 コースティクス 水中の物体表面上にできるコースティクスは、illumination volumeと物体表面との交差部分を計算し、交差部分に到達する光の輝度で描画、累積することで可視化される。提案法ではillumination volumeをある間隔ごとのスキャンライン平面(サンプル面と呼ぶ)で切断したsub-volumeを利用して次のように交差部分および輝度を計算する(図7(a))。提案法を理解しやすくするため、スキャンライン平面上での交差部分の検出操作を説明する。 1. フレームバッファ(ディスプレイに表示されるイメージを格納するメモリ)およびステンシルバッファ(ピクセルごとに値を保持し、その値によってピクセルごとにフレームバッファへの書き込みを禁止・許可することができるバッファ)を初期化し、Zバッファ(視点からの奥行き値を保持するバッファ)に物体の奥行き値を書き込む(図7(b))。2. sub-volumeの裏の面(視点から不可視の面)を描画し(ただし、フレームバッファには描画しない)、物体の奥行き値よりも大きい部分に対応するステンシルバッファのピクセルに1をセットする(図7(c))。このとき、Zバッファの更新は行わない。3. sub-volumeの表の面を描画する。このとき、ステンシルバッファが1で物体の奥行き値よりも小さい部分のみフレームバッファに描画し、輝度を累積する(図7(d))。さらに、描画の際ステンシルバッファの値を0に戻す。交差部分の輝度は、sub-volumeの各頂点での輝度を計算し、補間することでコースティクスを計算する。 適用例 提案法による描画結果および各プロセスに要した計算時間を図8に示す。計算時間は、CPUがPentium4 2.8GHzでQuadro4 900XGL搭載のマシンで1.9秒、2.7秒要した。図8に示されるように、提案法は任意の形状の物体にできるコースティクスを効率的に表示することができる。従来法ではスキャンライン単位で散乱光の輝度を計算していた代わりに、輝度が線形に変化する程度の大きさのsub-volumeに分割することにより、散乱光の輝度計算を補間することによって高速に光跡の輝度を計算した。 水面波によるコースティクス 屈折光によるコースティクス 視点が水面上にある場合の水中のコースティクスの可視化は、(1)物体表面上の輝度分布の計算と(2)水面での屈折を考慮した可視化、の2つのプロセスからなる。提案法では次のようにしてこれらのプロセスを効率的に処理する。物体表面を、サンプル面(図9(a))で切断してできる画像で表現する。この画像をsliced object imageと呼ぶ(図10)。Sliced object imageは、物体表面のうち隣り合うサンプル面にはさまれる部分を、サンプル面に投影することによって生成する。物体とillumination volumeとの交差部分(図9(b)のSp)をサンプル面とillumination volumeとの交差三角形(図9(c)のS')で近似する。物体表面のコースティクスの輝度値をサンプル面での輝度値で近似し、sliced object imageとして保存する。水面での視線の屈折を考慮して物体を可視化するためにsliced object imageのリフラクションマッピング(屈折して見えるシーンをテクスチャとして保存しておき、視線の屈折方向によりテクスチャをマッピングさせることで屈折を表現する技術)を行う。水面上の各格子点PSにおける屈折した視線とサンプル面との交点Pを計算し、交点Pが格子点PSに対応するようにsliced object imageをマッピングする(図11)。物体表面と屈折した視線との交点計算をサンプル面と視線との交点計算で置き換えるため計算時間を削減することができる。 反射光によるコースティクスと水面への映りこみ 水面での反射した光によるコースティクスの可視化は、4.2節で説明した方法を使用する。水面付近の物体の映りこみにはsliced object imageを使用する。水面に映りこむ物体をsliced object imageで表現し、水面にリフレクションマッピング(光の反射を表現する手法)することで水面への映りこみを描画する。 適用例 提案法による描画結果を図12に示す。図12(a)は、水中に落としたティーポットによってできるコースティクスのアニメーション画像の一部である。図12(b)はビーナス像にできるコースティクスおよびビーナス像の水面への映りこみを表示した適用例である。計算時間は、CPUがPentium4 2.8GHzでQuadro4 900XGLを搭載したマシン上でそれぞれ0.13秒、0.23秒である。提案法は、物体とillumination volumeとの交差部分の計算および水面で屈折した視線と物体との交点計算を、sliced object imageを使用することによって高速に計算することができ、コースティクスのリアルタイム表示を可能とした。 まとめ 水による光学的効果として海面の色、水中の光跡およびコースティクスの高速計算法を提案した。・散乱マップを利用することで効率的に散乱光の高速計算法を提案した。アキュムレーションバッファやテクスチャマッピングといったハードウェアの機能を効率的に利用することで高速に海面の色を計算した。さらに、水深の違いを考慮した海面の計算法を提案した。・sub-volumeによる水中の光跡の高速計算法を提案した。sub-volumeと物体との交差部分をZバッファとステンシルバッファによって高速に検出することによりコースティクスの効率的な表示法を提案した。さらに、光跡・コースティクスの影をシャドウマップ法を使用して計算した。・水面での視線の屈折を考慮した水中物体のコースティクスの高速計算法を提案した。物体表面の輝度計算および屈折した視線と物体との交点計算を、sliced object imageを使用して高速に計算することで、コースティクスのリアルタイム表示を可能にした。さらに、水面での反射光によるコースティクスおよび水面への物体の映りこみの高速計算法についても提案した。 サンプル面 水深が一定でない場合 適用例:海面の描画結果(a)1次散乱と2次散乱の比較(b)日没時の海面(c)海岸付近の海面 視点に到達する光跡の輝度 illumination volume と sub-volume illumination volumeにおける散乱光 コースティクスの計算(a)sub-volumeとサンプル面(b)初期状態(c)ステップ1(d)ステップ2 適用例:光跡およびコースティクスの描画結果と計算時間 サンプル面と illumination volume sliced object images sliced object imageのリフラクションマッピング 適用例:水面波によるコースティクスと映りこみの描画結果(a)ティーポットアニメーション(b)ビーナス像 | |
審査要旨 | 本論文は、複雑な非線形現象として知られる水面波によって生じる、様々な光学的効果の高速計算法について提案している。本論文は5章から成り立っており、第1章は本論文のテーマである、水による光学的効果の研究に関する背景および目的について述べられている。第2章では、海面の色の高速計算法について述べられている。第3章では、水中の光学的効果を効率的に計算し、可視化する方法を提案している。第4章では、水面波によって生じる集光現象であるコースティクスの実時間表示手法および、水面における物体の映りこみ、屈折の実時間表示法について述べられている。最後に第5章において本研究のまとめと今後の課題について述べられている。以下で各章の内容について述べる。 コンピュータグラフィクスの分野において、自然現象の可視化は重要な課題の一つである。様々な自然現象の中でも、水面および水中景観の可視化は、景観シミュレーション、バーチャルリアリティー、映画等の様々な分野へ応用されており非常に有用な研究である。水面および水中を可視化するためには、光の散乱や屈折といった水による光学的効果を考慮して水面および水中の光の輝度分布を計算する必要がある。しかしながら輝度分布の計算は非常に複雑でありそれゆえ計算コストが高いことが知られている。一方近年、ディスプレイへの描画を専門に行うグラフィクスハードウェアの高性能化が急速に進んでいる。そこで、本論文ではグラフィクスハードウェアを上手に利用した水による光学的効果の高速計算手法を提案する。 第2章では、海面の色の高速計算法を述べている。海面から視点に到達する光として、太陽光および天空光の水面での反射光、水中での散乱光および水中に透過した光が水底で反射した光を考慮する。提案法では、散乱光について2次散乱光まで考慮し、視点に到達する水中の散乱光を計算するためには、視線に沿って水中の散乱光を積分する必要がある。従来法は視線ごとにサンプル点を設置してサンプル点に入射する散乱光の輝度を求め、累積することによって視点に到達する散乱光を計算していた。提案法では、水中に仮想的な平面(サンプル面)を設置し、サンプル面と視線との交点での散乱光の計算をし、サンプル面上の輝度分布を散乱マップと呼ばれる画像として計算した。これにより、グラフィクスハードウェアを利用して散乱光を高速に計算した。さらに海岸付近のような水深の違いによる海面の色の変化についても考慮している。 第3章では、水中の光学的効果の効率的な計算法について述べている。水中の光学的効果として、水中の散乱光によって生じる光跡および集光現象であるコースティクスの可視化を行った。光跡を可視化するためには、視点に到達する散乱光を積分する必要があるが、水面波によって光が屈折しているため散乱光の輝度は一定でなく非常に複雑である。提案法では、水面を三角形メッシュで表現し、メッシュの各頂点における入射光の屈折ベクトルを掃引してできるillumination volumeを作成し、illumination volumeを利用して光跡とコースティクスの可視化を行った。光跡の輝度は、illumination volumeを通過する散乱光の輝度の累積で計算され、この計算はハードウェアのブレンディング機能およびグローシェーディング機能を利用して高速に処理した。次に、コースティクスを可視化するためには、illumination volumeと物体表面との交差部分を計算し、交差部分に到達する光の輝度を累積する必要がある。提案法では、illumination volumeと物体表面との交差部分を、ハードウェアの標準機能であるZバッファとステンシルバッファを利用して高速に計算した。 第4章では、水面上から見たときの水中のコースティクスの実時間表示法について述べている。始点が水面上にある場合の屈折を考慮したコースティクスの表示は、物体表面の輝度分布の計算および水面での視線の屈折を考慮した可視化の2つのプロセスからなる。提案法では、物体表面の周囲に仮想的なサンプル面を設置し、サンプル面に挟まれる物体表面をサンプル面に投影してできる画像(sliced object image)として扱うことによって、輝度分布計算および水面での視線の屈折を考慮した可視化を高速に計算した。さらに、sliced object imageを利用することで水面への映りこみも実時間で表示することが可能となった。 なお、本論文第2章、第3章、第4章は北海道大学の土橋宜典助教授および東京大学の西田友是教授との共同研究であるが、論文提出者が主体となって開発、分析、検証を行ったもので、論文提出者の寄与が十分であると判断する。 したがって、博士(科学)の学位を授与できると認める。 | |
UTokyo Repositoryリンク |