(57)【要約】【課題】仮想空間内で影付け機能と干渉チェック機能を併用した場合、リアルタイムで計算処理するのが困難であった。【解決手段】仮想空間における仮想物体間の位置関係の判定と、前記仮想物体の仮想影の生成を行う画像処理方法において、仮想光源を通る第１の軸を法線とする第１の面に、複数の仮想物体のレンダリングを行い、取得されたレンダリング結果に基づき、上記複数の仮想物体間の位置関係を判定する。また、上記取得されたレンダリング結果を用いて、上記複数の仮想物体の影情報を生成する。【選択図】  図４
2008234473.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間における仮想物体間の位置関係の判定と、前記仮想物体の仮想影の生成を行う画像処理装置の制御方法であって、
第１のレンダリング手段が、仮想光源を通る第１の軸を法線とする第１の面に、複数の仮想物体のレンダリングを行う第１のレンダリング工程と、
判定手段が、前記第１のレンダリング工程で取得したレンダリング結果に基づき、前記複数の仮想物体間の位置関係を判定する判定工程と、
生成手段が、前記第１のレンダリング工程で取得したレンダリング結果に基づき、前記複数の仮想物体の影情報を生成する生成工程とを備えることを特徴とする画像処理装置の制御方法。
【請求項２】
第２のレンダリング手段が、前記第１の軸とは異なる第２の軸を法線とする第２の面に前記複数の仮想物体のレンダリングを行なう第２のレンダリング工程を更に備え、
前記判定工程では、前記第１のレンダリング工程と前記第２のレンダリング工程で取得されたレンダリング結果に基づき、前記複数の仮想物体間の位置関係を判定することを特徴とする請求項１に記載の画像処理装置の制御方法。
【請求項３】
前記第１の軸と前記第２の軸とは交差することを特徴とする請求項２に記載の画像処理装置の制御方法。
【請求項４】
前記第１の軸と前記第２の軸とは直交することを特徴とする請求項２に記載の画像処理装置の制御方法。
【請求項５】
第３のレンダリング手段が、前記生成工程で生成された影情報と前記判定工程で判定された位置関係に基づいて、特定の視線方向からの仮想空間をレンダリングする第３のレンダリング工程を更に備え、
前記第２の軸の方向は前記視線方向と一致していることを特徴とする請求項２に記載の画像処理装置の制御方法。
【請求項６】
前記第１のレンダリング工程では、前記複数の仮想物体の各々を境界ボリュームを用いて前記第１の面へのレンダリングを行なうことを特徴とする請求項１に記載の画像処理装置の制御方法。
【請求項７】
前記判定工程では、前記第１のレンダリング工程でレンダリングされた前記複数の仮想物体について境界ボリュームを算出し、算出した境界ボリュームを用いて前記複数の仮想物体の位置関係を判定することを特徴とする請求項１に記載の画像処理装置の制御方法。
【請求項８】
前記判定工程では、前記第１の面に設定された互いに直交する２つの軸と、前記第１の軸のそれぞれへ前記複数の仮想物体を射影した結果に基づいて交差判定を行うことを特徴とする請求項１に記載の画像処理装置の制御方法。
【請求項９】
仮想空間に仮想物体を描画するための画像処理装置の制御方法であって、
レンダリング手段が、仮想空間に含まれる複数の仮想物体に関する第１の処理のために、１つまたは複数の面に前記複数の仮想物体をレンダリングするレンダリング工程と、
第１実行手段が、前記レンダリング工程によるレンダリング結果に基づいて前記第１の処理を実行する第１実行工程と、
第２実行手段が、前記レンダリング工程によるレンダリング結果に基づいて前記第１の処理とは異なる、前記複数の仮想物体に関する第２の処理を実行する第２実行工程とを備えることを特徴とする画像処理装置の制御方法。
【請求項１０】
前記第１の処理は前記複数の仮想物体に関する影情報の生成であり、
前記レンダリング工程では、少なくとも仮想光源を通る軸を法線とする面に前記複数の仮想物体をレンダリングすることを特徴とする請求項９に記載の画像処理装置の制御方法。
【請求項１１】
前記第２の処理は前記複数の仮想物体の位置関係を判定する処理であることを特徴とする請求項１０に記載の画像処理装置の制御方法。
【請求項１２】
仮想空間における仮想物体間の位置関係の判定と、前記仮想物体の仮想影の生成を行う画像処理装置であって、
仮想光源を通る第１の軸を法線とする第１の面に、複数の仮想物体のレンダリングを行う第１のレンダリング手段と、
前記第１のレンダリング手段で取得したレンダリング結果に基づき、前記複数の仮想物体間の位置関係を判定する判定手段と、
前記第１のレンダリング手段で取得したレンダリング結果に基づき、前記複数の仮想物体の影情報を生成する生成手段とを備えることを特徴とする画像処理装置。
【請求項１３】
仮想空間に仮想物体を描画するための画像処理装置であって、
仮想空間に含まれる複数の仮想物体に関する第１の処理のために、１つまたは複数の面に前記複数の仮想物体をレンダリングするレンダリング手段と、
前記レンダリング手段によるレンダリング結果に基づいて前記第１の処理を実行する第１実行手段と、
前記レンダリング手段によるレンダリング結果に基づいて前記第１の処理とは異なる、前記複数の仮想物体に関する第２の処理を実行する第２実行手段とを備えることを特徴とする画像処理装置。
【請求項１４】
請求項１乃至１１の何れか１項に記載された画像処理装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１５】
請求項１４に記載されたコンピュータプログラムを格納したことを特徴とするコンピュータによる読み取りが可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間への３次元モデルの描画処理を行う画像処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
一般に、コンピュータ内部に構築された３次元仮想空間を、カメラで撮影したときのような写実的な画像として生成するレンダリング技術が知られている。このレンダリング技術のうち、より現実に近い光環境を表現するために、仮想空間内にある仮想光源によって照らされた仮想物体の仮想影を描画する影付け技術がある。このような影付け技術には様々な手法が存在するが、より現実性の高い技術としてステンシルシャドウ法やデプスバッファシャドウ法などがある。これらの技術はともに２パスレンダリングといわれる２段階のレンダリング処理を必要としている。例えば、デプスバッファシャドウ法では、
・第１段階：仮想光源から仮想物体を見たときに影となる領域を求る。
・第２段階：カメラ視点から見たときの画像を生成する際に第１段階で求めた影の領域をマッピングすることで影付けを行う。
【０００３】
一方、コンピュータ内部に構築された３次元仮想空間の中で、仮想物体同士が接触しているか否かをチェックする干渉チェック技術がある。例えば、干渉チェック技術を用いたシミュレーションゲームでは、プレーヤのキャクターと障害物との接触を判定することができ、これによりキャラクターが障害物を突き抜けてしまうことを避けることができる。干渉チェックに関する情報は、非特許文献１に記載されている。
【０００４】
また、一般に、干渉チェックにおいても、交差判定と干渉判定の２段階に処理が分かれている。交差判定とは仮想空間内の仮想物体同士が重なり合っているか否かを判定する処理、つまり仮想物体同士が干渉している可能性があるか否かを高速に判定する処理のことをいう。干渉判定は交差判定の結果から干渉の可能性があると判定された仮想物体の対に対して、仮想物体の形状同士が干渉しているか否かを詳細に判定する処理である。
【非特許文献１】Gino Van Den Bergen著、“CollisionDetection in Interactive 3d Environments”;, Morgan Kaufmann Pub ; ISBN:155860801X
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の影付け処理と干渉チェック処理は、計算負荷が共に大きい。影付け技術に関して述べると、仮想空間内で影付けを行う方法は様々存在するが、基本的にどの手法であっても影の形状やきめなどの精度を求めれば、その分だけ計算負荷が大きくなる。例えば前述したように現実性の高い影付けを行う際は２パスレンダリングを行うのが一般的である。この２パスレンダリングを行う手法であると文字通り２回のレンダリングを行う必要があるので計算負荷が大きくなる。
【０００６】
また、干渉チェック技術に関して述べると、干渉チェック処理を伴って仮想空間をシミュレーションする場合、仮想空間内で動的に動く仮想物体が多数存在し、それらの仮想物体同士をそれぞれに対して干渉チェックを行うシチュエーションがほとんどである。さらに仮想空間における仮想物体は、仮想空間内での現実性を最大限に表現するために複雑な（ポリゴンが多い）形状をしている場合が多々ある。このような条件下で干渉チェックを行うためには膨大な計算負荷を必要とする。
【０００７】
以上の理由により、仮想空間の描画処理において影付け機能と干渉チェック機能を併用した場合、それらをリアルタイムで計算処理するのが困難となってしまう。
【０００８】
本発明は上記の課題に鑑みてなされたものであり、レンダリング結果を利用した複数の処理を高速に実行可能とすることを目的とする。特に、影付け機能と干渉チェック機能を併用した場合でも高速に計算処理を行える仮想空間提示処理を実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様による画像処理装置の制御方法は、
仮想空間における仮想物体間の位置関係の判定と、前記仮想物体の仮想影の生成を行う画像処理装置の制御方法であって、
第１のレンダリング手段が、仮想光源を通る第１の軸を法線とする第１の面に、複数の仮想物体のレンダリングを行う第１のレンダリング工程と、
判定手段が、前記第１のレンダリング工程で取得したレンダリング結果に基づき、前記複数の仮想物体間の位置関係を判定する判定工程と、
生成手段が、前記第１のレンダリング工程で取得したレンダリング結果に基づき、前記複数の仮想物体の影情報を生成する生成工程とを備える。
【００１０】
また、上記の目的を達成するための本発明の他の態様による画像処理装置の制御方法は、
仮想空間に仮想物体を描画するための画像処理方法であって、
仮想空間に含まれる複数の仮想物体に関する第１の処理のために、１つまたは複数の面に前記複数の仮想物体をレンダリングするレンダリング工程と、
前記レンダリング工程によるレンダリング結果に基づいて前記第１の処理を実行する第１実行工程と、
前記レンダリング工程によるレンダリング結果に基づいて前記第１の処理とは異なる、前記複数の仮想物体に関する第２の処理を実行する第２実行工程とを備える。
【発明の効果】
【００１１】
本発明によれば、レンダリング結果を利用した複数の処理を高速に実行することが可能となる。特に、３次元形状物体同士の干渉チェックとその３次元形状物体の仮想影の描画を効率よく行うことが可能となり、影付け機能と干渉チェック機能を併用した場合でも高速に計算処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
【００１３】
［第１実施形態］
第１実施形態の仮想空間提示装置は、レンダリングの結果を影付け機能における仮想影情報生成の処理と干渉チェック機能における交差判定の処理で共有する。このような共有により、３次元仮想空間における３次元仮想物体同士の干渉チェックとその３次元仮想物体の仮想影の描画の各処理を効率よく行う。なお以下の説明で「モデルデータ」とは仮想空間にある３次元の仮想物体（オブジェクト）を表すとする。
【００１４】
図１は本システムが生成する仮想空間の一例である。以下、図１を用いて、第１実施形態の概要を説明する。
【００１５】
図１において、１０１は仮想空間内における仮想光源を示している。また、１０２、１０３はそれぞれサッカーボール、机のモデルデータを描画して得られたモデルデータ（仮想物体）である。１０４は仮想影であり、図１では、仮想光源１０１によって作成された、モデルデータ１０２とモデルデータ１０３の影である。
【００１６】
第１実施形態では、仮想空間内のモデルデータ１０２とモデルデータ１０３との間の干渉チェックを行うとともに、その干渉チェックの処理の一部を利用してモデルデータ１０２とモデルデータ１０３の仮想影を求め、表示する。言い換えると、第1実施形態の画像処理装置は、仮想空間内のモデルデータの影情報を生成するためのレンダリング結果を干渉チェック処理の一部に用いることにより、処理の高速化を図る。ここで干渉チェックとは、交差判定処理と干渉判定処理を含んでいる。交差判定処理とは仮想空間内のモデルデータをより低い次元（例えばＸ軸、Ｙ軸、Ｚ軸など座標軸上）に射影することでモデルデータ同士が重なり合っているかを判定する処理である。即ち、交差判定処理は、モデルデータ同士が干渉している可能性があるか否かを高速に判定する。また、干渉判定処理は交差判定処理の結果を踏まえて、モデルデータの形状同士が干渉しているか否かを詳細に判定する処理である。
【００１７】
本実施形態の交差判定処理では、図１の仮想空間についてモデルデータ１０２とモデルデータ１０３の交差判定を行うために、２種類の画像がレンダリングされる。１つは、仮想光源１０１の位置を視点としてレンダリングされた画像であり、もう１つは、その光源軸とは垂直方向である垂直軸からレンダリングされた画像である。そして、本実施形態の仮想空間提示装置は、上記交差判定処理で用いられた仮想光源１０１の位置からレンダリングされた画像を仮想影１０４の生成に利用する。
【００１８】
図２は第１実施形態に係る仮想空間提示処理を実行する画像処理装置の構成を示すブロック図である。本実施形態の画像処理装置は、パーソナルコンピュータ等の情報処理装置に所定の制御プログラムをインストールし、これを実行させることにより実現される。
【００１９】
図２において、仮想空間生成部２０１は、外部記憶装置２０６に記憶されている仮想空間情報を基に仮想空間を生成し、これを仮想空間描画部２０２に出力する。仮想空間にはモデルデータが含まれている。仮想空間描画部２０２は、仮想空間生成部２０１から取得した仮想空間をある視点から描画し、描画結果の画像を位置関係判定部２０３と仮想影情報生成部２０４に出力する。仮想空間描画部２０２は、位置関係判定部２０３や仮想影情報生成部２０４から干渉チェック情報や仮想影情報を取得し、仮想空間生成部２０１から取得した上記仮想空間に反映させて仮想空間の描画を行い表示部２０５に出力する。このように、仮想空間描画部２０２はマルチパスレンダリングを行う。
【００２０】
位置関係判定部２０３は、仮想空間描画部２０２から提供された画像を用いて仮想空間におけるモデルデータ同士の干渉チェックを行い、その結果を仮想空間描画部２０２に出力する。なお、本実施形態では、位置関係判定部２０３は、２次元面へのレンダリング結果を用いた交差判定を含む干渉チェックを行なうがこれに限られるものではない。２次元面へのレンダリングの結果を利用して仮想物体間の位置関係を判定する処理が含まれる処理であれば、いかなる処理であっても本発明に適用できる。仮想影情報生成部２０４は、仮想空間描画部２０２から提供された画像を用いて仮想空間におけるモデルデータの仮想影情報を生成する。ここで、仮想影情報とはカメラ視点の仮想空間画像に仮想影を表示するために必要となる仮想影に関連した情報である。本実施形態では仮想影の描画方法を既存のデプスバッファシャドウを利用するものとして説明する。デプスバッファシャドウを用いた場合、仮想影情報とはシャドウマップのことを意味する。シャドウマップとは、より具体的には、仮想光源方向から見た仮想空間のデプス値を保存したバッファである。
【００２１】
表示部２０５は、仮想空間描画部２０２から取得した仮想空間画像を表示する。例えば表示部２０５として、２次元平面ディスプレイやＨＭＤ（ヘッドマウントディスプレイ）を用いることができる。
【００２２】
外部記憶装置２０６は、仮想空間を３次元ＣＧとして描画するために必要となる仮想空間情報を記憶している。そのような仮想空間情報としては、仮想空間に配置されるモデルデータの３次元形状（頂点座標、面構成情報、稜線情報、法線ベクトル情報など）、光源情報、マテリアル情報、テクスチャ情報、配置情報など、が挙げられる。
【００２３】
次に、第１実施形態における処理全体の流れを図３を用いて説明する。図３は、上記の画像処理装置が行う仮想空間提示処理におけるメインの処理を示すフローチャートである。なお図３の処理を実現するための制御ログラムは外部記憶装置２０６に保存されており、必要に応じて報処理装置の不図示のメモリにロードされ、情報処理装置の不図示のＣＰＵにより実行される。こうして、情報処理装置は、図３に示す処理を実行することにより、仮想空間提示を行う画像処理装置として動作する。
【００２４】
処理を開始すると、ステップＳ３０１において、仮想空間生成部２０１は、処理に必要な仮想空間情報を外部記憶装置２０６から読み込む。ステップＳ３０２において、仮想空間生成部２０１は、外部記憶装置２０６から取得した仮想空間情報を用いて仮想空間を生成する。ステップＳ３０３において、仮想空間描画部２０２は、仮想空間生成部２０１が生成した仮想空間を取得し、該仮想空間を２つの視点からレンダリングする（２軸レンダリング）。また、ステップＳ３０３においては、位置関係判定部２０３と仮想影情報生成部２０４が、仮想空間描画部２０２のレンダリングにより生成された画像から、モデルデータ間の干渉チェック処理および仮想影情報生成処理を行なう。ステップＳ３０３の処理については後に詳細を述べる。
【００２５】
ステップＳ３０４において、仮想空間描画部２０２はステップＳ３０３で得られた干渉チェック処理の結果と仮想影情報生成の結果を反映させてカメラ視点からの仮想空間を描画する。ステップＳ３０４の処理については後述する。
【００２６】
そして描画により作成された仮想空間画像を表示部２０５に出力する。ステップＳ３０５において、表示部２０５はステップＳ３０３で仮想空間描画部２０２から送られてきた仮想空間画像を表示する。そして、ステップＳ３０６において、画像処理装置は、ユーザから処理終了の指令があったか否か判定し、終了指令があれば処理を終了する。一方、終了指令が無ければ処理はステップ３０２に戻り、ステップＳ３０２〜Ｓ３０６が繰り返される。
【００２７】
次に、図４を用いてステップＳ３０４の仮想空間描画処理を説明する。図４は、第１実施形態による仮想空間提示を体験するユーザに提示する仮想空間の一例を示す図であり、カメラ視点から描画された仮想空間画像である。図４の（ａ）は、仮想影情報や干渉チェック結果などの追加の仮想空間情報が反映される前の仮想空間画像である。図４の（ａ）において、４０１、４０２は仮想空間内に存在するモデルデータから得られたモデルデータである。図４の（ｂ）は、仮想影が描画された仮想空間画像である。図４の（ｂ）において、４０３は仮想影であり、仮想空間内の仮想光源（不図示）、モデルデータ４０１、及びモデルデータ４０２の関係から生成されている。図４の（ｃ）はモデルデータ間に干渉が生じている場合の仮想空間画像の提示例を示す図である。図４の（ｃ）において、４０４は新しく追加されたモデルデータであり、モデルデータ４０１に干渉が生じていることを提示するものである。
【００２８】
まず仮想影情報の生成結果を反映する、仮想影の描画方法ついて説明する。本実施形態では、ステップＳ３０４において、図４の（ｂ）に示すように仮想空間におけるモデルデータに対して仮想影の描画処理が行われる。第１実施形態ではこのような仮想影の描画方法として既存の技術であるデプスバッファシャドウが利用される。仮想空間描画部２０２は、仮想影情報生成部２０４から仮想影情報であるシャドウマップを取得し、これを用いて仮想空間に仮想の影付けを行う。より具体的には、ステップＳ３０４において、仮想空間描画部２０２は、ステップＳ３０３で取得されたデプスマップをカメラ視点の仮想空間にマッピングする。一方、カメラ視点の仮想空間画像におけるオブジェクトの各ピクセルに関してオブジェクトと仮想光源との距離を計算してそれをオブジェクトのデプス値とする。次に各ピクセルに関してデプスマップの値と計算で求めたオブジェクトのデプス値とを比較し、デプスマップの値がオブジェクトのデプス値よりも小さい場合は、そのピクセルが影として描画される。
【００２９】
ここで第１実施形態では、仮想影の描画方法にデプスバッファシャドウを用いるとしたが、これに限られるものではない。例えば、投影テクスチャシャドウを仮想影の描画方法として用いてもよい。即ち、仮想光源からのレンダリング結果を利用する仮想影の描画方法であればどのようなものでもよい。
【００３０】
次に、干渉チェック結果の反映を意味する干渉チェック結果の提示方法について説明する。第１実施形態では、ステップＳ３０４において、仮想空間において干渉が生じているモデルデータを強調表示することにより提示する。例えば、図４の（ｃ）に示すように、仮想空間描画部２０２が位置関係判定部２０３から取得した干渉チェック結果に基づいて、干渉が生じているモデルデータ４０１の位置に干渉を提示するための新しいモデルデータ４０４を描画する。
【００３１】
ここで、第１実施形態では、干渉有無の提示方法として新しいモデルデータを描画するとしたが、これに限定されるものではない。例えば、干渉しているモデルデータのバウンディングボックスを表示するようにしてもよい。即ち、干渉しているモデルデータがユーザに認識可能に提示できる方法であればどのような形態を用いても良い。さらにいうと、干渉の発生を音響により通知するなと、少なくとも干渉が生じることを提示できる方法であればどのようなものでもよい。
【００３２】
また、ステップＳ３０４において、仮想空間描画部２０２は、仮想影の描画と干渉チェック結果の描画との同期をとって描画を行う。しかしながら、このような形態に限定されるものでなく、仮想影の描画と干渉チェック結果の描画とを別々に行ってもよい。なお、ここでいう同期とは、描画の更新と干渉チェック計算の更新を同じタイミングで行うということである。従って、同期をとる場合、もしも干渉チェック計算に時間がかかってしまうと、それに引きずられて描画の更新も遅くなってしまう。しかし、長所としては、描画結果として干渉していれば必ず干渉チェック結果も干渉していると判断していることになる。一方、同期をとらない場合は、もし干渉チェック計算に時間がかかっても、それには関係なく描画の更新はされることになる。しかしながら、短所としては、描画結果として干渉していても干渉チェック結果はまだ干渉を認識していないという可能性がある。
【００３３】
次に、上記ステップＳ３０３の２軸レンダリング処理、即ち２つの視点からレンダリングすることにより仮想空間におけるモデルデータ間の干渉チェックの処理および仮想影情報生成の処理の詳細について説明する。
【００３４】
図５は、ステップＳ３０３の処理の詳細を示すフローチャートである。
【００３５】
処理を開始すると、ステップＳ５０１において、仮想空間描画部２０２は仮想光源位置を視点として仮想空間のレンダリングを行う（光源軸上レンダリング）。即ち、仮想光源を通る軸（仮想光源の視点軸）を法線とする面上への複数の仮想物体のレンダリングを行なう。ステップＳ５０２において、仮想影情報生成部２０４は、ステップＳ５０１のレンダリングによって得られた画像を基に仮想影情報としてのシャドウマップを作成する。このシャドウマップには仮想光源の視点からみた仮想空間のデプス値が記録されおり、作成されたシャドウマップはステップＳ３０４の仮想影の描画処理で用いられる。こうして、ステップＳ５０２では、レンダリングされた複数の仮想物体の影情報が得られることになる。
【００３６】
ステップＳ５０３において、位置関係判定部２０３は、ステップＳ５０１のレンダリングによって得られた画像を用いて、複数の仮想物体間の位置関係を判定する。本実施形態では、仮想光源の視点から見てモデルデータ同士が重なり合っていないかどうかを判定する交差判定が行なわれる。より具体的には、２次元平面にレンダリングされたモデルデータの交差判定を行うということになる。ここで行う交差判定の処理には一般的な交差判定の手法を用いればよい。例えば、２次元平面にレンダリングされたモデルデータを１次元の軸上へ射影し、各モデルデータの当該軸上における最大値と最小値の関係から交差を判定することが可能である。
【００３７】
図６の（ａ）を用いてステップＳ５０３による交差判定の処理を説明する。図６の（ａ）は仮想光源の視点からレンダリングされた仮想空間画像の一例を示す図である。図６の（ａ）において、６０１、６０２はそれぞれボール、机のモデルデータである。
【００３８】
図６の（ａ）において、ｂ１はモデルデータ６０１を１次元に射影した際の最小値、ｅ１はモデルデータ６０１を１次元に射影した際の最大値である。同様に、ｂ２はモデルデータ６０２を１次元に射影した際の最小値、ｅ２はモデルデータ６０２を１次元に射影した際の最大値である。また、図６の（ａ）において、縦軸６０３と横軸６０４は２次元面に設定された、仮想光源の視点軸に直交する軸であり、縦軸６０３と横軸６０４は互いに直交している。
【００３９】
モデルデータの１次元への射影では、図６の（ａ）に示されるように、仮想光源の視点からレンダリングされたモデルデータ６０１，６０２を画像の横軸６０４と縦軸６０３に対してそれぞれ１次元に射影する。そして各モデルデータの形状の最大値と最小値を求める。各モデルデータの最大値と最小値は、各モデルデータの射影軸上における最も端にある頂点である。
【００４０】
上記の如く各軸に射影された各モデルデータの最大値と最小値の関係を比較することにより交差判定処理が行われる。具体的には、各軸について
ｂ１＞ｅ２またはｂ２＞ｅ１
が成り立つときは軸上で分離しているといえるので交差がないものと判定することができる。この判定を各軸において行い、すべての軸において交差があれば交差ありと判定され、一軸でも交差がなければ交差がないものと最終的に判定される。
【００４１】
例えば、図６の（ａ）の場合、横軸６０４上においては交差が見られるが、縦軸６０３上には交差がないので、モデルデータ６０１とモデルデータ６０２には交差がないと判定される。以上、ステップＳ５０３の交差判定の処理について説明した。
【００４２】
次に、ステップＳ５０４において、仮想空間描画部２０２は上記仮想光源の視軸と直交している軸から仮想空間のレンダリングを行う。ステップＳ５０５において、位置関係判定部２０３はステップＳ５０４でレンダリングした結果を用いて交差判定を行う。つまり仮想光源の視点軸とは直交する軸から見てモデルデータ同士が重なり合っていないかどうかを判定する。
【００４３】
図６の（ｂ）に、仮想光源の視点軸と直交する軸からレンダリングされた仮想空間画像の一例を示す。図６の（ｂ）で６０５、６０６はそれぞれボールと机のモデルデータである。ｂ１はモデルデータ６０５を１次元に射影した際の最小値、ｅ１はモデルデータ６０５を１次元に射影した際の最大値、ｂ２はモデルデータ６０６を１次元に射影した際の最小値、ｅ２はモデルデータ６０６を1次元に射影した際の最大値である。なお、６０７、６０８は、仮想光源の視点軸に直交する軸（６０３、６０４）に対して直交する軸であり、それぞれの軸６０７、６０８も直交している。
【００４４】
ステップＳ５０５の交差判定は、ステップＳ５０３と同様である。ステップＳ５０６において、位置関係判定部２０３は、ステップＳ５０３とステップＳ５０４とで行われた交差判定の結果を参照する。本実施形態では、２つの軸上からの交差判定においてともにモデルデータ間の交差が存在すると判定された場合にのみ交差ありと判定され、処理はステップＳ５０６からステップＳ５０７へ進む。他の場合は、交差がないと判定され、処理はステップＳ５０８に進む。
【００４５】
ステップＳ５０７において、位置関係判定部２０３は仮想空間におけるモデルデータ同士の干渉判定を行う。この干渉判定には一般的な干渉判定方法を用いることができる。例えばGilbert et al.の方法（E. G. Gilbert, D. W. Johnson,and S. S. Keerthi,IEEE Journal of Robotics and Automation, Vol.4, No.2,pp.193-203, 1988.）を用いて干渉判定を行うことが可能である。
【００４６】
最後にステップＳ５０８において、ユーザから処理終了の指令があったか否かが判定され、終了指令があれば本処理は終了する。終了指令が無い場合は、処理はステップ５０１に戻り、上述したステップＳ５０１〜Ｓ５０８の処理が繰り返される。以上、第１実施形態の処理の流れを説明した。
【００４７】
なお、第１実施形態では交差判定を行うレンダリング対象をモデルデータとしたがこれに限られるものではない。例えば、交差判定を行う対象をモデルデータから予め作成された境界ボリュームとしてもよい。即ち、交差判定では、モデルデータ間に干渉があるか否かの可能性を判定できる方法であればどのようなオブジェクトを用いてもよい。ここで境界ボリュームとはモデルデータを包み込むボリュームであり、基本的にモデルデータを単純化したものである。例えば境界ボリュームにはＡＡＢＢ（Axis aligned bounding box）やＯＢＢ（Oriented bounding box）、Convex Hullがある。交差判定はモデルデータに対して行うよりもモデルデータの境界ボリュームに対して行う方が確実に早く処理できるので、境界ボリュームであることが望ましい。つまり仮想影の形状がモデルデータのように詳細である必要がないのであれば、ステップＳ５０１やＳ５０４においてモデルデータのＡＡＢＢやＯＢＢなどの境界ボリュームをレンダリングし、そのレンダリング結果を用いて交差判定を行ってもよい。
【００４８】
以上のように、第１実施形態の仮想空間提示方法によれば、レンダリングの結果を仮想影情報生成処理と交差判定処理が共有するので、仮想空間における３次元形状物体同士の干渉チェックとその３次元形状物体の仮想影の描画を効率よく行える。
【００４９】
なお、上記第１実施形態では、交差判定の処理の処理のために、仮想光源の視点を含む２つの視点からレンダリングを行い、そのうちの仮想光源の視点からのレンダリング結果を用いて仮想影情報を生成したが、これに限られるものではない。例えば、交差判定の処理のために仮想光源の視点を含む３つ以上の視点からレンダリングしてもよい。また、交差判定に用いる複数の視点からのレンダリング結果に複数の仮想光源の視点からのレンダリング結果を含むようにし、仮想影情報生成処理において、複数の仮想光源の視点からのレンダリング結果を用いて仮想影情報を生成するようにしてもよい。
【００５０】
また、上記第１実施形態では、仮想光源を通る軸を法線とする面と、仮想光源を通る軸と直交する軸を法線とする面へのレンダリング結果を利用して交差判定を実行している。即ち、交差判定は２つの直交する軸上に視点を置いて得られたレンダリング結果を用いて行われる。しかしながら、レンダリングを行なう面（視点を置くべき軸）はこのような組み合わせにに限られるものではない。例えば、仮想光源の視点を通る軸と交差する軸上に視点を置いたレンダリング結果や、仮想光源の視点と任意のカメラ視点からのレンダリング結果を用いてもよく、レンダリングの視点軸が直交していることは必須ではない。任意のカメラ視点からのレンダリング結果としては、仮想空間描画部２０２で最終的に描画すべき特定の視線方向と一致する方向からのレンダリング結果を用いることも可能である。但し、交差判定の精度の観点からは、直交する２軸を法線とした２つの面へのレンダリング結果を用いる方が好ましい。
【００５１】
また上記第１実施形態では、交差判定処理および仮想影情報生成処理のために仮想光源の視点からのレンダリングを行うとしたが、これに限られるものではない。仮想光源以外の位置の視点からのレンダリングを行い、その結果から交差判定の処理および仮想影情報生成の処理を行うようにしてもよい。即ち、偽の影を作成するための仮の仮想光源を設定してもよい。
【００５２】
以上説明したように、第１実施形態によれば、影付けのための仮想影情報の生成に必要となるレンダリング処理と、干渉チェックの１処理である交差判定の処理の一部が共有化される。このため、影付け処理と干渉チェックの処理を併用する場合にも、高速に計算処理を行うことが可能となる。
【００５３】
［第２実施形態］
第１実施形態ではレンダリングされたモデルデータまたは、レンダリングされた境界ボリューム（レンダリング前に予め作成された境界ボリューム）に対して交差判定を行う。この場合、レンダリング前に予め作成された境界ボリュームを用いた場合、交差判定の処理はより高速に行えるようになるが、生成される仮想影の形状が境界ボリュームの形状となってしまう。そこで、第２実施形態では、モデルデータのレンダリング結果から交差判定のために境界ボリュームを算出して、その境界ボリュームを用いて交差判定を行う。このような第２実施形態の処理は、第１実施形態のステップＳ５０３、ステップＳ５０５の交差判定の処理の中にモデルデータから境界ボリュームを作成する処理を追加することにより実現可能である。
【００５４】
以上のような第２実施形態によれば、レンダリング結果としてモデルデータのそのままの形状情報が得られるのでモデルデータの形状を反映した仮想影を生成することができる。さらに、交差判定はモデルデータの境界ボリュームに対して行なわれるので、より高速に交差判定を行うことができる。
【００５５】
［第３実施形態］
第１実施形態では複数の視点位置からのレンダリング結果を用いて交差判定の処理が行われる。第３実施形態では、仮想光源の視点からの１つのレンダリング結果のみを用いて交差判定の処理と仮想影情報生成の処理を行なう。
【００５６】
第３実施形態が第１実施形態と異なるのはステップＳ５０３〜ステップＳ５０６の処理である。第３実施形態においては、ステップＳ５０４とステップＳ５０５の処理は省略されるので、以下、ステップＳ５０３とステップＳ５０６の処理について説明する。
【００５７】
ステップＳ５０３において、位置関係判定部２０３はステップＳ５０１においてレンダリングした結果を用いて交差判定を行う。つまり、図６の（ａ）により説明したように、仮想光源の視点から見てモデルデータ同士が重なり合っていないかどうかを判定する。
【００５８】
ここで本実施形態のステップＳ５０３の処理が第１実施形態のステップＳ５０３の処理と異なるのは、１次射影する軸の数である。第１実施形態の交差判定では画像の横軸６０４、縦軸６０３の２軸へ１次射影を行ったが、第３実施形態では更にもう１軸を増やして、３軸への１次射影を行う。この３軸は例えば仮想光源のローカル座標系のｘ軸、ｙ軸、ｚ軸である。
【００５９】
図７を用いて第３実施形態におけるステップＳ５０３の交差判定の処理を説明する。図７は仮想光源の視点からレンダリングされた仮想空間画像の一例を示す図である。図７において、７０１、７０２はそれぞれ机とボールのモデルデータである。ｂ１はモデルデータ７０１を１次元に射影した際の最小値、ｅ１はモデルデータ７０１を１次元に射影した際の最大値、ｂ２はモデルデータ７０２を１次元に射影した際の最小値、ｅ２はモデルデータ７０２を１次元に射影した際の最大値である。軸７０３と軸７０４は仮想光源の視点軸に直交する軸であり、それぞれの軸も直交している。また、軸７０５は仮想光源の視点軸である。また、軸７０５への射影は、デプスバッファやカラーバッファを参照して取得され得る。
【００６０】
第３実施形態では、図７に示されるように、仮想光源の視点からレンダリングされたモデルデータを３軸に対してそれぞれ１次元に射影する。尚、軸７０３、７０４への投影は第１実施形態と同様であり、軸７０５への投影はデプスバッファを用いて実現することができる。そして各モデルデータの各軸における最大値と最小値を求める。このとき、各軸において各モデルデータの最大値と最小値の関係を比較することにより交差判定が行われる。具体的には
ｂ１＞ｅ２  または  ｂ２＞ｅ１
が成り立つときは軸上で分離しているといえるので交差がないものと判定することができる。交差判定では、上記判定を３軸のすべてについて行い、すべての軸において交差があれば交差ありと判定し、１軸でも交差がなければ交差がないものと判定する。
【００６１】
以上のように第３実施形態によれば、第１実施形態の交差判定と比較して交差判定を行う回数が減るため交差判定の精度は落ちるが、レンダリング負荷が減少される。
【００６２】
なお、第３実施形態ではモデルデータを３軸に射影して交差判定を行うとしたがこれに限られるものではない。すなわち、３軸以上、又は、３軸以下にモデルデータを射影して交差判定を行うことも可能である。但し、交差軸（射影を行う軸）が多ければ多いほど判定の精度は上がる。また、１軸でも精度は低いが交差判定は可能である。交差判定の精度と処理速度はトレードオフの関係なので、適切な交差軸の数を設定して交差判定を行うようにしてもよい。
【００６３】
以上、第３実施形態の処理の流れを説明した。第３実施形態によれば、仮想光源の視点軸からの１つのレンダリング結果を生成し、これを仮想影情報生成の処理と交差判定の処理で共有する。このため、仮想空間における３次元形状物体同士の干渉チェックとその３次元形状物体の仮想影の描画をより効率よく行うことができる。
以上のような各実施形態によれば、仮想影の生成のためのレンダリングを他の画像処理に利用する、或いはまたは交差判定のためのレンダリングを他の画像処理に利用するようにした。このため、レンダリング結果を利用した複数の処理を高速に実行可能とすることができる。
【００６４】
［第４実施形態］
上述したように、仮想空間描画部２０２は、
（１）ある視点からの仮想空間の描画結果を位置関係判定部２０３と仮想影情報生成部２０４に出力する、
（２）位置関係判定部２０３と仮想影情報生成部２０４からの干渉チェック結果と仮想影情報を反映した、カメラ視点からの仮想空間の描画結果を表示部２０５に出力する、
という２つの機能を有する。そして、上記の第１乃至第３実施形態では、仮想空間描画部２０２の上記２つの機能を１つの情報処理装置により実現しているが、これに限られるものではない。第４実施形態では、仮想空間描画部２０２の上記（１）の機能を実現するユニット（任意視点仮想空間描画部と呼ぶ）と、仮想空間描画部２０２の上記（２）の機能を実現するユニット（カメラ視点仮想空間描画部と呼ぶ）を別体の情報処理装置で実現する。
【００６５】
第４実施形態の場合、仮想空間生成部２０１で生成された仮想空間と、仮想影情報生成部２０４で生成された仮想影情報と、位置関係判定部２０３による干渉チェック結果をカメラ視点仮想空間描画部に出力することが必要となる。仮想空間や干渉チェック結果、仮想影情報をカメラ視点仮想空間描画部を有する情報処理装置に出力する際には、それらを圧縮して出力するのが好ましい。例えば、仮想影情報がシャドウマップである場合は、普通のフレームバッファを圧縮するとの同様にシャドウマップを圧縮すればよい。
【００６６】
［他の実施形態］
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００６７】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【００６８】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００７０】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００７１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【００７３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００７４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【００７５】
【図１】第１実施形態による仮想空間の一例を説明する図である。
【図２】第１実施形態による画像処理装置の構成例を示すブロック図である。
【図３】第１実施形態による画像処理装置の処理の概要を示すフローチャートである。
【図４】第１実施形態による仮想空間の一例を示す図である。
【図５】第１実施形態の２視点からのレンダリング処理の流れを示すフローチャートである。
【図６】第１実施形態の交差判定を説明する図である。
【図７】第３実施形態の交差判定を説明する図である。
【図２】
2008234473.tif 000003
【図３】
2008234473.tif 000004
【図５】
2008234473.tif 000005
【図６】
2008234473.tif 000006
【図７】
2008234473.tif 000007
【図１】
2008234473.tif 000008
【図４】
2008234473.tif 000009