(57)【要約】【課題】ライトフィールドカメラで撮影されたライトフィールドデータと同等の画像データを、コンピュータグラフィックスにより生成する。【解決手段】視点101から描画対象となるシーンの方向に、前方クリップ面102、レンズアレイ面103、後方クリップ面104を順に設定する。そして前方クリップ面102において、レンズアレイ面103を構成する複数の小領域(レンズ面)の配置に応じて光線の追跡方向を変化させる。この変化した追跡方向に光線を追跡してレンズアレイ面103と後方クリップ面104の間のシーンを描画することで、ライトフィールドデータと同等のデータが得られる。【選択図】  図2
2015132953.tif 000002
【特許請求の範囲】
【請求項１】
視点から光線追跡を行ってシーンを描画する画像処理装置であって、
視点から描画対象となるシーンの方向に、第1面、第2面、第3面を順に設定し、前記第1面において、前記第2面を構成する複数の小領域の配置に応じて光線の追跡方向を変化させる制御手段と、
前記変化した追跡方向に光線を追跡する追跡手段と、
前記追跡手段による追跡結果に基づいて前記第2面と前記第3面の間のシーンを描画する描画手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記第1面に交差した光線の追跡方向を、該交差位置から、該交差位置に対応する前記第2面の小領域における特定の点を結ぶ方向に変化させることを特徴とする請求項1に記載の画像処理装置。
【請求項３】
前記第1面は複数のセルに分割され、
前記制御手段は、前記第1面に交差した光線の追跡方向を、該交差位置から、該交差位置が属するセルに対応する前記第2面の小領域における特定の点を結ぶ方向に変化させることを特徴とする請求項1または2に記載の画像処理装置。
【請求項４】
前記追跡手段は、前記第1面において前記セルに内接する円領域を通過した光線のみを追跡することを特徴とする請求項3に記載の画像処理装置。
【請求項５】
前記特定の点は、小領域の中心であることを特徴とする請求項2乃至4のいずれか1項に記載の画像処理装置。
【請求項６】
前記特定の点は、小領域毎に位置が異なることを特徴とする請求項2乃至4のいずれか1項に記載の画像処理装置。
【請求項７】
さらに、前記複数の小領域の構成情報を取得する取得手段を有し、
前記制御手段は、前記第1面における前記交差位置と前記構成情報から、前記交差位置に対応する前記第2面の小領域を決定することを特徴とする請求項2乃至6のいずれか1項に記載の画像処理装置。
【請求項８】
前記構成情報は、前記第2面の小領域ごとに、前記特定の点を規定する情報を含むことを特徴とする請求項7に記載の画像処理装置。
【請求項９】
前記制御手段は、前記第1面における特定の点に交差した光線の追跡方向を、該交差位置から前記交差位置に対応する前記第2面の小領域における点を結ぶ方向に変化させることを特徴とする請求項1に記載の画像処理装置。
【請求項１０】
前記制御手段は、前記交差位置に対応する前記第2面の小領域における点をランダムに決定することを特徴とする請求項9に記載の画像処理装置。
【請求項１１】
前記第1面は複数のセルに分割され、
前記制御手段は、前記第1面のセルにおける特定の点に交差した光線の追跡方向を、該交差位置から前記セルに対応する前記第2面の小領域における点を結ぶ方向に変化させることを特徴とする請求項9または10に記載の画像処理装置。
【請求項１２】
前記第1面のセルにおける特定の点は、該セルの中心であることを特徴とする請求項9乃至11のいずれか1項に記載の画像処理装置。
【請求項１３】
さらに、前記複数の小領域の構成情報を取得する取得手段を有し、
前記制御手段は、前記第1面における前記交差位置と前記構成情報から、前記交差位置に対応する前記第2面の小領域を決定することを特徴とする請求項9乃至12のいずれか1項に記載の画像処理装置。
【請求項１４】
制御手段、追跡手段、描画手段を有し、視点から光線追跡を行ってシーンを描画する画像処理装置における画像処理方法であって、
前記制御手段が、視点から描画対象となるシーンの方向に、第1面、第2面、第3面を順に設定し、前記第1面において、前記第2面を構成する複数の小領域の配置に応じて光線の追跡方向を変化させ、
前記追跡手段が、前記変化した追跡方向に光線を追跡し、
前記描画手段が、前記追跡手段による追跡結果に基づいて前記第2面と前記第3面の間のシーンを描画することを特徴とする画像処理方法。
【請求項１５】
コンピュータを請求項1から請求項13の何れか一項に記載された画像処理装置の各手段として機能させるためのプログラム。
【請求項１６】
請求項15に記載されたプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光線を追跡してシーンを描画する画像処理に関する。
【背景技術】
【０００２】
近年、空間における光線の方向と強度の情報(以下、ライトフィールドデータ)に基づいて画像データを生成する、コンピュテーショナルフォトグラフィという技術が提案されている(例えば、非特許文献1参照)。この技術を用いれば、ピント調整した画像データを撮像後に生成できるため、撮像時のピント調整の失敗を画像処理で補うことができるという利点がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】R.NG,M.Levoy,M.Bredif,G.Duval,M.Horowitz,P.Hanrahan,"Light Field Photography with a Hand-held Plenoptic Camera"(Stanford Tech ReportCTSR 2005-02,2005)
【非特許文献２】Steven G.Parker et al,"OptiX(TM)：A General Purpose Ray Tracing Engine"(nvidia, Williams  College)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュテーショナルフォトグラフィでは、ライトフィールドカメラを用いることで、撮影後にピント調整を施したデータが得られる。ライトフィールドカメラとしては、例えば撮像素子の前面にマイクロレンズアレイを配置したPlaneopticカメラや、多数の撮像素子とレンズの組み合わせを束ねた多眼カメラが挙げられる。
【０００５】
上記のピント調整後の画像に対し、コンピュータグラフィックスレンダリング(以下、CGレンダリング)の手法を用いて作成した画像(以下、CG画像)を合成したい場合が考えられる。このとき、ライトフィールドデータを用いずにCGレンダリングを行う場合は、あらゆる焦点距離にピントを合わせた画像データを用意する必要がある。しかしこのような場合、CG画像の作成には非常に時間がかかってしまうため、あらゆる焦点距離にピントに合わせた画像データを用意することは得策ではない。
【０００６】
そこで、CGレンダリング手法を用いて、ライトフィールドカメラによる撮影と同等のライトフィールドデータを作成し、このライトフィールドデータを用いることでコンピュテーショナルフォトグラフィと合成しやすいCG画像を作成することが望ましい。
【０００７】
CGレンダリング手法によりライトフィールドデータを作成する方法として、非特許文献2に示す方法がある。しかしながらこの方法では、ライトフィールドデータを画像の各画素につき1本の光線から生成しているため、撮影したライトフィールドデータと合成するには品質が十分ではない。
【０００８】
本発明は上述した問題を解決するために、ライトフィールドカメラで撮影されたライトフィールドデータと同等の画像データを、コンピュータグラフィックスにより生成することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための一手段として、本発明の画像処理装置は以下の構成を備える。すなわち、視点から光線追跡を行ってシーンを描画する画像処理装置であって、視点から描画対象となるシーンの方向に、第1面、第2面、第3面を順に設定し、前記第1面において、前記第2面を構成する複数の小領域の配置に応じて光線の追跡方向を変化させる制御手段と、前記変化した追跡方向に光線を追跡する追跡手段と、前記追跡手段による追跡結果に基づいて前記第2面と前記第3面の間のシーンを描画する描画手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ライトフィールドカメラで撮影されたライトフィールドデータと同等の画像データを、コンピュータグラフィックスにより生成することができる。
【図面の簡単な説明】
【００１１】
【図１】レイトレーシングによるレンダリングの例を示す図
【図２】第1実施形態において光線方向が変化する様子を示す図
【図３】ライトフィールドの再現例を示す図
【図４】第1実施形態における画像処理装置の構成例を示す図
【図５】分光放射輝度の算出処理を示すフローチャート
【図６】光線追跡処理を示すフローチャート
【図７】光線変化方向計算処理を示すフローチャート
【図８】レンズアレイ面の構成例を示す図
【図９】第2実施形態において光線方向が変化する様子を示す図
【図１０】分光放射輝度の算出処理を示すフローチャート
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
＜第1実施形態＞
本実施形態では、CGレンダリングにより作成されたライトフィールドデータとして、レイトレーシング法を用いたライトフィールドCG画像を生成する画像処理方法について説明する。
【００１４】
●光線挙動
まず、本実施形態のレイトレーシング法における光線挙動を、図1を用いて説明する。
【００１５】
一般的なレイトレーシングでは、シーンを観察する視点としてのカメラ101から光線105を逆追跡する。そして、前方クリップ面102から後方クリップ面104までの間に衝突したオブジェクトや光源の色に基づいて、前方クリップ面102のある点での光線105の強さを決定する。描画結果を例えば800×600画素で表示する場合、前方クリップ面102を800×600のセルに分割し、視点101から各画素の中心を結ぶ線分を光線とする。なお、前方クリップ面102のセルは、描画する画像の画素に対応する。セルごとに光線105の強さを計算することで、前方クリップ面102での光の強さ、すなわちCGを描画(レンダリング)することができる。
【００１６】
本実施形態では、前方クリップ面102と後方クリップ面104の間に、レンズアレイ面103を設ける。レンズアレイ面103は、いわゆるライトフィールドカメラにおけるマイクロレンズアレイに相当する光線変化面として作用する。レンズアレイ面103を通過した光線105は、前方クリップ面102およびレンズアレイ面103との交差位置に応じて、光線の進行方向を変化させる。このため、レンズアレイ面103は、前方クリップ面102と後方クリップ面104の間に設置される必要がある。また、ライトフィールドデータとしてレンダリング可能とするために、レンズアレイ面103から後方クリップ面104までの範囲にオブジェクト等のシーンデータを配置する必要がある。
【００１７】
このように本実施形態では、レンズアレイ面103と後方クリップ面104の間が実質的な描画範囲となるため、レンズアレイ面103が、レイトレーシングによる描画範囲の前方クリップ面に相当する。言い換えれば本実施形態では、視点101から描画対象となるシーンの方向に、第1面、第2面、第3面を順に設定し、第1面と第2面での光線の交差位置に応じて追跡方向を変化させることで、第2面と第3面の間のシーンを描画する。すなわち図1において、前方クリップ面102が第1面、レンズアレイ面103が第2面、後方クリップ面104が第3面にそれぞれ相当する。
【００１８】
また、本実施形態では前方クリップ面102において光線の追跡方向を変更するが、以下では説明の簡便のため、この追跡方向を光線方向とも表現する。すなわち、視点からの光線方向を変更するものとして説明する。
【００１９】
図2は、カメラ101から射出された光線が前方クリップ面102に当たった後に、進行方向を変化させる様子を示す模式図である。図2においてセル毎に点線で示すように、光線は前方クリップ面102に衝突した後、該衝突したセルに対応付けられたレンズアレイ面103のレンズ面に応じて進行方向を変化させ、後方クリップ面104のある範囲(例えば領域401)内に収まる。この後方クリップ面104上で光線が到達する領域、すなわち光線進行方向の変化する領域(以下、光線進行範囲)の大きさは、前方クリップ面102上でのセルの大きさによって決定される。これは、一般にCGレンダリングにおいては、前方クリップ面のある1セルに対し、光線1本ではなく、複数の光線を用いて光のエネルギーを決定しているためである。セル内での光線の通過位置を少しずつ変えることによって、高精細なレンダリング結果が得られる。本実施形態においても、前方クリップ面102での光線の通過位置を少しずつ変えることによって、レンズアレイ面103を通過した光線が後方クリップ面104上に到達する位置が、所定の光線進行範囲内で変化する。この変化の詳細については後述する。
【００２０】
後方クリップ面104上の領域402に示すように、光線進行範囲は、光線の変化方向によっては他の光線進行範囲(図2の例では領域401)とも重なる。このような光線進行範囲の重なりにより、ライトフィールドカメラでのマイクロレンズアレイを介した撮影画像を再現することができる。
【００２１】
次に図3を用いて、本実施形態の画像処理装置におけるライトフィールドの再現方法の概要を説明する。一般にパストレーシング法での光線追跡は、カメラから光源へ、光線を逆追跡することによって物体の色を計算する。図3において、カメラ101が光線の追跡開始位置であり、カメラ101と前方クリップ面102とを結ぶ線が、光線の追跡方向となる。光線は、前方クリップ面102での衝突位置によって、レンズアレイ面103への衝突位置が規定され、光線の方向が変化する。そして、方向が変化した光線が後方クリップ面104に到達したら光線の追跡を終了し、背景の色を参照する。
【００２２】
前方クリップ面102とレンズアレイ面103で追跡方向が変化した光線の一部は、オブジェクト301に衝突して反射した後、光源302へ衝突することによって光の強さが算出できる。
【００２３】
光線の前方クリップ面102での衝突位置、およびレンズアレイ面103での衝突位置によって光線の変化方向が規定されるため、前方クリップ面102を構成する各セルには、限られた範囲からの光線しか入射しない。このため、各セルの値は、光の入射方向も記録した情報となる。
【００２４】
このようにレンズアレイ面103で変化する光線によってレンダリングされたCG画像は、ライトフィールドカメラで撮影された画像と同様、光の入射方向を記録した情報となる。
【００２５】
光の入射方向だけでなく、色も正確に再現するためには、光源302から発せられる光線のすべての波長に対して追跡計算を行う必要がある。しかし、すべての波長に対して光線追跡計算を行うことは、計算量の増大を招く。そこで本実施形態では、光線の代表的な波長を抽出し、分光光線追跡の結果に基づき画像を生成する。
【００２６】
●装置構成
図4のブロック図により本実施形態の画像処理を実行する情報処理装置の構成例を示す。
【００２７】
CPU201は、RAMなどのメインメモリ202をワークメモリとして、ROM209や記憶部203に格納されたオペレーティングシステム(OS)やプログラムを実行し、システムバス206を介して後述する構成を制御する。なお、記憶部203は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などであり、後述する色処理を実現するプログラムや各種データを格納する。
【００２８】
USBやIEEE1394などの汎用インタフェイス(I/F)204には、キーボードやマウスなどの操作部207、分光測定器などの測定器208、メモリカードやUSBメモリのような記録媒体210などが接続される。また、ビデオカード(VC)205には、モニタ211が接続される。CPU201は、ユーザインタフェイス(UI)、および、処理経過や処理結果などを示す情報をモニタ211に表示する。
【００２９】
例えば、CPU201は、操作部207を介して入力されるユーザ指示に従い、記憶部203または記録媒体210に格納されたアプリケーションプログラム(AP)をメインメモリ202の所定領域にロードする。そして、APを実行し、APに従いモニタ211にUIを表示する。
【００３０】
次に、CPU201は、ユーザによるUIの操作に従い、記憶部203や記録媒体210に格納された各種データや測定器208から測定データを入力し、メインメモリ202の所定領域にロードする。そして、APに従いメインメモリ202にロードした各種データに所定の演算処理を施す。そして、CPU201は、ユーザによるUIの操作に従い演算処理結果をモニタ211に表示したり、記憶部203や記録媒体210に格納する。
【００３１】
なお、CPU201は、システムバス206に接続された図示しないネットワークI/Fを介して、有線または無線ネットワーク上のサーバ装置との間でプログラム、データ、演算処理結果の送受信を行うこともできる。また、情報処理装置としてタブレット型コンピュータを利用することも可能であり、その場合、モニタ211のスクリーン上に重畳されたタッチパネルが操作部207である。
【００３２】
●画像処理詳細
以下、図1から図3を用いて説明した本実施形態における画像処理の詳細について、図5のフローチャートを用いて説明する。なお、図5に示す処理は、画像生成処理用APに従いCPU201により実行される。
【００３３】
CPU201は、光線追跡計算結果を保持する結果バッファをメインメモリの所定領域に割り当て、結果バッファを初期化(例えば0クリア)する(S501)。結果バッファは、可視光域(380nm〜780nm)の光線追跡結果を保持するバッファである。
【００３４】
次に、CPU201は、処理対象となる注目光線の波長を初期化する(S502)。例えば、注目光線の波長が380nmに初期化され、その後、レンダリングの進捗に伴い、390nm、400nm、…、780nmと10nmピッチでインクリメントされる。
【００３５】
次に、CPU201は、光線追跡対象となるCGシーンデータを読み込む(S503)。そして、光線追跡を行うべき画素位置を設定する(S504)。これは、光線追跡結果を、前方クリップ面102に位置する画像(以下、描画画像)として扱い、前方クリップ面102のセル(描画画像の画素)ごとに光線追跡を行うためである。画素位置は、描画画像の例えば左上からラスタ順に走査されるが、画素位置の設定順はこれに限らない。
【００３６】
次に、CPU201は、詳細は後述するが、注目光線について光線追跡を行い、追跡結果となる分光放射輝度を順次結果バッファへ書き込む(S505)。そして、描画画像の全画素について注目光線の光線追跡が終了したか否かを判定し(S506)、未了であれば処理をS504に戻して、描画画像の全画素で注目光線の光線追跡が終了するまで、S504とS505を繰り返す。
【００３７】
描画画像の全画素で注目光線の光線追跡が終了すると、CPU201は、光線追跡を行う全波長(例えば380-780nm)について光線追跡が終了したか否かを判定する(S507)。未了の場合は注目光線の波長を例えば10mmインクリメントし(S508)、処理をステップ5604に戻して、全波長の光線追跡が終了するまでステップS504からS506を繰り返す。なお、波長のインクリメントピッチは10nmに限らず、より粗い20nmや50nm、あるいは、より細かい5nmなど、装置の処理速度、描画時間、描画精度などに応じてピッチを設定すればよい。
【００３８】
全波長の光線追跡が終了すると、CPU201は、結果バッファに格納された分光放射輝度を出力する(S509)。例えば、CPU201は、分光放射輝度をsRGBなどの画像データに変換し、当該画像データをVC205を介してモニタ211に出力してCGシーンデータに対応する画像を表示する。あるいは、当該画像データを汎用I/F204を介して記録媒体210に格納する。勿論、結果バッファに格納された分光放射輝度は、そのまま画像処理結果として他の装置に出力されたり、記録媒体210に格納されることもある。
【００３９】
●分光放射輝度の変換処理
以下では、画素の分光放射輝度を色信号に変換する処理(S509)について、図10のフローチャートを用いて説明する。なお、以下の説明では、色信号をsRGBとして説明するが、AdobeRGBなどの他の色信号でも構わない。
【００４０】
CPU201は、分光放射輝度を色信号に変換するための視覚特性を取得する(S1101)。具体的には、該視覚特性に対応する変換関数を例えば記憶部203から取得する。当該変換関数は、例えば、CIEXYZ表色系の等色関数x(λ)y(λ)z(λ)である。
【００４１】
次に、CPU201は、結果バッファ701からラスタ順に描画画像の注目画素の分光放射輝度Ex(λ)を取得する(S1102)。そして下式により、等色関数を用いて注目画素の分光放射輝度をCIEXYZ値に変換する(S1103)。
【００４２】
X = k∫Ex(λ)x(λ)d(λ)；
Y = k∫Ex(λ)y(λ)d(λ)；
Z = k∫Ex(λ)z(λ)d(λ)；      …(1)
ここで、kは定数、
積分範囲は例えば380nmから780nm。
【００４３】
次に、CPU201は、下式により、注目画素のCIEXYZ値をRGB信号値に変換し、さらにsRGB信号値に変換する(S1104)。
【００４４】
┌       ┐ ┌                       ┐┌ ┐
│RLinear│ │ 3.2406 -1.5372 -0.4986││X│
│GLinear│=│-0.9689  1.8758  0.0415││Y│      …(2)
│BLinear│ │ 0.0557 -0.2040  1.0570││Z│
└       ┘ └                       ┘└ ┘
if (RLinear≦0.0031308)
R = 12.92・RLinear；
else
R = 1.055・RLinear1.0/2.4 - 0.055；
if (GLinear≦0.0031308)
G = 12.92・GLinear；
else
G = 1.055・GLinear1.0/2.4 - 0.055；
if (BLinear≦0.0031308)
B = 12.92・BLinear；
else
B = 1.055・BLinear1.0/2.4 - 0.055；      …(3)
CPU201は、上記の処理を描画画面の全画素に対して行い、描画画面に対応する画像データを生成する。
【００４５】
●光線追跡処理
以下、S505における光線追跡処理の詳細について、図6のフローチャートを用いて説明する。
【００４６】
図6には一つの注目光線分の光線追跡処理を示すが、図6の処理は、光線ごとに、シーンにおいて、光線が物体(オブジェクト)に当らない、または、光線が光源に当るが検出されるまで、再帰的に呼び出される。そして、光線ごとに算出された分光放射輝度の平均値によって画素の分光放射輝度が決定される。ここでは、波長λの単色光の処理を説明するが、以下の処理を、上記S502またはS508で設定された波長ごとに行うことで、各波長の分光放射輝度が得られる。
【００４７】
CPU201は、追跡の開始点から飛ばした注目光線がシーンに含まれる物体に当る点(以下、衝突点)を探索する(S601)。開始点は画素または衝突点である。なお、衝突点の探索は所望の方法で行えばよく、例えば、シーン内のすべての物体について、注目光線が当る点を順次判定して、開始点に最も近い点を衝突点とすればよい。
【００４８】
次に、CPU201は、注目光線が物体、光源、前方クリップ面のいずれかに当ったか否かの判定(S602)、さらに注目光線が光源に当ったか否かの判定、注目光線が前方クリップ面に当たったか否かの判定(S606)を行う。注目光線が物体、光源、前方クリップ面のいずれにも当らなかった場合は、注目光線の分光放射輝度を0として(S604)、注目光線の追跡を終了する。
【００４９】
また、注目光線が光源に当った場合、CPU201は、下式により、注目光線の強度と光源特性データから、注目光線の分光放射輝度E0(λ)を算出し(S605)、注目光線の追跡を終了する。注目光線の分光放射輝度E0(λ)は、結果バッファに一時保存され、分光放射輝度の変換処理に使用される。
【００５０】
E0(λ) = P0(λ)Q(θ)S(λ)      …(4)
ここで、P0(λ)の注目光線の強度、
θは注目光線の入射角、
Q(θ)は光源のθ方向の配光特性、
S(λ)は光源の分光放射輝度。
【００５１】
光源特性データQ(θ)とS(λ)は、光源における光線の射出方向と光線の強度の関係を表す。従って、衝突点における光源の法線と光源に入射する注目光線がなす角度(入射角)に基づき、光源からの光線の強度が算出される。
【００５２】
また、注目光線が前方クリップ面に当たった場合、CPU201は、詳細は後述するが、注目光線の前方クリップ面への衝突点、およびレンズアレイ面データから、注目光線の変化方向を計算する(S607)。
【００５３】
また、注目光線が物体に当った場合、CPU201は、当該物体の反射特性と透過特性を取得する(S608)。反射特性には、衝突点における物体の法線と物体に入射する注目光線がなす角度（入射角）、並びに、法線と物体から出射する光線がなす角度（出射角）および光線強度の関係が含まれる。
【００５４】
次に、CPU201は、衝突点から飛ばす光線の数を決定し(S609)、一本の光線の方向と強度を算出する(S610)。光線の数は任意であるが、数が多いほどノイズの少ない画像が最終的に得られる。また、拡散反射の場合の光線の方向は均等分布でよく、反射光の強度Pr(λr)と透過光の強度Pt(λt)はそれぞれ次式によって算出される。
【００５５】
Pr(λr) = P0(λi)×fr(x, ωi, λr, ωr)；
Pt(λt) = P0(λi)×ft(x, ωi, λt, ωt)；      …(5)
ここで、P0(λi)は物体に入射する波長λiの光線の強度、
frは物体の反射特性、
ftは物体の透過特性。
【００５６】
一般に、反射光の強度分布は物体の表面形状に依存し、物体表面が平滑なほど、鏡面反射方向すなわちωi=ωr方向の反射強度が強くなり、それ以外の拡散反射方向への反射強度は小さくなる。
【００５７】
反射特性は、記憶部203などから入力してもよいし、測定器208から測定結果を入力してもよい。反射特性のデータ形式は、光の入射角と反射角に対応する物体の反射率が得られれば所望の形式で構わず、例えば、一意の関数でもよい。また、拡散反射は等方的に分布するためωi=45度、ωr=0度の反射特性を拡散反射に適用し、鏡面反射の反射特性は別途用意するテーブルを適用してもよい。
【００５８】
一方、物体の反射特性frは、次式に示すように、双方向反射率分布関数 (bidirectional reflectance distribution function: BRDF)で表される。
【００５９】
fr(x, ωi, λr, ωr) = dLr(x, λr, ωr)/Li(x, λi, ωi)(ωr・n)dω      …(6)
ここで、xは物体上の位置、
ωiは入射角、
λiは入射光線の波長、
Liは入射光線の強度、
ωrは反射角、
λrは出射光線の波長、
Lrは出射光線の強度、
nは法線。
【００６０】
一般に、透過光の強度分布は分光屈折率に依存するため、反射角ωrに代えて式(6)を満たす透過角ωtの場合に透過強度が最大になる。なお、透過特性は、記憶部203などから入力すればよい。透過特性のデータ形式は、光の入射角と屈折角に対応する物体の透過率が得られれば所望の形式で構わず、例えば、一意の関数でもよい。また、ωi=ωr=0度の透過特性をωtが屈折角に等しい場合に適用し、それ以外の透過特性は別途用意するテーブルを適用してもよい。
【００６１】
次に、CPU201は、光線追跡処理を実行する(S611)。つまり、ステップS611において、図6に示す光線追跡処理が光線ごとに再帰的に呼び出され、実行される。そして、CPU201は、ステップS609で設定した光線の数分の光線追跡が終了したか否かを判定し(S612)、未了の場合は処理をステップS610に戻して、光線追跡処理を繰り返す。
【００６２】
●前方クリップ面での光線変化
以下、S607における光線変化方向算出処理の詳細について説明する。本実施形態では、前方クリップ面102での衝突点と、レンズアレイ面データから、光線の変化方向を算出する。
【００６３】
本実施形態のレンズアレイ面103は図8に示すように、複数の小領域の配列によって構成され、小領域毎に中心位置が示されている。この小領域のそれぞれがすなわちレンズ面802であり、各レンズ面802はその中心位置を示す中点データ803を有する。なお各レンズ面802は、一般的なライトフィールドカメラのレンズアレイを構成するレンズに対応する。図8に示すレンズアレイ面103は、描画画像を縦横5分割で量子化した領域に対応するレンズ面802と、それぞれの中点データ803を有し、各レンズ面802およびその中点データ803が、前方クリップ面102の1つまたは複数のセルに対応する。
【００６４】
本実施形態では、カメラ101から前方クリップ面102のあるセルへ射出された光線を、前方クリップ面102での衝突位置と、対応するレンズアレイ面103の中点データ803が示す中点位置とを結んだ光線に変化させて、レンダリングを続行する。この光線の変化の様子を、図2におけるセル毎の点線で示す。以後、物体への衝突や光源への衝突までの光線の振る舞いは、一般的な光線追跡法であるパストレーシング等と同様に実行すればよい。これにより、レンズアレイ面103を通過した光線の再現が可能となる。
【００６５】
また、より高精細なレンダリングを行うには、光線の射出を1画素につき複数回行うことが望ましい。この場合、前方クリップ面102の各セル内で衝突点をランダムに分布させる。これにより、レンズアレイ面103において、各レンズ面802での衝突点が中点のような特定の点に制限されても、レンズアレイ面103を通過後の光線はある一定の範囲内に分布することができる。
【００６６】
なお本実施形態では、レンズ面802での衝突点を中点として説明したが、この衝突点は中点に限らなくてもよく、レンズ面802毎に、該レンズ面内での相対位置がそれぞれ異なるように与えてもよい。こうすることで、よりライトフィールドカメラにおけるレンズアレイと同様のふるまいをさせることができる。
【００６７】
図7は、本実施形態の光線変化方向算出処理を示すフローチャートである。
【００６８】
CPU201は、ROM209や記憶部203などに保存されているレンズアレイ面データを読み出す(S701)。ここでレンズアレイ面データとは、レンズアレイ面103の構成情報を示すデータであり、例えばレンズアレイ面103を構成する各レンズ面802について、その位置情報や中点データ803、さらに前方クリップ面102において対応するセルの情報を示す。
【００６９】
次に、CPU201はレンズアレイ面データに基づいて、レンズアレイ面103への衝突点を決定する(S702)。これにより、光線がどのレンズ面802を通過するか、すなわち、どのレンズ面802の中点データ803を参照すべきかが決定される。例えば、レンズアレイ面103の左上端の1つのレンズ面802が前方クリップ面102の左上端より縦横3セル分に対応付けられていれば、該3セルを通過した光線についてはこのレンズ面802を通過する。したがって該3セルを通過した光線については、この対応付けられたレンズ面802の中点データ803を参照するとして決定される。また、カメラ101から前方クリップ面102の衝突位置への直線の延長線上に位置するレンズ面802を通過するとして、その中点データ803を参照するようにしても構わない。
【００７０】
そしてCPU201は、光線の変化方向すなわち前方クリップ面102における光線の衝突点からレンズ面802への光線方向を計算する(S703)。具体的には、前方クリップ面102の衝突点と、S702で決定した、光線が通過するレンズ面802の中点データ803を結ぶベクトルを、新たな光線方向として算出する。
【００７１】
ここで、前方クリップ面102の1セル中で、複数光線が異なる位置を通過する場合を考える。このとき、前方クリップ面102において光線の通過しうる範囲は、セルと同じ正方形状となる。そしてレンズアレイ面103で該光線はレンズ面802の中点を通過し、その後の光線の通過範囲は、図2の後方クリップ面104上での領域401や402に示される様に正方形状となる。これにより本実施形態では、光線の通過範囲がレンズ形状に依存した円形となる一般的なライトフィールドカメラよりも多くの光情報を取得可能であることが分かる。
【００７２】
なお、描画結果をよりライトフィールドカメラで取得したライトフィールドに近づけたい場合には、前方クリップ面102における光線の通過範囲を、セルに対して内接する円領域に限定すれば良い。また、セルの形状は正方形に限らず、三角形や正六角形等、その他の多角形であっても良い。
【００７３】
以上説明したように本実施形態によれば、分光光線追跡法を用いてライトフィールドCG画像を生成することができる。
【００７４】
＜第2実施形態＞
以下、本発明にかかる第2実施形態の画像処理を説明する。上述した第1実施形態では、光線の進行方向を前方クリップ面とレンズアレイ面によって決定する例を示したが、第2実施形態では、レンズアレイ面を構成するレンズ面の大きさにより光線方向を決定する。第2実施形態において、第1実施形態と略同様の構成については同一符号を付してその詳細な説明を省略し、第1実施形態と異なる点について説明する。
【００７５】
●光線挙動
第2実施形態おける光線挙動について、図9を用いて説明する。図9に示すように第2実施形態では、カメラ101から、前方クリップ面102における各セルの中点903へ、光線を射出する。そして、中点903を通過してレンズアレイ面103へ向かう光線を変化させる。このとき、各中点903は予め、レンズアレイ面103を構成する複数のレンズのいずれかに対応付けられており、各中点903を通過した光線は対応付けられたレンズ面に向かうように変化する。このような中点903からレンズアレイ面103上の対応付けられたレンズ面へ、光線をランダムに変化させることを繰り返すことによって、ライトフィールドCGをレンダリングすることができる。
【００７６】
●前方クリップ面での光線変化
第2実施形態においても図6に示す光線追跡処理を行うが、S607の光線変化方向算出処理の内容が第1実施形態とは異なる。具体的にはS607において、前方クリップ面の中点903と、レンズアレイ面103の対応付けられたレンズ面の範囲との間で、ランダムに光線方向を決定する。
【００７７】
第2実施形態における光線変化方向算出処理も、その流れは第1実施形態で示した図7のフローチャートに従うが、内容が異なる。すなわち、まずS701でCPU201が、ROM209や記憶部203などに保存されているレンズアレイ面データを読み出す。第2実施形態のレンズアレイ面データは、レンズアレイ面103構成する各レンズ面802について、その領域情報や、前方クリップ面102において対応するセルの中点903の情報を示す。ここではさらに、レンズアレイ面データから、前方クリップ面102において光線の射出点であるセルの中点903に対応付けられた、レンズ面802の領域情報を抽出しておく。
【００７８】
S702でCPU201は、レンズアレイ面103への衝突点を決定する。例えば、S701で抽出されたレンズ面802においてどの位置を衝突点にするかを、ランダムに決定すればよい。したがって、レンズ面802の領域(サイズ)が大きいほど、衝突点を設定しうる範囲が大きくなる。
【００７９】
S703でCPU201は、光線の変化方向を計算する(S703)。具体的には、前方クリップ面102における光線の射出点であるセルの中点903と、S702でランダムに決定されたレンズ面802上の衝突点とを結ぶベクトルを、新たな光線方向として算出する。したがって、レンズ面802の領域(サイズ)が大きいほど、光線方向を拡げることができる。
【００８０】
以上説明したように第2実施形態によれば、レンズ面の大きさによって光線方向を変化させることで、分光光線追跡法を用いたライトフィールドCGレンダリングが可能となる。
【００８１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2015132953.tif 000003
【図２】
2015132953.tif 000004
【図３】
2015132953.tif 000005
【図４】
2015132953.tif 000006
【図５】
2015132953.tif 000007
【図６】
2015132953.tif 000008
【図７】
2015132953.tif 000009
【図８】
2015132953.tif 000010
【図９】
2015132953.tif 000011
【図１０】
2015132953.tif 000012