2008年度 卒 業 論 文
リアルタイム
3DCG
における
薄膜厚みの動的変化を考慮した構造色描画手法
指導教員:渡辺 大地 講師メディア学部 ゲームサイエンスプロジェクト
学籍番号
M0105129
加藤 良章
2008年度 卒 業 論 文 概 要 論文題目
リアルタイム
3DCG
における
薄膜厚みの動的変化を考慮した構造色描画手法
メディア学部 氏 指導 学籍番号 : M0105129 名 加藤 良章 教員 渡辺 大地 講師 キーワード 3DCG、リアルタイム、シャボン玉、干渉光、構造色 3DCGの分野において、光学現象の再現に関する研究は数多く行われてきた。光学現 象には、光の屈折、反射、干渉などがあるが、本研究ではその中でも光の干渉現象につい て着目した。光の干渉とは、複数の光の波が重なるときに光の波が変化する現象であり、 光の干渉による発色現象を構造色と呼ぶ。構造色は光の波長より小さいスケールの微細構 造をもつ物体に、光が衝突する事で発生する。構造色を再現する研究は既に行われ、シャ ボン玉やコンパクトディスクといった構造色を再現できるようになった。しかし、先行研 究の内容では、光源や視点の位置を変えた時の色味の変化については対応できるが、シャ ボン玉のように、時間の経過とともに水の膜の厚さが変化するといった、構造色を表す情 報が変化する場合を考慮していない。構造色を表す情報の変化に対応する為には、色情報 の計算をし直さなければならない為、計算量が増えて描画速度が鈍足になってしまう。 本研究では、時間の経過とともに構造色を表す情報が変化する物体の例としてシャボン 玉を取り上げ、リアルタイム 3DCG における薄膜厚みの動的変化を考慮した構造色描画 手法について述べる。シャボン玉が持つ水の膜の厚さを色情報の計算に加える事で、構造 色の変化を表す事を可能にした。また、ゲームや映像コンテンツなどに利用する事を想定 し、リアルタイムに計算処理を行うようにする。リアルタイム性を実現する為に、過去の 構造色描画手法を基にした。構造色を求める為に使用する光の干渉による光の波長の変化 を計算し、計算結果をデータベース化する事で計算時間を短縮し、リアルタイムな描画処 理を可能にした。目 次
第 1 章 はじめに 1 1.1 研究背景と目的 . . . . 1 1.2 本論文の構成 . . . . 2 第 2 章 構造色表現 3 2.1 構造色について . . . . 3 2.2 薄膜の構造色について . . . . 3 2.3 構造色表現手法 . . . . 5 第 3 章 構造色表現手法の拡張 11 3.1 手法の提案 . . . . 11 3.2 実装内容 . . . 12 第 4 章 動作の検証 16 4.1 実験環境 . . . 16 4.2 実験結果 . . . 16 第 5 章 まとめ 22 謝辞 23 参考文献 24図 目 次
2.1 構造色を放つ DVD-R . . . . 4 2.2 薄膜による光の干渉モデル . . . . 5 2.3 光源位置と視点位置 . . . . 6 2.4 場所依存テクスチャ . . . . 10 2.5 視点・光源依存テクスチャ . . . 10 2.6 構造色テクスチャ . . . 10 2.7 シャボン玉の描画結果 . . . 10 3.1 3次元化した構造色テクスチャのイメージ図 . . . 12 3.2 視点・光源依存データベースの座標軸 . . . . 14 3.3 構造色データベースの座標軸 . . . . 15 3.4 場所依存データベースの座標軸 . . . 15 4.1 視点・光源依存データベース . . . . 17 4.2 場所依存データベース . . . 17 4.3 構造色データベース . . . . 17 4.4 構造色データベースの配置 . . . . 17 4.5 平面での実験 (250nm) . . . 18 4.6 平面での実験 (400nm) . . . 18 4.7 平面での実験 (550nm) . . . 18 4.8 平面での実験 (700nm) . . . 18 4.9 平面での実験 (850nm) . . . 19 4.10 平面での実験 (1000nm) . . . 19 4.11 球体での実験 (250nm) . . . 19 4.12 球体での実験 (400nm) . . . 19 4.13 球体での実験 (550nm) . . . 20 4.14 球体での実験 (700nm) . . . 20 4.15 球体での実験 (850nm) . . . 20 4.16 球体での実験 (1000nm) . . . 20 4.17 立方体での実験 . . . 21 4.18 10面体での実験 . . . 21第
1
章
はじめに
1.1
研究背景と目的
3DCG の分野において、屈折、反射、干渉などの光学現象の再現に関する研究 は数多く行われてきた。光学現象に関する研究 [1] [2] [3] [4] [5] は、現在でも盛 んに行われており、現実に起こる光学現象に非常に近い結果を描画できるように なった。 光学現象に関する研究の例として、光の干渉についての研究がある。光の干渉 は、複数の光の波が重なる事で光の波の振幅が変化する現象である。また、光の 波の強さが変化することで構造色が発生する。構造色とは、光の波長より小さな 微細構造を持つ物体に光が衝突し、光の干渉が起きたときに発生する発色現象で ある。微細構造には、ミクロン単位の非常薄い厚さを持つ薄膜や、薄膜が何層に も重なった多層膜、回折格子などが該当する。構造色を発する物体は、シャボン 玉、コンパクトディスク、動物の体毛など様々なものがある。 構造色を再現する研究 [6] [7] [8] は今までにも行われており、既にシャボン玉や コンパクトディスクなどは再現可能である。構造色の表現手法の中でも、高速か つフォトリアルな画像を出力することに成功した手法として佐伯らの研究 [9] が ある。佐伯らの手法では、微細構造によって起こる構造色の情報を事前に計算し、 データベースとしてまとめている。しかし、決まった状態の色情報をまとめたデー タベースである為、微細構造がもつ構造色の情報が変化した時、色情報を計算し直さなければならない。構造色の情報が変化に合わせて、色情報を計算し直す場 合、色情報を表す為の積分計算等をやり直すことになり、処理にかかる時間が増 大してしまう。 本研究では、時間の経過とともに構造色の情報が変化する物体の例としてシャ ボン玉を取り上げ、リアルタイム 3DCG における薄膜厚みの動的変化を考慮した 構造色描画手法を提案する。 構造色の表現には佐伯らの研究を基にした。構造色を表すデータベースに、物 体の微細構造に関する要素を加える事で、構造色の情報の変化に対応出来るよう にする。本研究における実験ではシャボン玉の再現を行う為、構造色の情報に水 の膜の厚さを追加し、データベースを作成した。また、本研究ではゲームや映像 作品に本手法を使用することを想定し、リアルタイムに描画処理を行うようにす る。佐伯らの研究は構造色表現に必要な数値計算をリアルタイムに実行すること が可能である。佐伯らの構造色レンダリング手法を用いる事で、高速に構造色を 描画する。
1.2
本論文の構成
本論文は 6 つの章で構成する。第 2 章では、構造色についての解説と、佐伯らの 手法の概要について述べる。第 3 章では、本手法の内容、及び実装方法について 述べる。第 4 章では、第 3 章の内容を基に実験を行い、描画結果を示す。同時にリ アルタイム性についても検証を行う。最後に、第 5 章で本研究の成果をまとめる。第
2
章
構造色表現
本章では干渉現象が起こるメカニズムを解析し、干渉によって起こる発色現象 である構造色について考察を行う。2.1
構造色について
構造色とは、物体に光の干渉現象によって起こる発色現象である。構造色は視 点や光源の位置や角度によって色味が変化する特徴を持つ。また、構造色を発す る微細構造にも幾つかのパターンがあるが、主に薄膜や回折格子等による影響で 発生する場合が多い [10]。 構造色を起こす物体には様々なものがあり、代表的なものとしてシャボン玉、コ ンパクトディスクがある。図 2.1 は構造色を放つ DVD-R の写真である。また動物 の中の体毛や、昆虫の外骨格にも構造色を発するものがあり、動物の種類によっ て異なる色味を発する。動物の体毛の例としては、クジャクの羽、またハトの首 周りの羽など、昆虫では、コガネムシやモルフォ蝶のりん粉 [11] [12] 等がある。2.2
薄膜の構造色について
薄膜による光の干渉を起こす代表的な物体はシャボン玉である。シャボン玉はミ リメートル以下の薄い水の幕を持ち、膜の中を光が通過して屈折、反射を起こす事図 2.1: 構造色を放つ DVD-R で複数の光が重なり合い、干渉が起こる。図 2.2 に薄膜のモデルを示す。n0は空気中 の屈折率、n1は薄膜の屈折率であり、d は薄膜の厚さである。また平行光源からの 光を想定し、光 A、光 A0の 2 つの光による干渉を考える。光は A → B → C → D → E のように薄膜中を通って反射する経路と、A0→ B0→ D → E のように薄膜表面で 反射する経路の 2 つの異なる道筋を描く。光が屈折、反射を起こす事で光路 DE で光が重なり、干渉現象が発生する。2 つの光の道筋を比較したとき、光が通った 道筋に差が生じている事がわかる。この光の道筋の差を光路差と呼び、図 2.2 の場 合、光路 BCD が光路差となる。光路差が生じる事で、光の波の位相がずれて 2 つ の光が重なり合ったときに干渉が生じる。 ここで、光路差 ∆ は式 (2.1) となる。 ∆ = n1(BC + CD)− n0・B0D (2.1) さらに、スネルの法則を用いて式 (2.1) を整理する。スネルの法則は式 (2.2) である。 sin θi sin θr = n1 n0 (2.2) 式 (2.1)、及び式 (2.2) より、光路差 ∆ は式 (2.3) となる。ここで登場する θi、θr、θo
図 2.2: 薄膜による光の干渉モデル はそれぞれ光源からの光の入射角、屈折角、視点の方向ベクトルの入射角である。 ∆ = d (√ n2 1− n20sin 2θ i+ n2 1 − n20sin θisin θo √ n2 1− n20sin 2θ o ) (2.3)
2.3
構造色表現手法
構造色を CG 上で再現する事を目標にした研究は数多く存在するが、その中で も高速かつフォトリアルな画像を生成する事に成功した研究として、佐伯らの構 造色レンダリング手法がある。佐伯らの手法では、構造色の色情報を求める為に、 数式から光路差、及び光の波長を計算している。事前に数式の計算結果をまとめ たデータベースを作成し、映像の描画を行う際に利用する。データベースを通じ て計算結果を読み出す事で数式の計算処理を省略し、処理の高速化に成功した。 光路差をデータベース化するに当たって、光源位置および視点位置を入力とす るモデルを考える。本手法ではデータベースを使用するとき、テクスチャ座標 [13] を用いて値を参照する。テクスチャ座標を (U, V )、形状の法線方向のベクトルを N、光源の方向ベクトルを L、視点の方向ベクトルを E とする。各ベクトルと座標をまとめたものを図 2.3 に示す。 図 2.3: 光源位置と視点位置 ここで法線ベクトル N と光源方向ベクトルが成す角を θi、法線ベクトル N と視 点方向ベクトルが成す角を θoとする。光路差を算出する為に実際に入力値として 扱われるのは θi、θo、およびテクスチャ座標 (U, V ) である。 佐伯らは光路差の計算結果をまとめたデータベースの形式に画像を採用した。光 路差の結果をまとめたデータベース画像を光路差テクスチャと呼ぶ。さらに、光 路差テクスチャを視点・光源依存テクスチャ、場所依存テクスチャに分けて定義 する。視点・光源依存テクスチャは、光源の方向ベクトルに依存する角度である θi、および視点方向ベクトルに依存する角度 θoを入力する事で、対応する光路差 の値を出力する。場所依存テクスチャは、薄膜などの微細構造の場合、膜の厚み 等の光路差に変化を与える任意の値を格納しておき、視点・光源依存テクスチャ から出力した光路差の値に掛けて使用する。ただし、厚みが一定の薄膜など、光 路差の値が参照する位置による影響を受けない場合、場所依存テクスチャは省略
可能である。 次に、光路差から色情報を求める。ここで、色情報を表すデータベース画像を構 造色テクスチャと呼ぶ。色情報についても視点の位置に依存する角度から得られ た光路差、光源の位置に依存する角度から得られた光路差を入力し、色情報を出 力するようにデータベース画像を作る。出力する色情報の形式は RGB 表色系の情 報である。RGB 表色系とは光の色を赤、青、緑の 3 色を使用して表す形式である。 光路差は光の波の位相に影響を与える値である為、光路差から色情報を表す為 には光の波長から計算する必要がある。複数の波による干渉光を表す場合、n 個の 波 f による干渉波を表す数式は式 (2.4) である。ここで登場する A は振幅、(ωt + δ) は波の位相である。 f1 = A1cos(ωt + δ1) f2 = A2cos(ωt + δ2) … fn = Ancos(ωt + δn) I(λ) = n ∑ i=1 A2i + n ∑ i=1 n ∑ j=i+1 AiAjcos(δi− δj) (2.4) I(λ)は干渉波のスペクトル分布であり、λ は光の波長を表す。δ は各波の位相差で あり、波長 λ と光路差 ∆ から求める。δ を求める式は式 (2.5) である。 δ = 2π· ∆ λ (2.5) ここで、求めたスペクトル分布 I(λ) を RGB 表色系の色情報に変換する為に、一 度 XYZ 表色系 [14] [15] の色情報に変換する。XYZ 表色系とは、光の波長及び等 色関数から正確な色情報を表す為の表色系であり、可視領域にある光の波を積分 する事で求める事が出来る。光の波の可視領域は 360∼800nm の範囲である。式
(2.6)は XYZ 表色系の X 成分について求めた式である。 X = ∫ 800 360 I(λ)Iin(λ)¯x(λ)dλ = C n ∑ i=1 A2i + n ∑ i=1 n ∑ j=i+1 AiAjVij(∆ij) (2.6) また、C、Vij(∆ij)は式 (2.7) である。 C = ∫ 800 360 Iin(λ)¯x(λ)dλ Vij(∆ij) = ∫ 800 360 cos ( 2π λ ∆ij ) Iin(λ)¯x(λ)dλ (2.7) Iin(λ)は入射光、つまり光源が放った光のスペクトル分布、¯x(λ)は等色関数を表 す。残りの Y 成分 Z 成分についても同様の式を使って求め、RGB 表色系への変換 式 [16] [17] に代入する事で、RGB の値を求める事が出来る。 先行研究の実装例として、薄膜による干渉現象であるシャボン玉の例を取り上 げる。視点・光源依存テクスチャは薄膜の光路差を求める式 (2.3) を基に作成する。 光源のスペクトル分布 Iin(λ)に、標準光源 D65 [18] のスペクトルを使用し、水 の屈折率を 1.33 として数式に代入する。標準光源 D65 とは、国際照明委員会 CIE が定めた光の色を正確に再現するときに使用する、測定用の人工光源である。ま た水の質感を表すためにフレネル反射を再現する。フレネル反射とは物体に入射 する光の角度が変化することで、反射する光の強さが変化する現象である。数式 (2.6)の振幅 A に、光源の方向ベクトル、および視点の方向ベクトルと法線の成す 角 θ を変数とするフレネルの数式を代入して、θ によって反射光の強さが変化する ようにする。フレネルの表現の式は式 (2.8) である。ここで表す、Rpは入射面に平 行な方向に振動する光の反射率、Rsは入射面に垂直な方向に振動する光の反射率 である。また、θi、θtは、それぞれ光の入射角と屈折角である。Rp及び Rsの平均 値 r を A に代入する。
Rp = tan2(θ i− θt) tan2(θ i+ θt) Rs = sin2(θi− θt) sin2(θi+ θt) r = Rp+ Rs 2 (2.8) 実装に使用した光路差テクスチャ、構造色テクスチャを作成した結果および最終 的に得られたシャボン玉の画像を図に示す。図 2.4 は場所依存テクスチャ、図 2.5 は視点・光源依存テクスチャ、図 2.6 は構造色テクスチャ、図 2.7 はシャボン玉の 描画結果である。
図 2.4: 場所依存テクスチャ 図 2.5: 視点・光源依存テクスチャ
第
3
章
構造色表現手法の拡張
本章では、現状での構造色表現手法を拡張する手法について提案し、提案する 内容と、具体的な実装方法について述べる。3.1
手法の提案
第 2 章で述べた佐伯らの構造色表現手法は高速かつフォトリアルな画像を出力 することに成功している。しかし、構造色の内容は構造色テクスチャに依存して いる。構造色テクスチャは、決まった状態の色情報をまとめたデータベースであ る為、物体の構造色を表す情報が変化した時、新たに構造色テクスチャを計算し 直さなければならない。構造色の情報の変化に合わせて、構造色テクスチャを計 算し直す場合、色情報を表す為の積分計算等をやり直すことになり、処理にかか る時間が増大してしまう。 ここで佐伯らの手法を基に、構造色を表す情報の変化に対応した構造色の表現 手法を提案する。本研究では構造色の情報が時間の経過によって変化する物体の 例としてシャボン玉に着目し、薄膜厚みの動的変化を考慮した構造色描画手法と して研究を進める。構造色の色情報は光路差を用いる事で表す事が出来る。光路 差は 2.3 節より入射角 θi及び、反射角 θoの 2 つの変数から表す事が可能だが、他 の構造色の情報を表す変数 α を追加する事で、色情報に視点や光源の角度以外の情報を加える。α を光路差の要素として加える事で、光路差を表す変数が 3 つに なり、構造色テクスチャを 3 次元化する。α の値に応じた色情報を事前に求める事 で、微細構造の変化に応じた構造色表現が可能になる。図 3.1 は、3 次元化した構 造色テクスチャのイメージ図である。 図 3.1: 3 次元化した構造色テクスチャのイメージ図
3.2
実装内容
本手法は佐伯らの研究を基にしている為、構造色を表すデータベースを作成す る必要がある。佐伯らは作成したデータベース画像をテクスチャと命名したが、テ クスチャという単語は 3 次元形状に模様をつけるために使用する 2 次元画像を指 し示す事が多く、データベースという意味を持たない。本研究では誤解を避ける ため、視点・光源依存テクスチャ、場所依存テクスチャ、構造色テクスチャをそれ ぞれ、視点・光源依存データベース、場所依存データベース、構造色データベー スと呼ぶ。実装にはリアルタイムに構造色を表す情報が変わる物体の例としてシャボン玉 を描画する。シャボン玉は水で出来ている為、徐々に蒸発し、膜の厚さが変化す る特徴をもつ。本手法を用いて時間の経過でシャボン玉の膜が変化する様子を再 現する。 構造色のモデルに薄膜モデルを使用し、薄膜の干渉に対応するデータベースを 作成する。佐伯らと同じくデータベースから構造色の色情報を参照する事で、光 路差の計算時間を省略し、リアルタイムに描画処理を行う事を可能にする。 初めに視点・光源依存データベースを作成する。式 (2.3) を基に、薄膜の光路差 を求める数式を入射角 sin θiに依存する入射光成分と、反射角 sin θoに依存する反 射光成分に分解する。式 (3.1) 及び式 (3.2) は光路差を入射光成分 ∆iと反射光成分 ∆oに分解した式である。 ∆i = n2 1− 2n20sin 2θ i √ n2 1− n20sin2θi (3.1) ∆o = n2 1 √ n2 1− n20sin2θo (3.2) n0及び n1はそれぞれ、空気中の屈折率と薄膜の屈折率である。式 (3.1) 及び式 (3.2) は、屈折率 n0及び n1を設定してしまえば、変数が入射角 sin θiと反射角 sin θoの みとなる。ここで、式 (3.1)、式 (3.2) 及び、図 2.3 を基にデータベース画像を作成 する。視点・光源依存データベースを作成する時、入射角 θiと反射角 θoを用いて 対応する値を参照出来るようにする。視点・光源依存データベースは、佐伯らの 提案モデルと同様に、画像の左半分を入射光成分、右半分を反射光成分に分けて 作成する。光源位置、及び視点位置の角度から求めた光路差の計算結果を 0 から 1の値に正規化し、グレースケールの 1 次元画像として保存する。視点・光源依存 データベースの座標軸を図 3.2 に示す。 次に構造色データベースを作成する。ここで、佐伯らが提案した構造色データ ベースに、構造色の情報を表す変数 α を要素に加える。今回の実装では薄膜モデ ルを用いる為、薄膜の厚さを表す情報が必要になる。式 (2.3) の薄膜の厚さを表す
図 3.2: 視点・光源依存データベースの座標軸 変数 d を変数 α に代入し、薄膜の厚さの変化を受けて、構造色の色味が変化する ようにする。構造色の色情報を表す式 (2.6) に、光路差を表す変数 ∆ があるが、変 数 ∆ には、式 (2.3)、式 (3.1)、式 (3.2) より、式 (2.6) に次の式 (3.3) を代入する。 ∆ = α (∆i+ ∆o) (3.3) 式 (3.3) を用いる事で、薄膜の厚さ情報を操作出来るようになる為、操作する厚さ の値域に対応する分だけ、構造色データベースを作成する。 色情報を作成する為に使用する入射光のスペクトルは、標準光源 D65 の値を用 いる。XYZ 表色系の色情報は X 成分、Y 成分、Z 成分の 3 つから成り立ち、式 (2.6) より求める。等色関数 ¯x(λ)を X 成分に関するものから、Y 成分 ¯y(λ)、及び Z 成 分 ¯z(λ)に変更する事で、各成分の値を求める。XYZ 表色系の色情報を求めた後、 RGB表色系の変換式を用いて値を画像化する。使用した RGB 変換式は式 (3.4) で
ある。 R G B = 3.240479 −1.537150 −0.498535 −0.969256 1.875992 0.041556 0.055648 −0.204043 1.057311 X Y Z (3.4) 構造色データベースの座標軸を図 3.3 に示す。 図 3.3: 構造色データベースの座標軸 図 3.4: 場所依存データベースの座標軸 続いて場所依存データベースを作成する。0 から 1 の値に正規化し、グレース ケールの画像として任意の情報を書き込む。データベースの値を参照する為に用 いる画像の座標軸は横軸を U、縦軸を V とする。場所依存データベースの座標軸 を図 3.4 に示す。 佐伯らの提案手法では、場所依存データベースは光路差の値をずらして、色むら を与える為の追加要素として使用していたが、本手法では、場所依存データベー スは式 (3.3) の変数 α の値を参照する為に用いる。
第
4
章
動作の検証
本章では第 3 章で提案した手法を基に実験した結果を示す。4.1
実験環境
本手法を検証する為に使用した環境を表 4.1 に示す。 表 4.1: 実行環境OS Microsoft Windows XP Service Pack 3 CPU Intel Core2 Duo CPU E8500 3.16GHz GPU NVIDIA GeForce 9800 GTX Memory 3.25GB
実装には 3D グラフィクス API である OpenGL [19] 、及び OpenGL を基にした 3DCGツールキットである FK ToolKit System [20] を使用し、シェーダ言語には NVIDIA社の Cg 言語 [21] を使用した。
4.2
実験結果
3.2 節の手法に基づき、視点・光源依存データベース、構造色データベース、場 所依存データベースを作成する。今回の実験ではシャボン玉の膜の厚さは 10nm から 1000nm まで変化すると仮定して、10nm 毎に分割した構造色データベースを100作成した。作成した 100 の構造色データベースは縦に 10 ずつ、横 10 にずつ並 べ、画面左下に 10nm の構造色データベースを設定する。右に移る毎に膜の厚さ を 10nm 加算、上の段に移る毎に 100nm 加算するようにした。 作成した視点・光源依存データベースを図 4.1 場所依存データベースを図 4.2 構 造色データベースを図 4.3 構造色データベースの配置図を図 4.4 に示す。 図 4.1: 視点・光源依存データベース 図 4.2: 場所依存データベース 図 4.3: 構造色データベース 図 4.4: 構造色データベースの配置 初めに 3 次元空間に配置した単純な平面に、本手法を適用した。場所依存デー タベースは適用せず、時間の経過で薄膜の厚さが変化するように調整し、シミュ レートを行った。厚みが薄くなる部分では、透明度を上げて色味が薄くなるよう
設定した。光源や視点の位置によって構造色の色味が変化するだけでなく、膜の 厚さの変化によっても色味が変化する様子を表す事が出来た。 実験結果を次の図に示す。図 4.5 は 250nm のとき、図 4.6 は 400nm のとき、図 4.7は 550nm のとき、図 4.8 は 700nm のとき、図 4.9 は 850nm のとき、図 4.10 は 1000nmのときの結果である。 図 4.5: 平面での実験 (250nm) 図 4.6: 平面での実験 (400nm) 図 4.7: 平面での実験 (550nm) 図 4.8: 平面での実験 (700nm)
図 4.9: 平面での実験 (850nm) 図 4.10: 平面での実験 (1000nm) 続いて、球体に本手法を適用して実験を行った。この実験では場所依存データ ベースを適用し、さらに時間経過で厚みが変化するようにした。また、シャボン 玉のような動きを再現する為、球体に対して拡大・縮小、回転を行うように設定 し、シミュレートを行った。 実験結果を次の図に示す。図 4.11 は 250nm のとき、図 4.12 は 400nm のとき、図 4.13は 550nm のとき、図 4.14 は 700nm のとき、図 4.15 は 850nm のとき、図 4.16 は 1000nm のときの結果である。 図 4.11: 球体での実験 (250nm) 図 4.12: 球体での実験 (400nm)
図 4.13: 球体での実験 (550nm) 図 4.14: 球体での実験 (700nm) 図 4.15: 球体での実験 (850nm) 図 4.16: 球体での実験 (1000nm) 本手法は佐伯らの手法を基にしている為、佐伯らの手法と同様にどんな形状に 対しても適用可能である。次に示す図 4.17 及び、図 4.18 では、立方体、また任意 の多面体の例として 10 面体を作成し、本手法を適用した結果である。実験中グラ デーションが荒くなってしまったり、厚みが変化する際に色味が大きく変化する部 分が現れたが、構造色データベースの画素数、また厚み情報に対応する構造色デー タベースの数を増やすことで、より滑らかな映像を作り出すことが可能である。 本研究ではリアルタイム性についても重視している為、画像を出力する処理速 度についても評価を行う。処理速度の計測には 1 秒間に画面を更新する回数を測
図 4.17: 立方体での実験 図 4.18: 10 面体での実験 り、単位を Frame Par Second として表す。以後、Frame Par Second を FPS と省 略して表現する。処理速度の計測結果を表 4.2 に示す。 表 4.2: 処理速度の測定結果 形状 (頂点数) FPS 球体 (878) 1950∼2050FPS 立方体 (1538) 2150∼2250FPS 10面体 (12) 3300∼3320FPS 実験結果より、どの形状を使用した実験においても高速に処理を行うことが可 能と言える。頂点数の多い立方体の処理速度より、球体の処理速度の方が遅いの は、シェーダ内で形状の法線ベクトルを保管している為である。立方体に比べ、曲 面が多い球体は、立方体より多く法線ベクトルの補完を行わなければならない為、 処理速度が遅くなる。 リアルタイムの基準である 60FPS を大きく超えていることから、提案手法のリ アルタイム性は実現できたと言える。
第
5
章
まとめ
本研究では佐伯らの研究を基に、リアルタイム 3DCG における薄膜厚みの動的 変化を考慮した構造色描画手法を提案した。干渉現象によって生じる構造色を佐 伯らの提案手法を用いて計算する事で、現実に起こる干渉現象と酷似した表現を 可能にした。またリアルタイム性についても同時に実現できた。本手法によって、 構造色を表す情報が変化する場合のリアルタイムなシミュレートなどが可能にな り、映像制作などに応用可能である。 本手法はシャボン玉などの薄膜厚みの変化に着目して提案したものだが、色情 報を表す式には、光のスペクトル情報など光路差以外にも変更可能なパラメータ がある。実験では標準光源 D65 のスペクトル情報を採用したが、他にも白熱電球 や蛍光灯のスペクトルなどを用いて構造色データベースを作成する事も可能であ る。スペクトル情報の操作を行う仕組みを追加すれば、光源の変化を考慮した構 造色表現が可能になる。変数 α に代入する値を、微細構造以外の情報に変更した 場合について対応する事が今後の課題である。謝辞
本研究を締めくくるにあたり、研究の指針、手法、論文執筆に至るまでご指導 を頂きました本校メディア学部の渡辺大地講師、また、就職活動など支援して頂 きました本校メディア学部の三上浩司講師に厚く御礼申し上げます。そして、実 装について幾度となく相談に乗って下さった竹内亮太先輩、資料制作について協 力して下さった渡辺賢悟先輩、本校大学院の先輩方、研究室のメンバーに深く感 謝を申し上げます。 最後に、勉学、私生活において常に温かく見守り支えてくれた家族に、この場 を借りて感謝を申し上げます。参考文献
[1] Xin Sun, Kun Zhou, Yanyun Chen, Stephen Lin, Jiaoying Shi, Baining Guo, “Interactive relighting with dynamic brdfs,” SIGGRAPH (2007).
[2] Ivo Ihrke, Gernot Ziegler, Art Tevs, Christian Theobalt, Marcus Magnor, Hans-Peter Seidel, “Eikonal rendering: E cient light transport in refractive objects,” SIGGRAPH (2007).
[3] Jeppe Revall Frisvad, Niels Jorgen Christensen, Henrik Wann Jensen, “Com-puting the scattering properties of participating media using lorenz-mie the-ory,” SIGGRAPH (2007).
[4] Stephane Guy, Cyril Soler, “Graphics gems revisited: fast and physically-based rendering of gemstones,” SIGGRAPH (2004).
[5] 倉繁 宏輔, 横井 茂樹, 鳥脇 純一郎, “コンピュータ・グラフィックスによる宝 石の光条効果の表示に関する検討,” 信学技報 No. 47, pp.55–64 (1986).
[6] 安部 高明, “構造モデルを用いたオパールの遊色現象の再現,” 奈良先端科学技 術大学院大学情報科学研究科修士論文 (2003).
[7] Kei Iwasaki, Keichi Matsuzawa, Tomoyuki Nishita, [Real-time Rendering of
[8] Yinlong Sun, F. David Fracchia, Mark S. Drew, Thomas W. Calvert,
[Ren-dering Iridescent Colors of Optical Disks ] (2000).
[9] 佐伯 昌彦, 井村 誠孝, 安室 善弘, 眞鍋 佳嗣, 千原 國宏, “汎用的な構造色レン ダリング手法,” 奈良先端科学技術大学院大学情報科学研究科修士論文 (2006).
[10] 木下 修一, [特集 構造色総論] (2001).
[11] 神戸 亮, 近藤 泰洋, 梶谷 剛, 宮嵜 博司, 木下 修一, “モルフォ蝶の構造色にか かわる微細構造の解明,” 日本物理学会講演概要集 (2005).
[12] 構造色研究会, [Structural Color ], vol. Vol. 2 (2003).
[13] 中前 栄八郎, 西田 友是, [3次元コンピュータグラフィックス] (1986).
[14] 牟田 淳, [アートのための数学], オーム社 (2008).
[15] 千々岩 英彰, [色彩学概説], 東京大学出版会 (2001).
[16] M.Stokes (Hewlett-Packard), M.Anderson (Microsoft), S.Chandrasekar (Mi-crosoft), and R.Motta (Hewlett-Packard), “A standard default color space for the internet - sRGB. November 5.” http://www.w3.org/Graphics/Color/ sRGB1996.
[17] B.Gralak, G.Tayeb, and S.Enoch, [Morpho butterflies wings color modeled
with lamellar grating theory ], vol. Vol. 9, No. 11 (2001).
[18] “CVRL Color & Vision database.” http://cvision.ucsd.edu/.
[19] “OpenGL.” http://www.opengl.org/.
[20] 渡 辺 大 地, “Fine Kernel Tool Kit System.” http://fktoolkit. sourceforge.jp/.
[21] “Cg Toolkit 2.1 -GPU Sheder Authoring Language-.” http://developer. nvidia.com/object/cg toolkit.html.