(57)【要約】【課題】  本発明は、レイトレーシング法を用いて、より高速で２次元画像の生成が可能な画像生成装置を提供することを目的とする。【解決手段】  画像生成処理が開始されると、まず、光線が設定される（ステップＳ１）。光線とバウンディングボックスとの交点を両端に含む四角柱が設定され（ステップＳ２）、四角柱は、複数の六面体に分割される（ステップＳ３）。最も仮想視点に近い位置にある六面体を特定し（ステップＳ４）、その六面体にオブジェクトが含まれているか否かの判定が行なわれる（ステップＳ５）。六面体内にオブジェクトが含まれる場合は、光線とオブジェクトが交差するか否かの判定が行なわれ、交差する場合は、その交点の色情報の演算が行なわれ、演算された色情報は、光線が通過する画素の色として設定される（ステップＳ８）。【選択図】    図３
2012018573.tif 000002
【特許請求の範囲】
【請求項１】
仮想視点から仮想スクリーン上の画素を通過する光線と仮想空間内のオブジェクトとの交点であるオブジェクト交点を算出し、オブジェクト交点の色情報を算出して、仮想スクリーン上の該画素の色を決定するレイトレーシング法を用いて２次元画像を生成する画像生成装置において、
仮想空間内の全てのオブジェクトを内包するバウンディングボックスを設定するバウンディングボックス設定手段と、
バウンディングボックス内のオブジェクトの位置を記憶するオブジェクト位置記憶手段と、
設定されたバウンディングボックスと光線との交点であるバウンディングボックス交点を底面に含む柱状立体を設定し、さらに、柱状立体を光線と交差する面にて複数の分割立体に分割する柱状立体分割手段と、
分割立体のうち、オブジェクトを内包するオブジェクト内包立体について、オブジェクト位置記憶手段により記憶されたオブジェクトの位置をもとに、オブジェクトと光線との交差判定を実行する交差判定手段と、
交差判定の結果、オブジェクトと光線が交差すると判定された場合に、オブジェクトと光線との交点であるオブジェクト交点を算出する交点算出手段と、
算出されたオブジェクト交点における色情報を算出する色情報算出手段と、
算出された色情報を、光線の通過する画素の色情報として設定する色情報設定手段とを備え、
交差判定手段が、仮想視点の近くに位置するオブジェクト内包立体に内包されたオブジェクトから順に交差判定を実行することを特徴とする画像生成装置。
【請求項２】
バウンディングボックス内の複数のオブジェクトについて、オブジェクト群を形成するオブジェクトを記憶するオブジェクト群記憶手段とを備え、
柱状立体分割手段が、オブジェクト群を形成するオブジェクトの位置に従って、オブジェクト群ごとに分割されるように、柱状立体を分割することを特徴とする請求項１記載の画像生成装置。
【請求項３】
柱状立体が四角柱であり、分割立体が六面体であることを特徴とする請求項１又は２記載の画像生成装置。
【請求項４】
光線と交差する面が、仮想スクリーンと平行な面であることを特徴とする請求項１、２又は３記載の画像生成装置。
【請求項５】
仮想視点から仮想スクリーン上の画素を通過する光線と仮想空間内のオブジェクトとの交点であるオブジェクト交点を算出し、オブジェクト交点の色情報を算出して、仮想スクリーン上の該画素の色を決定するレイトレーシング法を用いて、コンピュータ装置に２次元画像の生成を実行させる画像生成プログラムにおいて、
仮想空間内の全てのオブジェクトを内包するバウンディングボックスを設定するバウンディングボックス設定手段と、
バウンディングボックス内のオブジェクトの位置を記憶するオブジェクト位置記憶手段と、
設定されたバウンディングボックスと光線との交点であるバウンディングボックス交点を底面に含む柱状立体を設定し、さらに、柱状立体を光線と交差する面にて複数の分割立体に分割する柱状立体分割手段と、
分割立体のうち、オブジェクトを内包するオブジェクト内包立体について、オブジェクト位置記憶手段により記憶されたオブジェクトの位置をもとに、オブジェクトと光線との交差判定を実行する交差判定手段と、
交差判定の結果、オブジェクトと光線が交差すると判定された場合に、オブジェクトと光線との交点であるオブジェクト交点を算出する交点算出手段と、
算出されたオブジェクト交点における色情報を算出する色情報算出手段と、
算出された色情報を、光線の通過する画素の色情報として設定する色情報設定手段として機能させ、
交差判定手段が、仮想視点の近くに位置するオブジェクト内包立体に内包されたオブジェクトから順に交差判定を実行させることを特徴とする画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイトレーシング法を用いて、高速で２次元画像を生成することができる画像生成装置、及び画像生成プログラムに関する。
【背景技術】
【０００２】
３次元のコンピュータグラフィックスは、仮想空間内のオブジェクトの形状を作成するモデリングと、オブジェクトの色や明るさを計算するレンダリングの２つのプロセスを経て、生成される。レンダリングの手法としては、Ｚバッファ法、スキャンライン法、ラジオシティ法、レイトレーシング法等があるが、この中でもレイトレーシング法は、写実的で高品質なコンピュータグラフィックスを作成することができる。
【０００３】
レイトレーシング法は、仮想視点から仮想空間内に存在するオブジェクトの方向に向かって光線を追跡し、光線とオブジェクトとが交差する点におけるオブジェクトの色・光の状態を算出し、それを仮想スクリーンに投影させて２次元画像を生成する方法である。しかし、レイトレーシング法は、すべての画素を通過する光線についてオブジェクトとの交差判定を行ない、さらにオブジェクト間の光の反射や屈折の影響を算定するものであるため、光線とオブジェクトとの交点を判定する交差判定に時間がかかるという問題があった。
【０００４】
仮に、レイトレーシング法を用いた２次元画像の生成の高速化が可能となれば、コンピュータ・グラフィックス・アニメーションの製作期間の大幅な短縮に繋がり、例えば、ゲームソフトの開発コストや映画の製作コストを下げることも可能となるため、レイトレーシング法を用いた２次元画像の生成の高速化について、種々の提案が行なわれている。
【０００５】
例えば、少なくとも１つのオブジェクトを内包する球体や直方体（バウンディングボリュームという）が光線と交差するか否かを判定し、バウンディングボリュームとオブジェクトと交差する場合のみ、光線とオブジェクトとの交点を算出して、光線とオブジェクトとの不要な交差判定を省略する方法があげられる。
【０００６】
その他、例えば、光線とオブジェクトとの不要な交差判定を省略し、画像を生成するまでの時間を短縮する方法としては、例えば、物体要素の個数差が１又は０になるように重複なく物体要素を２つのグループに分け、各グループに対して物体要素が内包されるようにバウンディングボリュームを設定し、バウンディングボリュームと光線とが交差するか否かの交差判定を実行し、バウンディングボリュームと光線が交差するという判定結果であった場合、バウンディングボリュームに内包される物体要素に対して光線との交点を求める交点算出処理を実行する画像生成装置（例えば、特許文献１参照）が開示されている。
【０００７】
また、これまで使用されてきたレイトレーシング法のためのデータ構造のほとんどは階層的なもので、階層を下りたり上ったりするトラバースという多くのランダムアクセスを伴う処理が必要で、メモリアクセスパターンの観点から、２次元画像の生成処理を高速化するのに大きなボトルネックとなっていた。このため、トラバースを必要としないデータ構造とすること（例えば、非特許文献１参照）も提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−２７１９８８号公報
【非特許文献】
【０００９】
【非特許文献１】ジェームス・アルボ（Ｊａｍｅｓ  Ａｒｖｏ）、デビッド・カーク（Ｄａｖｉｄ  Ｋｉｒｋ）共著、「ファースト・レイ・トレーシング・バイ・レイクラシフィケーション（Ｆａｓｔ  ｒａｙ  ｔｒａｃｉｎｇ  ｂｙ  ｒａｙ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ）」、エーシーエム・シーグラフ・コンピュータ・グラフィックス２１巻４号（ＡＣＭ  ＳＩＧＧＲＡＰＨ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｖｏｌｕｍｅ２１，  Ｉｓｓｕｅ４）、アソーシエイション・フォー・コンピューティング・マシーナリー（Ａｓｓｏｃｉａｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｒｙ）発行、１９８７年７月
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、通常のバウンディングボリューム法や特許文献１の方法では、階層的にバウンディングボリュームが設定されることになり、ランダムアクセスを少なく抑えることができず、レイトレーシング法による２次元画像の生成が十分に高速化できているとは言えない。また、非特許文献１の方法では、交差判定の対象として取得できるオブジェクトの集合は、最小の集合ではなく、多くのオブジェクトとの交差判定が必要になるため、計算効率の点から改善の余地があった。本発明は、レイトレーシング法を用いて、より高速で２次元画像の生成が可能な画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、仮想視点から仮想スクリーン上の画素を通過する光線と仮想空間内のオブジェクトとの交点であるオブジェクト交点を算出し、オブジェクト交点の色情報を算出して、仮想スクリーン上の該画素の色を決定するレイトレーシング法を用いて２次元画像を生成する画像生成装置において、仮想空間内の全てのオブジェクトを内包するバウンディングボックスを設定するバウンディングボックス設定手段と、バウンディングボックス内のオブジェクトの位置を記憶するオブジェクト位置記憶手段と、設定されたバウンディングボックスと光線との交点であるバウンディングボックス交点を底面に含む柱状立体を設定し、さらに、柱状立体を光線と交差する面にて複数の分割立体に分割する柱状立体分割手段と、分割立体のうち、オブジェクトを内包するオブジェクト内包立体について、オブジェクト位置記憶手段により記憶されたオブジェクトの位置をもとに、オブジェクトと光線との交差判定を実行する交差判定手段と、交差判定の結果、オブジェクトと光線が交差すると判定された場合に、オブジェクトと光線との交点であるオブジェクト交点を算出する交点算出手段と、算出されたオブジェクト交点における色情報を算出する色情報算出手段と、算出された色情報を、光線の通過する画素の色情報として設定する色情報設定手段とを備え、交差判定手段が、仮想視点の近くに位置するオブジェクト内包立体に内包されたオブジェクトから順に交差判定を実行することを特徴とする画像生成装置に関する。
【００１２】
本発明では、全てのオブジェクトを含むバウンディングボックスと光線との交点であるバウンディングボックス交点を両方の底面に含む柱状立体を設定し、仮想視点からの距離に応じて複数の分割立体に分割することで、光線と交差する可能性あるオブジェクトの最小の集合を比較的簡易に特定することが可能である。ランダムアクセスを少なく抑え、シーケンシャルアクセスの割合を増加させることができ、高速で２次元画像を生成することが可能となる。特に、ＧＰＵやメニューコアＣＰＵはメモリのランダムアクセスが処理時間のボトルネックとなるため、今後、主流になると予想されるプロセッサ上で優位性がある。また、これらの分割立体でオブジェクトを内包するオブジェクト内包立体のうち、仮想視点の近くに存在するオブジェクト内包立体に内包されたオブジェクトから順に交差判定が行なわれることにより、オブジェクトと光線の不要な交差判定を省くことが可能となり、より効率的に、画像生成処理を行なうことができる。
【００１３】
本発明では、バウンディングボックス内の複数のオブジェクトについて、オブジェクト群を形成するオブジェクトを記憶するオブジェクト群記憶手段とを備え、柱状立体分割手段は、オブジェクト群を形成するオブジェクトの位置に従って、オブジェクト群ごとに分割されるように、柱状立体を分割することが好ましい。
【００１４】
バウンディングボックス内に配置された複数のオブジェクトについて、最小の集合となるオブジェクト群を予め定めておき、このオブジェクト群ごとに分割されるように、柱状立体を分割することで、比較的簡易な処理でオブジェクトの最小の集合を特定することが可能となる。
【００１５】
本発明では、柱状立体が四角柱であり、分割立体が六面体であることが好ましい。四角柱状の柱状立体は、バウンディングボックスと光線との交点であるバウンディングボックス交点を底面に含み、底面は正方形又は長方形である。したがって、これを、仮想視点からの距離に応じて分割すると、六面体となる。柱状立体及び分割立体をこのような簡素な形状とすることにより、柱状立体及び分割立体に含まれるオブジェクトを特定する負荷を軽減することが可能となる。
【００１６】
本発明では、光線と交差する面が、仮想スクリーンと平行な面であることが好ましい。柱状立体（四角柱）を仮想スクリーンと平行な面で分割することで、仮想視点からの距離が近い分割立体（六面体）から順に交差判定が行なわれるため、効率良く、交差判定処理を行なうことができる。
【００１７】
また、本発明は、仮想視点から仮想スクリーン上の画素を通過する光線と仮想空間内のオブジェクトとの交点であるオブジェクト交点を算出し、オブジェクト交点の色情報を算出して、仮想スクリーン上の該画素の色を決定するレイトレーシング法を用いて、コンピュータ装置に２次元画像の生成を実行させる画像生成プログラムにおいて、仮想空間内の全てのオブジェクトを内包するバウンディングボックスを設定するバウンディングボックス設定手段と、バウンディングボックス内のオブジェクトの位置を記憶するオブジェクト位置記憶手段と、設定されたバウンディングボックスと光線との交点であるバウンディングボックス交点を底面に含む柱状立体を設定し、さらに、柱状立体を光線と交差する面にて複数の分割立体に分割する柱状立体分割手段と、分割立体のうち、オブジェクトを内包するオブジェクト内包立体について、オブジェクト位置記憶手段により記憶されたオブジェクトの位置をもとに、オブジェクトと光線との交差判定を実行する交差判定手段と、交差判定の結果、オブジェクトと光線が交差すると判定された場合に、オブジェクトと光線との交点であるオブジェクト交点を算出する交点算出手段と、算出されたオブジェクト交点における色情報を算出する色情報算出手段と、算出された色情報を、光線の通過する画素の色情報として設定する色情報設定手段として機能させ、交差判定手段が、仮想視点の近くに位置するオブジェクト内包立体に内包されたオブジェクトから順に交差判定を実行させることを特徴とする画像生成プログラムに関する。
【図面の簡単な説明】
【００１８】
【図１】本発明にかかる実施の形態における画像生成装置の構成を示すブロック図である。
【図２】本発明にかかる実施の形態における仮想視点とバウンディングボックスの関係を表す図である。
【図３】本発明にかかる実施の形態における画像生成処理についてのフローチャートを表す図である。
【図４】本発明にかかる実施の形態における柱状立体を表す図である。
【図５】バウンディングボックス内のオブジェクトの配置を表す図である。
【図６】本発明にかかる実施の形態におけるバウンディングボックス内の柱状立体とオブジェクトの配置を表す図である。
【図７】本発明にかかる実施の形態における空間データの階層構造を表す図である。
【図８】バウンディングボリューム法を用いた場合におけるバウンディングボリュームとオブジェクトの配置を表す図である。
【図９】バウンディングボリューム法を用いた場合における、空間データの階層構造を表す図である。
【図１０】２次元空間内にオブジェクトが配置された場合を表す図である。
【図１１】光線とバウンディングボックスの交点を両端に含む平行四辺形を、さらに分割した平行四辺形を表す図である。
【図１２】バウンディングボックスの側面と平行六面体の関係を表す図である。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本発明にかかる実施の形態における画像生成装置の構成を示すブロック図である。図示するように画像生成装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＡＭ１０２と、入力装置１０３と、表示装置１０４と、ハードディスクドライブ（ＨＤＤ）１０５、ＧＰＵ１０６、ビデオＲＡＭ（以下「ＶＲＡＭ」）１０７とを備えている。また、表示装置１０４は表示画面１１４を備えている。画像生成装置の具体例としては映像制作作業用のワークステーション等が最も適しているが、コンピューターの処理速度がさらに進歩すれば、レイトレーシングによるリアルタイムＣＧ動画を再生する動画プレイヤーやゲーム装置などの動画再生装置としてもよい。
【００２０】
ＣＰＵ１０１は、ＨＤＤ１０５に格納されたプログラムを実行し、装置本体の制御を行なう。ＲＡＭ１０２は、ＣＰＵ１０１のワークエリアである。また、ＨＤＤ１０５は、プログラムやデータを保存するための記憶領域として用いられる。入力装置１０３からの入力データはＲＡＭ１０２に記憶され、ＣＰＵ１０１はＲＡＭ１０２に記憶された入力データをもとに各種の演算処理を実行する。
【００２１】
画像生成装置で実行されるプログラム及びデータは、例えば、ＨＤＤ１０５に記憶されている。ＣＰＵ１０１が処理を行っている間の中間的なデータは、ＲＡＭ１０２に記憶される。
【００２２】
ＧＰＵ１０６は、ＶＲＡＭ１０７に接続されている。ＧＰＵ１０６は、ＣＰＵ１０１からの指示に応じて、ＲＡＭ１０２に記憶された、画像を生成するためのデータに基づいて２次元画像を生成し、ＶＲＡＭ１０７に描画する。
【００２３】
また、ＧＰＵ１０６は、表示装置１０４に接続されている。ＧＰＵ１０６は、ＣＰＵ１０１からの指示に応じてＶＲＡＭ１０７に描画された２次元画像を表示装置１０４に出力する。そして、表示装置１０４は、ＧＰＵ１０６から出力された２次元画像を表示画面１１４に表示する。
【００２４】
次に、本発明の実施の形態にかかるレイトレーシング法において、仮想視点と描画の対象となるオブジェクトとの関係について説明する。ここで、仮想視点から仮想スクリーン上の或る画素を通過する光線について考える。図２は、仮想視点とバウンディングボックスの関係を表す図である。仮想空間内には、複数のオブジェクト２０４が存在し、仮想視点２００から見た２次元画像がレイトレーシング法により描画される。ここで、描画の対象となる全てのオブジェクトを含む略直方体の空間をバウンディングボックス２０１と定義する。バウンディングボックス２０１内には、オブジェクト２０４ａ、２０４ｂ、２０４ｃが存在し、さらに、光源２０５が存在する。仮想視点２００も当然に仮想空間内に存在するが、バウンディングボックス２０１の外側に位置している。
【００２５】
レイトレーシング法では、まず、仮想視点２００と仮想スクリーン２０２が任意に選択される。仮想スクリーン２０２は規則的なグリッド要素に分かれており、このグリッド要素が所望の解像度における画素２０３に対応する。光線２０６は、各画素２０６を通過し、バウンディングボックス２０１まで延びる半直線である。すべての画素２０３について、画素２０３を通過する光線２０６が追跡され、光線２０６がオブジェクト２０４と交差する交点２０７が求められる。
【００２６】
各オブジェクト２０４の仮想空間内の位置及び形状は、ＲＡＭ１０２にて記憶されている。また、オブジェクト２０４の位置は、例えば、直交座標系にて管理されており、直交座標系のＸ軸、Ｙ軸、Ｚ軸は、バウンディングボックス２０１を形成する各辺と平行になるように設定されている。交点２０７は、ＲＡＭ１０２にて記憶された各オブジェクトの位置及び形状をもとに、求められる。
【００２７】
交差したオブジェクト２０４が拡散反射する場合は、交点２０７のおけるオブジェクト２０４の色がその画素２０３の色として割り当てられる。また、交差したオブジェクト２０４が鏡面反射する場合は、光線２０６の入射方向をさらに追跡する。その他、交差したオブジェクト２０４が光を透過する場合は、そのオブジェクト２０４について設定された屈折率にしたがって屈折方向を算出し、算出された屈折方向をさらに追跡する。これらの分岐した光線の全ての影響を求めることで、画素２０３に表示される色が決定される。なお、光線２０６がオブジェクト２０４ａ、２０４ｂ、２０４ｃのいずれとも交差しない場合は、背景の色がその光線２０６の通過する画素２０３の色として割り当てられる。
【００２８】
図３は、本発明にかかる実施の形態における画像生成処理についてのフローチャートを表す図である。画像生成処理が開始されると、まず、光線２０６が設定される（ステップＳ１）。光線２０６の設定は、仮想視点２００を起点として、２次元画像が投影される仮想スクリーン２０２上の１つの画素２０３を通過する半直線を設定することにより行なわれる。光線２０６の設定は、ステップＳ１〜Ｓ１０までの処理を繰り返すことで、全ての画素２０３を通過する光線について処理が実行されるまで、繰り返し行なわれる。
【００２９】
次に、交差判定の対象となる柱状立体（ここでは、四角柱３０１とする）が設定される（ステップＳ２）。光線２０６とバウンディングボックス２０１は２点で交わり、この四角柱３０１は、光線２０６とバウンディングボックス２０１との交点を両端に含むものである。図４は、本発明にかかる実施の形態における四角柱３０１を表す図である。仮想視点２００を起点とした光線２０６とバウンディングボックス２０１は、仮想視点２００に近い交点３００ａ、仮想視点からは遠い交点３００ｂの２点で交わる。
【００３０】
四角柱３０１は、この交点３００ａ、３００ｂを底面に含むもので、例えば、四角柱３０１の底面は、交点３００ａ、３００ｂのそれぞれを中心とする正方形又は長方形である。この場合、四角柱３０１の底面はバウンディングボックス２０１を形成する平面の一部と重複する。また、光線２０６は、四角柱３０１の両底面の中心を結ぶもので、四角柱３０１の中心軸と重なる。四角柱３０１の底面の正方形又は長方形の大きさは、適宜設定することが可能である。四角柱３０１の底面の形状としては、正方形や長方形以外の形状（例えば、円）等をとることも可能である。なお、光線２０６がバウンディングボックス２０１と交差する角度によっては、バウンディングボックス２０１の各辺の近傍、又は、各頂点の近傍に交点３００ａ又は交点３００ｂが位置する場合もあり、この場合は、四角柱３０１の底面はバウンディングボックス２０１を形成する平面の一部と重複しない場合もある。
【００３１】
次いで、柱状立体は、複数の分割立体に分割される（ステップＳ３）。分割立体への分割は、光線と交差する面、例えば、仮想スクリーン２０２に平行な面、又は、図２におけるＹＺ平面に平行な面により分割される。分割は、バウンディングボックス２０１又は柱状立体が等分されるように分割することができる。
【００３２】
また、オブジェクト２０４の位置に応じて、どの位置で柱状立体を分割するかを適宜設定しても良い。例えば、バウンディングボックス２０１内に配置された複数のオブジェクト２０４について、最小の集合となるオブジェクト群を予め定めておき、この最小の集合毎に分割立体にオブジェクトが内包されるように、柱状立体を分割することができる。このようにすることで、オブジェクトの最小の集合を簡易な演算で取得することが可能となる。例えば、後述する図５であれば、オブジェクト２０４ｄ〜ｆ、オブジェクト２０４ｇ〜２０４ｊ、オブジェクト２０４ｋ〜ｐ、オブジェクト２０４ｑと２０４ｒ、オブジェクト２０４ｓと２０４ｔについて、それぞれ最小の集合として設定することができる。ここで、最小の集合とは、例えば、頭部、胴体部、腕部といったように複数のオブジェクト２０４から１つのキャラクタ等が構成されているような場合に、これらのオブジェクト２０４を最小の集合として設定することができる。したがって、バウンディングボックス２０１内の全体を、オブジェクト２０４の最小の集合毎に、仮想スクリーン２０２に平行な面或いはＹＺ面に平行な面で予め分割しておき、この分割面に従って柱状立体を分割することも可能である。
【００３３】
ステップＳ３にて、四角柱３０１が六面体３０２に分割されると、最も仮想視点２００に近い位置にある六面体３０２が特定され（ステップＳ４）、六面体３０２にオブジェクト２０４が含まれているか否かの判定が行なわれる（ステップＳ５）。六面体３０２にオブジェクト２０４が含まれているか否かは、ＲＡＭ１０２に記憶されたオブジェクト２０４の位置及び形状をもとに判定される。図４の場合、四角柱３０１が六面体３０２ａ、３０２ｂ、３０２ｃ及び３０２ｄに分割され、六面体３０２ａにオブジェクト２０４が含まれれば、六面体３０２ａに含まれるオブジェクト２０４と光線２０６の交差判定が行なわれる。
【００３４】
特定された六面体３０２内にオブジェクトが含まれると判定されると（ステップＳ５にて、ＹＥＳ）、光線２０６とオブジェクト２０４が交差するか否かの判定が行なわれる（ステップＳ６）。そして、光線２０６とオブジェクト２０４が交差すると判定された場合は（ステップＳ６にて、ＹＥＳ）、光線２０６とオブジェクト２０４の交点であるオブジェクト交点２０７の色情報の演算が行なわれ（ステップＳ７）、演算された色情報がステップＳ１にて設定された光線２０６が通過する画素２０３の色として設定される（ステップＳ８）。なお、光線２０６が同じ六面体内３０２で、複数の点にてオブジェクト２０４と交差する場合は、そのうち、仮想視点２０２から最も近い点にある色情報の演算が行なわれ、演算された色情報が画素２０３の色として設定される。
【００３５】
特定された六面体３０２内にオブジェクト２０４が含まれないと判定された場合（ステップＳ５にて、ＮＯ）、及び、光線２０６とオブジェクト２０４が交差しないと判定された場合は（ステップＳ６にて、ＮＯ）、すべての六面体３０２について、少なくともステップＳ５及びステップＳ６の処理のいずれかについて実行されたか否かが判定される（ステップＳ９）。全ての六面体３０２について、ステップＳ５又はステップＳ６の処理が実行された場合（ステップＳ９においてＹＥＳ）は、六面体３０２に含まれるオブジェクト２０４（すなわち、四角柱３０１に含まれるオブジェクト２０４）の全てと光線２０６が交差しないため、ステップＳ１にて設定された光線２０６が通過する画素２０３の色として背景色が設定される（ステップＳ１０）。
【００３６】
全ての六面体３０２について、ステップＳ５又はステップＳ６の処理が実行されていない場合（ステップＳ９においてＮＯ）は、ステップＳ５又はステップＳ６の処理が実行されていない六面体３０２のうち、ステップＳ４に戻り、最も仮想視点２００に近い位置にある六面体３０２が特定され、ステップＳ５、ステップＳ６の処理が繰り返し実行される。
【００３７】
ステップＳ８にて、画素２０３の色情報の設定がなされると、全ての画素２０３を通過する光線２０６について、ステップＳ１〜１０までの処理が実行された場合（ステップＳ１１にてＹＥＳ）は、一連の処理が終了し、各画素２０３に割り当てられた色情報をもとに２次元画像が生成される。また、ステップＳ１〜１０の処理が実行されていない光線２０６が残っている場合（ステップＳ１１において、ＮＯ）は、ステップＳ１に戻り、ステップＳ１〜１０の処理が実行される。したがって、ステップＳ１〜１０の処理は、仮想スクリーン２０２を構成する画素２０３を通過する全ての光線２０６について、実行される。
【００３８】
通常のレイトレーシング法であれば、オブジェクトの数をＮとした場合、おおよそｌｏｇ（Ｎ）と画素の数の積の数だけ、交差判定を行うことになるが、本発明では、このように、仮想視点２０２の位置についての３次元の情報、光線の方向についての２次元の情報、そして、仮想視点２０２からの距離についての１次元の情報、という６次元のデータ構造を用いて、ランダムアクセスを減らし、シーケンシャルアクセスの割合を増加させて、高速な２次元画像の生成処理を可能としている。
【００３９】
次に、複数のオブジェクトがバウンディングボックス内に配置されている場合に、本発明の実施形態にかかる画像生成処理と、空間データの階層構造の関係について説明する。ここで、図５のように、バウンディングボックス２０１内にオブジェクト２０４ｄ〜２０４ｔが配置されている場合を考える。図５は、バウンディングボックス２０１内のオブジェクト２０４の配置を表す図であり、バウンディングボックス２０１を構成する一平面と平行な方向における断面図である。図５において、仮想視点２００を起点とした光線２０６はバウンディングボックス２０１内を通過し、オブジェクト２０４ｓと交差している。
【００４０】
また、図６（ａ）は、図５のようにオブジェクト２０４が配置されていた場合における、バウンディングボックス２０１内の四角柱３０１とオブジェクト２０４の配置を表す図である。図６（ｂ）は、図５のようにオブジェクト２０４が配置されていた場合における、四角柱３０１を表す図である。図７は、図６（ｂ）のように四角柱３０１が分割された場合における空間データの階層構造を表す図である。
【００４１】
図６において、仮想視点２００を起点とした光線２０６は、交点３００ａ及び交点３００ｂでバウンディングボックス２０１と交差し、交点３００ａ及び交点３００ｂを底面に含む四角柱３０１が設定される。図７の空間データの階層構造における最上位のノードｓｐは、四角柱３０１に相当する。四角柱３０１は、仮想視点２００から近い方に位置する六面体３０２ｅ（図７のノードｈｈ１に相当）と、仮想視点２００から遠い方に位置する六面体３０２ｆ（図７のノードｈｈ２に相当）に２分割される。つまり、ノードｓｐは２つの子ノードｈｈ１、ｈｈ２へ分岐している。さらに、六面体３０２ｅは六面体３０２ａと３０２ｂ（図７のノードｈｈ３、ｈｈ４に相当）に分割され、六面体３０２ｆは六面体３０２ｃと３０２ｄ（図７のノードｈｈ５、ｈｈ６に相当）に分割されている。
【００４２】
図６（ｂ）では、六面体３０２ｃにはオブジェクト２０４ｋ、六面体３０２ｄにはオブジェクト２０４ｓ、２０４ｔが含まれるため、光線２０６とオブジェクト２０４ｋ、２０４ｓ、２０４ｔとの交差判定が実行される。光線２０６とオブジェクト２０４との交差判定は、仮想視点２００に近い六面体３０２ｃに含まれるオブジェクト２０４ｋから実行され、次いで、仮想視点２００に遠い六面体３０２ｄに含まれるオブジェクト２０４ｓ、２０４ｔについて実行される。図６（ｂ）の場合、光線２０６は、オブジェクト２０４ｓと交差するため、オブジェクト２０４ｓとの交点の色が算出される。
【００４３】
例えば、図６（ｂ）とは異なり、仮に、仮想視点２００により近い六面体３０２ｃに含まれるオブジェクト２０４と光線２０６が交差すると判定された場合は、六面体３０２ｃより仮想視点２０２から遠くに位置する六面体３０２ｄ中のオブジェクト２０４ｓ、２０４ｔとは交差判定は行なわれずに、六面体３０２ｃに含まれるオブジェクト２０４との交点２０７の色が、画素２０３の色として設定される。
【００４４】
この場合、ノードｈｈ２にアクセスし、次いで、ノードｈｈ５、ｈｈ６にアクセスすることになる。したがって、第１階層から第３階層までトラバースするだけで、光線２０６とオブジェクトとの交差判定を実行することができ、ランダムアクセスを減らし、シーケンシャルアクセスの割合を増加させることができる。
【００４５】
次に、図５のようにバウンディングボックス２０１内にオブジェクト２０４が配置されている場合において、通常のバウンディングボリューム法を用いて交差判定をした場合と、本発明との違いを説明する。図８はバウンディングボリューム法を用いた場合におけるバウンディングボリュームとオブジェクトの配置を表す図である。また、図９はバウンディングボリューム法を用いた場合における、空間データの階層構造を表す図である。
【００４６】
図８では、オブジェクト２０４ｄ〜ｆはバウンディングボリューム４００ａ（図９のノードＢＶ１に相当）に含まれ、オブジェクト２０４ｇ〜ｊはバウンディングボリューム４００ｂ（図９のノードＢＶ２に相当）に含まれる。また、オブジェクト２０４ｋ〜ｐはバウンディングボリューム４００ｄ（図９のノードＢＶ４に相当）に含まれ、オブジェクト２０４ｑ、２０４ｒはバウンディングボリューム４００ｆ（図９のノードＢＶ６に相当）に含まれ、オブジェクト２０４ｓ、２０４ｔはバウンディングボリューム４００ｇ（図９のノードＢＶ７に相当）に含まれている。バウンディングボリューム４００ｃは、バウンディングボリューム４００ｄ、４００ｅを内包し、バウンディングボリューム４００ｅは、バウンディングボリューム４００ｆ、４００ｇを内包する。これらの空間データの階層構造は、図９のようになる。
【００４７】
バウンディングボリューム法では、まず、仮想視点２００を起点とした光線２０６について、バウンディングボリューム４００ａ〜ｃ（ノードＢＶ１〜ＢＶ３）と交差判定が行なわれる。光線２０６は、このうちバウンディングボリューム４００ｃ（ノードＢＶ３）と交差するため、その子ノードであるノードＢＶ４、ＢＶ５とさらに交差判定が行なわれる。その結果、ＢＶ４と交差するため、その子ノードであるノードＢＶ６、ＢＶ７とさらに交差判定が行なわれる。葉ノードであるバウンディングボリューム４００と光線２０６が交差すると判定された場合は、そのバウンディングボリューム内のオブジェクト２０４と光線２０６の交差判定が行なわれる。結果、バウンディングボリューム４００ｄ、４００ｇに内包するオブジェクト２０４と光線２０６の交差判定が行なわれる。
【００４８】
このことからわかるように、通常のバウンディングボリューム法では、すべてのバウンディングボリューム４００について、光線２０６との交差判定を行なうため、第１階層から第４階層までトラバースをする必要があり、第３階層までトラバースすることで、オブジェクト２０４の最小の集合を求めて、光線２０６との交差判定を完了できる本発明の方が、より高速で処理できることがわかる。図５のような比較的単純なオブジェクトの配置の場合だけでなく、より複雑な形状のオブジェクトが多数、配置されているような場合、この傾向は顕著に現れる。
【００４９】
本発明で提案するデータ構造はＴｒｅｅデータ構造であり、光線２０６とバウンディングボックス２０１の交点を両端に含むものを以下のように分割しても良い。例えば、図１０のように、オブジェクト２０４ｘ、２０４ｙ、２０４ｚが２次元空間に配置されている場合であっても、光線２０６とバウンディングボックス２０１の交点を両端に含む平行四辺形３０３を、図１１（ａ）〜（ｄ）のように、さらに細かい４つの細い平行四辺形３０４ａ、３０４ｂ、３０４ｃ、３０４ｄへ分割し、中に含まれるオブジェクト２０４の数が閾値以下になるまで、この処理が再帰的に行なわれる。
【００５０】
オブジェクト２０４が３次元空間に配置されている場合も、光線２０６とバウンディングボックス２０１を両端に含む四角柱３０１（平行六面体）を、２次元の場合と同様の方法で、さらに細かい平行六面体に分割する。例えば、光線２０６とバウンディングボックス２０１を両端に含む四角柱３０１の底面を２×２の４分割とした場合、分割された面を底面とする平行六面体として、１６（＝４×４）の平行六面体を得ることができる。そして、この分割された平行六面体中に含まれるオブジェクトの数が、閾値以下になるまで、この処理が再帰的に行なわれる。
【００５１】
本発明では、バウンディングボックス２０１と光線２０６の２つの交点を両端の底面に含む平行六面体（四角柱）を特定するが、以下のように平行六面体を特定することができる。図１２は、バウンディングボックスの側面と平行六面体の関係を表す図であり、バウンディングボックスの側面２０１ａは、光線２０６と交差するバウンディングボックス２０１の側面のうち、仮想視点に近い方の側面であり、バウンディングボックスの側面２０１ｂは、光線２０６と交差するバウンディングボックス２０１の側面のうち、仮想視点に遠い方の側面である。バウンディングボックスの側面２０１ａ、２０１ｂは、それぞれの側面２０１ａ、２０１ｂの外周を構成する各辺と平行な線分で、等間隔で分割されている。図１２では、１６×１６分割されている。この分割されて得られた正方形のうち、光線２０６と交差する点を含む正方形が特定されると、特定された正方形２０１ｃ、２０１ｄを両底面とする平行六面体３０１が特定される。処理内容としては、バウンディングボックス２０１の側面で平行六面体３０１を特定するため、トラバースが２回必要となる。ただし、Ｔｒｅｅを上り下りする必要はなく、スタックレス・トラバース（Ｓｔａｃｋｌｅｓｓ  Ｔｒａｖｅｒｓｅ）を可能にするデータ構造である。スタック（Ｓｔａｃｋ）はＧＰＵ上で実装する際のボトルネックとなるため、このようなデータ構造とすることで、処理負荷を軽減することができる。
【００５２】
上で述べた実施の形態では、光線とオブジェクト（ポリゴン）との交差判定を実行したが、ポリゴンは複数の六面体に重複して登録されるため、使用されるメモリ量が増える。しかし、点データでは、複数の六面体に重複して登録されることがないため、本願発明はＢｅａｍ  Ｒａｄｉａｎｃｅ  Ｅｓｔｉｍａｔｅ（ビーム・ラディエンス・エスティメイト）のようなアルゴリズム（「ザ・ビーム・ラディエンス・エスティメイト・フォー・ボリューメトリック・フォトン・マッピング（Ｔｈｅ  Ｂｅａｍ  Ｒａｄｉａｎｃｅ  Ｅｓｔｉｍａｔｅ  ｆｏｒ  Ｖｏｌｕｍｅｔｒｉｃ  Ｐｈｏｔｏｎ  Ｍａｐｐｉｎｇ）」（ウォイチェフ・ヤロス（Ｗｏｊｃｉｅｃｈ  Ｊａｒｏｓｚ）、マティアス・ズウィッカー（Ｍａｔｔｈｉａｓ  Ｚｗｉｃｋｅｒ）、ヘンリック・ワン・イェンセン（Ｈｅｎｒｉｋ  Ｗａｎｎ  Ｊｅｎｓｅｎ）共著、イン・コンピュータ・グラフィックス・フォーラム（Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｆｏｒｕｍ），プロシーディング・オブ・ユーログラフィックス・２００８（Ｐｒｏｃｅｅｄｉｇｓ  ｏｆ  Ｅｕｒｏｇｒａｐｈｉｃｓ  ２００８）、ギリシャ，クレタ，ヘルソニソス、２００８年４月１４〜１８日）を参照）を加速するのに最適である。
【００５３】
本発明のデータ構造は他のデータ構造と併用することができる。たとえば、ＢＶＨは階層的にバウンディング・ボックスを設定するが、そのうちのいくつかを本発明によるデータ構造で置き換えてもよい。
【符号の説明】
【００５４】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  入力装置
１０４  表示装置
１０５  ＨＤＤ
１０６  ＧＰＵ
１０７  ＶＲＡＭ
１１４  表示画面
２００  仮想視点
２０１  バウンディングボックス
２０２  仮想スクリーン
２０３  画素
２０４  オブジェクト
２０５  光源
２０６  光線
２０７  交点
【図１】
2012018573.tif 000003
【図２】
2012018573.tif 000004
【図３】
2012018573.tif 000005
【図４】
2012018573.tif 000006
【図５】
2012018573.tif 000007
【図６】
2012018573.tif 000008
【図７】
2012018573.tif 000009
【図８】
2012018573.tif 000010
【図９】
2012018573.tif 000011
【図１０】
2012018573.tif 000012
【図１１】
2012018573.tif 000013
【図１２】
2012018573.tif 000014