(57)【特許請求の範囲】
【請求項１】
仮想空間内に配置されるオブジェクト、面状体、および、当該面状体に投影される当該オブジェクトの像を表す画像を生成する画像処理装置であって、
当該仮想空間内に配置される視点の位置および視線の方向と、当該仮想空間内に配置されるオブジェクトおよび面状体の形状、位置および向きと、当該オブジェクトを覆うように配置される複数の被覆ポリゴンの形状、位置および向きと、を記憶する記憶部、
当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択する選択部、
当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該仮想空間の画像を生成する生成部、
を備え、
ある被覆ポリゴンと当該面状体との配置が、互いに接触する配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たす、
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記生成部は、
当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該面状体を描画し、当該視点から当該視線の方向に見た当該投影用ポリゴンを描画し、当該視点から当該視線の方向に見た当該オブジェクトを描画することで、当該視点から当該視線の方向に当該仮想空間を見た画像を生成する、
ことを特徴とする画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
ある被覆ポリゴンと当該面状体との配置が、当該ある被覆ポリゴンが当該面状体に包含される配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たす、
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
当該複数の被覆ポリゴンのそれぞれと当該面状体との配置が、互いに接触し、もしくは当該被覆ポリゴンが当該面状体に包含される配置であるもののうち、当該面状体の表面に対する傾きが最小の被覆ポリゴンのみが、当該所定の描画条件を満たすものとする、
ことを特徴とする画像処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置であって、
前記記憶部は、光源の位置をさらに記憶し、
前記生成部は、当該光源から遠ざかるように所定の距離だけ当該投影用ポリゴンを移動してから、当該光源に当該オブジェクトと当該面状体が照らされるものとして描画する、
ことを特徴とする画像処理装置。
【請求項６】
請求項４または５に記載の画像処理装置であって、
前記生成部は、当該投影用ポリゴンを含む平面と、当該面状体の表面を含む平面と、の交線が存在する場合、当該交線を中心に当該投影用ポリゴンを回転させ、当該交線が存在しない場合、当該両平面の法線に沿って当該投影用ポリゴンを移動して、当該投影用ポリゴンを当該面状体の表面上に配置してから描画する、
ことを特徴とする画像処理装置。
【請求項７】
請求項１から６のいずれか１項に記載の画像処理装置であって、
ある被覆ポリゴンが当該オブジェクトよりも当該視点に近い場合、当該面状体との配置に関わらず、当該所定の描画条件は満たさないものとする、
ことを特徴とする画像処理装置。
【請求項８】
仮想空間内に配置されるオブジェクト、面状体、および、当該面状体に投影される当該オブジェクトの像を表す画像を生成する画像処理方法であって、当該画像処理方法は、記憶部と、選択部と、生成部とを備える画像処理装置が実行し、
前記記憶部には、当該仮想空間内に配置される視点の位置および視線の方向と、当該仮想空間内に配置されるオブジェクトおよび面状体の形状、位置および向きと、当該オブジェクトを覆うように配置される複数の被覆ポリゴンの形状、位置および向きと、が記憶され、
当該画像処理方法は、
前記選択部が、当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択する選択工程、
前記生成部が当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該仮想空間の画像を生成する生成工程、
を備え、
ある被覆ポリゴンと当該面状体との配置が、互いに接触する配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たす、
ことを特徴とする画像処理方法。
【請求項９】
コンピュータを、仮想空間内に配置されるオブジェクト、面状体、および、当該面状体に投影される当該オブジェクトの像を表す画像を生成する画像処理装置として機能させるプログラムであって、
前記プログラムは前記コンピュータを、
当該仮想空間内に配置される視点の位置および視線の方向と、当該仮想空間内に配置されるオブジェクトおよび面状体の形状、位置および向きと、当該オブジェクトを覆うように配置される複数の被覆ポリゴンの形状、位置および向きと、を記憶する記憶部、
当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択する選択部、
当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該仮想空間の画像を生成する生成部、
として機能させ、
ある被覆ポリゴンと当該面状体との配置が、互いに接触する配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たす、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
ゲーム等において、仮想空間内のオブジェクトが床や壁等の面状体に近接したときに生じる影などの像を簡易に描画するのに好適な画像処理装置、画像処理方法、ならびにコンピュータ上で実現するためのプログラムに関する。
【背景技術】
【０００２】
ゲームに使用される画像を生成する３次元コンピュータグラフィックスの分野においては、ゲームのリアリティを向上するために、仮想空間内のオブジェクトの影を床、机、そして壁などの表面を表す面状体に投影することが知られている。例えば、特許文献１には、光源の位置、オブジェクトの位置および姿勢等の変化に応じて影の透過度を変化させ、よりリアルな影を実装する技術が開示されている。また、影だけでなく、発光するオブジェクトによる像が床に投影されるような技術に応用したいとの要望もある。
【特許文献１】特開２００７−１９５７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
高速に移動するオブジェクトなどをリアルタイムで描画する場合は、影を生成する処理は高速に行われることが望ましい。しかし、影の描画に必要な計算量は、ハードウェアの性能によっては制限される場合があり、影を生成する処理が画像処理全体に悪影響を与えるという問題があった。
【０００４】
本発明は以上のような課題を解決するためのものであり、ゲーム装置等において、仮想空間内のオブジェクトが床や壁等に近接したときに生じる影などの像を簡易に描画するのに好適な画像処理装置、画像処理方法、ならびにコンピュータ上で実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の第１の観点に係る画像処理装置は、記憶部と、選択部と、生成部と、を備え、仮想空間内に配置されるオブジェクト、面状体、および、当該面状体に投影される当該オブジェクトの像を表す画像を生成する。
【０００６】
まず、記憶部は、当該仮想空間内に配置される視点の位置および視線の方向と、当該仮想空間内に配置されるオブジェクトおよび面状体の形状、位置および向きと、当該オブジェクトを覆うように配置される複数の被覆ポリゴンの形状、位置および向きと、を記憶する。
【０００７】
ここで、視点は３次元仮想空間を見ている仮想カメラであり、視線は仮想カメラが向いている方向である。当該仮想空間の２次元画像は、当該視点から当該視線方向に見た当該仮想空間を、２次元平面（投射面または投影面とも呼ぶ）に投射することで生成される。面状体は、オブジェクトとは異なる他のオブジェクトであり、地面（床）や壁などの広い表面を想定している。個々のオブジェクトおよび面状体の形状は、例えばポリゴンと呼ばれる微小な多角形の組み合わせ等によるサーフェスで定義（モデル化）される。
【０００８】
被覆ポリゴンは、当該オブジェクトが近接した面状体に投影される影や写りこみなどの像（以下主に「影」を例として説明する）を表現する多角形である。複数の被覆ポリゴンが多面体を構成して、オブジェクトを覆うように配置される。実世界においては、近くに存在するものに対して影がはっきりと投影される。したがって、本発明に係る画像処理装置においては、当該被覆ポリゴンに面状体が接触したり、当該被覆ポリゴンに面状体が包含されるような場合に、オブジェクトに近接する面状体があるものと考える。そして、面状体に接触している、などの所定の条件を満たす被覆ポリゴンを投影用ポリゴンとして選択して描画することで、当該オブジェクトの影を面状体上に生成する。
【０００９】
なお、あるオブジェクトと、当該オブジェクトを覆う被覆ポリゴンとの間には所定の距離が保たれ、この距離に応じて、影の現れ方が異なる。即ち、当該オブジェクトからより遠くにある面状体に対しても影を投影したい場合は、当該オブジェクトと被覆ポリゴンとの間の距離をより大きくとればよい。逆に当該オブジェクトの近くにある面状体に対してのみ影を投影したい場合は、当該オブジェクトと被覆ポリゴンとの間の距離をより小さくとればよい。
【００１０】
選択部は、当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択する。即ち、選択部は、上述したように、面状体に接触している、などの所定の条件を満たす被覆ポリゴンを投影用ポリゴンとして選択する。
【００１１】
生成部は、当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該仮想空間を画像を生成する。即ち、生成部は、選択部により選択された投影用ポリゴンを描画して、当該オブジェクトの影を、面状体上に生成する。なお、生成部は、典型的にはＺバッファ法などを用いてオブジェクトを描画する。即ち、例えば、描画する画像データを構成する画素ごとに、視点に最も近いポリゴンに対応するテクスチャ情報（或いは透過度情報）の色で、当該画素を塗るようにしてオブジェクト（および面状体や被覆ポリゴン）を描画して陰面処理を行う。
【００１２】
また、生成部は、当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該面状体を描画し、当該視点から当該視線の方向に見た当該投影用ポリゴンを描画し、当該視点から当該視線の方向に見た当該オブジェクトを描画することで、当該視点から当該視線の方向に当該仮想空間を見た画像を生成するようにしてもよい。
【００１３】
ここで、当該オブジェクトには衝突判定処理が施されるため、当該オブジェクトと面状体との配置は重なることはない。即ち、当該オブジェクトが面状体に「めり込む」ような状態が生じることはない。しかし、被覆ポリゴンにはこのような衝突判定処理が施されないため、被覆ポリゴンと面状体の位置が重なって配置される場合がある。即ち、視点の方向から見て、投影用ポリゴンが面状体の表面に「めり込んだ」状態で配置される場合がある。しかし、被覆ポリゴンが面状体にめり込んでいる場合、投影用ポリゴンは面状体に隠れて描画されない。この問題を回避するために、生成部は、視点の方向から見て、当該面状体、当該投影用ポリゴン、当該オブジェクトの順番で描画して、仮想空間の２次元画像を生成するようにしてもよい。  
【００１４】
さらに、ある被覆ポリゴンと当該面状体との配置が、互いに接触する配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たすものとする。即ち、投影用ポリゴンとして描画される被覆ポリゴンの条件は、面状体の形状を構成するポリゴンと接触している被覆ポリゴンであるものとする。なお、ある被覆ポリゴンと当該面状体とが互いに接触するかどうかは、例えば両者が交差するか否かで判定する。
【００１５】
さらに、ある被覆ポリゴンと当該面状体との配置が、当該ある被覆ポリゴンが当該面状体に包含される配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たすものとしてもよい。即ち、面状体の内部に含まれるような被覆ポリゴンも、投影用ポリゴンとして描画する。
【００１６】
また、当該複数の被覆ポリゴンのそれぞれと当該面状体との配置が、互いに接触し、もしくは当該被覆ポリゴンが当該面状体に包含される配置であるもののうち、当該面状体の表面に対する傾きが最小の被覆ポリゴンのみが、当該所定の描画条件を満たすものとしてもよい。即ち、選択部は、面状体の表面を構成するポリゴンと接触する、または、面状体の内部に含まれる被覆ポリゴンのうち、当該面状体の表面と最も平行に近い被覆ポリゴンが、当該面状体の表面に対して最も影響を及ぼす被覆ポリゴンであるとして、当該被覆ポリゴンを投影用ポリゴンに採用する。これにより、光源の位置を考慮した複雑な計算を行わずに、影らしい表現を実現する。
【００１７】
また、記憶部は、光源の位置をさらに記憶し、生成部は、当該光源から遠ざかるように所定の距離だけ当該投影用ポリゴンを移動してから、当該光源に当該オブジェクトと当該面状体が照らされるものとして描画するようにしてもよい。即ち、光源の位置に応じて、投影用ポリゴンを移動することによって、光源の位置による影響を投影用ポリゴンに反映させる。
【００１８】
また、生成部は、当該投影用ポリゴンを含む平面と、当該面状体の表面を含む平面と、の交線が存在する場合、当該交線を中心に当該投影用ポリゴンを回転させ、当該交線が存在しない場合、当該両平面の法線に沿って当該投影用ポリゴンを移動して、当該投影用ポリゴンを当該面状体の表面上に配置してから描画するようにしてもよい。
【００１９】
この場合、当該投影用ポリゴンは面状体の表面上に沿うように移動されるため、上述したように生成部は当該面状体、当該投影用ポリゴン、当該オブジェクトの順番で描画せずとも、投影用ポリゴンは面状体に隠れることなく描画される。
【００２０】
また、ある被覆ポリゴンが当該オブジェクトよりも当該視点に近い場合、当該面状体との配置に関わらず、当該所定の描画条件は満たさないものとしてもよい。即ち、本発明に係る画像処理装置においては、面状体と接触している、または面状体に包含されている被覆ポリゴンであっても、視点とオブジェクトの間に存在する被覆ポリゴンは投影用ポリゴンとして選択しない。よって、視点から見てオブジェクトよりも常に後ろに（奥に）影が表示されるように描画される。
【００２１】
本発明の他の観点に係る画像処理方法は、記憶部と、選択部と、生成部とを備える画像処理装置が実行し、仮想空間内に配置されるオブジェクト、面状体、および、当該面状体に投影される当該オブジェクトの像を表す画像を生成する。
【００２２】
記憶部には、当該仮想空間内に配置される視点の位置および視線の方向と、当該仮想空間内に配置されるオブジェクトおよび面状体の形状、位置および向きと、当該オブジェクトを覆うように配置される複数の被覆ポリゴンの形状、位置および向きと、が記憶される。
【００２３】
当該画像処理方法において、選択工程では、選択部が、当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択する。
【００２４】
生成工程では、生成部が当該オブジェクトおよび面状体の形状、位置および向きと、当該視点の位置及び視線の方向と、当該投影用ポリゴンの形状、位置および向きと、に基づいて、当該視点から当該視線の方向に見た当該仮想空間の画像を生成する。
【００２５】
また、ある被覆ポリゴンと当該面状体との配置が、互いに接触する配置である場合、当該ある被覆ポリゴンは当該所定の描画条件を満たす、ことを特徴とする。
【００２６】
本発明の他の観点に係るプログラムは、コンピュータを、上記の画像処理装置として機能させるように構成する。
【００２７】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２８】
本発明は、ゲーム等において、仮想空間内のオブジェクトが床や壁等に近接したときに生じる影などの像を簡易に描画するのに好適な画像処理装置、画像処理方法、ならびにコンピュータ上で実現するためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２９】
（実施形態１）
図１は、本発明の実施形態の１つに係る画像処理装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３０】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory) １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４ と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７ と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００３１】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の画像処理装置が実現される。
【００３２】
ＣＰＵ １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００３３】
ＲＯＭ １０２は、電源投入直後に実行されるＩＰＬ（Initial Program Loader）を記憶する。このＩＰＬをＣＰＵ １０１が実行することにより、ＤＶＤ−ＲＯＭに記録されたプログラムがＲＡＭ １０３に読み出され、ＣＰＵ １０１による実行が開始される。
また、ＲＯＭ １０２にはゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００３４】
ＲＡＭ １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータ等が保持される。
【００３５】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００３６】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、例えばチャット通信のログのデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記憶することができる。
【００３７】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、前述のようにゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出す。読み出されたデータはＲＡＭ１０３等に一時的に記憶される。
【００３８】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００３９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４０】
また、３次元仮想空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から３次元仮想空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４１】
さらに、ＣＰＵ １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００４２】
ＮＩＣ １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものである。ＮＩＣ １０９は、例えばＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格に準拠するものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００４３】
インターネット内のＳＮＴＰサーバにＮＩＣ １０９を介して接続し、ここから情報を取得することによって現在の日時情報を得ることができる。また、各種のネットワークゲームのサーバ装置が、ＳＮＴＰサーバと同様の機能を果たすように構成設定してもよい。
【００４４】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００４５】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ １０２、ＲＡＭ １０３、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００４６】
なお、本実施の形態に係る画像処理装置２００は、ゲーム装置１００や、携帯式のゲーム装置上に実現されるが、一般的なコンピュータ上に実現することもできる。一般的なコンピュータは、上記ゲーム装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭ ドライブ、および、ＮＩＣを備え、ゲーム装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、プログラムをインストールした後に、そのプログラムを実行させると、画像処理装置として機能させることができる。
【００４７】
以下では、注記しない限り、画像処理装置について、図１に示したゲーム装置１００により説明を加える。画像処理装置は、必要に応じて適宜一般的なコンピュータの要素に置換することができ、これらの実施の形態も本発明の範囲に含まれる。
【００４８】
（画像処理装置の概要構成）
図２は、本実施の形態に係る画像処理装置２００の概要構成を示す模式図である。画像処理装置２００は、オブジェクトの影を、面状体上に投影する装置であり、図２に示すように、記憶部２０１、選択部２０２、生成部２０３、等を備える。以下に画像処理装置２００の各構成要素について本図を参照して説明する。
【００４９】
記憶部２０１は、３次元仮想空間内を表現するための種々の情報を記憶する。
まず、記憶部２０１は、３次元仮想空間内の各要素（オブジェクト、あるいはモデルとも呼ばれる）の形状情報を記憶する。各オブジェクトは、その形状をポリゴンと呼ばれる、微小な多角形（例えば三角形や四角形等）の組み合わせによって定義されるサーフェス（表面）として表現される。
【００５０】
さらに、記憶部２０１は、各オブジェクトの仮想空間内における形状、位置および向きを記憶する。例えば、記憶部２０１は、仮想空間の全体を表現するグローバル座標系（ワールド座標系）と、オブジェクト毎に固定されたローカル座標系とを記憶する。典型的には、オブジェクトの代表点（例えば重心）がローカル座標系の原点であり、オブジェクトのサーフェス形状（即ち、オブジェクトを構成するポリゴンの形状や当該ポリゴンが配置される位置）がローカル座標系に基づいて定義される。一方、個々のオブジェクトの位置は、例えば、オブジェクトの代表点をグローバル座標系に基づいて定義することで決定される。そして、オブジェクトの向きは、例えば、オブジェクトの代表点からオブジェクトの正面方向に延びる方向ベクトルの回転量などによって定義する。
【００５１】
なお、位置情報は直交座標系を用いて定義しても、１個の動径と２個の偏角を用いた極座標系を用いて（ｒ，θ，φ）で表してもよい。
【００５２】
同様に、記憶部２０１は、オブジェクトの影が投影される床などの面状体についても、その形状、位置、および向き等の情報を記憶する。
【００５３】
さらに、記憶部２０１は、オブジェクトを覆うようにして配置される被覆ポリゴンの形状、向き、および位置を記憶する。被覆ポリゴンは、被覆ポリゴンが覆うオブジェクトのローカル座標系に対して固定してその形状、位置、向きが定義される。したがって、オブジェクトが移動すれば被覆ポリゴンも追従して移動する。
【００５４】
図３に、円柱系のオブジェクト３１０を覆うように、複数の被覆ポリゴン３２０が直方体状に配置されている例を示す。図３において、（Ａ）はオブジェクト３１０と、当該オブジェクトに対応する複数の被覆ポリゴン３２０を斜め上方から見た斜視図、（Ｂ）は上方から見た図、（Ｃ）は側方から見た図を示す。上記例では正方形の被覆ポリゴン３２０が６つ、互いに直角に配置されているが、被覆ポリゴンの形状や数はこれに限らず、その他多角形の被覆ポリゴンを、オブジェクトを覆うのに必要な数だけ用いてもよい。ただし、被覆ポリゴンによる多面体は凸多面体とするのが典型的である。被覆ポリゴンは図３に示すように、対応するオブジェクトから所定の距離を開けて配置することが好ましいが、隣接するように配置してもよい。
【００５５】
なお、視点や投射面についても、上述したように、グローバル座標系やローカル座標系を用いて、位置や向きを定義する。投射面の位置、向きは、仮想カメラの位置、向き、がユーザの操作等によって変更されたときに、更新される。
【００５６】
このほか、記憶部２０１はオブジェクトそれぞれの表面に貼り付けるテクスチャと呼ばれる画像データや、当該仮想空間を照らす光源の位置等も記憶する。テクスチャ情報をオブジェクトのサーフェス形状に貼り付けることで、オブジェクトの質感を表現することが可能となる。
【００５７】
記憶部２０１は、被覆ポリゴンのそれぞれ対応付けて、影を表現するための透過度情報も記憶する。透過度情報は、被覆ポリゴンの中心部において最も不透明であり（即ち、透過しない）、中心を離れるに従って、徐々に透明となる（即ち、透過する）ように定義される。なお、不透明な部分は影を表すために、黒などの暗い色を指定するのが典型的である。図３（Ｄ）に被覆ポリゴンの備える透過度情報の例を示す。黒い部分が不透明な部分、白い部分が透明部分を表している。ここで、被覆ポリゴンの形状を明確にするため、透過度情報の周囲に正方形を明記しているが、実際にはこの正方形は描画されない。また、透過度情報は中心の不透明部分が円形となっているが、オブジェクトの形状に応じて円形以外の形状を用いてもよい。
【００５８】
これら記憶部２０１に記憶される情報は例えばＤＶＤ−ＲＯＭに予め格納されており、ＣＰＵ １０１がＤＶＤ−ＲＯＭドライブ １０８に装着されたＤＶＤ−ＲＯＭを読み出してＲＡＭ １０３に一時記憶させる。あるいは、外部メモリ１０６に記憶させたこれらの情報を、ＣＰＵ １０１に読み出させ、ＲＡＭ １０３に一時記憶させるようにしてもよい。なお、ＣＰＵ １０１は、一時記憶された情報を、例えばゲームの進行に応じて、随時更新することができる。このように、ＣＰＵ １０１、ＲＡＭ １０３、ＤＶＤ−ＲＯＭドライブ１０８等が協働して動作することにより、記憶部２０１として機能する。
【００５９】
選択部２０２は、当該複数の被覆ポリゴンのうち、所定の描画条件を満たすものを投影用ポリゴンとして選択するものである。所定の描画条件については、本画像処理装置の動作処理の説明部分で詳述する。選択部２０２は、面状体、そして被覆ポリゴンの形状、位置、および向きに基づいて、投影用ポリゴンを選択する。ＣＰＵ １０１、ＲＡＭ １０３、が協働して動作することにより、選択部２０２として機能する。なお、投影用ポリゴンの選択のために行う一連の処理は、グラフィックス用ライブラリや専用ハードウェアの提供する画像処理用の演算機能を用いて実現可能であるため、ゲームの開発期間の短縮や、影を描画する処理速度の向上が可能となる。
【００６０】
生成部２０３は、記憶部２０１に記憶されたオブジェクトの位置ならびに向き、そして、視点の位置、および、投射面の位置ならびに向きに基づいて、当該視点から、当該３次元仮想空間内の各オブジェクトを投射面に投射（投影）して、モニター等の表示装置に表示する画像データを生成する。また、選択部２０２によって選択された当該オブジェクトに対する投影用ポリゴンを描画することで、当該オブジェクトの影を面状体上に生成する。本実施の形態では、例えば１点透視法で透視投影する。ＣＰＵ １０１、ＲＡＭ １０３、画像処理部１０７が協働して動作することにより、生成部２０３として機能する。
【００６１】
（画像処理装置の動作）
以上のような構成を有する画像処理装置２００の動作を、図４を参照して説明する。なお、本実施の形態においては、ゲームキャラクタは床や壁などの広い表面に沿って移動し、これら床や壁などの面状体上に、高速に移動するゲームキャラクタの影が描画される。典型的にはゲームキャラクタの移動範囲には制限が設けられるため、ゲームキャラクタが面状体の端に差し掛かり、面状体から部分的にせり出すような場合は考慮しない。
なお、面状体の端部にキャラクタが移動可能な場合にも本発明を適用することは可能である。この際、現実と異なる形態で影が投影されることとなるが、端部にキャラクタが長時間留まることは稀であると考えるため、ユーザが違和感を感じることはきわめて少ないと考えられる。
【００６２】
画像処理装置が電源を投入されて、処理を開始すると、ＲＡＭ １０３に必要な情報（例えば仮想カメラの位置や向き、そしてオブジェクトの形状、位置、そして向きなど）が読み込まれ、記憶部２０１が初期化される（ステップＳ１１）。
【００６３】
このとき、ユーザは、コントローラ１０５を用いて、仮想カメラ（視点）の位置、仮想カメラの向き（視線方向）、仮想カメラの撮影倍率（ズーム率）、のほか、オブジェクトの位置や向き、そしてオブジェクトの動き、等のパラメータを変更する旨の指示ができるようになっている。
【００６４】
ＣＰＵ １０１は、当該ユーザから仮想カメラに関するパラメータの変更の指示入力があったか否かを判断する（ステップＳ１２）。指示入力があった場合（ステップＳ１２；Ｙ）、ＣＰＵ １０１は指示に従って、記憶部２０１の仮想カメラの位置、向き、を更新する（ステップＳ１３）。さらに、ＣＰＵ １０１は、更新された仮想カメラの位置や、向き、そしてズーム率に応じて、視点から視線方向に見た仮想空間を投射する投射面が当該仮想空間内に配置される位置や向きを算出する（ステップＳ１４）。
【００６５】
即ち、ＣＰＵ １０１は視点を起点とする視線ベクトル（視線の向きを表すベクトル）と垂直に交わる向きを算出し、これを投射面の向きとする。即ち、視線ベクトルは、投射面の中心を貫き、投射面の法線ベクトルと一致する。そして、ズームインの際には投射面を３次元空間内の撮影対象に近づくように（視点から遠ざかるように）並行移動させ、ズームアウトの際には撮影対象から遠ざかるように（視点に近づくように）平行移動させる。視線ベクトルの向きを変える（即ち仮想カメラをパンする）ときには、視線ベクトルの向きにしたがって投射面の向きも変える。
なお、ユーザから仮想カメラに関するパラメータの変更の指示入力がなかった場合（ステップＳ１２；Ｎ）、処理はステップＳ１５に進む。
【００６６】
次いで、ＣＰＵ １０１は、当該ユーザからのオブジェクトの位置や向きに関する指示入力があったか否かを判断する（ステップＳ１５）。指示入力があった場合（ステップＳ１５；Ｙ）、ＣＰＵ １０１は指示入力に基づいて３次元空間内でオブジェクトを平行移動や回転させ、記憶部２０１に記憶されるオブジェクトの位置や向きを更新する（ステップＳ１６）。オブジェクトに対応付けて被覆ポリゴンが存在する場合、被覆ポリゴンは、当該オブジェクトに固定されているため、オブジェクトの移動に対する指示入力に対応して、被覆ポリゴンの位置や向きも算出する（ステップＳ１７）。指示入力がなかった場合（ステップＳ１５；Ｎ）処理は、ステップＳ１８に進む。
【００６７】
なお、仮想カメラの位置や向き、撮影倍率、オブジェクトの位置ならびに向きなどのパラメータは、制御プログラムなどから与えられてもよい。あるいは、時間の経過に対応付けてパラメータを所定の値に変更したり、ランダムに変更したりしてもよい。
【００６８】
次いで、選択部２０２は、影を描画したいオブジェクトのそれぞれについて、当該オブジェクトを覆う複数の被覆ポリゴンの中から、影として描画する投影用ポリゴンを選択する（ステップＳ１８）。投影用ポリゴンを選択部２０２が選択する処理を図５（Ａ）を参照して説明する。
【００６９】
まず、選択部２０２は当該オブジェクトを覆う被覆ポリゴンの頂点のうち、面状体に埋没している頂点を抽出する（ステップＳ１８１）。被覆ポリゴンの頂点が面状体に埋没しているか否かは、当該頂点から面状体を構成する表面に向かって伸びる、面状体の表面に対して垂直なベクトルと、当該面状体の法線ベクトルとの向きを比較して判断する。両ベクトルの向きが同じあれば当該頂点は面状体に埋没している。両ベクトルの向きが逆向きであれば、当該頂点は面状体に埋没していない。
【００７０】
例えば、図６（Ａ）は、図３に示すオブジェクト３１０および被覆ポリゴン３２０を側方から見た様子を示す図である（即ち、図３（Ｃ）と同様の図である）。このとき、図６（Ａ）に示すように、面状体４３０の表面Ａに被覆ポリゴンが埋没して配置されているものとする。例えば、図６（Ａ）の頂点Ｘ１が面状体４３０に埋没しているか否かを判断するには、頂点Ｘ１から表面Ａ対して垂直に伸びるベクトルｖ１および、表面Ａに対する法線ベクトルｖ２の向きを比較する。図６（Ａ）においては両ベクトルの向きは同じであるため、頂点Ｘ１は面状体４３０に埋没していると判断される。この処理を全ての頂点に対して行い、埋没している頂点を抽出する。
【００７１】
被覆ポリゴンのある頂点が面状体に埋没していると判断されると、当該頂点に接する少なくとも３つの被覆ポリゴンは面状体に接触している（即ち、交差している、または包含されている）と判断できる。選択部２０２はステップＳ１８１で抽出した頂点に接している全ての被覆ポリゴンを投影用ポリゴン候補として選択する（ステップＳ１８２）
【００７２】
図６（Ｂ）は、図６（Ａ）に示すオブジェクト３１０を斜め上方から見た図である。この図６（Ｂ）に示すように、面状体に埋没している頂点は、Ｘ１、Ｘ２、Ｘ３、Ｘ４であると判断される。そして、図６（Ａ）に示すオブジェクト１３０を上方から見た図６（Ｃ）に示すように、、頂点Ｘ１、Ｘ２、Ｘ３、Ｘ４に接する被覆ポリゴン３２０Ａ、３２０Ｂ、３２０Ｃ、３２０Ｄ、そして、底面を構成するポリゴン３２０Ｅが面状体と接触している被覆ポリゴンとして選択される。
【００７３】
次いで選択部２０２はステップＳ１８２で選択された被覆ポリゴンのうち、視点から視線方向に見て、当該オブジェクトよりも遠くに位置する被覆ポリゴンを選択する（ステップＳ１８３）。オブジェクトよりも遠くにある被覆ポリゴンは、例えば、次の処理を被覆ポリゴンのそれぞれに行って選択すればよい。
【００７４】
即ち、ステップＳ１８２で選択された被覆ポリゴンのそれぞれに対して、法線ベクトル（被覆ポリゴンの表面の外向き法線ベクトル）と、視点から被覆ポリゴンの代表点（例えば重心）までを結ぶ方向ベクトル（あるいは視線ベクトル）とが成す角度を、内積を求めるなどして算出し、当該角度が９０度以内であれば、当該被覆ポリゴンは、当該オブジェクトよりも遠くにあるものとする。本実施の形態の場合、被覆ポリゴンは対応するオブジェクトを覆うように配置されるため、視点から被覆ポリゴンの代表点までを結ぶ方向ベクトルと近い方向を向いている被覆ポリゴンは、視点から見て当該オブジェクトの後ろに存在する被覆ポリゴンであることがわかる。
この他、視点とオブジェクトの代表点（例えば重心）の距離が視点と被覆ポリゴンの代表点（例えば重心）の距離よりも小さい場合に、視点から見て、当該被覆ポリゴンが当該オブジェクトの後方にあるとしてもよい。
【００７５】
例えば、図６（Ｄ）に示すように、視点４４０の方向からオブジェクト３１０を見ている場合（即ち、図６（Ｃ）においては、斜め上方から矢印方向にオブジェクト３１０を見ている場合）を例に説明する。このとき、例えば、被覆ポリゴン３２０Ａの法線ベクトル４２０と、視点から被覆ポリゴンの代表点を通る方向ベクトル４１０が成す角度αは９０度以内であるため、被覆ポリゴン３２０Ａはオブジェクト３１０よりも後ろにあると選択部２０２は判断する。同様に、被覆ポリゴン３２０Ｃを除く、底面に配置される被覆ポリゴン３２０Ｅ、被覆ポリゴン３２０Ｄ（図６（Ｄ）においては読み手方向を向いている被覆ポリゴン）、および３２０Ｄに対面して配置される被覆ポリゴン３２０Ｂ、もオブジェクト３１０よりも後ろに配置されていると判断される。
【００７６】
次いで選択部２０２は、このようにして選択された当該被覆ポリゴンのそれぞれについて面状体の表面と最も近い傾きを有している被覆ポリゴンを投影用ポリゴンとして１つ選択する（ステップＳ１８４）。これは、例えばステップＳ１８３で算出された被覆ポリゴンの法線ベクトルを利用して選択する。
【００７７】
即ち、ステップＳ１８２で選択された被覆ポリゴンのそれぞれに対して、当該被覆ポリゴンの法線ベクトルの逆向きのベクトルと、面状体の法線ベクトルを比較する。そして両ベクトルの向きが最も近いもの（即ち内積が最も１に近いもの）を１つ選択する。図６（Ｄ）においては、被覆ポリゴン３２０Ａ、３２０Ｂ、３２０Ｄ、３２０Ｅのうち、３２０Ｅが面状体４３０の表面に最も近い傾きを有していると判断される。
【００７８】
なお、面状体の表面に最も近い傾きを有している被覆ポリゴンが複数得られた場合は、いずれか一方を選択しても、それらを両方投影用ポリゴンとして採用してもよい。
【００７９】
以上のステップＳ１８１〜Ｓ１８４を、影を描写したい全てのオブジェクトに対して行い、投影用ポリゴンを選択する。そして、当該選択された投影用ポリゴンを、対応するオブジェクトに関連付けて、画像処理装置２００のＲＡＭ１０３に記憶する。
【００８０】
次いで、生成部２０３は、次に示すステップＳ１９およびＳ２０を当該仮想空間内の全オブジェクト、および、選択された全投影用ポリゴンに対して実施し、当該仮想空間の２次元画像を描画する。
まず、生成部２０３はオブジェクトおよび、選択された投影用ポリゴンの投射先領域を求める（ステップＳ１９）。本実施の形態では、上述のように、各オブジェクトを投射面に１点透視法で透視投影するため、視点から遠くにあるオブジェクトは小さく、近くにあるオブジェクトは大きく投影されることになる。ただし、１点透視法の代わりに、平行投影を採用することもできる。
【００８１】
オブジェクトの投影先を求めると、投影先の各領域に、対応するテクスチャの対応する領域（投影用ポリゴンにおいては、投影先に透過度情報）を貼り付けて（マッピングして）描画する（ステップＳ２０）。ステップＳ２０の詳しい処理を図５（Ｂ）のフロー図に示す。
【００８２】
まず、生成部２０３は、画像処理装置２００のＲＡＭ１０３などを参照して、現在注目しているオブジェクトに対して、投影用ポリゴンが選択されているか否かを判断する（ステップＳ２０１）。投影用ポリゴンが選択されていないオブジェクトに対しては（ステップＳ２０１；Ｎ）、生成部２０３は陰面処理を行うために、例えばＺバッファ法などを用いる（ステップＳ２０２）。即ち、生成部２０３は描画する画像データを構成する画素ごとに、視点（投射面）に最も近いポリゴンに対応するテクスチャ情報（或いは透過度情報）の色で、当該画素を塗るようにする。
【００８３】
このとき、例えば、図６（Ｄ）において、投影用ポリゴン３２０Ｅは、視点から見て面状体４３０よりも奥に配置される。よって、上記のような陰面処理を行うと、投影用ポリゴン３２０Ｂはオブジェクト３１０に完全に隠れてしまう。あるいは、投影用ポリゴンの一部が面状体に「めり込んだ」状態で配置されるような場合、当該「めり込んだ」部分が面状体によって隠れてしまう。
【００８４】
この問題を回避するために、投影用ポリゴンが選択されているオブジェクトに対しては（ステップＳ２０１；Ｙ）、生成部２０３は、当該視点から当該視線の方向に見た当該面状体をまず描画し、次いで、当該視点から当該視線の方向に見た当該投影用ポリゴンを描画する。そして、最後に、当該視点から当該視線の方向に見た当該オブジェクトを描画する（ステップＳ２０３）。これにより、面状体、投影用ポリゴン、そして、オブジェクトの順番で常に描画され、投影用ポリゴンが面状体に隠れてしまうことを回避できる。
【００８５】
以上の画像生成処理を終了すると、生成部２０３は垂直同期割込が生じるまで待機する（ステップＳ２１）。この待機中には、他の処理（例えば、ＲＡＭ １０３内に記憶される各オブジェクト、および仮想カメラの位置や向きを、時間の経過やユーザからの処理に基づいて更新する等の処理）をコルーチン的に実行してもよい。
【００８６】
垂直同期割込が生じたら、生成部２０３は描画した画像データ（通常フレームバッファに記憶）の内容をモニタ（図示せず）に転送して、画像を表示し（ステップＳ２２）、ステップＳ１２に戻る。 例えば、図６（Ｄ）に示されるオブジェクトに対しては、底面の被覆ポリゴンのみが投影用ポリゴンとして描画され、視点方向から見ると、図７のような影が得られる。即ち、透過度情報の中心部分は不透明であるため、影らしい表現が実現される。そして、外側に向かって徐々に透明となる部分については、被覆ポリゴンより以前に描画された面状体が表示される。なお、投影用ポリゴンの外周は実際には描画されない。本図では、理解を容易にするために投影用ポリゴンの外周である正方形を明記している。
【００８７】
（実施形態２）
第１の実施形態では、生成部２０３は、面状体の中に「めり込んだ」状態で配置される被覆ポリゴンがあることを考慮して、視点から視線の方向に仮想空間を見て、面状体、被覆ポリゴン、オブジェクト、の順番で描画することで、被覆ポリゴンが面状体に隠れずに、常に描画されるようにした。本実施の形態では、生成部２０３は、被覆ポリゴンが面状体に沿って表示されるように被覆ポリゴンの位置を変化させる。なお、第２の実施形態の画像処理装置の構成は図２に示す画像処理装置２００と同一であるため説明を省略する。
【００８８】
（画像処理装置の動作）
本実施の形態の処理の流れを図８に示す。画像処理装置２００は、図４に示すステップＳ１１〜Ｓ１８、Ｓ２１、およびＳ２２と同様の処理（ステップＳ７１〜７８、Ｓ８２、およびＳ８３）を行う。本実施の形態では、画像処理装置２００の生成部２０３はさらに、ステップＳ７９を実施し、投影用ポリゴンとして選択された被覆ポリゴンを面状体に沿うように移動する。
【００８９】
被覆ポリゴンを面状体に沿うように移動する方法を、図９を参照して説明する。図９（Ａ）は、図６（Ａ）同様に、オブジェクト３１０、およびオブジェクト３１０に対応する複数の被覆ポリゴン３２０を側方から見た様子を示す図である。ここで、被覆ポリゴン３２０のうち、底部の被覆ポリゴン３２０Ｅが投影用ポリゴンとして選択されている。そして、面状体９００は、線９１０において被覆ポリゴン３２０Ｅと交差している。図９（Ｂ）に、被覆ポリゴン３２０Ｅと、面状体９００とが交差している部分を斜めから見た様子を示す。
【００９０】
図９（Ｂ）に示すように投影用ポリゴン３２０Ｅを含む平面と面状体９００の表面は、線９１０で交差する。生成部２０３は、まず投影用ポリゴン３２０Ｅを面状体９００と交差している線９１０に対して回転させ、面状体９００の表面と平行にする。図９（Ｃ）は、投影用ポリゴン３２０Ｅを線９１０に対して矢印方向に回転させ、面状体９００と平行になるように得られた投影用ポリゴン３２０Ｅ’を示す。
【００９１】
最後に、図９（Ｄ）に示すように、所定の距離（対応するオブジェクト３１０と衝突しない距離）だけ、面状体９００の表面の法線ベクトルｖの方向に沿って、投影用ポリゴンを平行移動させる（移動後の投影用ポリゴンを３２０Ｅ”に示す）。これにより、第１の実施形態のように面状体、視点から視線方向に見て、被覆ポリゴン、オブジェクト、の順番で描画せずとも、投影用ポリゴンは常に表示される。即ち、投影用ポリゴンは視点から見て面状体よりも近くに配置されるため、オブジェクトや被覆ポリゴンの投射先領域を求め（ステップＳ８０）、当該投射先領域に対応するテクスチャや透過度情報を貼り付けて、Ｚバッファ法などの陰面処理を行って描画（ステップＳ８１）することで、被覆ポリゴンは面状体に隠れることなく描画される。
【００９２】
なお、図６（Ａ）のように投影用ポリゴンが完全に面状体に包含されている場合でも投影用ポリゴンを含む平面および面状体を含む平面を延長して、両平面が交差する線が存在する場合は、当該線に対して投影用ポリゴンを回転させればよい。
一方、投影用ポリゴンを含む平面と面状体を含む平面が完全に平行している場合生成部２０３は投影用ポリゴンの回転は行わず、所定の距離（対応するオブジェクトにぶつからない距離）だけ、面状体の表面の法線ベクトルの方向に沿って平行移動させる。
【００９３】
以上、本発明の実施の形態について説明したが、本発明において、投影用ポリゴンの選択のために行う処理は、グラフィックス用ライブラリや専用ハードウェアの提供する画像処理用の演算機能を用いて実現することが可能なため、ゲームの開発期間の短縮や、影を描画する処理速度の向上が可能となる。なお、上記実施の形態においては、オブジェクトの底部に面状体がある場合のみ説明したが、側方や上方に面状体がある場合についても同様に有効である。また、部屋の隅などにおいて、床と壁といった複数の面状体が存在するような場合は、それぞれの面状体について本実施の形態を適用すればよい。
【００９４】
本発明は、上述した実施形態に限定されず、種々の変形および応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【００９５】
例えば、上記実施の形態において影を生成する場合について、光源は考慮していない。そうではなく、光源の位置を考慮して、光源から遠ざかるように、投影用ポリゴンを移動してもよい。即ち、図１０（Ａ）のオブジェクト１０００に対応する投影用ポリゴン１０１０を図１０（Ｂ）に示すように、光源から遠ざかるように移動してもよい。
【００９６】
この場合、例えば、光源の位置や向きなどを記憶部２０１に記憶しておき、図４のステップＳ１８の後、或いは、図８のステップＳ７９において投影用ポリゴンの位置を決めた後に、光源の位置や向きに基づいて、次のように投影用ポリゴンをさらに移動する。即ち、図１０（Ｃ）に示すように、投影用ポリゴン１０１０を含む平面１０２０と、光源１０３０から当該平面１０２０に伸ばした線Ｌとが垂直に交わる点Ｐ１と、当該投影用ポリゴンの代表点Ｐ２（例えば重心）とを結ぶ方向ベクトルＶに沿って、当該投影用ポリゴンを所定の距離だけ平行移動すればよい。
【００９７】
また、上記実施の形態においては、投影用ポリゴンは影を描画するために用いたが、その他の用途にも用いることが可能である。例えば、面状体の表面に反射や写りこみなどがあるかのように表現することもできる。例えば、被覆ポリゴンに対応する透過度情報の影の部分に、当該被覆ポリゴンの位置から見たオブジェクトの鏡像画像を貼り付ける。そして、上記実施の形態に説明した手順で投影用ポリゴンを描画すると、オブジェクトの近くに位置する面状体の上に、当該オブジェクトの鏡像画像が表示され、面状体が反射しているかのような表現が実現される。
【００９８】
あるいは、被覆ポリゴンに対応付する透過度情報の影の部分に所定の色を持たせることで、当該オブジェクトが当該所定の色で鈍く発光しているかのような表現も可能となる。
【００９９】
また、上記実施の形態においては、所定の条件を満たす被覆ポリゴンを投影用ポリゴンとして１つ選択した。そうではなく、例えば図５に示す投影用ポリゴンの選択処理において、ステップＳ１８４を省き、ステップＳ１８３までの条件を満たす複数の被覆ポリゴンを全て投影用ポリゴンとして選択してもよい。或いは、ステップＳ１８２において、面状体の表面と交差している被覆ポリゴンのみ選択し、完全に面状体に包含されている被覆ポリゴンは選択しないようにしてもよい。
【０１００】
例えば、図６に示すオブジェクト、被覆ポリゴン、面状体に対して、ステップＳ１８４を省いて投影用ポリゴンの選択処理を適用すると、被覆ポリゴン３２０Ａ、３２０Ｂ、３２０Ｄ、および底面に配置される被覆ポリゴン３２０Ｅが投影用ポリゴンとして選択される。選択された投影用ポリゴンはそのまま描画してもよい。或いは、第２の実施形態を適用して、面状体に沿うように、移動してから描画してもよい。これにより、例えばラジオシティ法を用いたかのような複数の影が描画される。
【０１０１】
なお、面状体の形状としては、平面のみならず、球面などの曲面を用いることもできる。この場合、オブジェクトの近傍で曲面に接する平面を考え当該平面を上記発明における「面状体」の形状として適用する。例えば、曲面が球面の場合は、その中心とオブジェクトの重心とを結ぶ直線と垂直で、かつ球面に接する「接平面」を求めることができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施の形態に係る画像処理装置等が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図２】本実施の形態に係る画像処理装置の概要を示す図である。
【図３】オブジェクトと当該オブジェクトに対応する被覆ポリゴンを（Ａ）は斜めから、（Ｂ）は上方から、（Ｃ）は側方から見た様子を示す図であり、（Ｄ）は被覆ポリゴンに対応付けて記憶される透過度情報の例を示す図である。
【図４】本実施の形態に係る画像処理装置の動作を説明するフロー図である。
【図５】（Ａ）は本実施の形態に係る投影用ポリゴンの選択処理を説明するフロー図であり、（Ｂ）は本実施の形態に係るオブジェクトの描画処理を説明するフロー図である。
【図６】（Ａ）から（Ｄ）は本実施の形態に係る投影用ポリゴンの選択処理を説明する図である。
【図７】描画された投影用ポリゴンの例を示す図である。
【図８】他の実施の形態に係る画像処理装置の動作を説明するフロー図である。
【図９】投影用ポリゴンを面状体に沿うように移動する様子を示す図である。
【図１０】光源の位置に応じて投影用ポリゴンを移動する様子を示す図である。
【符号の説明】
【０１０３】
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２００  画像処理装置
２０１  記憶部
２０２  選択部
２０３  生成部
【図１】
0004852555.tif 000002
【図２】
0004852555.tif 000003
【図４】
0004852555.tif 000004
【図５】
0004852555.tif 000005
【図６】
0004852555.tif 000006
【図８】
0004852555.tif 000007
【図９】
0004852555.tif 000008
【図１０】
0004852555.tif 000009
【図３】
0004852555.tif 000010
【図７】
0004852555.tif 000011