(57)【要約】【課題】高速演算処理の可能なハードウェアを使用することなく、リアルタイムで高画質の映像を生成する。【解決手段】実時間映像生成装置は、光源からフォトンを散布する演算を行うフォトン散布演算部１１と、散布された各々のフォトンが仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含むフォトン情報を回収する演算を行うフォトン回収演算部１２と、生成された仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分のフォトンを検索するフォトン検索部２２と、検索されたフォトンを追跡して出現部分及び隠蔽部分の各画素の色信号を生成する照度計算部２３と、出現部分及び隠蔽部分の各画素については照度計算部２３により生成された色信号を使用し、出現部分及び隠蔽部分の以外の部分の各画素についてはフォトン回収演算部１２により生成された色信号を使用して、仮想環境映像を生成する合成処理部２４と、を備える。【選択図】図１
2009258785.tif 000002
【特許請求の範囲】
【請求項１】
光源から光を散布する演算を行う光散布演算手段と、
前記光散布演算手段により散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行って、仮想環境の全画素の色信号を生成することで仮想環境映像を生成する光回収演算手段と、
前記光回収演算手段により生成された仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分の光を検索する光検索手段と、
前記光検索手段により検索された光を追跡して物体表面上に衝突したときの位置情報、反射情報を含む光情報を用いて、前記出現部分及び前記隠蔽部分の各画素の色信号を生成する色信号生成手段と、
前記出現部分及び前記隠蔽部分の各画素については前記色信号生成手段により生成された色信号を使用し、前記出現部分及び前記隠蔽部分の以外の部分の各画素については前記光回収演算手段により生成された色信号を使用して、仮想環境映像を生成する映像生成手段と、
を備えた映像生成装置。
【請求項２】
前記光散布演算手段は、所定の時間間隔で光源から光を散布する演算を行うと共に、前記光回収演算手段は、前記所定の時間間隔で散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行う
請求項１に記載の映像生成装置。
【請求項３】
前記光源から散布される光はフォトンである
請求項１または請求項２に記載の映像生成装置。
【請求項４】
前記光源から散布される光は光線である
請求項１または請求項２に記載の映像生成装置。
【請求項５】
コンピュータを、
光源から光を散布する演算を行う光散布演算手段と、
前記光散布演算手段により散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行って、仮想環境の全画素の色信号を生成することで仮想環境映像を生成する光回収演算手段と、
前記光回収演算手段により生成された仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分の光を検索する光検索手段と、
前記光検索手段により検索された光を追跡して物体表面上に衝突したときの位置情報、反射情報を含む光情報を用いて、前記出現部分及び前記隠蔽部分の各画素の色信号を生成する色信号生成手段と、
前記出現部分及び前記隠蔽部分の各画素については前記色信号生成手段により生成された色信号を使用し、前記出現部分及び前記隠蔽部分の以外の部分の各画素については前記光回収演算手段により生成された色信号を使用して、仮想環境映像を生成する映像生成手段と、
して機能させるための映像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像生成装置及びプログラムに関する。
【背景技術】
【０００２】
仮想空間を描画するための技術として様々な物理モデルが提案されている。例えば、物体面上の光の反射をシミュレートするPhoneモデル、Torrance-Sparrowモデルは、物体面上の光での一次反射の影響を模擬できる。
【０００３】
これらの一次反射を考慮したモデルは、光線の演算が非常に少ないため実時間で描画が可能であり、現在様々な場面で利用されている。しかし、現実にはほど遠い質感であり、現実感を与えることはできない。このような問題を解決するために影を考慮することが考えられる。しかし、他の物体から届く二次反射の影響を考慮していないため、質の高い映像を生成するのは非常に困難である。
【０００４】
一方、高次反射を考慮したレンダリング技術は、あらゆる方向に反射する光を追跡するため、現実感の高い映像を生成することができ、映画やゲームなどのオフライン処理によるムービーで多く利用されている。しかし、演算量が膨大であり、リアルタイム性が要求されるアプリケーションでは利用することができない。また、これらの演算を簡易的に行い、リアルタイムで処理する装置が提案されているが、事前に計算して光の影響を考慮するので、移動体が存在するシーンでは適用することができない問題がある。
【０００５】
そこで、物体からの二次反射による影響を考慮したものとして、レイトレーシング法、ラジオシティ法、フォトンマッピング法などのレンダリング技術がある。これらのレンダリング技術は、例えば交通流シミュレータでドライバの視線がどこに行くのかをモデル化するときに利用される。
【０００６】
例えば、フォトンマッピング法は、高次のレンダリング方式の中でも演算量が比較的少なく、光に関するすべての現象を再現でき、映像の質が非常に高い。また、フォトンマッピング法は、光の影響の副作用として生じる影についても処理の中に含まれており、別途、影の形状を生成する必要がない（非特許文献１を参照）。
【０００７】
フォトンマッピング法は、２パスのレンダリング方式であり、１パス目で環境中に光源からフォトン（光子）を飛ばし、２パス目でカメラ方向からランダムサンプリングによってカメラに届く光量をフォトンの数から演算するものである。
【０００８】
しかし、フォトンマッピング法は、２パス目の演算量が膨大になる問題があり、リアルタイムで演算することができなかった。特に、移動体が存在するシーンでは演算量が更に膨大になり、適用できない問題があった。
【０００９】
そこで、フォトンマッピング法において、グラフィックハードウェアを用いて高速に演算する技術が提案されている（非特許文献２を参照）。
【非特許文献１】Ｈｅｎｒｉｋ Ｗａｎｎ  Ｊｅｎｓｅｎ（著）、苗村健（訳）、“フォトンマッピング−実写に迫るコンピュータグラフィックス”、オーム社
【非特許文献２】Purcellら、“フォトンマッピング・オン・プログラマブル・グラフィックス・ハードウェア”、グラフィックス・ハードウェア（２００３）、ｐｐ．４１−５０
【発明の開示】
【発明が解決しようとする課題】
【００１０】
非特許文献２の技術は、フォトンマッピング法によるリアルタイム演算を図っているが、これを実現するには現状のグラフィック・プロセッシング・ユニット（ＧＰＵ：Graphics Processing Unit）の性能に対してあと１００倍ほどの高速な演算能力が必要になり、現実的ではない。
【００１１】
本発明は、上述した課題を解決するために提案されたものであり、高速演算処理の可能なハードウェアを使用することなく、リアルタイムで高画質の映像を生成することができる映像生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
請求項１の発明である映像生成装置は、光源から光を散布する演算を行う光散布演算手段と、前記光散布演算手段により散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行って、仮想環境の全画素の色信号を生成することで仮想環境映像を生成する光回収演算手段と、前記光回収演算により生成された仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分の光を検索する光検索手段と、前記光検索手段により検索された光を追跡して物体表面上に衝突したときの位置情報、反射情報を含む光情報を用いて、前記出現部分及び前記隠蔽部分の各画素の色信号を生成する色信号生成手段と、前記出現部分及び前記隠蔽部分の各画素については前記色信号生成手段により生成された色信号を使用し、前記出現部分及び前記隠蔽部分の以外の部分の各画素については前記光回収演算手段により生成された色信号を使用して、仮想環境映像を生成する映像生成手段と、を備えている。
【００１３】
請求項２の発明は、請求項１に記載の映像生成装置であって、前記光散布演算手段は、所定の時間間隔で光源から光を散布する演算を行うと共に、前記光回収演算手段は、前記所定の時間間隔で散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行う。
【００１４】
請求項３の発明は、請求項１または請求項２に記載の映像生成装置であって、前記光源から散布される光はフォトンである。
【００１５】
請求項４の発明は、請求項１または請求項２に記載の映像生成装置であって、前記光源から散布される光は光線である。
【００１６】
請求項５の発明である映像生成プログラムは、コンピュータを、光源から光を散布する演算を行う光散布演算手段と、前記光散布演算手段により散布された各々の光が仮想環境内の物体表面上に衝突したときの位置情報、反射情報を含む光情報を回収する演算を行って、仮想環境の全画素の色信号を生成することで仮想環境映像を生成する光回収演算手段と、前記光回収演算により生成された仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分の光を検索する光検索手段と、前記光検索手段により検索された光を追跡して物体表面上に衝突したときの位置情報、反射情報を含む光情報を用いて、前記出現部分及び前記隠蔽部分の各画素の色信号を生成する色信号生成手段と、前記出現部分及び前記隠蔽部分の各画素については前記色信号生成手段により生成された色信号を使用し、前記出現部分及び前記隠蔽部分の以外の部分の各画素については前記光回収演算手段により生成された色信号を使用して、仮想環境映像を生成する映像生成手段と、して機能させるためのプログラムである。
【発明の効果】
【００１７】
請求項１及び請求項５の発明によれば、仮想環境映像内に移動体が移動したときに出現する出現部分及び隠蔽される隠蔽部分の光を検索し、検索された光を追跡して物体表面上に衝突したときの位置情報、反射情報を含む光情報を用いて出現部分及び隠蔽部分の各画素の色信号を生成し、その他の部分については既に生成された色信号を用いることにより、移動体の移動により変化する部分のみを演算するので、演算量を大幅に削減して、高画質の映像を生成することができる。
【００１８】
請求項２の発明によれば、光散布演算手段及び光回収演算手段が所定の時間間隔で演算を行うので、差分演算の誤差が蓄積するのを抑制することができる。
【００１９】
請求項３の発明によれば、フォトンマッピング法に適用することができる。
【００２０】
請求項４の発明によれば、レイトレーシング法に適用することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
【００２２】
図１は、本発明の実施の形態に係る実時間映像生成装置の構成を示すブロック図である。実時間映像生成装置は、仮想環境の中を仮想移動体が移動する様子をグラフィックスで再現するための映像をリアルタイムで生成するものであり、３次元環境データに基づいて環境を再現する環境再現部１０と、前フレームと現在フレームとの差分画像についてレンダリングする差分レンダリング部２０と、を備えている。以下では、仮想環境を単に「環境」、仮想移動体を単に「移動体」として説明する。
【００２３】
（環境再現部１０の構成）
環境再現部１０は、例えば図示しない環境データ生成装置で生成された３次元環境データを用いて、フォトンマッピング法により移動体周辺の環境を再現する。なお、環境再現部１０としては、例えばグラフィック・プロセッシング・ユニット（ＧＰＵ：Graphics Processing Unit）が用いられる。ＧＰＵは、膨大なベクトルベータを高速に処理可能なグラフィックハードウェアであり、流体シミュレーションと非常によく適合する。
【００２４】
ここでは、環境中で反射・吸収を繰り返す粒子であるフォトンが使用される。また、環境中の物体は三角形ポリゴンで生成されているものとし、すべてのポリゴンとフォトンとの衝突が判定される。
【００２５】
なお、ＧＰＵは、データを画像として保存し、１回の演算で最大１億画素の演算が可能であるため、約３０００万ポリゴンのデータを１回で演算できる。この数だけあれば十分な画質の環境を提供できる。
【００２６】
環境再現部１０は、２パスのレンダリング方式であるフォトンマッピング法を用いて、１パス目にフォトンを散布する演算処理を行うフォトン散布演算部１１と、２パス目にフォトンを回収する演算処理を行うフォトン回収演算部１２と、を備えている。
【００２７】
フォトン散布演算部１１は、環境データにより特定される環境において、環境内にある光源から位置情報（ｘ，ｙ，ｚ）を有するフォトンを散布する演算処理を行う。フォトンは、散布されると、境内の物体でランダムに反射・吸収を繰り返し、ある物体上で衝突・停留する。そして、フォトン散布演算部１１は、散布された各々のフォトンを追跡し、各フォトンの状況をフォトンマップに格納する。
【００２８】
フォトンマップは、対象となるフォトンについて、停留した物体上の３次元位置情報（ｘ，ｙ，ｚ）、入射方向、フォトンの出力（ＲＧＢ形式）、詳細度、探索距離、反射係数、反射係数などの情報を有している。
【００２９】
フォトン回収演算部１２は、散布された各々のフォトンを回収して照度を計算する。具体的には、フォトン回収演算部１２は、カメラ（定められた視点）からランダムに視線追跡を行い、３次元環境データを用いて、視線が到達する物体表面上の３次元位置情報を求める。そして、フォトン回収演算部１２は、物体表面上の各々の位置（画素）において、カメラに届く照度をその位置にあるフォトンの数及びフォトンマップの情報を用いて演算する。
【００３０】
フォトン回収演算部１２は、例えばフォトンの数をＮ、その場所の反射係数をＰとすると、
Ｉ＝Ｎ・Ｐ
で表される照度Ｉを演算する。これにより、光の直接照射・間接照射、影落ち度などが考慮された照度が得られる。そして、フォトン回収演算部１２は、すべての画素について照度Ｐを演算する。
【００３１】
なお、環境再現部１０は、最初のフレームに対して上述の処理を行い、２フレーム以降では所定の更新タイミングのときに上述の処理を行うとよい。
【００３２】
（差分レンダリング部２０の構成）
差分レンダリング部２０は、移動体の移動演算処理を行う移動体演算部２１と、フォトンを検索するフォトン検索部２２と、照度を計算する照度計算部２３と、合成処理を行う合成処理部２４と、を備えている。
【００３３】
移動体演算部２１は、フレームが変わるごとに、移動体の３次元形状データ、移動方向データ、移動速度データに基づいて、移動体の位置を更新する。
【００３４】
フォトン検索部２２は、移動体演算部２１の演算処理に基づいて移動体がどの程度移動したかを検出し、前フレームに対する現在フレームにおいて、移動体が移動することによって出現する３次元位置のフォトン、隠蔽される３次元位置のフォトンを検索する。
【００３５】
なお、前フレームとは、現在フレームの直前（１つ前）にあるフレームであってもよいし、現在フレームより前にあるフレームであって環境再現部１０により処理のされたフレームであってもよい。
【００３６】
そして、フォトン検索部２２は、検索した各々のフォトンについて、元の位置Ｐ（ｘ，ｙ，ｚ）から単位ベクトルｄ
ｄ＝［１／（ｘ２＋ｙ２＋ｚ２）１／２］×（ｘ，ｙ，ｚ）
に対して追跡を行う。このベクトルが物体と衝突すると、その部分のフォトンの位置情報が更新される。更新される位置情報をＰ’（ｘ’，ｙ’，ｚ’）とすると、次の式が成り立つ。
Ｐ’（ｘ’，ｙ’，ｚ’）＝ａ×ｄ＋Ｐ（ｘ，ｙ，ｚ）
【００３７】
この式は、前フレームで停留していた位置Ｐから、フォトンが放射された単位ベクトル方向ｄにａだけ引き伸ばす処理を意味する。その結果、フォトンが他の物体に衝突するかが計算される。
【００３８】
すなわち、フォトン検索部２２は、新たに出現する又は隠蔽されるフォトンを検索すると、それらのフォトンを再度追跡し、それらのフォトンが停留したときに各フォトンについてのフォトンマップ（位置情報、入射方向、フォトンの出力（ＲＧＢ形式）、反射係数など）を更新する。この場合では、フォトンの位置情報が更新されるだけでなく、フォトンの出力（赤（Ｒ）、緑（Ｇ）、青（Ｂ）の各色情報）、その他のパラメータも更新される。
【００３９】
照度計算部２３は、視線が到達する物体表面上であって、移動体の移動により新たに現れる位置又は隠蔽される位置の３次元位置情報を求め、その各々の位置（画素）において、フォトン検索部２２で検索された各フォトンの新たなフォトンマップを用いて、カメラに届く照度をその位置にあるフォトンの数及びフォトンマップの情報を用いて演算する。すなわち、照度計算部２３は、移動体の移動により新たに現れる位置又は隠蔽される位置において、フォトンの数をＮ、その場所の反射係数をＰとすると、
Ｉ＝Ｎ・Ｐ
で表される照度Ｉを演算する。
【００４０】
合成処理部２４は、環境再現部１０により演算された照度Ｉと、照度計算部２３により演算された照度Ｉとを合成する。具体的には、合成処理部２４は、移動体の移動により新たに現れる位置又は隠蔽される位置については、照度計算部２３により演算された照度Ｉを使用し、移動体の移動があっても変化のない位置については、環境再現部１０により演算された照度Ｉを使用して、現在のフレーム画像全体の照度を演算する。
【００４１】
図２（Ａ）は前フレームを示す図、（Ｂ）は移動体（自動車）が移動することによってフォトンが隠される部分及び移動体で隠れていた部分を示す図、（Ｃ）はフォトンの差分部分を示す図、（Ｄ）は移動体が移動した後の現在フレームを示す図である。フォトンの差分画像については差分レンダリング部２０がレンダリング処理を行い、その他の部分については環境再現部１０がレンダリング処理を行う。このとき、フォトンは１０万〜２０万個使用される。これは、通常の粒子シミュレーションに比べると、１０％ほどの量である。
【００４２】
なお、差分レンダリング部２０による差分計算による映像の更新は誤差が蓄積するおそれがある。そこで、差分レンダリング部２０のバックグランド処理として、環境再現部１０が通常のフォトンマッピング法を用いてフォトンの散布及び回収の演算処理を行うとよい。
【００４３】
図３は、バックグランド処理の更新タイミングを示す図である。なお、数値“１”のときが更新タイミングを示す。同図に示すように、差分レンダリング部２０による差分処理の更新に対して、環境再現部１０によるバックグランド処理の更新は遅くなっている。よって、バックグランド処理の更新が行われると、その次の差分更新のタイミングでフォトンの位置が更新される。
【００４４】
また、上記の処理は、光の影響が所定のサンプリング間隔（例えば１０ｍｓ）では劇的に変化することがない状況を前提にしており、雷などのフラッシュ現象の場合は対象外である。フラッシュ現象の場合は、別途画像ベースのアルゴリズムで処理を行えばよい。
【００４５】
以上のように、本発明の実施の形態に係る実時間映像生成装置は、最初又は所定の更新タイミングにおける前フレームに対しては通常のフォトンマッピング法を用いて映像を生成しておき、その後の処理対象となる現在フレームに対しては前フレームとの差分画像についてのみフォトンマップを更新して新たな映像を生成し、最初に生成しておいた画像と新たな画像を合成する。
【００４６】
これにより、上記実時間映像生成装置は、各フレームの画像全体にフォトンマッピング法を適用するのではなく、最初又は更新タイミング以外のフレームにおいて、移動体の移動により隠れた部分及び現れた部分のみにフォトンマッピング法を用いて映像を生成するので、演算量を大幅に（例えば９０パーセント以上）削減することができ、環境中のあらゆる光線の影響をリアルタイムで処理することができる。
【００４７】
よって、上記実時間映像生成装置は、ドライビングシミュレータに適用された場合は仮想環境の質を劇的に向上させることができ、より忠実に運転安全システムを検証し、被験者実験などを行うことが可能になる。上記実時間映像生成装置は、手術シミュレーション、ゲーム、映画などの様々な分野のコンピュータグラフィックス（ＣＧ）にも適用可能である。
【００４８】
なお、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された範囲内で設計上の変更をされたものにも適用可能であるのは勿論である。
【００４９】
本発明は、フォトンマッピング法に限定されず、例えばレイトレース法（光線追跡法）にも適用可能である。
【００５０】
この場合、実時間映像生成装置のフォトン検索部２２は、フォトンマッピング法において光源からフォトンを追跡する代わりに、カメラ側からレイ（光線）を追跡して、前フレームにおいて移動体と衝突したレイを検索すればよい。更に、フォトン検索部２２は、移動体の移動により出現する又は隠蔽される部分を検出し、それらの部分について前フレームで衝突したレイを更に追跡する。
【００５１】
また、照度計算部２３は、レイと移動体が衝突する部分で照度（ＲＧＢの各色情報）を計算する。このとき、照度計算部２３は、衝突するレイの数とその衝突箇所の反射係数を用いて照度（色情報）を生成すればよい。そして、合成処理部２４は、前フレームの衝突箇所以外の照度と、照度計算部２３により計算された衝突箇所の照度とを合成することで、フレーム全体の照度を計算すればよい。
【００５２】
以上のように、実時間映像生成装置は、レイトレース法の場合、レイが当たった箇所はフォトンと同様に位置情報（ｘ，ｙ，ｚ）を更新するため、その位置のみの照度を計算すればよい。よって、実時間映像生成装置は、カメラ側からすべてのレイを追跡する必要がなく、更新された位置のみのレイを追跡することで、演算量を大幅に削減することができる。また、上記実時間映像生成装置は、バックグランド処理についても上記と同様に、更新タイミングにおいて更新を示す信号を発生することにより、差分更新時に通常方式の位置情報を更新すればよい。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態に係る実時間映像生成装置の構成を示すブロック図である。
【図２】（Ａ）は前フレームを示す図、（Ｂ）は移動体（自動車）が移動することによってフォトンが隠される部分及び移動体で隠れていた部分を示す図、（Ｃ）はフォトンの差分部分を示す図、（Ｄ）は移動体が移動した後の現在フレームを示す図である。
【図３】バックグランド処理の更新タイミングを示す図である。
【符号の説明】
【００５４】
１０  環境再現部
１１  フォトン散布演算部
１２  フォトン回収演算部
２０  差分レンダリング部
２１  移動物体演算部
２２  フォトン検索部
２３  照度計算部
２４  合成処理部
【図１】
2009258785.tif 000003
【図２】
2009258785.tif 000004
【図３】
2009258785.tif 000005