(57)【特許請求の範囲】
【請求項１】
現実近似物体と仮想物体とを含む３次元空間を、コンピュータグラフィックスを使って描画する画像処理装置であって、
前記現実近似物体が前記３次元空間に落とす影の領域を計算する第１影領域計算手段と、
前記仮想物体が前記３次元空間に落とす影の領域を計算する第２影領域計算手段と、
前記第１影領域計算手段により計算した領域と前記第２影領域計算手段により計算した領域が重なるときに、前記第１影領域計算手段により計算した領域と、前記第２計算手段により計算した領域と、が重なる領域に基づいて、前記仮想物体の影を生成する領域を決定することを特徴とする画像処理装置。
【請求項２】
更に、前記第１影領域計算手段により算出した領域と、前記第２影領域手段により計算した領域と、を足し合わせた領域から、前記第１影領域計算手段により算出した領域を除外した領域に、影の影響を画素値に加える画素値演算手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素値演算手段は、前記第２影領域計算手段で算出した領域内の画素について、前記現実近似物体が前記３次元空間に落とす影の影響を画素値から打ち消すことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画素値演算手段は、前記第１影領域計算手段により算出した領域と、前記第２影領域手段により計算した領域と、に基づいて、画素単位で影の影響を画素値に加えるかどうかの判断をすることを特徴とする請求項２に記載の画像処理装置。
【請求項５】
現実物体が占有する領域に対応する３次元空間に存在する幾何形状である現実近似物体及び仮想物体を含む３次元空間を、コンピュータグラフィックスを使って描画する画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１影領域計算手段が、前記現実近似物体が３次元空間に落とす影の領域を計算する第１影領域計算工程と、
前記画像処理装置の第２影領域計算手段が、前記仮想物体が前記３次元空間に落とす影の領域を計算する第２影領域計算工程と、
前記第１影領域計算工程により計算した領域と前記第２影領域計算工程により計算した領域が重なるときに、前記第１影領域計算工程により計算した領域と、前記第２計算工程により計算した領域との、重なる領域に基づいて、前記仮想物体の影を生成する領域を決定することを特徴とする画像処理方法。
【請求項６】
コンピュータに請求項５に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックスによる画像生成手法において、特に現実物体を表現する第１の仮想物体および第２の仮想物体を３次元空間内に有し、光学的に正しい描画を行うことを特徴とする技術に関する。
【背景技術】
【０００２】
実写風景を背景として、その上にコンピュータグラフィックス（以下、ＣＧと記述）を重畳して提示し、観察者に対して、あたかもその場に仮想の物体が存在するかのような体験を行わせる複合現実感（ＭＲ：ＭｉｘｅｄＲｅａｌｉｔｙ）の技術がある。
【０００３】
従来、前記複合現実感の技術と光線追跡（レイトレーシング）を組み合わせ、現実物体（床）に仮想物体（ＣＧ）が影を落とすシステムが提案されている（非特許文献１）。非特許文献１で示される描画システムは、ビデオ映像として取得される実写画像を背景にして、ＣＧ物体をレイトレーシング法で描画し重畳することにより複合現実画像を生成している。このシステムを利用した描画の一例では、現実物体である床に仮想物体であるＣＧの球が影を落とす様子を表現している。このような表現を実現するために、現実の床を表現する仮想物体を定義している。その上で、この床に対応する仮想物体に落ちる影の像を生成し、実写画像と合成する。
【０００４】
また、現実物体の位置姿勢をセンシングした結果に基づき、その現実物体を表現するＣＧモデルを複合現実空間に配置して、複合現実空間における仮想物体と現実物体の正しい奥行き関係を表現する手法が提案されている（特許文献１）。
【特許文献１】特開２００５−２９３１４２号公報
【非特許文献１】Ｉｎｔｅｒａｃｔｉｖｅ  Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ  Ｒｅｎｄｅｒｉｎｇ  ｉｎ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒａｙ  Ｔｒａｃｉｎｇ  Ｆｒａｍｅｗｏｒｋ  Ａｎｄｒｅａｓ  Ｐｏｍｉ，ａｎｄ  Ｐｈｉｌｉｐｐ  Ｓｌｕｓａｌｌｅｋ  ＩＥＥＥ  ａｎｄ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｘｅｄ  ａｎｄ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ（ＩＳＭＡＲ）  ２００４，Ｓｔｕｄｅｎｔ  Ｃｏｌｌｏｑｕｉｕｍ，Ａｒｌｉｎｇｔｏｎ，ＵＳＡ，Ｎｏｖｅｍｂｅｒ  ２−５，２００４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般的に、人間が視覚情報から物体間の位置関係を把握する際には、影の像を手がかりにしている。したがって、複合現実感の場合も、観察者が物体間の位置関係を正しく把握するためには、影を正しく表現することが必要不可欠である。つまり、現実物体同士の影や仮想物体同士の影だけではなく、現実物体と仮想物体が相互に影を落とす表現が必要である。
【０００６】
非特許文献１では、仮想物体から現実物体である床を表現する仮想物体（透明な物体として表現されている）に落ちる影を描画している。非特許文献１において、仮想空間の中で現実物体を表すための仮想物体は床と人間の２つである。現実の空間では、人間が床に影を落としている。この場合の影の像は現実空間を撮影した画像の中に現れている。したがって、当然のことながらＣＧで人間の影を描画する必要はない。
【０００７】
しかしながら、非特許文献１はこのような場合を考慮していないため、現実画像中の影に加えて、不必要な影の像を生成してしまう。
【０００８】
この問題は、１つの現実物体を模した仮想物体の内部で影（セルフシャドウ）が生じる場合も起こりうる。例えば、観察者が観察者自身の手を丸めて、丸めた手の平をみると、現実に生じた影の他に、現実物体を模した仮想物体の影によって更に濃い影が生じる。この問題はレイトレーシング法に留まらず、ＣＧによる一般的な画像生成手法にも言える問題である。
【０００９】
図１は上記の問題を説明する原理図である。図１は、シーン上方から順に仮想光源１０１、観察者の手１０２、仮想物体である球１０３、床１０４の順番で配置されている。現実の光源状況と仮想の光源状況は一致しているものとする。
【００１０】
ここで、現実近似物体以外の仮想物体を“非現実近似物体”と呼び、現実近似物体および非現実近似物体を包括した全ての仮想物体を“全仮想物体”と呼ぶことにする。
【００１１】
原理図における光学的に正しい描画について説明する。
１．観察者の手１０２（現実物体）は、球１０３（非現実近似物体）の上に影を落とす（影（１）１０５）
２．観察者の手１０２（現実物体）は、床１０４（現実物体）に影を落とす（影（２）１０６）
３．球１０３（非現実近似物体）は、床１０４（現実物体）に影を落とす（影（３）１０７）
４．現実の影（影（２）１０６）と仮想の影（影（３）１０７）が重なる領域は、現実の影のみで仮想の影は描画しない（影（４）１０８）。
【００１２】
影（１）１０５は、現実に存在しない影である。したがって、影（１）１０５を観察者に提示するにはＣＧの影を計算し、球の上に描画する必要がある。ここで、現実物体が仮想物体上に影を落とすには、仮想空間内に現実物体の形状情報を仮想物体として定義する必要がある。
【００１３】
本提案では、このように仮想空間内に定義した現実物体を模擬した仮想物体を現実近似物体と呼ぶ（現実近似物体についての詳細は後述）。
【００１４】
そして、球（非現実近似物体）の表面を描画する際に、仮想空間に定義した現実近似物体の影をＣＧで描画をすることによって、観察者の手の影を球に描画することが可能になる。
【００１５】
次に、観察者の手は、床に現実の影を落とす（影（２）１０６）。これは自然現象であり、そもそもＣＧで影を描画する必要はない。
【００１６】
そして、球１０３は床１０４に影を落とす必要がある（影（３）１０７）。この効果を実現するためには、観察者の手と同様に床を現実近似物体として仮想空間に定義して影を落とす領域を計算する必要がある。
【００１７】
最後に、影（４）１０８は、影（２）１０６と影（３）１０７が重なる領域である。この領域は現実の影の上にＣＧの影が描画されるため、現実の影よりも濃い影になってしまう。
【課題を解決するための手段】
【００１８】
上記の問題を解決するための本発明による画像処理装置は以下の構成を備える。
【００１９】
現実近似物体と仮想物体とを含む３次元空間を、コンピュータグラフィックスを使って描画する画像処理装置であって、前記現実近似物体が前記３次元空間に落とす影の領域を計算する第１影領域計算手段と、前記仮想物体が前記３次元空間に落とす影の領域を計算する第２影領域計算手段と、前記第１影領域計算手段により計算した領域と前記第２影領域計算手段により計算した領域が重なるときに、前記第１影領域計算手段により計算した領域と、前記第２計算手段により計算した領域との、重なる領域に基づいて、前記仮想物体の影を生成する領域を決定することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、コンピュータグラフィックスによる画像生成手法において、現実物体と仮想物体が相互に生じる影の描画を正しく表現することを可能にする。
【発明を実施するための最良の形態】
【００２１】
以下、添付の図面を参照して本発明をその好適な実施形態に基づいて詳細に説明する。
【００２２】
本実施形態に係る画像処理装置は、非現実近似物体が影を落とす領域から、現実物体が占有する領域に対応する３次元空間に存在する貴下形状である現実近似物体が影を落とす領域を除外することにより非現実近似物体のみの影領域を計算するものである。
【００２３】
本実施形態における現実物体の計測・推定方法は、公知の技術を用いるため、ここでの詳細な説明は省略する。一例としては、複数台のカメラを利用したステレオマッチングによる３次元復元や、３次元レンジファインダなどの計測機器を利用した計測・推定方法などが挙げられる。
【実施例１】
【００２４】
（影領域の引き算によって非現実近似物体領域を算出）
図２は、実施例１に係る画像処理装置の構成を説明するためのブロック図である。仮想空間データベース（以下ＤＢ）２０１は、全仮想物体の形状・材質・光源・仮想視点の位置姿勢等の情報を格納しているものである。仮想空間ＤＢ２０１は、ユーザの操作により個々の仮想物体の位置情報が変更された場合や材質等の属性情報が変更された場合に逐次的に更新される。
【００２５】
現実物体計測・推定部２０２は、現実物体の幾何形状・位置姿勢および材質情報などを計測または推定し、仮想空間ＤＢ２０１に出力する。本実施例では、実写画像入力部２０３より得られる実写画像からステレオマッチングで奥行き推定を行う。奥行き推定で得られた結果を元に３次元の形状推定を行い、仮想空間ＤＢ２０１に登録する。
【００２６】
現実物体計測・推定部２０２により仮想空間ＤＢ２０１に出力された仮想物体には現実近似物体である旨の属性情報を付与する。ここで付与する属性情報は、現実近似物体であるか、または一般的な仮想物体（非現実近似物体）であるかの２値の情報である。ただし、ここで付与した情報を区別する方法は問わない。また属性情報を付与する代わりに仮想物体の透明度や、仮想物体に割り当てられた名称などの属性情報から現実近似物体と非現実近似物体の区別を行ってもよい。そして、これらの情報を元に影を落とす領域を計算する。
【００２７】
実写画像入力部２０３は、観察者の頭部位置に備え付けられたビデオカメラより撮影された映像（画像）を入力データとして取り込む。入力として得られる実写画像は、現実物体計測・推定部２０２と画素値演算部２０７に供給される。
【００２８】
視点位置姿勢制御部２０４は、観察者の頭部位置姿勢を検出し仮想視点の位置姿勢を制御するものである。観察者の頭部位置姿勢の検出方法は、６自由度センサによる位置姿勢計測や２次元マーカをカメラで撮影し、頭部位置姿勢に変換することで、計測する手法などがある。観察者の頭部位置姿勢検出の方法は公知の技術を用いるため、ここでの詳細な説明は省略する。
【００２９】
第１影領域計算部２０５は、仮想空間ＤＢ２０１に登録されている現実近似物体の影領域を計算する処理を行う。影の計算方法は、シャドウマップによる手法がある。
【００３０】
シャドウマップは、各仮想光源から見た仮想シーンの深度値（デプス情報）をレンダリングして影を落とす領域を計算する方法である。レンダリングによって得られた深度値は、深度バッファまたはテクスチャ情報として保存する。シャドウマップによる画像生成は、２パスのレンダリングが必要である。
【００３１】
まず、１パス目のレンダリングでシャドウマップを作成する。シャドウマップは仮想視点を仮想光源の位置において射影空間のｚ値をレンダリングする。射影空間のｚ値を利用しシャドウマップを可視化すると、手前の色が黒で、奥の色が白いテクスチャ情報が得られる。
【００３２】
２パス目のレンダリングでは、仮想物体の深度値と深度バッファの値を比較しながら仮想空間ＤＢ２０１のシーンをレンダリングする。比較する値は、仮想光源からの距離である。
【００３３】
比較方法としては、まず仮想光源から見た深度値をシャドウマップとして書き込む。次に通常の仮想視点からみた画面にシャドウマップをマッピングする。一方で、通常の仮想視点から仮想物体を観測した際の仮想物体上の各ピクセルに関して各仮想光源からの距離を求める。そして、それぞれのピクセルに関してシャドウマップの値と計算で求めた仮想光源との距離を比較し、シャドウマップの値が小さい部分を影と判定する。
【００３４】
影が落ちると判定された画素は、影を生じさせている光源の輝度情報を基に影を落とす前の画素値から光源の輝度を減算することにより計算することができる。この処理を各光源に対して繰り返す。ここで、光源輝度と物体表面の明るさの関係は線形性を有しているため、光源一つ一つの輝度を独立に減算することより影の濃さを計算することが可能である。このようにして、影を落とす領域の計算を行う。
【００３５】
以上がシャドウマップの概要である。シャドウマップによる計算手法は、公知技術として広く一般に使われる手法であるためこれ以上の詳細な説明は省略する。
【００３６】
第２影領域計算部２０６は、仮想空間ＤＢ２０１に登録されている非現実近似物体のみが影を落とす領域を計算する。影を落とす領域の計算方法は第１影領域計算部２０５と同じ手法を用いる。
【００３７】
画素値演算部２０７は、実写画像入力部２０３を背景画像として、視点位置制御部２０４で取得した仮想視点位置に則り、仮想空間ＤＢ２０１と第１および第２影領域計算部の情報を元にレンダリングを行い、画素値を決定する。
【００３８】
画面出力部２０８は、画素値演算部２０７で計算した全画素値の結果を表示装置に出力するものである。
【００３９】
図３は、本発明の第１の実施形態に係る画像処理装置のフローチャートを示す図である。処理を開始すると、ステップＳ３０１で、初期化を行う。具体的には、処理の実行に必要な記憶領域の確保などを行うものである。
【００４０】
ステップＳ３０２は、視点位置姿勢制御部２０４により観察者の頭部位置姿勢情報を取得する。頭部位置姿勢情報から視点位置姿勢情報への変換は公知の技術を用いる。
【００４１】
ステップＳ３０３は、現実物体計測・推定部２０２が現実物体の形状・材質情報・現実の光源情報の取り込みを行う。現実物体の形状・材質情報の取得方法ならびに現実の光源情報の取得方法は公知の技術を用いる。ここで、ＣＧによる影の向きや濃さと現実の影の向きや濃さがかけ離れていると、臨場感を損なう大きな要因となる。したがって、現実の光源の位置・向き・強さの情報を忠実に仮想空間内に反映できることが望まれる。
【００４２】
従来より、現実の光源環境を仮想空間内に再現する手法が提案されている。一例としては、ビデオ映像として取得した実写画像からハイライト成分を抽出し分析をすることにより、現実の光源情報（位置・向き・強さ）を算出し推定するものなどが挙げられる（池内克史、佐藤洋一、西野恒、佐藤いまり：“複合現実感における光学的整合性の実現、”日本バーチャルリアリティ学会論文誌「複合現実感」特集号、Ｖｏｌ．４、Ｎｏ．４、ｐｐ．６２３−６３０、Ｄｅｃｅｍｂｅｒ  １９９９）。
【００４３】
このように３次元形状の取得方法、並びに、現実環境の光源推定方法は多岐に渡って提案されているため、構築したいシステムに応じて好適な手段を選択すればよい。
【００４４】
ステップＳ３０４は、ステップＳ３０２、ステップＳ３０３の結果を受け、仮想空間ＤＢ２０１の更新を行う。具体的には、ステップＳ３０２で取得した観察者の頭部位置姿勢情報を仮想空間内の仮想視点位置姿勢に割り当てる。そして、ステップＳ３０３で取得した現実物体の形状情報を仮想空間内に登録する。
【００４５】
ここで、現実近似物体の形状を仮想空間内に登録するため、３次元位置情報を有する点群データから三角形パッチを生成しポリゴン化を行う。また、現実物体の形状は必ずしもポリゴン化する必要は無く、ＮＵＲＢＳ曲面によって表現された任意の形状でも良い。構築するシステムによっては、ポリゴンやメッシュ表現の他にメタボール表現を使うなどの方法で現実近似物体を表現してもよい。
【００４６】
また、ステップＳ３０３で取得した現実環境の光源情報に従い、仮想光源を仮想空間内に配置する。ステップＳ３０５は、画素値演算部２０７においてステップＳ３０２で取得した視点位置姿勢に基づいてレンダリング処理を行う。レンダリング処理の詳細は後述する。ステップＳ３０６はステップＳ３０５で生成した画像を画面出力部２０８で表示装置に描画を行う。
【００４７】
ステップＳ３０７は、システムを終了するか否かの判定を行う。システムを終了させなければ、ステップＳ３０２に戻る。そして、システムを終了させる場合はプログラムの終了処理に基づき終了処理を行う。
【００４８】
以上が本実施例に係る画像処理装置の全体の流れである。次に、レンダリング部分の詳細について説明する。図４は、レンダリング部分の流れを説明する図である。
【００４９】
ステップＳ４０１は、現実近似物体が影を落とす領域を計算する。ステップＳ４０１の影を落とす領域の計算では、各仮想光源に仮想視点を配置して仮想空間ＤＢ２０１の深度情報を計算しシャドウマップを生成する。このとき、第１影領域計算部２０５では仮想空間ＤＢ２０１より現実近似物体を計算対象としてシャドウマップＡを生成する。そして、ステップＳ４０２は、仮想空間ＤＢ２０１より非現実近似物体のみを計算対象としてシャドウマップＢを生成する。この２つのシャドウマップを計算する処理を各光源に対して繰り返す。そして、各光源に対してシャドウマップＡとシャドウマップＢを生成しテクスチャ情報としてメモリに保存する。
【００５０】
ここで、シャドウマップＡおよびシャドウマップＢの計算は完全に独立しているため、各ＣＰＵをそれぞれのシャドウマップ生成に割り当て、並列計算することが可能である。
【００５１】
ステップＳ４０３は、背景となる実写画像を描画するために、実写画像入力部２０３で取得した画像を画素値演算部２０７でフレームバッファに書き込む。
【００５２】
ステップＳ４０４は、画素値演算部２０７で背景となる実写の上に重畳する非現実近似物体を描画する処理を行う。
【００５３】
ステップＳ４０５は、ステップＳ４０１およびステップＳ４０２で計算したシャドウマップを元に、仮想視点から見たシーンの影領域を計算する。実際にＣＧで影を描画する領域は、非現実近似物体が落とす影の領域から、現実近似物体が落とす影の領域を引き算することによって算出することができる。
【００５４】
ステップＳ４０５における影の領域計算は、第１影領域計算部および第２影領域計算部に、視点位置姿勢制御部２０４から仮想視点情報を入力し、各光源に対してシャドウマップを参照するとによって計算する。そして、仮想視点においてシャドウマップＢを参照して算出した影領域ＢとシャドウマップＡより算出した影領域Ａで差をとる。影領域Ｂと影領域Ａの差は、２次元画像上でマスク処理（または画素値の減算処理）をすることによって計算することができる。このようにして、非現実近似物体のみが落とす影の領域を計算する。
【００５５】
その結果、非現実近似物体のみが落とす影の領域のみＣＧで影を描画することができ、現実の影を阻害せずにＣＧの影を描画することが可能になる。
【００５６】
ここで、影の領域を計算する手法としては、本実施形態で説明したシャドウマップの他に、影の影響範囲をボリュームデータとして計算するシャドウボリュームの手法や事前計算済み放射輝度伝播（Ｐｒｅｃｏｍｐｕｔｅｄ  Ｒａｄｉａｎｃｅ  Ｔｒａｎｓｆｅｒ）を算出しておいてグローバルイルミネーションの計算を行う手法も広く利用されている。本発明は、上記のいずれにも応用が可能であり、影の描画手法に制限はない。
【００５７】
また、本実施形態では、図１でＣＧの球が観察者の手と床にそれぞれ影を落とす場合について説明した。本実施形態はそれ以外の配置についても有効である。例えば、図１のＣＧの球と観察者の手の上下関係が逆転した場合などである。このように本実施形態によれば仮想物体と現実物体が任意の上下関係であっても適応可能であり、さらに物体の個数に関係無く適応可能である。
【００５８】
さらに、非現実近似物体のみの影領域を計算する代わりに、全仮想物体を対象にした影領域を計算した場合も同様に、現実近似物体の影領域を除外することによって求めたい影領域を計算することが可能である。
【実施例２】
【００５９】
（一旦全仮想物体の影を描画した後、影の描画を打ち消す）
実施例１に係る画像処理装置は、全仮想物体が落とす影の領域から現実近似物体のみが落とす影の領域を引き算することによって、現実の影を阻害せずにＣＧで描画する影の領域を計算するものであった。実施例２に係る画像処理装置は、個々の画素値を計算する際に、現実近似物体が落とすＣＧによる影の影響を差し引くものである。
【００６０】
本実施形態に係る原理図・構成図は第１の実施形態の原理図・構成図と同一であるため、説明は省略する。
【００６１】
図５は、第２の実施形態に係るレンダリング処理の流れを説明する図である。第１の実施形態との違いは、図５のステップＳ５０１とステップＳ５０２の処理である。またステップＳ４０２でシャドウマップを作成する対象は全仮想物体である。
【００６２】
ステップＳ５０１は、全仮想物体が落とす影の領域（シャドウマップＢ）に基づいてステップＳ４０４で生成した画像にＣＧで影を描画する。この段階では現実近似物体を含む全仮想物体が落とす影の領域に対してＣＧの影が描画されるため、正しい描画にはならない（現実の影とＣＧの影が重なる領域が存在する）。
【００６３】
ステップＳ５０２は、現実近似物体のみが落とす影の領域（シャドウマップＡ）に基づいてステップＳ５０１で描画した余分な影の領域（現実の影とＣＧの影が重なる領域）を取り消す処理を行う。この取り消し処理は、シャドウマップＡで算出した影の領域内を対象として各画素の値を再計算することよって実現する。具体的には、シャドウマップＡを参照し、現実近似物体で遮ることとなった仮想光源を全て算出し、全ての仮想光源の輝度値を対象画素に加算することによってＣＧで描画した影を取り消すことが可能になる。
【００６４】
このようにして、一度全仮想物体が落とす影の領域を描画しておき、現実近似物体が落とす影の領域において、ＣＧによる影の影響を打ち消すことによって現実の影を阻害せずにＣＧの影を描画することが可能になる。
【実施例３】
【００６５】
（画素単位で影描画の判定処理を行う）
実施例３に係る画像処理装置は、非現実物体の描画時に画素単位で影の描画計算を行うものである。本実施形態に係る原理図・構成図は第１の実施形態の原理図・構成図と同一であるため、説明は省略する。
【００６６】
図６は、第３の実施形態に係るレンダリング処理の流れを説明する図である。第１の実施形態との違いは、図６のステップＳ６０１〜ステップＳ６０３の処理である。故にステップＳ４０１〜ステップＳ４０４までの処理は第１の実施形態における処理と同一であるため説明を省略する。
【００６７】
ただし、ステップＳ６０１〜ステップＳ６０３の処理は、ステップＳ４０４における各画素単位での処理の流れになっているので、ステップＳ４０４は非現実近似物体の画素値を算出した後、その画素に影を描画するか否かの判定処理を行う。
【００６８】
ステップＳ６０１は、対象画素にＣＧの影を描画するかどうかを判定する。具体的には、まずシャドウマップＢを参照し、非現実近似物体が対象画素に影を落とすかどうかを調べる。非現実近似物体が対象画素に影を落とさない場合は、ＣＧで影を描画する必要が無いため次の処理に移る。
【００６９】
次に、シャドウマップＡを参照し、現実近似物体が対象画素に影を落とすかどうかを調べる。現実近似物体および非現実近似物体が影を落とす場合は、現実に影が存在するためＣＧで影を描画する必要がないため次の処理に移る。
【００７０】
そして、非現実近似物体のみが影を落とす場合のみ、ステップＳ６０２に移行し対象画素に影を描画する処理を行う。
【００７１】
ここで、シャドウマップは各光源に対して存在するため、ステップＳ６０１における判定処理は、各光源に対して繰り返しシャドウマップを参照する必要がある。
【００７２】
ステップＳ６０２は、対象画素に影の描画を行う。具体的には、対象画素に影を落とす原因となっている仮想光源を特定し、背景となる実写画像または非現実近似物体の画素値から仮想光源の輝度値を減算することによって影を描画することが可能になる。
【００７３】
仮想光源は、対象画素に影を落とすシャドウマップＡを生成した仮想光源を特定することで特定することができる。
【００７４】
ステップＳ６０３は仮想スクリーン上の全ての画素において計算が終了したかどうかを判定する。計算が終了していない場合は、ステップＳ４０４に戻り次の画素値を計算する。そして、全ての画素に関して計算が終了したら、レンダリング処理を終了する。
【００７５】
なお、本発明の目的は次のようにしても達成される。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。このようにしても目的が達成されることは言うまでもない。
【００７６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータ読取可能な記憶媒体は本発明を構成することになる。
【００７７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７８】
また、本発明に係る実施の形態は、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７９】
さらに、本発明に係る実施形態の機能は次のようにしても実現される。即ち、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。この処理により前述した実施形態の機能が実現されることは言うまでもない。
【図面の簡単な説明】
【００８０】
【図１】第１の実施形態に係る画像処理装置の原理を説明する原理図である。
【図２】第１の実施形態に係る画像処理装置の構成を説明するブロック図である。
【図３】第１の実施形態に係る画像処理装置の処理の流れを説明するフローチャートである。
【図４】第１の実施形態に係る画像処理装置のレンダリング処理の詳細を説明するフローチャートである。
【図５】第２の実施形態に係る画像処理装置のレンダリング処理の詳細を説明するフローチャートである。
【図６】第３の実施形態に係る画像処理装置のレンダリング処理の詳細を説明するフローチャートである。
【図１】
0005025496.tif 000002
【図２】
0005025496.tif 000003
【図３】
0005025496.tif 000004
【図４】
0005025496.tif 000005
【図５】
0005025496.tif 000006
【図６】
0005025496.tif 000007