(57)【特許請求の範囲】
【請求項１】
３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定し、光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する画像処理方法であって、
描画エリアとテクスチャエリアとを有する画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、
前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、
前記シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングすることを特徴とする画像処理方法。
【請求項２】
請求項１記載の画像処理方法において、
各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うことを特徴とする画像処理方法。
【請求項３】
請求項１又は２記載の画像処理方法において、
前記他のオブジェクトへの前記影のテクスチャマッピングは、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行われることを特徴とする画像処理方法。
【請求項４】
請求項１〜３のいずれか１項に記載の画像処理方法において、
前記他のオブジェクトへの前記影のテクスチャマッピングは、該他のオブジェクトを構成するポリゴン単位に行うことを特徴とする画像処理方法。
【請求項５】
請求項１〜４のいずれか１項に記載の画像処理方法において、
前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求め、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画することを特徴とする画像処理方法。
【請求項６】
請求項５記載の画像処理方法において、
前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録し、
前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うことを特徴とする画像処理方法。
【請求項７】
請求項５又は６記載の画像処理方法において、
前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現することを特徴とする画像処理方法。
【請求項８】
請求項７記載の画像処理方法において、
前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御することを特徴とする画像処理方法。
【請求項９】
請求項５〜８のいずれか１項に記載の画像処理方法において、
前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画することを特徴とする画像処理方法。
【請求項１０】
請求項９記載の画像処理方法において、
前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけることを特徴とする画像処理方法。
【請求項１１】
請求項１０記載の画像処理方法において、
前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、
前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、
前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングすることを特徴とする画像処理方法。
【請求項１２】
請求項１〜１１のいずれか１項に記載の画像処理方法において、
前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うことを特徴とする画像処理方法。
【請求項１３】
３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定する第１の手段と、
光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する第２の手段とを有する画像描画装置において、
前記第２の手段は、描画エリアとテクスチャエリアとを有する画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、
前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、
前記シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングする描画手段を有することを特徴とする画像処理装置。
【請求項１４】
請求項１３記載の画像処理装置において、
前記第１の手段は、各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、
前記第２の手段は、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うことを特徴とする画像処理装置。
【請求項１５】
請求項１３又は１４記載の画像処理装置において、
前記描画手段は、前記他のオブジェクトへの前記影のテクスチャマッピングを、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行うことを特徴とする画像処理装置。
【請求項１６】
請求項１３〜１５のいずれか１項に記載の画像処理装置において、
前記描画手段は、前記他のオブジェクトへの前記影のテクスチャマッピングを、該他のオブジェクトを構成するポリゴン単位に行うことを特徴とする画像処理装置。
【請求項１７】
請求項１３〜１６のいずれか１項に記載の画像処理装置において、
前記第２の手段は、前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求める座標演算手段を有し、
前記描画手段は、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画することを特徴とする画像処理装置。
【請求項１８】
請求項１７記載の画像処理装置において、
前記第２の手段は、前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録する描画リスト作成手段を有し、
前記描画手段は、前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うことを特徴とする画像処理装置。
【請求項１９】
請求項１７又は１８記載の画像処理装置において、
前記描画手段は、前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現することを特徴とする画像処理装置。
【請求項２０】
請求項１９記載の画像処理装置において、
前記描画手段は、前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御することを特徴とする画像処理装置。
【請求項２１】
請求項１７〜２０のいずれか１項に記載の画像処理装置において、
前記描画手段は、前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画することを特徴とする画像処理装置。
【請求項２２】
請求項２１記載の画像処理装置において、
前記描画手段は、前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけることを特徴とする画像処理装置。
【請求項２３】
請求項２２記載の画像処理装置において、
前記描画手段は、
前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、
前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、
前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングすることを特徴とする画像処理装置。
【請求項２４】
請求項１３〜２３のいずれか１項に記載の画像処理装置において、
前記描画手段は、前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うことを特徴とする画像処理装置。
【請求項２５】
描画エリアとテクスチャエリアとを有する画像メモリを有する画像描画装置を、
３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定する第１の手段、
光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する第２の手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記第２の手段は、前記画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、
前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、
前記シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングする描画手段を有することを特徴とする記録媒体。
【請求項２６】
請求項２５記載の記録媒体において、
前記第１の手段は、各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、
前記第２の手段は、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うことを特徴とする記録媒体。
【請求項２７】
請求項２５又は２６記載の記録媒体において、
前記描画手段は、前記他のオブジェクトへの前記影のテクスチャマッピングを、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行うことを特徴とする記録媒体。
【請求項２８】
請求項２５〜２７のいずれか１項に記載の記録媒体において、
前記描画手段は、前記他のオブジェクトへの前記影のテクスチャマッピングは、該他のオブジェクトを構成するポリゴン単位に行うことを特徴とする記録媒体。
【請求項２９】
請求項２５〜２８のいずれか１項に記載の記録媒体において、
前記第２の手段は、前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求める座標演算手段を有し、
前記描画手段は、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画することを特徴とする記録媒体。
【請求項３０】
請求項２９記載の記録媒体において、
前記第２の手段は、前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録する描画リスト作成手段を有し、
前記描画手段は、前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うことを特徴とする記録媒体。
【請求項３１】
請求項２９又は３０記載の記録媒体において、
前記描画手段は、前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現することを特徴とする記録媒体。
【請求項３２】
請求項３１記載の記録媒体において、
前記描画手段は、前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御することを特徴とする記録媒体。
【請求項３３】
請求項２５〜３２のいずれか１項に記載の記録媒体において、
前記描画手段は、前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画することを特徴とする記録媒体。
【請求項３４】
請求項３３記載の記録媒体において、
前記描画手段は、前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけることを特徴とする記録媒体。
【請求項３５】
請求項３４記載の記録媒体において、
前記描画手段は、
前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、
前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、
前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングすることを特徴とする記録媒体。
【請求項３６】
請求項２５〜３５のいずれか１項に記載の記録媒体において、
前記描画手段は、前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元モデリングによって作成された複数のオブジェクトの配置関係から、光源からの光の放射に伴って生じるオブジェクトの影をそれぞれ背後に配置された別のオブジェクトに表現するようにした画像処理方法及び画像処理装置並びにこの画像処理を実現するプログラムが記録された記録媒体に関する。
【０００２】
【従来の技術】
近時、隠線処理、隠面消去処理、スムーズシェーディング、テクスチャマッピング等のコンピュータグラフィックス（ＣＧ）処理が、ハードウエアの飛躍的な発達と相俟って急速に進歩している。
【０００３】
ＣＧ処理としては、一般に、ＣＡＤの３次元モデリングによって複数の３次元形状（オブジェクト）を作成し、これらのオブジェクトに対して色や陰影をつけ、鏡面反射、拡散反射、屈折、透明感などの光学的特性を付加し、表面模様をつけ、更に、まわりの状況に応じて描画（窓や景色の映り込みや光の回り込み等）するというレンダリング処理が行われる。
【０００４】
【発明が解決しようとする課題】
ところで、オブジェクトを構成するポリゴンの法線の方向と光線の視点によって決まる陰影処理（シェーディング）ではなく、光源及び複数のオブジェクトの配置関係から、あるオブジェクトの影がその背後のオブジェクトに映り込むという影の表現処理は、レイトレーシングのような計算コストの高い方法以外では困難である。
【０００５】
そこで、従来では、リアルタイム描画を行う場合のように、計算コストをかけられない場合においては、簡単な平面への透視投影や、円形のような単純な図形描画で近似するしかなかった。
【０００６】
また、光源が炎など大きさをもっている場合においては、その影の表現は困難を極める。
【０００７】
本発明はこのような課題を考慮してなされたものであり、複雑な配置関係を有する複数のオブジェクトや複雑な形状を有するオブジェクトに対する影の表現を簡単に行うことができる画像処理方法及び画像処理装置を提供すること、並びに前記影の表現を簡単に行うことができるプログラムが記録された記録媒体を提供することを目的とする。
【０００８】
また、本発明の他の目的は、オブジェクトに対する影の表現を選択的に行うことができる画像処理方法及び画像処理装置を提供すること、並びに前記影の表現を選択的に行うことができるプログラムが記録された記録媒体を提供することにある。
【０００９】
また、本発明の他の目的は、オブジェクトに対する影の表現において種々の効果（ぼかし等）を容易に付与することができる画像処理方法及び画像処理装置を提供すること、並びに前記影の表現において種々の効果を容易に付与することができるプログラムが記録された記録媒体を提供することにある。
【００１０】
また、本発明の他の目的は、前記影に対する効果のうち、影のぼかしを容易に制御することができ、より現実感のある影の表現を容易に行うことができる画像処理方法及び画像処理装置を提供すること、並びに前記現実感のある影の表現を容易に行うことができるプログラムが記録された記録媒体を提供することにある。
【００１１】
また、本発明の他の目的は、炎のような面光源の投影像と該面光源による影を容易に表現することができる画像処理方法及び画像処理装置を提供すること、並びに前記面光源の投影像と該面光源による影を容易に表現することができるプログラムが記録された記録媒体を提供することにある。
【００１２】
【課題を解決するための手段】
本発明に係る画像処理方法は、３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定し、光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する画像処理方法であって、描画エリアとテクスチャエリアとを有する画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、前記シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングすることを特徴とする。
【００１３】
これにより、複雑な配置関係を有する複数のオブジェクトや複雑な形状を有するオブジェクトに対する影の表現を簡単に行うことができる。
【００１４】
そして、前記方法において、各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うようにしてもよい。この場合、オブジェクトに対する影の表現を選択的に行うことができる。
【００１６】
この場合、前記他のオブジェクトへの前記影のテクスチャマッピングを、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行うようにしてもよいし、他のオブジェクトを構成するポリゴン単位に行うようにしてもよい。
【００１７】
また、前記方法において、前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求め、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画するようにしてもよい。
【００１８】
この場合、前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録し、前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うようにしてもよい。
【００１９】
そして、前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現することが好ましい。これにより、オブジェクトに対する影の表現において種々の効果（ぼかし等）を容易に付与することができる。
【００２０】
また、前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御するようにしてもよい。この場合、影のぼかしを容易に制御することができ、より現実感のある影の表現を容易に行うことができる。
【００２１】
また、前記方法において、前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画するようにしてもよい。
【００２２】
この場合、前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけるようにしてもよい。これにより、オブジェクトに対する影の表現において種々の効果（ぼかし等）を容易に付与することができる。
【００２３】
また、前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングするようにしてもよい。この場合、影のぼかしを容易に制御することができ、より現実感のある影の表現を容易に行うことができる。
【００２４】
また、前記方法において、前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うようにしてもよい。この場合、炎のような面光源の投影像と該面光源による影を容易に表現することができる。
【００２５】
次に、本発明に係る画像処理装置は、３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定する第１の手段と、光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する第２の手段とを有する画像描画装置において、前記第２の手段は、描画エリアとテクスチャエリアとを有する画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、該シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングする描画手段を有することを特徴とする。
【００２６】
この場合、前記第１の手段において、各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、前記第２の手段は、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うようにしてもよい。
【００２８】
前記描画手段において、前記他のオブジェクトへの前記影のテクスチャマッピングを、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行うようにしてもよいし、他のオブジェクトを構成するポリゴン単位に行うようにしてもよい。
【００２９】
また、第２の手段において、前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求める座標演算手段を設け、前記描画手段において、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画するようにしてもよい。
【００３０】
また、第２の手段において、前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録する描画リスト作成手段を設け、前記描画手段において、前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うようにしてもよい。
【００３１】
また、前記描画手段において、前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現するようにしてもよい。
【００３２】
また、前記描画手段において、前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御するようにしてもよい。
【００３３】
また、前記描画手段において、前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画するようにしてもよい。
【００３４】
また、前記描画手段において、前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけるようにしてもよい。
【００３５】
また、前記描画手段において、前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングするようにしてもよい。
【００３６】
また、前記描画手段において、前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うようにしてもよい。
【００３７】
次に、本発明に係る記録媒体は、描画エリアとテクスチャエリアとを有する画像メモリを有する画像描画装置を、３次元モデリングによる複数のオブジェクトの配置関係から少なくとも１つの仮想面を設定する第１の手段、光源を視点とした前記仮想面への投影によって形成される少なくとも１つのオブジェクトの影を該オブジェクトよりも光源から遠い他のオブジェクトに表現する第２の手段、として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、前記第２の手段は、前記画像メモリの前記テクスチャエリアに前記仮想面に対応したシャドウ面を設定し、前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、該シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングする描画手段を有することを特徴とする。
【００３８】
この記録媒体を用いることにより、複雑な配置関係を有する複数のオブジェクトや複雑な形状を有するオブジェクトに対する影の表現を簡単に行うことができる。
【００３９】
そして、前記第１の手段において、各オブジェクトの光源処理に関する属性中に、それぞれオブジェクトに対して影を表現するか否かの影表現属性を定義し、第２の手段において、前記他のオブジェクトに対する影の表現処理を前記影表現属性に基づいて選択的に行うようにしてもよい。
【００４０】
また、第２のステップにおいて、前記仮想面に対応したテクスチャ面であるシャドウ面を設定し、前記仮想面への投影によって形成される前記オブジェクトの影を前記シャドウ面に描画し、該シャドウ面に描画された影を前記他のオブジェクトにテクスチャマッピングする描画ステップを含めるようにしてもよい。
【００４１】
この場合、前記描画手段において、前記他のオブジェクトへの前記影のテクスチャマッピングを、少なくとも前記他のオブジェクトの前記仮想面への投影座標に基づいて行うようにしてもよいし、他のオブジェクトを構成するポリゴン単位に行うようにしてもよい。
【００４２】
また、前記第２の手段において、前記光源を視点とした前記複数のオブジェクトの座標を求め、前記光源から近い順に前記オブジェクトの仮想面への投影座標を求める座標演算手段を含めるようにし、前記描画手段において、１つのオブジェクトに対するテクスチャマッピングが終了するたびに、当該オブジェクトによって形成される影を前記投影座標に基づいて前記シャドウ面に描画するようにしてもよい。
【００４３】
また、第２の手段において、前記複数のオブジェクトの座標と前記仮想面への投影座標をポリゴン単位に求めて、前記光源から近い順に描画リストに順次登録する描画リスト作成手段を含めるようにし、前記描画手段において、前記シャドウ面への描画の際に、前記描画リストから順次読み出して行うようにしてもよい。
【００４４】
また、前記描画手段において、前記シャドウ面に描画された影に対し、少なくとも光源からの距離に対応してローパスフィルタをかけることにより、前記影に少なくとも前記光源からの距離に対応したぼかしを表現するようにしてもよい。
【００４５】
また、前記描画手段において、前記シャドウ面に描画された影を前記オブジェクトに表現する際に、前記ローパスフィルタをかける前の影と、前記ローパスフィルタをかけた後の影と、処理対象のオブジェクトの光源座標に応じてレンダリングによる内部補間を行うことにより、前記影のぼかしを制御するようにしてもよい。
【００４６】
また、前記描画手段において、前記シャドウ面として参照用シャドウ面と作成用シャドウ面を用意し、処理対象のオブジェクトが切り替わるたびに、作成用シャドウ面に描画された影を参照用シャドウ面に複写し、１つのオブジェクトについてポリゴン単位に前記参照用シャドウ面の影をテクスチャマッピングするたびに、該ポリゴンの前記仮想面に対する投影像を前記作成用シャドウ面に新たな影として合成描画するようにしてもよい。
【００４７】
また、前記描画手段において、前記作成用シャドウ面に描画された影を参照用シャドウ面に複写するたびに、前記作成用シャドウ面に描画された影に対してローパスフィルタをかけるようにしてもよい。
【００４８】
また、前記描画手段において、前記シャドウ面として前記参照用シャドウ面と作成用シャドウ面に加えて、光源を視点とし、かつ、処理対象のオブジェクトの背後に設置される背景仮想面に対応したテクスチャ面である背景シャドウ面を用意し、前記仮想面に投影された影を前記背景仮想面に投影することにより形成される影を前記背景シャドウ面に描画し、前記参照用シャドウ面に描画された影と、前記背景シャドウ面に描画された影と、前記オブジェクトの光源座標に基づいて、レンダリングによる内部補間を行いながら、処理対象のオブジェクトに表現される影をテクスチャマッピングするようにしてもよい。
【００４９】
また、前記描画手段において、前記シャドウ面の初期値として炎などの面光源を設定し、前記オブジェクトに対して前記面光源の映り込みと影処理を行うようにしてもよい。
【００５０】
【発明の実施の形態】
以下、本発明に係る画像処理方法及び画像処理装置を例えば３次元のＣＧ処理を行うエンタテインメント装置に適用した実施の形態例（以下、単に実施の形態に係るエンタテインメント装置と記す）を図１〜図３０を参照しながら説明する。
【００５１】
本実施の形態に係るエンタテインメント装置１０は、図１に示すように、このエンタテインメント装置１０を制御するメインＣＰＵ１２と、各種プログラムの動作や各種データの格納等に使用されるメインメモリ１４と、前記メインＣＰＵ１２の制御に基づいて画像データを生成し、表示装置１６（この例ではＣＲＴ）に出力する画像処理部１８と、外部機器とのデータの送受信を行うための入出力ポート２０とを有して構成されている。
【００５２】
前記メインＣＰＵ１２には、バス２２を介してメインメモリ１４、画像処理部１８及び入出力ポート２０が接続されている。入出力ポート２０には、例えばこのエンタテインメント装置１０に対してデータ（キー入力データや座標データ等）を入力するための入力装置２４や、各種プログラムやデータ（オブジェクトに関するデータやテクスチャデータ等）が記録された例えばＣＤ−ＲＯＭを再生する光ディスク装置２６等が接続される。
【００５３】
前記画像処理部１８は、レンダリングエンジン３０、メモリインターフェース３２、画像メモリ３４、表示制御装置３６（例えばプログラマブルＣＲＴコントローラ等）を有する。
【００５４】
レンダリングエンジン３０は、メインＣＰＵ１２から供給される描画コマンドに対応して、メモリインターフェース３２を介して、画像メモリ３４に所定の画像データを描画する動作を実行する。
【００５５】
メモリインターフェース３２とレンダリングエンジン３０との間には第１のバス３８が接続され、メモリインターフェース３２と画像メモリ３４との間には第２のバス４０が接続されている。第１及び第２のバス３８及び４０は、それぞれ例えば１２８ビットのビット幅を有し、レンダリングエンジン３０が画像メモリ３４に対して高速に描画処理を実行することができるようになっている。
【００５６】
レンダリングエンジン３０は、例えばＮＴＳＣ方式、あるいはＰＡＬ方式などの３２０×２４０画素の画像データ、あるいは６４０×４８０画素の画像データを、リアルタイムに、即ち１／６０〜１／３０秒の間に、１０数回〜数１０回以上描画できる能力を有する。
【００５７】
画像メモリ３４は、例えばテクスチャエリア３４ａと描画エリア３４ｂ（図３参照）を同一のエリアに指定することができるユニファイドメモリ構造のものが採用されている。
【００５８】
表示制御装置３６は、光ディスク装置２６を通じて取り込まれたテクスチャデータやメインメモリ１４上で作成されたテクスチャデータをメモリインターフェース３２を介して画像メモリ３４のテクスチャエリアに書き込んだり、画像メモリ３４の描画エリアに描画された画像データをメモリインターフェース３２を介して読み取り、これを表示装置１６に出力し、画面上に表示させるように構成されている。
【００５９】
次に、この実施の形態に係るエンタテインメント装置１０が有する特徴的な機能であるオブジェクトに影を落とす処理（以下、ドロップシャドウ処理と記す）の機能について説明する。
【００６０】
このドロップシャドウ処理機能は、例えば図２に示すように、３次元モデリングによる複数のオブジェクトＯｂ１及びＯｂ２の配置関係から少なくとも１つの仮想面５０を設定し、前記オブジェクトＯｂ１の前記仮想面５０への投影像５４を該オブジェクトＯｂ１よりも光源５２から遠い他のオブジェクトＯｂ２に影５６として表現するという機能である。
【００６１】
このドロップシャドウ処理機能を実現するプログラム（ドロップシャドウ処理手段１００）は、予めエンタテインメント装置１０にて再生される特定のＣＤ−ＲＯＭから所定の処理を経てエンタテインメント装置１０のメインメモリ１４にダウンロードされることによって当該エンタテインメント装置１０上で動作されるようになっている。
【００６２】
まず、本実施の形態に係るドロップシャドウ処理手段１００の構成について図３〜図９を参照しながら説明する。本実施の形態に係るドロップシャドウ処理手段１００は、図３に示すように、各種設定処理手段１０２、描画リスト作成手段１０４、描画手段１０６及び画像表示手段１０８を有する。
【００６３】
各種設定処理手段１０２は、オブジェクト情報テーブル１１０の作成や、オブジェクトＯｂ１、Ｏｂ２・・・、スクリーン、光源５２などの配置設定を行い、更に複数のオブジェクトＯｂ１、Ｏｂ２・・・の配置関係から少なくとも１つの仮想面５０を設定する。
【００６４】
オブジェクト情報テーブル１１０は、図４に示すように、作成されたオブジェクトに対応した数のレコードが登録され、各レコードには、対応するオブジェクトを構成するポリゴンの頂点データ（オブジェクト座標）が登録されたデータファイル（頂点データファイル）の先頭アドレスと、ポリゴンの数と、使用するテクスチャテーブルの先頭アドレスと、陰影処理の属性情報（グーローなど）、トポロジの情報（メッシュなど）と、光源処理属性等が登録されるようになっている。
【００６５】
特に、光源処理属性には、ポリゴン影の表示を行うか否かの情報（有／無＝１／０）が定義されるようになっている。
【００６６】
描画リスト作成手段１０４は、オブジェクトの頂点データファイル１１２や光源５２等の配置に基づいてオブジェクトを構成するポリゴン単位にそのスクリーン座標系、光源座標系、及び仮想面５０での投影座標（ポリゴン影の座標）を求めてパケット１１４に登録し、該パケット１１４を光源５２から近い順にいわゆるＺソーティングしながら描画リスト１１６に登録する。
【００６７】
オブジェクトの頂点データファイル１１２は、図５に示すように、作成されたオブジェクトに対応した数のファイルが揃えられ、各ファイルには、オブジェクトを構成するポリゴンのオブジェクト座標ＰＰｉｊ０  ＝（Ｘｉｊ０  ，Ｙｉｊ０  ，Ｚｉｊ０  ）、ＰＰｉｊ１  ＝（Ｘｉｊ１  ，Ｙｉｊ１  ，Ｚｉｊ１  ）、ＰＰｉｊ２  ＝（Ｘｉｊ２  ，Ｙｉｊ２  ，Ｚｉｊ２  ）がレコード単位に登録されるようになっている。
【００６８】
また、パケット１１４の内訳は、図６に示すように、ポリゴンが属するオブジェクトの番号（オブジェクト番号）と、描画リスト１１６に登録する際のポインタとして用いられるＺソートポインタと、ポリゴンのスクリーン座標ＳＰｉｊ０  ＝（ＸＳｉｊ０，ＹＳｉｊ０，ＺＳｉｊ０）、ＳＰｉｊ１  ＝（ＸＳｉｊ１，ＹＳｉｊ１，ＺＳｉｊ１）、ＳＰｉｊ２  ＝（ＸＳｉｊ２，ＹＳｉｊ２，ＺＳｉｊ２）と、ポリゴンの光源座標ＵＰｉｊ０  ＝（ＸＵｉｊ０，ＹＵｉｊ０，ＺＵｉｊ０）、ＵＰｉｊ１  ＝（ＸＵｉｊ１，ＹＵｉｊ１，ＺＵｉｊ１）、ＵＰｉｊ２  ＝（ＸＵｉｊ２，ＹＵｉｊ２，ＺＵｉｊ２）と、ポリゴンの仮想面５０に対する投影座標ＵＶｉｊ０  ＝（Ｕｉｊ０  ，Ｖｉｊ０  ）、ＵＶｉｊ１  ＝（Ｕｉｊ１  ，Ｖｉｊ１  ）、ＵＶｉｊ２  ＝（Ｕｉｊ２  ，Ｖｉｊ２  ）が格納されるようになっている。
【００６９】
描画手段１０６は、描画リスト１１６から順次パケット１１４を取り出し、これらパケット１１４に登録されているポリゴンの各種データに基づいて、当該処理対象のポリゴンに対してレンダリング処理による描画を行い、更に、当該処理対象のポリゴンに対するポリゴン影のテクスチャマッピングによる描画を行う。
【００７０】
画像表示手段１０８は、画像メモリ３４の描画エリア３４ｂに書き込まれた画像データを読み出して、表示制御装置３６に出力するという処理を行う。
【００７１】
そして、各種設定処理手段１０２は、図７に示すように、入力装置２４を介して入力されたデータに基づいて、オブジェクト情報テーブル１１０を作成するテーブル作成手段１２０と、入力装置２４を介して入力されたオブジェクトの配置に関する情報を登録する配置情報登録手段１２２と、スクリーン、光源５２及び仮想面５０の各配置に関する情報からスクリーン、光源５２及び仮想面５０のワールド座標を求め、それぞれ決められた配列変数領域Ｚ１〜Ｚ４に登録する座標設定手段１２４と、仮想面５０のワールド座標に基づいて仮想面５０の光源座標を求め、そのＺ座標を所定の配列変数領域Ｚ５に登録する光源座標演算手段１２６とを有する。
【００７２】
次に、描画リスト作成手段１０４は、図８に示すように、描画リスト１１６を初期化する描画リスト初期化手段１３０と、オブジェクト情報テーブル１１０から１レコード単位に情報を読み出すテーブルレコード読出し手段１３２と、該当する頂点データファイル１１２から１レコード単位に情報を読み出すファイルレコード読出し手段１３４と、パケット１１４にデータを格納するデータ格納手段１３６と、頂点データファイル１１２に登録されたポリゴンのスクリーン座標、光源座標及び仮想面５０への投影座標を演算する座標演算手段１３８と、ポリゴンの光源座標に基づいて描画リスト１１６に対する挿入ポインタ（Ｚソートポインタ）を決定するポインタ決定手段１４０と、前記ポインタに対応するレコードにパケット１１４を挿入するパケット挿入手段１４２と、処理対象のオブジェクトを構成するポリゴンに対する処理がすべて終了したか否かを判別する終了判別手段１４４とを有する。
【００７３】
次に、描画手段１０６は、図９に示すように、前記仮想面５０に対応した参照用シャドウ面１５０と作成用シャドウ面１５２を使用するように構成されている。これらシャドウ面１５０及び１５２は、画像メモリ３４のテクスチャエリア３４ａに論理的に割り付けられる。
【００７４】
また、この描画手段１０６は、レンダリングエンジン３０に組み込まれている質感表現処理手段１５４（テクスチャマッピング手段１５６及びシェーディング手段１５８）を動作させるためのコマンドを発行する。
【００７５】
そして、この描画手段１０６は、初期データファイル１７８から読み出した初期データＤｉを参照用シャドウ面１５０と作成用シャドウ面１５２に書き込んで、これらシャドウ面１５０及び１５２を初期化するシャドウ面初期化手段１６０と、描画リスト１１６から順次パケット１１４を読み出すパケット読出し手段１６２と、オブジェクト情報テーブル１１０から１レコード単位に情報を読み出すテーブルレコード読出し手段１６４と、処理すべきオブジェクトが切り替わったか否かの判別を行うオブジェクト判別手段１６６と、参照用シャドウ面１５０及び作成用シャドウ面１５２にデータを描画するシャドウ面描画手段１６８と、オブジェクト情報テーブル１１０に登録された光源処理属性に基づいてポリゴン影を表示するか否かの判別を行うポリゴン影表示判別手段１７０と、作成されたポリゴンデータ（質感表現及びドロップシャドウ処理後のポリゴンデータ）を例えばＺバッファリングによる隠面消去を行いながら描画エリア３４ｂにポリゴンデータを描画する隠面消去処理手段１７２と、描画リスト１１６に登録されたパケット１１４に対する処理がすべて終了したか否かを判別する終了判別手段１７４とを有する。
【００７６】
次に、本実施の形態に係るドロップシャドウ処理手段１００による第１の実施の形態に係るドロップシャドウ処理の動作を説明するが、その前に、このドロップシャドウ処理手段１００の動作概念について図２、図１０〜図１２を参照しながら説明する。
【００７７】
まず、図２に仮想面５０を用いたドロップシャドウ処理の動作概念を示す。仮想面５０は、説明の便宜上、影を落とすオブジェクトＯｂ１と影の落ちるオブジェクトＯｂ２との間にあるが、図１０に示すように、仮想面５０の位置は、サイズとドロップシャドウ処理がカバーする空間の広さで決定される。
【００７８】
そして、この第１の実施の形態においては、オブジェクトＯｂ１は、光源５２を視点とした透視変換で仮想面５０に投影され、該仮想面５０に対応したテクスチャ面であるシャドウ面（参照用シャドウ面１５０及び作成用シャドウ面１５２）にポリゴン影として書き込まれる。オブジェクトＯｂ２へのドロップシャドウ処理は、参照用シャドウ面１５０をテクスチャとして各ポリゴンにテクスチャマッピングすることにより行われる。
【００７９】
ポリゴンの各頂点のテクスチャ座標は、同様に光源５２を視点とした透視変換で求めることができる。透視変換の式を図１１を参照しながら説明する。
【００８０】
図１１において、オブジェクトＯｂ１の各頂点の仮想面５０への透視変換は、光源５２が点光源の場合、
Ｘａ＝（ｘａ＊ＳｃｒＺ）／ｚａ
Ｙａ＝（ｙａ＊ＳｃｒＺ）／ｚａ
となり、オブジェクトＯｂ２の各頂点の影のテクスチャ座標（Ｕｂ，Ｖｂ）も同様の透視変換で
Ｕｂ＝（ｘｂ＊ＳｃｒＺ）／ｚｂ
Ｖｂ＝（ｙｂ＊ＳｃｒＺ）／ｚｂ
となる。
【００８１】
なお、光源５２が平行光源の場合は、
（Ｘａ，Ｙａ）＝（ｘａ，ｙａ）
（Ｘｂ，Ｙｂ）＝（ｘｂ，ｙｂ）
となる。
【００８２】
図１２に、第１の実施の形態に係るドロップシャドウ処理の動作を概念的に示す。このドロップシャドウ処理は、オブジェクト単位にみたもので、シャドウ面（参照用シャドウ面１５０）に描画されているポリゴン影をオブジェクトにテクスチャマッピングしてスクリーン１７６に描画し（手順１）、その後、シャドウ面１５０に当該オブジェクトにて形成されるポリゴン影を描画する（手順２）という処理を行う。しかも、この処理は、矢印Ａに示すように、光源５２を視点としたＺソーティングにより行われる。
【００８３】
次に、この第１の実施の形態に係るドロップシャドウ処理の動作について図１３のフローチャートを参照しながら説明する。
【００８４】
このドロップシャドウ処理は、図１３に示すように、最初に、ステップＳ１において、各種設定処理手段１０２を通じて、オブジェクト情報テーブル１１０の作成や、オブジェクト、スクリーン１７６、光源５２などの配置設定が行われ、更に複数のオブジェクトの配置関係から少なくとも１つの仮想面５０の設定が行われる（各種設定処理）。
【００８５】
次いで、ステップＳ２において、描画リスト作成手段１０４を通じて、オブジェクトの頂点データファイル１１２や光源５２等の配置に基づいてオブジェクトを構成するポリゴン単位にそのスクリーン座標系、光源座標系、及び仮想面５０での投影座標（ポリゴン影の座標）を求めてパケット１１４に登録し、該パケット１１４を光源５２から近い順に描画リスト１１６に登録する（描画リスト作成処理）。
【００８６】
その後、ステップＳ３において、描画手段１０６を通じて、描画リスト１１６から順次パケット１１４を取り出し、これらパケット１１４に登録されているポリゴンの各種データに基づいて、当該処理対象のポリゴンに対してレンダリング処理による描画を行い、更に、当該処理対象のポリゴンに対するポリゴン影のテクスチャマッピングによる描画を行う（描画処理）。
【００８７】
次に、ステップＳ４において、画像表示手段１０８を通じて、画像メモリ３４の描画エリア３４ｂに書き込まれた画像データを読み出しながら表示制御装置３６を介して表示装置１６に出力することにより、例えば図２に示すように、光源５２に対してあるオブジェクトの背後に配置されたオブジェクトＯｂ２にその前方にあるオブジェクトＯｂ１の影が表現されるというドロップシャドウが行われることになる。
【００８８】
そして、前記ステップＳ４での処理が終了した段階で、この第１の実施の形態に係るドロップシャドウ処理が終了することになる。
【００８９】
次に、各種設定処理手段１０２、描画リスト作成手段１０４及び描画手段１０６の処理動作について図１４〜図１９のフローチャートを参照しながら説明する。
【００９０】
最初に、各種設定処理手段１０２は、図１４のステップＳ１０１において、テーブル作成手段１２０を通じて、入力装置２４を介して入力されたデータに基づいて、オブジェクト情報テーブル１１０を作成する。
【００９１】
オブジェクト情報テーブル１１０に登録される情報としては、図４に示すように、陰影処理の属性情報（グーローなど）、トポロジの情報（メッシュなど）及び光源処理属性等である。光源処理属性には、ポリゴン影の表示を行うか否かの情報（有／無＝１／０）が定義される。
【００９２】
なお、頂点データファイル１１２の先頭アドレス、ポリゴンの数、使用するテクスチャテーブルの先頭アドレス等は、ＣＡＤにてオブジェクトを作成した際に登録される。
【００９３】
次に、ステップＳ１０２において、配置情報登録手段１２２を通じて、入力装置２４を介して入力されたオブジェクトの配置に関する情報をオブジェクト情報テーブル１１０に登録する。
【００９４】
次に、ステップＳ１０３において、座標設定手段１２４を通じて、スクリーン１７６の配置に関する情報に基づいてスクリーン１７６のワールド座標を演算し、その演算結果を所定の配列変数領域Ｚ１に格納する。
【００９５】
次に、ステップＳ１０４において、同じく座標設定手段１２４を通じて、光源５２の配置に関する情報に基づいて光源５２のワールド座標を演算し、その演算結果を所定の配列変数領域Ｚ２に格納する。また、入力装置２４を介して入力された光源５２の種類を所定の配列変数領域Ｚ３に格納する。
【００９６】
次に、ステップＳ１０５において、座標設定手段１２４を通じて、前記配列変数領域Ｚ２に格納された光源５２の位置と、オブジェクト情報テーブル１１０に登録されたオブジェクトの配置情報に基づいて、仮想面５０の配置を設定し、更に該仮想面５０のワールド座標を演算して所定の配列変数領域Ｚ４に格納する。
【００９７】
次に、ステップＳ１０６において、光源座標演算手段１２６を通じて、配列変数領域Ｚ４に格納されている仮想面５０のワールド座標と、光源５２の位置に基づいて、仮想面５０の光源座標を演算し、そのＺ座標を所定の配列変数領域Ｚ５に格納する。
【００９８】
このステップＳ１０５での処理が終了した段階で、この各種設定処理手段１０２での処理が終了する。
【００９９】
次に、描画リスト作成手段１０４での処理動作について図１５及び図１６のフローチャートを参照しながら説明する。
【０１００】
まず、図１５のステップＳ２０１において、描画リスト初期化手段１３０を通じて、描画リスト１１６を初期化する。
【０１０１】
次に、ステップＳ２０２において、オブジェクトの検索に用いられるインデックスレジスタｉに初期値「０」を格納して、該インデックスレジスタｉを初期化する。
【０１０２】
次に、ステップＳ２０３において、テーブルレコード読出し手段１３２を通じて、オブジェクト情報テーブル１１０のインデックスレジスタｉで示すレコード（ｉレコード）を読み出す。
【０１０３】
次に、ステップＳ２０４において、ポリゴンの検索に用いられるインデックスレジスタｊに初期値「０」を格納して、該インデックスレジスタｊを初期化する。
【０１０４】
次に、ステップＳ２０５において、データ格納手段１３６を通じて、パケット１１４に初期値を格納して、パケット１１４を初期化する。
【０１０５】
次に、ステップＳ２０６において、データ格納手段１３６を通じて、オブジェクト番号ｉ（インデックスレジスタｉの値）をパケット１１４に格納する。
【０１０６】
次に、ステップＳ２０７において、ファイルレコード読出し手段１３４を通じて、該当する頂点データファイル１１２のインデックスレジスタｊで示すレコード（ｊレコード）を読み出す。即ち、ｊ番目のポリゴンの頂点データを読み出す。該当する頂点データファイル１１２は、前記読み出されたオブジェクト情報テーブル１１０のｉレコードに登録されている頂点データファイル１１２の先頭アドレスに対応する頂点データファイルである。
【０１０７】
次に、ステップＳ２０８において、座標演算手段１３８を通じて、前記読み出されたオブジェクト情報テーブル１１０のｉレコードに登録されたオブジェクトの配置情報と、配列変数領域Ｚ１に登録されているスクリーン１７６のワールド座標と、ｊ番目のポリゴンの頂点データに基づいて、該ｊ番目のポリゴンの各頂点におけるスクリーン座標ＳＰｉｊ０  ＝（ＸＳｉｊ０，ＹＳｉｊ０，ＺＳｉｊ０）、ＳＰｉｊ１  ＝（ＸＳｉｊ１，ＹＳｉｊ１，ＺＳｉｊ１）、ＳＰｉｊ２  ＝（ＸＳｉｊ２，ＹＳｉｊ２，ＺＳｉｊ２）を求め、データ格納手段１３６を通じて、該スクリーン座標をパケット１１４に格納する。
【０１０８】
次に、ステップＳ２０９において、座標演算手段１３８を通じて、前記オブジェクトの配置情報と、配列変数領域Ｚ２に登録されている光源５２のワールド座標と、ｊ番目のポリゴンの頂点データに基づいて、該ｊ番目のポリゴンの各頂点における光源座標ＵＰｉｊ０  ＝（ＸＵｉｊ０，ＹＵｉｊ０，ＺＵｉｊ０）、ＵＰｉｊ１  ＝（ＸＵｉｊ１，ＹＵｉｊ１，ＺＵｉｊ１）、ＵＰｉｊ２  ＝（ＸＵｉｊ２，ＹＵｉｊ２，ＺＵｉｊ２）を求め、データ格納手段１３６を通じて、該光源座標をパケット１１４に格納する。
【０１０９】
次に、ステップＳ２１０において、座標演算手段１３８を通じて、前記オブジェクトの配置情報と、配列変数領域Ｚ５に登録されている仮想面５０のＺ座標（光源座標）と、ｊ番目のポリゴンの頂点データに基づいて、該ｊ番目のポリゴンの各頂点の仮想面５０に対する投影座標ＵＶｉｊ０  ＝（Ｕｉｊ０  ，Ｖｉｊ０  ）、ＵＶｉｊ１  ＝（Ｕｉｊ１  ，Ｖｉｊ１  ）、ＵＶｉｊ２  ＝（Ｕｉｊ２  ，Ｖｉｊ２  ）を求め、データ格納手段１３６を通じて、該投影座標をパケット１１４に格納する。
【０１１０】
次に、ステップＳ２１１において、ポインタ決定手段１４０を通じて、前記ステップＳ２０９で求めた各頂点の光源座標ＵＰｉｊ０  ＝（ＸＵｉｊ０，ＹＵｉｊ０，ＺＵｉｊ０）、ＵＰｉｊ１  ＝（ＸＵｉｊ１，ＹＵｉｊ１，ＺＵｉｊ１）、ＵＰｉｊ２  ＝（ＸＵｉｊ２，ＹＵｉｊ２，ＺＵｉｊ２）のＺ座標のうち、最も光源に近いＺ座標を選択して、当該ｊ番目のポリゴンのＺソートポインタとする。
【０１１１】
次に、図１６のステップＳ２１２において、パケット挿入手段１４２を通じて、描画リスト１１６を検索し、図１７に示すように、パケット１１４の並びがＺ座標の値（Ｚソートポインタの値）の増加に対応した並びになるように今回のパケット１１４を描画リスト１１６に挿入する。
【０１１２】
次に、ステップＳ２１３において、終了判別手段１４４を通じて、インデックスレジスタｊの値を＋１更新した後、ステップＳ２１４において、ｉ番目のオブジェクトに関するすべてのポリゴンについての処理が終了したか否かが判別される。この判別は、インデックスレジスタｊの値がオブジェクト情報テーブル１１０のｉレコードに登録されているポリゴンの数Ｍ以上であるかどうかで行われる。
【０１１３】
ｉ番目のオブジェクトに関するすべてのポリゴンについての処理が終了していない場合は、図１５のステップＳ２０５に戻り、次のポリゴンに関する各種座標を演算してパケット１１４に格納し、該パケット１１４を描画リストの該当するところに挿入するという処理を行う。
【０１１４】
そして、前記ステップＳ２１４において、ｉ番目のオブジェクトに関するすべてのポリゴンについての処理が終了したと判別された場合は、次のステップＳ２１５に進み、終了判別手段１４４を通じて、インデックスレジスタｉの値を＋１更新した後、ステップＳ２１６において、すべてのオブジェクトについての処理が終了したか否かが判別される。この判別は、インデックスレジスタｉの値がオブジェクト情報テーブル１１０に登録されているレコード数Ｎ以上であるかどうかで行われる。
【０１１５】
すべてのオブジェクトについての処理が終了していない場合は、図１５のステップＳ２０３に戻り、次のオブジェクトに関するすべてのポリゴンについての各種座標を演算してそれぞれパケット１１４に格納し、これらパケット１１４をＺソートポインタが増加する並びで描画リスト１１６に挿入するという処理を行う。
【０１１６】
そして、前記ステップＳ２１６において、すべてのオブジェクトについての処理が終了したと判別された場合は、この描画リスト作成手段１０４での処理が終了する。
【０１１７】
次に、描画手段１０６の処理動作について図１８及び図１９のフローチャートを参照しながら説明する。
【０１１８】
まず、図１８のステップＳ３０１において、シャドウ面初期化手段１６０を通じて、初期データファイル１７８から初期データＤｉを読み出して、使用するシャドウ面（参照用シャドウ面１５０及び作成用シャドウ面１５２）に描画してこれらシャドウ面１５０及び１５２を初期化する。
【０１１９】
次に、ステップＳ３０２において、オブジェクト番号ｉの保存に用いられるレジスタＲに初期値「ＦＦ」を格納し、パケット１１４の検索に用いられるインデックスレジスタｋに初期値「０」を格納してこれらレジスタＲ及びインデックスレジスタｋを初期化する。
【０１２０】
次に、ステップＳ３０３において、パケット読出し手段１６２を通じて、描画リスト１１６からインデックスレジスタｋで示すポイント（ｋ番目）のパケット１１４を読み出し、次いで、ステップＳ３０４において、前記読み出されたパケット１１４からオブジェクト番号ｉを読み出す。
【０１２１】
次に、ステップＳ３０５において、オブジェクト判別手段１６６を通じて、今回のオブジェクト番号ｉが前回のオブジェクト番号と同じか否かが判別される。この判別は、インデックスレジスタｉの値とレジスタＲの値が同じかどうかで行われる。
【０１２２】
オブジェクト番号ｉが異なる場合は、次のステップＳ３０６に進み、テーブルレコード読出し手段１６４を通じて、オブジェクト情報テーブル１１０のｉレコードを読み出す。
【０１２３】
次に、ステップＳ３０７において、シャドウ面描画手段１６８を通じて、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータ（あるいは初期データＤｉ）を参照用シャドウ面１５０に複写する。
【０１２４】
次に、ステップＳ３０８において、オブジェクト判別手段１６６を通じて、オブジェクト番号ｉをレジスタＲに格納する。
【０１２５】
前記ステップＳ３０８での処理が終了した段階、又は前記ステップＳ３０５において今回と前回のオブジェクト番号が同じであると判別された場合は、図１９のステップＳ３０９に進み、質感表現処理手段１５４を通じて、今回のポリゴンに関し、通常の質感表現処理を行う。即ち、今回のポリゴンのスクリーン座標と、テクスチャテーブル１８０の先頭アドレスに基づいて、シェーディング、テクスチャマッピングなどの質感表現処理を行う。
【０１２６】
次に、ステップＳ３１０において、ポリゴン影表示判別手段１７０を通じて、当該オブジェクトに対するポリゴン影の表示の可否が判別される。この判別は、前記読み出されたオブジェクト情報テーブル１１０の該当レコードに登録されている光源処理属性中のポリゴン影の表示属性に基づいて行われる。
【０１２７】
ポリゴン影が表示可であれば、次のステップＳ３１１に進み、質感表現処理手段１５４におけるテクスチャマッピング手段１５６を通じて、当該処理対象のポリゴンの仮想面５０に対する投影座標ＵＶｉｊ０  ＝（Ｕｉｊ０  ，Ｖｉｊ０  ）、ＵＶｉｊ１  ＝（Ｕｉｊ１  ，Ｖｉｊ１  ）、ＵＶｉｊ２  ＝（Ｕｉｊ２  ，Ｖｉｊ２  ）を参照しながら参照用シャドウ面１５０に描画されたポリゴン影を処理対象のポリゴンにテクスチャマッピングする。参照用シャドウ面１５０に初期データＤｉのみが描画されている場合は、該初期データＤｉがテクスチャマッピングされる。
【０１２８】
前記ステップＳ３１１での処理が終了した段階、又は前記ステップＳ３１０においてポリゴン影が表示不可と判別された場合は、ステップＳ３１２に進み、シャドウ面描画手段１６８を通じて、今回のポリゴンの仮想面５０に対する投影座標に基づいて、今回のポリゴンのポリゴン影を作成用シャドウ面１５２に合成描画（前回のポリゴン影と合成）し、黒色（Ｒ，Ｇ，Ｂ，α）＝（０，０，０，１００％）に配色する。
【０１２９】
次に、ステップＳ３１３において、隠面消去処理手段１７２を通じて、今回のポリゴンのスクリーン座標に基づいて、Ｚバッファリング処理を行いながら今回のポリゴンのデータを描画エリア３４ｂに書き込む。
【０１３０】
次に、ステップＳ３１４において、インデックスレジスタｋの値を＋１更新した後、終了判別手段１７４を通じて、すべてのパケット１１４についての処理が終了したか否かが判別される。終了していなければ、前記ステップＳ３０３に戻り、次のパケット１１４に登録されたポリゴンについて通常の質感表現処理、ポリゴン影のテクスチャマッピング及び隠面消去処理を行う。
【０１３１】
そして、描画リスト１１６に登録されたすべてのパケット１１４について処理が終了した段階で、この描画手段１０６での処理が終了する。
【０１３２】
前記ステップＳ３０３〜Ｓ３１３の処理が繰り返されることで、まず、光源５２に最も近い位置に配されたオブジェクトＯｂ１を構成するポリゴンについては、参照用シャドウ面１５０に初期データＤｉが書き込まれているだけであるため、この初期データＤｉが透明色であれば、前記オブジェクトＯｂ１を構成するポリゴンには、ポリゴン影は描画されない。
【０１３３】
そして、光源５２から例えば２番目に配置されたオブジェクトＯｂ２を構成するポリゴンに関しては、光源５２から１番目に配されたオブジェクトＯｂ１のポリゴン影のうち、当該ポリゴンの投影座標で示す範囲に存在するポリゴン影が描画され、２番目のオブジェクトＯｂ２が終了した段階では、１番目のオブジェクトＯｂ１のポリゴン影が２番目のオブジェクトＯｂ２に描画される。
【０１３４】
同様に、光源５２から３番目に配されたオブジェクトＯｂ３に関しても、１番目のオブジェクトＯｂ１のポリゴン影と２番目のオブジェクトＯｂ２のポリゴン影の合成影が描画されることになる。
【０１３５】
このように、第１の実施の形態に係るドロップシャドウ処理においては、３次元モデリングによる複数のオブジェクトの配置関係から１つの仮想面５０を設定し、光源５２を視点とした前記仮想面５０への投影によって形成されるオブジェクトのポリゴン影を該オブジェクトよりも光源５２から遠い他のオブジェクトに表現するようにしている。
【０１３６】
具体的には、設定された仮想面５０に対応したテクスチャ面である参照用シャドウ面１５０及び作成用シャドウ面１５２を設定し、前記仮想面５０への投影によって形成されるオブジェクトの影を作成用シャドウ面１５２を通じて参照用シャドウ面１５０に描画し、該参照用シャドウ面１５０に描画された影を次のオブジェクトにテクスチャマッピングするようにしている。
【０１３７】
これにより、複雑な配置関係を有する複数のオブジェクトや複雑な形状を有するオブジェクトに対する影の表現を簡単に行うことができる。
【０１３８】
特に、この実施の形態では、オブジェクト情報テーブル１１０の各レコードにおける光源処理属性中に、当該オブジェクトに対してポリゴン影を表現するか否かの影表現属性を定義するようにしたので、オブジェクトに対するポリゴン影の表現処理を選択的に行うことができ、例えばゲーム中の主人公の表情が他のオブジェクトの影で隠れてしまうという不都合を回避することができる。
【０１３９】
次に、第２の実施の形態に係るドロップシャドウ処理について図９、図２０〜図２２を参照しながら説明する。
【０１４０】
この第２の実施の形態に係るドロップシャドウ処理は、第１の実施の形態に係るドロップシャドウ処理とほぼ同じであるが、図９のかっこ書きに示すように、光源５２からの距離に応じてポリゴン影をぼかすためのバイリニア処理手段１９０を有する点で異なる。
【０１４１】
図２０に示すように、光源５２が点光源ではなく、ある大きさをもつ光源の場合、影を落とすオブジェクトＯｂ１から近距離の部分に仮想面５０を配した場合においては、該仮想面５０には前記オブジェクトＯｂ１の真影Ｓｓが投影されることになる。
【０１４２】
しかし、仮想面５０を前記オブジェクトＯｂ１から遠い位置に配した場合には、前記真影Ｓｓの部分と該真影Ｓｓの周辺部がぼけて半影Ｓｄとされた部分とが投影されたかたちになる。前記半影Ｓｄの部分は、光源５２から仮想面５０までの距離に応じて、そのぼけ具合が強くなる。
【０１４３】
そして、第２の実施の形態に係るドロップシャドウ処理は、上述した半影Ｓｄの特性をそのまま実現できるように構成されている。
【０１４４】
即ち、図１８に示す描画手段１０６の処理、特に、ステップＳ３０７において、シャドウ面描画手段１６８を通じて、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータを参照用シャドウ面１５０に複写した後、次のかっこ書きで示されたステップＳ３２０において、バイリニア処理手段１９０を通じて、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータに対してローパスフィルタをかける。
【０１４５】
図２１に、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータを光源５２からの距離に応じてローパスフィルタを施し、距離に対応したぼけ具合（半影の具合）を表現する様子を示す。この図２１からもわかるように、光源５２に対して近距離では鮮明に、遠距離ではぼやけて投影される。
【０１４６】
特に、この第２の実施の形態では、ステップＳ３０５でのオブジェクト番号の判別で、今回のオブジェクト番号ｉが前回のオブジェクト番号と異なるときに、ステップＳ３２０においてローパスフィルタをかけるようにしている。
【０１４７】
これにより、図２２に示すように、オブジェクトＯｂ１を処理した段階（Ｐ１）では、オブジェクトＯｂ１のポリゴン影（真影のみ）が作成用シャドウ面１５２に描画され、オブジェクトＯｂ２を処理した段階（Ｐ３）では、オブジェクトＯｂ１のポリゴン影（真影と半影を含む）とオブジェクトＯｂ２のポリゴン影（真影のみ）が作成用シャドウ面１５２に描画される。
【０１４８】
即ち、光源５２から遠ざかるに従って、かつ、オブジェクトが変わるたびに作成用シャドウ面１５２に描画されたポリゴン影が光源５２からの距離に応じて徐々にぼけるかたちとなる。
【０１４９】
もちろん、光源座標を監視しながら一定の距離に達するごとに作成用シャドウ面１５２にローパスフィルタをかけるようにしてもよい。図２２に、Ｐ１、Ｐ２及びＰ３の地点で作成用シャドウ面１５２にローパスフィルタをかけるようにした例を示す。
【０１５０】
この第２の実施の形態に係るドロップシャドウ処理においては、作成用シャドウ面１５２に描画されたポリゴン影に対し、光源５２からの距離に対応してローパスフィルタをかけるようにしたので、前記ポリゴン影に光源５２からの距離に応じたぼかしを表現することができ、現実感のある影の表現を容易に行うことができる。
【０１５１】
次に、第３の実施の形態に係るドロップシャドウ処理について図２３〜図２９参照しながら説明する。
【０１５２】
この第３の実施の形態に係るドロップシャドウ処理は、作成用シャドウ面１５２に描画されたポリゴン影を参照用シャドウ面１５０を通じてオブジェクトに表現する際に、上述したローパスフィルタをかける前のポリゴン影と、ローパスフィルタをかけた後のポリゴン影と、処理対象のオブジェクトの光源座標に応じてレンダリング（この場合のレンダリングは、狭義のレンダリングを指す。）による内部補間を行うことにより、ポリゴン影のぼかしを制御するようにしたものである。
【０１５３】
この方法では、図２３に示すように、２つのシャドウ面（参照用シャドウ面１５０と背景シャドウ面１９２）を用いてレンダリングを行う。
【０１５４】
前記２つのシャドウ面１５０及び１９２は、ローパスフィルタ処理の回数が異なるシャドウ面であり、ポリゴンに表現される影は、光源座標系のＺ座標により２つのシャドウ面１５０及び１９２の間を内挿するトライリニアテクスチャマッピング手法によって行われる。その結果、光源５２から影を落とすオブジェクトへの距離に応じた影のぼけ具合をポリゴン内でも制御でき、より良好な近似ができる。
【０１５５】
具体的に、第３の実施の形態に係るドロップシャドウ処理の構成及びその処理動作について説明する。
【０１５６】
この第３の実施の形態に係るドロップシャドウ処理は、第１の実施の形態に係るドロップシャドウ処理とほぼ同じ構成を有するが、各種設定処理手段１０２と描画手段１０６の各構成がそれぞれ一部異なる。
【０１５７】
即ち、各種設定処理手段１０２は、図２４に示すように、上述したテーブル作成手段１２０、配置情報登録手段１２２、座標設定手段１２４及び光源座標演算手段１２６とを有するが、光源座標演算手段１２６の機能が異なる。
【０１５８】
この光源座標演算手段１２６は、仮想面５０のワールド座標に基づいて仮想面５０の光源座標を求め、そのＺ座標を所定の配列変数領域Ｚ５に登録するほか、各オブジェクトの配置情報に基づいて、各オブジェクトの背後に仮想的に設置される第１〜第ｎの背景仮想面の光源座標を求め、これらのＺ座標をそれぞれ決められた配列変数領域Ｚ１１〜Ｚ１ｎに登録する。
【０１５９】
一方、描画手段１０６は、図２５に示すように、前記参照用シャドウ面１５０と作成用シャドウ面１５２に加えて、第１〜第ｎの背景仮想面に対応して画像メモリ３４のテクスチャエリア３４ａに論理的に割り付けられた１つの背景シャドウ面１９２を使用するように構成されている。
【０１６０】
そして、この描画手段１０６は、上述したシャドウ面初期化手段１６０、パケット読出し手段１６２、テーブルレコード読出し手段１６４、オブジェクト判別手段１６６、シャドウ面描画手段１６８、ポリゴン影表示判別手段１７０、隠面消去処理手段１７２及び終了判別手段１７４とを有するが、シャドウ面初期化手段１６０、シャドウ面描画手段１６８及びバイリニア処理手段１９０の機能がそれぞれ異なる。
【０１６１】
シャドウ面初期化手段１６０は、前記参照用シャドウ面１５０と作成用シャドウ面１５２に加えて、前記背景シャドウ面１９２に初期データＤｉを書き込んで、これらシャドウ面１５０、１５２及び１９２を初期化する。
【０１６２】
シャドウ面描画手段１６８は、光源５２から仮想面５０までの距離（仮想面のＺ座標）と、光源５２から該当する背景仮想面までの距離（第１〜第ｎの背景仮想面のいずれかのＺ座標）に基づいて、仮想面５０に投影されたポリゴン影（参照用シャドウ面１５０に描画されたポリゴン影）を当該オブジェクトの後面に仮想的に設置された第１〜第ｎの背景仮想面のいずれかに投影して形成されるポリゴン影を背景シャドウ面１９２に描画する。
【０１６３】
また、バイリニア処理手段１９０は、前記作成用シャドウ面１５２に描画されたポリゴン影のほか、背景シャドウ面１９２に描画されたポリゴン影に対してもローパスフィルタ処理を行う。
【０１６４】
次に、この第３の実施の形態に係るドロップシャドウ処理の動作について図２６〜図２８のフローチャートを参照しながら説明する。
【０１６５】
まず、各種設定処理手段１０２は、図２６のステップＳ４０１〜Ｓ４０４において、上述した第１の実施の形態に係るドロップシャドウ処理における各種設定処理手段１０２のステップＳ１０１〜Ｓ１０４と同様に、オブジェクト情報テーブル１１０の作成と、オブジェクトの配置に関する情報のオブジェクト情報テーブル１１０への登録と、スクリーン１７６のワールド座標の登録と、光源５２の種類及び光源５２のワールド座標の登録を行う。
【０１６６】
次に、ステップＳ４０５において、座標設定手段１２４を通じて、配列変数領域Ｚ２に格納された光源５２の位置と、オブジェクト情報テーブル１１０に登録されたオブジェクトの配置情報に基づいて、仮想面５０と第１〜第ｎの背景仮想面の配置を設定し、更にこれら仮想面５０及び第１〜第ｎの背景仮想面のワールド座標を演算して所定の配列変数領域Ｚ４、Ｚ１１〜Ｚ１ｎに格納する。
【０１６７】
次に、ステップＳ４０６において、光源座標演算手段１２６を通じて、配列変数領域Ｚ２とＺ４に格納されている光源５２と仮想面５０の各ワールド座標に基づいて、仮想面５０及び第１〜第ｎの背景仮想面の光源座標を演算し、各Ｚ座標を配列変数領域Ｚ５、Ｚ２１〜Ｚ２ｎに格納する。
【０１６８】
描画リスト作成手段１０４での処理は、第１の実施の形態に係るドロップシャドウ処理と同様であるため、その説明を省略する。
【０１６９】
次に、描画手段１０６は、まず、図２７のステップＳ５０１において、シャドウ面初期化手段１６０を通じて、初期データファイル１７８から初期データＤｉを読み出して、使用するシャドウ面（参照用シャドウ面１５０、作成用シャドウ面１５２及び背面シャドウ面１９２）に描画してこれらシャドウ面１５０、１５２及び１９２を初期化する。
【０１７０】
次に、ステップＳ５０２において、オブジェクト番号ｉの保存に用いられるレジスタＲに初期値「ＦＦ」を格納し、パケット１１４の検索に用いられるインデックスレジスタｋに初期値「０」を格納し、更に背景仮想面の検索に用いられるインデックスレジスタｎに初期値「０」を格納してこれらレジスタＲ、インデックスレジスタｋ及びｎを初期化する。
【０１７１】
次に、ステップＳ５０３において、パケット読出し手段１６２を通じて、描画リスト１１６からインデックスレジスタｋで示すポイント（ｋ番目）のパケット１１４を読み出し、次いで、ステップＳ５０４において、前記読み出されたパケット１１４からオブジェクト番号ｉを読み出す。
【０１７２】
次に、ステップＳ５０５において、オブジェクト判別手段１６６を通じて、今回のオブジェクト番号ｉが前回のオブジェクト番号と同じか否かが判別される。この判別は、インデックスレジスタｉの値とレジスタＲの値が同じかどうかで行われる。
【０１７３】
オブジェクト番号ｉが異なる場合は、次のステップＳ５０６に進み、テーブルレコード読出し手段１６４を通じて、オブジェクト情報テーブル１１０のｉレコードを読み出す。
【０１７４】
次に、ステップＳ５０７において、シャドウ面描画手段１６８を通じて、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータを参照用シャドウ面１５０に複写する。
【０１７５】
次に、ステップＳ５０８において、バイリニア処理手段１９０を通じ、作成用シャドウ面１５２に描画されているポリゴン影に関するテクスチャデータに対してローパスフィルタをかける。
【０１７６】
次に、ステップＳ５０９において、オブジェクト判別手段１６６を通じて、オブジェクト番号ｉをレジスタＲに格納する。その後、ステップＳ５１０において、インデックスレジスタｎの値を＋１更新する。
【０１７７】
前記ステップＳ５１０での処理が終了した段階、又は前記ステップＳ５０５において今回と前回のオブジェクト番号が同じであると判別された場合は、図２８のステップＳ５１１に進み、質感表現処理手段１５４を通じて、今回のポリゴンに関し、通常の質感表現処理を行う。即ち、今回のポリゴンのスクリーン座標と、テクスチャテーブル１８０の先頭アドレスに基づいて、シェーディング、テクスチャマッピングなどの質感表現処理を行う。
【０１７８】
次に、ステップＳ５１２において、ポリゴン影表示判別手段１７０を通じて、当該オブジェクトに対するポリゴン影の表示の可否が判別される。この判別は、前記読み出されたオブジェクト情報テーブル１１０の該当レコードに登録されている光源処理属性中のポリゴン影の表示属性に基づいて行われる。
【０１７９】
ポリゴン影が表示可であれば、次のステップＳ５１３に進み、ポリゴン影表示判別手段１７０を通じて、初回か否かが判別される。この判別は、オブジェクト番号ｉが「０」であるかどうかで行われる。
【０１８０】
初回でなければ、次のステップＳ５１４に進み、シャドウ面描画手段１６８を通じて、仮想面５０のＺ座標と第ｎの背景仮想面のＺ座標に基づいて、仮想面５０に投影されたポリゴン影（参照用シャドウ面１５０に描画されたポリゴン影）を当該オブジェクトの後面に仮想的に設置した第ｎの背景仮想面に投影して形成されるポリゴン影を背景シャドウ面１９２に描画する。
【０１８１】
次に、ステップＳ５１５において、バイリニア処理手段１９０を通じて、前記背景シャドウ面１９２に描画されたポリゴン影に対してローパスフィルタ処理を行って、該ポリゴン影を光源５２からの距離に応じてぼかす。
【０１８２】
次に、ステップＳ５１６において、質感表現処理手段１５４におけるテクスチャマッピング手段１５６を通じて、参照用シャドウ面１５０に描画されたポリゴン影と、背景シャドウ面１９２に描画されたポリゴン影と、当該ポリゴンにおける各頂点の光源座標に基づいて、レンダリングによる内部補間を行いながら、当該ポリゴンに投影されるポリゴン影をテクスチャマッピングする。
【０１８３】
このとき、図２９に示すように、ポリゴン影のかたちが、ポリゴン２００の奥行き方向に向かって参照用シャドウ面１５０に描画されたポリゴン影２０４のかたちから第ｎの背景シャドウ面２０２ｎに描画されたポリゴン影２０６のかたちに徐々に変化し、かつ、ポリゴン２００に映り込む影の色が、ポリゴン２００の奥行き方向に向かって参照用シャドウ面１５０に描画されたポリゴン影２０４の色から第ｎの背景シャドウ面２０２ｎに描画されたポリゴン影２０６の色に徐々に変化するようにテクスチャマッピングが行われる。
【０１８４】
一方、前記ステップＳ５１３において、初回であると判別された場合は、ステップＳ５１７に進み、質感表現処理手段１５４におけるテクスチャマッピング手段１５６を通じて、当該処理対象のポリゴンの仮想面５０に対する投影座標を参照しながら参照用シャドウ面１５０に描画されたポリゴン影を処理対象のポリゴンにテクスチャマッピングする。
【０１８５】
前記ステップＳ５１６での処理あるいはステップＳ５１７での処理が終了した段階、又は前記ステップＳ５１２においてポリゴン影が表示不可と判別された場合は、ステップＳ５１８に進み、シャドウ面描画手段１６８を通じて、今回のポリゴンの仮想面５０に対する投影座標に基づいて、今回のポリゴンのポリゴン影を作成用シャドウ面１５２に合成描画（前回のポリゴン影と合成）し、黒色（Ｒ，Ｇ，Ｂ，α）＝（０，０，０，１００％）に配色する。
【０１８６】
次に、ステップＳ５１９において、隠面消去処理手段１７２を通じて、今回のポリゴンのスクリーン座標に基づいて、Ｚバッファリング処理を行いながら今回のポリゴンのデータを描画エリア３４ｂに書き込む。
【０１８７】
次に、ステップＳ５２０において、インデックスレジスタｋの値を＋１更新した後、終了判別手段１７４を通じて、すべてのパケット１１４についての処理が終了したか否かが判別される。終了していなければ、前記ステップＳ５０３に戻り、次のパケット１１４に登録されたポリゴンについて通常の質感表現処理、ポリゴン影のテクスチャマッピング及び隠面消去処理を行う。
【０１８８】
そして、描画リスト１１６に登録されたすべてのパケット１１４について処理が終了した段階で、この描画手段１０６での処理が終了する。
【０１８９】
前記ステップＳ５０３〜Ｓ５１９の処理が繰り返されることで、まず、光源５２に最も近い位置に配されたオブジェクトＯｂ１を構成するポリゴンについては、参照用シャドウ面１５０に初期データＤｉが書き込まれているだけであるため、この初期データＤｉが透明色であれば、前記オブジェクトＯｂ１を構成するポリゴンには、ポリゴン影は描画されない。
【０１９０】
そして、光源５２から例えば２番目に配置されたオブジェクトＯｂ２を構成するポリゴンに関しては、光源５２から１番目に配されたオブジェクトＯｂ１のポリゴン影のうち、当該ポリゴンの投影座標で示す範囲に存在するポリゴン影が描画され、２番目のオブジェクトＯｂ２が終了した段階では、１番目のオブジェクトＯｂ１のポリゴン影が２番目のオブジェクトＯｂ２に描画される。このとき、ステップＳ５１６でのレンダリング（トライリニア処理）により、当該オブジェクトＯｂ２に投影されるポリゴン影の色が、オブジェクトＯｂ２の奥行き方向に向かって徐々に変化するように表現される。
【０１９１】
同様に、光源５２から３番目に配されたオブジェクトＯｂ３に関しても、１番目のオブジェクトＯｂ１のポリゴン影と２番目のオブジェクトＯｂ２のポリゴン影の合成影が描画され、この場合も、当該オブジェクトＯｂ３の奥行き方向に向かって徐々に変化するように表現される。
【０１９２】
このように、この第３の実施の形態に係るドロップシャドウ処理においては、作成用シャドウ面１５２に描画されたポリゴン影をオブジェクトに表現する際に、ローパスフィルタをかける前のポリゴン影とローパスフィルタをかけた後のポリゴン影と処理対象のオブジェクトの光源座標に応じて、レンダリングによる内部補間を行うことにより、ポリゴン影のぼかしを制御するようにしたので、より現実感のある影の表現を容易に行うことができる。
【０１９３】
次に、第４の実施の形態に係るドロップシャドウ処理について図３０を参照しながら説明する。
【０１９４】
この第４の実施の形態に係るドロップシャドウ処理は、図３０に示すように、オブジェクトＯｂ１、Ｏｂ２及びＯｂ３に炎のような面光源２１０を表現することができるようにしたものである。この表現を実現するためには、図３０に示すように、仮想面５０に予め炎のような面光源２１０を投影させておけばよい。
【０１９５】
具体的には、例えば図９に示す第１及び第２の実施の形態に係る描画手段１０６、図２５に示す第３の実施の形態に係る描画手段１０６で使用される初期データＤｉとして炎のような面光源２１０の投影像２１２を予め設定しておけばよい。
【０１９６】
これにより、例えば第３の実施の形態に係るドロップシャドウ処理の描画手段１０６においては、図２７のステップＳ５０１において、シャドウ面初期化手段１６０を通じて初期データＤｉが参照用シャドウ面１５０、作成用シャドウ面１５２及び背景シャドウ面１９２に描画され、その後のステップＳ５０３〜Ｓ５１９において、オブジェクトの表面にポリゴン影は黒として配色され、炎のような面光源２１０は光としてモジュレーションされることになる。しかも、これらポリゴン影や面光源２１０は、ステップＳ５１５において、面光源２１０からの距離に応じたローパスフィルタ処理が行われることになる。
【０１９７】
即ち、初期段階（Ｐ０）では、作成用シャドウ面１５２に面光源２１０の投影像２１２のみが描画され、第１のオブジェクトに対する処理が終了した段階（Ｐ１）では、作成用シャドウ面１５２に、ローパスフィルタ処理された面光源２１０の投影像２１２ａとオブジェクトＯｂ１の真影２１４が描画され、第２のオブジェクトに対する処理が終了した段階（Ｐ２）では、作成用シャドウ面１５２に、２回のローパスフィルタ処理がなされた面光源２１０の投影像２１２ｂと１回のローパスフィルタ処理がなされたオブジェクトＯｂ１の影２１４ａとオブジェクトＯｂ２の真影２１６が描画されることになる。
【０１９８】
ここで、光としてのモジュレーションとは、通常の法線の傾きによる光源計算やテクスチャマッピング後のポリゴン色に、参照用シャドウ面１５０に描画された平面色を乗算することを示す。
【０１９９】
このように、第４の実施の形態に係るドロップシャドウ処理においては、使用するシャドウ面１５０、１５２及び１９２の初期データＤｉとして炎などの面光源２１０の投影像２１２を設定するようにして、オブジェクトに対して面光源２１０の映り込みと影処理を行うようにしたので、炎のような面光源２１０の投影像と該面光源２１０による影を容易に表現することができる。
【０２００】
上述した実施の形態では、隠面消去処理をＺバッファリングにより行うようにしたが、その他、スクリーン座標系に基づいたＺソーティングにより行うようにしてもよい。
【０２０１】
なお、この発明に係る画像処理方法、画像処理装置及び記録媒体は、上述の実施の形態に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【０２０２】
【発明の効果】
以上説明したように、本発明に係る画像処理方法及び画像処理装置によれば、以下のような効果を奏することができ、本発明に係る記録媒体によれば、以下のような効果を奏するプログラムを提供することができる。
（１）複雑な配置関係を有する複数のオブジェクトや複雑な形状を有するオブジェクトに対する影の表現を簡単に行うことができる。
（２）オブジェクトに対する影の表現を選択的に行うことができる。
（３）オブジェクトに対する影の表現において種々の効果（ぼかし等）を容易に付与することができる。
（４）影に対する効果のうち、影のぼかしを容易に制御することができ、より現実感のある影の表現を容易に行うことができる。
（５）炎のような面光源の投影像と該面光源による影を容易に表現することができる。
【図面の簡単な説明】
【図１】本実施の形態に係るエンタテインメント装置の概略構成を示すブロック図である。
【図２】本実施の形態に係るドロップシャドウ処理を示す説明図である。
【図３】本実施の形態に係るドロップシャドウ処理手段の機能ブロック図である。
【図４】オブジェクト情報テーブルの内訳を示す説明図である。
【図５】頂点データファイルの内訳を示す説明図である。
【図６】パケットの内訳を示す説明図である。
【図７】第１の実施の形態に係るドロップシャドウ処理における各種設定処理手段の機能ブロック図である。
【図８】第１の実施の形態に係るドロップシャドウ処理における描画リスト作成手段の機能ブロック図である。
【図９】第１の実施の形態に係るドロップシャドウ処理における描画手段の機能ブロック図である。
【図１０】点光源に対してドロップシャドウ処理が有効な領域を示す説明図である。
【図１１】オブジェクトの仮想面への透視変換を説明するための図である。
【図１２】第１の実施の形態に係るドロップシャドウ処理の動作を概念的に示す説明図である。
【図１３】第１の実施の形態に係るドロップシャドウ処理の動作を示すフローチャートである。
【図１４】第１の実施の形態に係るドロップシャドウ処理の各種設定処理手段の動作を示すフローチャートである。
【図１５】第１の実施の形態に係るドロップシャドウ処理の描画リスト作成手段の動作を示すフローチャート（その１）である。
【図１６】第１の実施の形態に係るドロップシャドウ処理の描画リスト作成手段の動作を示すフローチャート（その２）である。
【図１７】描画リストへのパケットの挿入動作を示す説明図である。
【図１８】第１の実施の形態に係るドロップシャドウ処理の描画手段の動作を示すフローチャート（その１）である。
【図１９】第１の実施の形態に係るドロップシャドウ処理の描画手段の動作を示すフローチャート（その２）である。
【図２０】第２の実施の形態に係るドロップシャドウ処理において、光源がある大きさをもつ場合における仮想面への真影と半影の形成状態を示す説明図である。
【図２１】第２の実施の形態に係るドロップシャドウ処理において、作成用シャドウ面に対し、光源からの距離に応じてローパスフィルタを施して、距離に対応したぼけ具合（半影の具合）を表現した説明図である。
【図２２】第２の実施の形態に係るドロップシャドウ処理において、オブジェクトを処理する毎にローパスフィルタをかけた場合と、一定の距離毎にローパスフィルタをかけた場合を一括して説明するための図である。
【図２３】第３の実施の形態に係るドロップシャドウ処理でのトライリニア処理を示す説明図である。
【図２４】第３の実施の形態に係るドロップシャドウ処理の各種設定処理手段を示す機能ブロック図である。
【図２５】第３の実施の形態に係るドロップシャドウ処理の描画手段を示す機能ブロック図である。
【図２６】第３の実施の形態に係るドロップシャドウ処理の各種設定処理手段の動作を示すフローチャートである。
【図２７】第３の実施の形態に係るドロップシャドウ処理の描画手段の動作を示すフローチャート（その１）である。
【図２８】第３の実施の形態に係るドロップシャドウ処理の描画手段の動作を示すフローチャート（その２）である。
【図２９】ポリゴンの奥行き方向に向かって影のかたち及び色が徐々に変化する表現を示す説明図である。
【図３０】オブジェクトに炎のような面光源の投影像と面光源による影を表現する場合の説明図である。
【符号の説明】
１０…エンタテインメント装置    １２…メインＣＰＵ
１４…メインメモリ              １６…表示装置
１８…画像処理部                ２６…光ディスク装置
３０…レンダリングエンジン      ３４…画像メモリ
３６…表示制御装置              ５０…仮想面
５２…光源                      ５４…投影像
５６…影                        １００…ドロップシャドウ処理手段
１０２…各種設定処理手段        １０４…描画リスト作成手段
１０６…描画手段                １０８…画像表示手段
１１４…パケット                １１６…描画リスト
１７６…スクリーン              Ｏｂ１、Ｏｂ２…オブジェクト
【図１】
0003599268.tif 000002
【図２】
0003599268.tif 000003
【図３】
0003599268.tif 000004
【図４】
0003599268.tif 000005
【図５】
0003599268.tif 000006
【図６】
0003599268.tif 000007
【図７】
0003599268.tif 000008
【図８】
0003599268.tif 000009
【図９】
0003599268.tif 000010
【図１０】
0003599268.tif 000011
【図１１】
0003599268.tif 000012
【図１２】
0003599268.tif 000013
【図１３】
0003599268.tif 000014
【図１４】
0003599268.tif 000015
【図１５】
0003599268.tif 000016
【図１６】
0003599268.tif 000017
【図１７】
0003599268.tif 000018
【図１８】
0003599268.tif 000019
【図１９】
0003599268.tif 000020
【図２０】
0003599268.tif 000021
【図２１】
0003599268.tif 000022
【図２２】
0003599268.tif 000023
【図２３】
0003599268.tif 000024
【図２４】
0003599268.tif 000025
【図２５】
0003599268.tif 000026
【図２６】
0003599268.tif 000027
【図２７】
0003599268.tif 000028
【図２８】
0003599268.tif 000029
【図２９】
0003599268.tif 000030
【図３０】
0003599268.tif 000031