(57)【要約】【課題】モデルオブジェクトのよりリアルな影画像を生成できるプログラム、情報記憶媒体及び画像生成システムの提供。【解決手段】画像生成システムは、シャドウイング処理を行いながらモデルオブジェクトＭＯＢ１、ＭＯＢ２を含む複数のオブジェクトの描画処理を行って、モデルオブジェクトＭＯＢ１、ＭＯＢ２の画像とその影画像ＳＤ１、ＳＤ２が表示される画像を生成する第１の描画処理部と、モデルオブジェクトＭＯＢ１、ＭＢＯ２の接地部ＬＯＢ１、ＬＯＢ２に対応する影プリミティブ面の描画処理を行って、モデルオブジェクトＭＯＢ１、ＭＯＢ２の影画像ＳＤ１、ＳＤ２に対して接地部ＬＯＢ１、ＬＯＢ２の影画像ＬＳＤ１、ＬＳＤ２が合成された画像を生成する第２の描画処理部を含む。【選択図】図２
2010055131.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
シャドウイング処理を行いながらモデルオブジェクトを含む複数のオブジェクトの描画処理を行って、前記モデルオブジェクトの画像と前記モデルオブジェクトの影画像が表示される画像を生成する第１の描画処理部と、
前記モデルオブジェクトの接地部に対応する影プリミティブ面の描画処理を行って、前記モデルオブジェクトの前記影画像に対して前記接地部の影画像が合成された画像を生成する第２の描画処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の描画処理部は、
シャドウマップ処理により、前記モデルオブジェクトの前記影画像を生成することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記第２の描画処理部は、
前記接地部に対して設定された影生成用プリミティブ面を、前記モデルオブジェクトが移動するフィールドに対して投影することで生成された前記影プリミティブ面の描画処理を行うことで、前記接地部の影画像を生成することを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記第２の描画処理部は、
前記第１の描画処理部が前記モデルオブジェクトの影画像の生成に使用する投影方向とは異なる投影方向を用いて、前記接地部の影画像を生成することを特徴とするプログラム。
【請求項５】
請求項４において、
前記第２の描画処理部は、
点光源が存在する場合に、前記点光源の投影方向を用いて、前記接地部の影画像を生成することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第２の描画処理部は、
前記影プリミティブ面を、前記仮想カメラから見て奥側方向にＺシフトすると共に、前記影プリミティブ面の各ピクセルのＺ値の方がＺバッファのＺ値よりも奥側のＺ値である場合に描画されるというＺ比較の設定で、前記影プリミティブ面の描画処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記第１の描画処理部は、
前記モデルオブジェクトの描画処理を行う際に、前記モデルオブジェクトの描画領域に対応するステンシルバッファの領域に対して所定ステンシル値を書き込み、
前記第２の描画処理部は、
前記ステンシルバッファに前記所定ステンシル値が書き込まれておらずステンシル値がクリアされている領域に対して、前記影プリミティブ面を描画することを特徴とするプログラム。
【請求項８】
請求項７において、
前記第２の描画処理部は、
前記影プリミティブ面の各ピクセルのＺ値の方がＺバッファのＺ値よりも手前側のＺ値である場合に描画されるというＺ比較の設定で、前記影プリミティブ面に対応するプリミティブ面の描画処理を行って、前記ステンシルバッファの前記所定ステンシル値をクリアすることを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第２の描画処理部は、
前記接地部の接地面と、前記モデルオブジェクトが移動するフィールドとのなす角度に応じて、前記接地部の影画像の濃さを制御することを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記第１の描画処理部は、
前記モデルオブジェクトの描画処理を行った後に、背景オブジェクトの描画処理を行うことを特徴とするプログラム。
【請求項１１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１０のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１２】
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
シャドウイング処理を行いながらモデルオブジェクトを含む複数のオブジェクトの描画処理を行って、前記モデルオブジェクトの画像と前記モデルオブジェクトの影画像が表示される画像を生成する第１の描画処理部と、
前記モデルオブジェクトの接地部に対応する影プリミティブ面の描画処理を行って、前記モデルオブジェクトの前記影画像に対して前記接地部の影画像が合成された画像を生成する第２の描画処理部と、
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作部）を用いて自キャラクタ（モデルオブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、キャラクタなどのモデルオブジェクトのよりリアルな影を生成することが望まれる。このような影生成手法としては、例えば特許文献１に開示されるようなシャドウボリューム（モディファイアボリューム）処理などのシャドウイング処理が知られている。
【０００４】
しかしながら、このようなシャドウイング処理では、ゲームフィールドに落ちるキャラクタの影形状についてはリアルに表現できるものの、その場のライティングに合ったリアルな影を目指すと、地面に落ちる影が淡くなってしまう場合が多い。従って、例えば足などの接地部の下のいわゆるオクルージョン領域の影については、リアルに表現することが難しいという課題があった。
【特許文献１】特開２００３−２４２５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の幾つかの態様によれば、モデルオブジェクトのよりリアルな影画像を生成できるプログラム、情報記憶媒体及び画像生成システムを提供できる。
【課題を解決するための手段】
【０００６】
本発明は、オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、シャドウイング処理を行いながらモデルオブジェクトを含む複数のオブジェクトの描画処理を行って、前記モデルオブジェクトの画像と前記モデルオブジェクトの影画像が表示される画像を生成する第１の描画処理部と、前記モデルオブジェクトの接地部に対応する影プリミティブ面の描画処理を行って、前記モデルオブジェクトの前記影画像に対して前記接地部の影画像が合成された画像を生成する第２の描画処理部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明によれば、モデルオブジェクトを含む複数のオブジェクトの描画処理が行われることで、モデルオブジェクトの画像とモデルオブジェクトの影画像が表示される画像が生成される。また、モデルオブジェクトの接地部に対応する影プリミティブ面の描画処理が行われることで、モデルオブジェクトの影画像に対して接地部の影画像が合成された画像が生成される。このようにすれば、モデルオブジェクトの全体的な影画像と、部分的な接地部の影画像が合成されることで、よりリアルな影画像の生成が可能になる。
【０００８】
また本発明では、前記第１の描画処理部は、シャドウマップ処理により、前記モデルオブジェクトの前記影画像を生成してもよい。
【０００９】
このようにシャドウマップ処理により影画像を生成した場合には、その場に合ったリアルな影を目指すと、地面に落ちる影が淡くなってしまうことが増えてくる。この点、本発明によれば、この接地部の影画像については、影プリミティブ面の描画処理という別処理により生成されるため、少ない処理負荷でよりリアルな影画像の生成が可能になる。
【００１０】
また本発明では、前記第２の描画処理部は、前記接地部に対して設定された影生成用プリミティブ面を、前記モデルオブジェクトが移動するフィールドに対して投影することで生成された前記影プリミティブ面の描画処理を行うことで、前記接地部の影画像を生成してもよい。
【００１１】
このようにすれば、接地部の動きや影の投影方向を反映させた接地部の影画像を生成できるようになる。
【００１２】
また本発明では、前記第２の描画処理部は、前記第１の描画処理部が前記モデルオブジェクトの影画像の生成に使用する投影方向とは異なる投影方向を用いて、前記接地部の影画像を生成してもよい。
【００１３】
このようにすれば、モデルオブジェクトの影画像の投影方向とは異なる投影方向に、接地部の影画像が生成されるようになるため、エフェクト効果の高い画像生成が可能になる。
【００１４】
また本発明では、前記第２の描画処理部は、点光源が存在する場合に、前記点光源の投影方向を用いて、前記接地部の影画像を生成してもよい。
【００１５】
このようにすれば、点光源の投影方向に応じた接地部の影画像を生成できるようになる。
【００１６】
また本発明では、前記第２の描画処理部は、前記影プリミティブ面を、前記仮想カメラから見て奥側方向にＺシフトすると共に、前記影プリミティブ面の各ピクセルのＺ値の方がＺバッファのＺ値よりも奥側のＺ値である場合に描画されるというＺ比較の設定で、前記影プリミティブ面の描画処理を行ってもよい。
【００１７】
このようにすれば、例えばモデルオブジェクトの接地部がフィールドの端部付近に位置する場合に不自然な画像が生成されてしまう事態などを防止できる。
【００１８】
また本発明では、前記第１の描画処理部は、前記モデルオブジェクトの描画処理を行う際に、前記モデルオブジェクトの描画領域に対応するステンシルバッファの領域に対して所定ステンシル値を書き込み、前記第２の描画処理部は、前記ステンシルバッファに前記所定ステンシル値が書き込まれておらずステンシル値がクリアされている領域に対して、前記影プリミティブ面を描画してもよい。
【００１９】
このようにすれば、モデルオブジェクトの接地部に対して影が落ちてしまうような不自然な影画像が生成されてしまう事態を防止できる。
【００２０】
また本発明では、前記第２の描画処理部は、前記影プリミティブ面の各ピクセルのＺ値の方がＺバッファのＺ値よりも手前側のＺ値である場合に描画されるというＺ比較の設定で、前記影プリミティブ面に対応するプリミティブ面の描画処理を行って、前記ステンシルバッファの前記所定ステンシル値をクリアしてもよい。
【００２１】
このようにすれば、例えばモデルオブジェクトの接地部がフィールドにめり込んだような状況においても、不自然さのない影画像を生成できる。
【００２２】
また本発明では、前記第２の描画処理部は、前記接地部の接地面と、前記モデルオブジェクトが移動するフィールドとのなす角度に応じて、前記接地部の影画像の濃さを制御してもよい。
【００２３】
このようにすれば、例えば接地部の接地面とフィールドとのなす角度が大きくなった場合に不自然な影画像が生成されてしまう事態等を防止できる。
【００２４】
また本発明では、前記第１の描画処理部は、前記モデルオブジェクトの描画処理を行った後に、背景オブジェクトの描画処理を行ってもよい。
【００２５】
このようにすれば、モデルオブジェクトの描画領域については背景オブジェクトを描画しなくても済むようになり、描画処理の負荷を軽減できる。
【発明を実施するための最良の形態】
【００２６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２７】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２８】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、ステアリング、アクセル、ブレーキ、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００２９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。この記憶部１７０は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置１９４よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３２】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される大容量の記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードや、ＨＤＤなどにより実現できる。この補助記憶装置１９４は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置１９４は、ゲームの途中結果などのセーブデータや、プレーヤ（ユーザ）の個人的な画像データや音楽データなどを保存するために使用される。
【００３３】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００３４】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３５】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３６】
処理部１００は、ゲーム演算部１０２、オブジェクト空間設定部１０４、移動体演算部１０６、仮想カメラ制御部１０８、描画処理部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３７】
ゲーム演算部１０２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００３８】
オブジェクト空間設定部１０４は、モデルオブジェクト（人、ロボット、車、戦闘機、ミサイル、弾等の移動体）、マップ（地形）、建物、コース（道路）、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクトデータ記憶部１７２には、オブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。そしてこのオブジェクトデータは、移動体演算部１０６の移動体演算処理等により順次更新される。
【００３９】
移動体演算部（移動体制御部）１０６は、移動体であるモデルオブジェクト等を移動させるための演算を行う。またモデルオブジェクトを動作させるための演算も行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクト（移動体オブジェクト）をオブジェクト空間内で移動させたり、モデルオブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、モデルオブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４０】
より具体的には、移動体演算部１０６は、モーションデータ記憶部１７３に記憶されるモーションデータに基づいて、モデルオブジェクトのモーションを再生する処理を行う。即ち、モデルオブジェクト（スケルトン）を構成する各パーツオブジェクト（スケルトンを構成する骨）の位置又は回転角度（方向）等を含むモーションデータを、モーションデータ記憶部１７３から読み出す。そして、モデルオブジェクトの各パーツオブジェクト（骨）を動かすことで（スケルトン形状を変形させることで）、モデルオブジェクトのモーションを再生する。
【００４１】
仮想カメラ制御部１０８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４２】
例えば仮想カメラによりキャラクタ、車、戦闘機などのモデルオブジェクトを後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動体演算部１０６で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００４３】
描画処理部１２０（画像生成部）は、モデルオブジェクトを含む複数のオブジェクトの描画処理を行う。例えば処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデルオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が生成され、これらのデータに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４４】
頂点処理（頂点シェーダ処理）では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００４５】
ピクセル処理（ピクセルシェーダ処理）では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャ記憶部１７４に記憶されるテクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ１７６（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット、フレームバッファ）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００４６】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００４７】
描画処理部１２０は、照明モデル等に基づくライティング処理（シェーディング処理）を行う。具体的にはこのライティング処理は、光源情報（光源ベクトル、光源色、明るさ、光源タイプ等）、仮想カメラ（視点）の視線ベクトル、オブジェクト（半透明オブジェクト）の法線ベクトル、オブジェクトのマテリアル（色、材質）などを用いて行われる。なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバートの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【００４８】
また描画処理部１２０は、オブジェクト（ポリゴン）にテクスチャをマッピングする処理を行うことができる。ここでテクスチャマッピング処理は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点やピクセルに設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（広義にはテクセル補間）などを行う。
【００４９】
また描画処理部１２０は隠面消去処理を行うことができる。例えば、各ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７７（奥行きバッファ）を用いて、Ｚバッファ法（奥行き比較法、Ｚテスト）により隠面消去処理を行う。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７７に格納されるＺ値を参照する。そして参照されたＺバッファ１７７のＺ値と、描画対象ピクセルのＺ値とを比較し、描画対象ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７７のＺ値を新たなＺ値に更新する。
【００５０】
また描画処理部１２０は影画像を生成するためのシャドウイング処理を行う。具体的には本実施形態では、描画処理部１２０が第１の描画処理部１２１と第２の描画処理部１２２を含む。
【００５１】
そして第１の描画処理部１２１は、モデルオブジェクトを含む複数のオブジェクトの描画処理を行って、モデルオブジェクトの画像とモデルオブジェクトの影画像が表示される画像を生成する。具体的には、モデルオブジェクトの描画処理を行い、モデルオブジェクトの画像を生成する。次に、シャドウイング処理を行いながら背景オブジェクトの描画処理を行い、モデルオブジェクトが移動するフィールド等の背景に対してモデルオブジェクトの影が表示された画像を生成する。
【００５２】
このように第１の描画処理部１２１は、モデルオブジェクトの描画処理を行った後に、背景オブジェクトの描画処理を行う。これによりモデルオブジェクトを描画した領域には、背景オブジェクトを描画しなくても済むようになり、描画処理の負荷を軽減できる。
【００５３】
第１の描画処理部１２１は、例えばシャドウマップ（Shadow map）処理により、モデルオブジェクトの影画像を生成する。具体的には、影の投影方向でのオブジェクトのＺ値をレンダリングすることでシャドウマップテクスチャを生成する。そして、このシャドウマップテクスチャとオブジェクトのテクスチャを用いてオブジェクトの描画処理を行うことで影画像を生成する。
【００５４】
また第１の描画処理部１２１は、分散シャドウマップ（Variance Shadow map）処理により影画像を生成してもよい。この場合には、影の投影方向でのオブジェクトのＺ値のレンダリングを行うと共にＺ値の二乗のレンダリングを行うことで、シャドウマップテクスチャを生成すればよい。なおシャドウマップ処理としては、分散シャドウマップ以外にも、コンベンショナルなシャドウマップ処理やライトスペースシャドウマップ処理やオパシティシャドウマップ処理などの種々の処理を採用できる。或いは、シャドウマップ処理以外にも、ボリュームシャドウ（ステンシルシャドウ）処理や投影テクスチャシャドウ処理などのシャドウイング処理を採用してもよい。
【００５５】
一方、第２の描画処理部１２２は、モデルオブジェクトの接地部に対応する影プリミティブ面の描画処理を行って、接地部の影画像を生成する。これによりモデルオブジェクトの影画像に対して接地部の影画像が合成された画像が生成される。
【００５６】
ここで、接地部は、モデルオブジェクトの例えば足や手などであり、モデルオブジェクトが移動するフィールドに接地することが予定されている部分である。なおモデルオブジェクトがフィールド（地面）に倒れた場合には、倒れた際にモデルオブジェクトがフィールドに接地する部分である背中等を接地部に設定してもよい。本実施形態では、このような接地部のいわゆるオクルージョン領域の影を表現するために、接地部に対応する影プリミティブ面（狭義には足影ポリゴン等の影ポリゴン）の描画処理を行う。
【００５７】
具体的には第２の描画処理部１２２は、接地部に対して設定された影生成用プリミティブ面を、モデルオブジェクトが移動するフィールド（ゲームフィールド、地面）に対して投影することで影プリミティブ面を生成する。そしてこの影プリミティブ面の描画処理を行うことで、接地部の影画像を生成する。
【００５８】
この場合に第２の描画処理部１２２は、第１の描画処理部１２１がモデルオブジェクトの影画像の生成に使用する投影方向とは異なる投影方向に基づいて、接地部の影画像を生成してもよい。例えば第１の描画処理部１２１が、主光源の投影方向を用いてシャドウマップ処理等のシャドウイング処理を行ったとする。そして、この時に点光源が存在する場合には、第２の描画処理部１２２は、点光源の投影方向（投影ベクトル、光源ベクトル）を用いて、接地部の影画像を生成する。具体的には例えば点光源の明るさ（明度）が所定のしきい値以上である場合に、点光源の投影方向に基づいて接地部の影画像を生成する。一方。点光源の明るさが所定のしきい値よりも小さい場合には、主光源の投影方向（投影ベクトル、光源ベクトル）に基づいて接地部の影画像を生成する。
【００５９】
また第２の描画処理部１２２は、影プリミティブ面を、仮想カメラから見て奥側方向にＺシフトする。そして影プリミティブ面の各ピクセルのＺ値の方がＺバッファ１７７のＺ値よりも仮想カメラから見て奥側のＺ値である場合に描画されるという、通常とは異なるＺ比較（Ｚテスト）の設定で、影プリミティブ面の描画処理を行ってもよい。このようにすることで、モデルオブジェクトの接地部が、フィールドの端部付近に位置する場合にも、接地部の適正な影画像を生成できるようになる。
【００６０】
更に具体的には、第１の描画処理部１２１は、モデルオブジェクトの描画処理を行う際に、モデルオブジェクトの描画領域に対応するステンシルバッファ１７８の領域（ピクセル）に対して所定ステンシル値を書き込む。即ちモデルオブジェクトの描画の際にステンシルバッファ１７８への所定ステンシル値の書き込みも行う。
【００６１】
そして第２の描画処理部１２２は、ステンシルバッファ１７８に所定ステンシル値が書き込まれておらずステンシル値が例えばゼロにクリアされている領域（ピクセル）に対して、影プリミティブ面を描画する。このようにすれば、モデルオブジェクトの接地部に対して影画像が生成されてしまう事態を防止できる。
【００６２】
この場合に第２の描画処理部１２２は、影プリミティブ面の各ピクセルのＺ値の方がＺバッファ１７７のＺ値よりも仮想カメラから見て手前側のＺ値である場合に描画されるという、通常のＺ比較の設定で、影プリミティブ面の描画処理を行って、ステンシルバッファ１７８の所定ステンシル値をクリアしてもよい。このようにすれば、モデルオブジェクトの接地部がフィールドにめり込んでいるような状況においても、接地部の適正な影画像の生成が可能になる。
【００６３】
なおステンシルバッファ１７８は、Ｚバッファ１７７の上位ビットの領域に形成できる。例えばＺバッファ１７７の各ピクセルのビット数が２４ビットである場合に、その上位８ビットの領域をステンシルバッファ１７８に設定して、ステンシル値を書き込めるようにしてもよい。
【００６４】
また第２の描画処理部１２２は、接地部の接地面と、モデルオブジェクトが移動するフィールドとのなす角度に応じて、影画像の濃さを制御してもよい。例えば接地面とフィールドとのなす角度が増えるにつれて、影画像の濃さを薄くする。このようにすることで、例えばキャラクタであるモデルオブジェクトが倒れた場合などにおいて、その接地部である足の不自然な影画像が生成されてしまう事態を防止できる。
【００６５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６７】
２．本実施形態の手法
２．１  距離に応じた影の濃さの制御
本実施形態では、キャラクタなどのモデルオブジェクトのよりリアルな影を表現するために、例えば後述するシャドウマップ処理などのシャドウイング処理により影画像を生成している。
【００６８】
しかしながら、シャドウマップ処理等により影画像を生成した場合、影形状についてはリアルに表現できるものの、足などのオクルージョン領域の影については、リアルに表現することが難しい。
【００６９】
そこで本実施形態では、シャドウイング処理によりモデルオブジェクトの影画像（全体の影画像）を生成すると共に、その影画像に対して、モデルオブジェクトの足等の接地部の影画像を合成する手法を採用している。具体的には、足部分（広義には接地部）に対応する足影ポリゴン（広義には影プリミティブ面）の描画処理を行って、モデルオブジェクトの全体の影画像に対して足の影画像（広義には接地部の影画像）が合成された画像を生成する。
【００７０】
例えば図２に本実施形態により生成されたゲーム画像の例を示す。図２は、キャラクタであるモデルオブジェクトＭＯＢ１とＭＯＢ２が対峙して対戦するゲーム画像の例である。
【００７１】
図２においてモデルオブジェクトＭＯＢ１の全体の影画像ＳＤ１は、シャドウマップ処理などのシャドウイング処理により生成されている。この影画像ＳＤ１は、その影形状については、モデルオブジェクトＭＯＢ１の形状を忠実に反映したよりリアルな影になっているが、光源の明るさ等の関係で、全体的に濃さが薄い影画像になっている。モデルオブジェクトＭＯＢ２の影画像ＳＤ２についても同様である。
【００７２】
そして、このようなシャドウイング処理だけでは、モデルオブジェクトの足部分の影画像については、現実世界のようなリアルな影を生成することが難しい。即ち足部分の下のようないわゆるオクルージョン領域は、外部からの光が届かない領域であるため、現実世界においては非常に暗い影が生成される。しかしながら、シャドウイング処理で使用される主光源の光は淡い光になる場合が多いため、これにより生成された影画像も淡い影になる場合が増えてくる。従って、シャドウイング処理により足部分の下の暗い影を表現することは難しい。そして、このような足部分の影のリアルな表現を実現できないと、キャラクタであるモデルオブジェクトが地面から浮いて見えるようになってしまい、いわゆるキャラクタの接地感の表現が不十分になる。
【００７３】
この場合、例えば厳密な物理計算を行うことで、このようなオクルージョン領域の影を表現する手法も考えられるが、この手法では処理負荷が非常に重くなってしまうという問題がある。
【００７４】
この点、図２に示すように本実施形態では、足部分ＬＯＢ１の影である足影画像ＬＳＤ１については、足影ポリゴンの描画処理により生成しており、いわゆる丸影により実現している。そして、シャドウマップ処理等のシャドウイング処理により生成された影画像ＳＤ１と、足影ポリゴンの描画により得られた足影画像ＬＳＤ１を合成することで、モデルオブジェクトＭＯＢ１の影が表現される。同様に、モデルオブジェクトＭＯＢ２の影画像ＳＤ２と足影画像ＬＳＤ２を合成することで、モデルオブジェクトＭＯＢ２の影が表現される。
【００７５】
このようにすれば、モデルオブジェクトＭＯＢ１の全体的な影については、シャドウイング処理による影画像ＳＤ１により、その影形状等をリアルに表現できる。
【００７６】
一方、足部分ＬＯＢ１のオクルージョン領域の部分的な影については、足影ポリゴンの描画による足影画像ＬＳＤ１により、その影の暗さ等をリアルに表現できる。これにより、モデルオブジェクトＭＯＢ１が地面から浮いて見える事態を防止でき、接地感を好適に表現できる。
【００７７】
このように本実施形態では、影画像ＳＤ１と足影画像ＬＳＤ１を異なる手法で互いに独立に生成し、全体的な影画像ＳＤ１と部分的な足影画像ＬＳＤ１を合成することで、少ない処理負荷でよりリアルな影を生成することに成功している。
【００７８】
２．２  シャドウマップ処理
さて、キャラクタ等のモデルオブジェクトの影画像は、例えばシャドウマップ処理により生成できる。次に、このシャドウマップ処理の詳細について図３を用いて説明する。
【００７９】
シャドウマップ処理では、まず、影生成用の光源ＬＳから見た、モデルオブジェクトＭＯＢや背景オブジェクトＢＯＢなどのオブジェクトのＺ値（深度値、奥行き値）をレンダリングすることで、シャドウマップテクスチャＳＤＴＥＸを生成する。即ち光源ＬＳの位置に仮想カメラＶＣを設定してオブジェクトのＺ値のレンダリングを行う。例えば図３では、モデルオブジェクトＭＯＢの点Ｐ１’のＺ値Ｚ１や、背景オブジェクトＢＯＢの点Ｐ２のＺ値Ｚ２等がレンダリングされて、シャドウマップテクスチャＳＤＴＥＸが生成されている。
【００８０】
例えば図４にシャドウマップテクスチャＳＤＴＥＸの例を示す。このシャドウマップテクスチャＳＤＴＥＸは、図２のゲーム画像に対応するものであり、影生成用の光源を図２の右上に設定した場合に生成されるテクスチャの例である。図４では、仮想カメラに近い側のＺ値は黒で描かれ、仮想カメラから遠い側のＺ値は白で描かれている。
【００８１】
次に、スクリーンＳＣに映る視界画像生成用の視点位置に、仮想カメラＶＣを設定して、モデルオブジェクトＭＯＢや背景オブジェクトＢＯＢなどのオブジェクトのレンダリングを行う。この際に、オブジェクトの各ピクセルのＺ値と、シャドウマップテクスチャＳＤＴＥＸの対応する各テクセルのＺ値とを比較しながら、オブジェクトのレンダリングを行う。
【００８２】
例えば図３において、仮想カメラＶＣから見た点Ｐ１のＺ値（距離）は、シャドウマップテクスチャＳＤＴＥＸの対応する点Ｐ１’のＺ値よりも大きい。従って、点Ｐ１は点Ｐ１’に隠れて影になる部分であると判定され、点Ｐ１に対応するピクセルには影の色（例えば黒）が描かれる。
【００８３】
一方、点Ｐ２については、仮想カメラＶＣから見たＺ値と、シャドウマップテクスチャＳＤＴＥＸにおけるＺ値が例えば等しくなる。従って、点Ｐ２は影の部分ではないと判断されて、影の色は描画されない。
【００８４】
このようにすることで、背景に対して落ちるモデルオブジェクトＭＯＢの影やモデルオブジェクトＭＯＢの自己影等を生成できる。
【００８５】
さて、コンベンショナルなシャドウマップ処理では、影部分か否かの判定処理を０か１かの２値判定により行っている。このため、影の輪郭（影部分と影以外の部分との境界）等においてジャギー等が目立ってしまい、生成される影画像の品質を今ひとつ高めることができないという課題がある。
【００８６】
このような課題を解決するためには、分散シャドウマップ（Variance Shadow Map）と呼ばれる手法を採用することが望ましい。この分散シャドウマップでは、確率論であるチェビシェフの不等式の考えを利用して、光が当たっている確率（最大確率）を算出する。即ち、分散シャドウマップ処理では、影か否かの判定の結果が、０〜１の範囲の実数である確率（最大確率）で表されるため、この確率の値をそのまま影の濃さ（影の色）として設定できる。従って、影の判定処理を０（影部分）か１（光が当たっている部分）かの２値で行っているコンベンショナルなシャドウマップ処理に比べて、影画像のジャギー等を目立たなくすることができ、滑らかな影の輪郭を表現できる。
【００８７】
例えば、確率論の基本的な定理であるチェビシェフの不等式は下式（１）のように表される。
【００８８】
【数１】
2010055131.tif 000003
ここでｘは確率分布における確率変数であり、μは平均であり、σは分散であり、ｔはｔ＞０となる任意の実数である。例えばｔ＝２とすると、確率分布において平均μから２σ以上離れた値は全体の１／４を超えることはないということが導き出される。即ちｘ＞μ＋２σ、ｘ＜μ−２σとなる確率は１／４を超えることはないことが導き出される。
【００８９】
分散シャドウマップ処理は、このチェビシェフの不等式の考えを利用するものであり、下式（２）（３）のモーメントＭ１、Ｍ２が求められる。
【００９０】
【数２】
2010055131.tif 000004
これらの式（２）（３）より、下式（４）（５）のように表される平均μ、分散（variance)σ２が求められる。
【００９１】
【数３】
2010055131.tif 000005
そしてチェビシェフの不等式の考えにより、ｔ＞μの条件の下で、下式（６）が成立する。
【００９２】
【数４】
2010055131.tif 000006
ここで、ｔはピクセルのＺ値に相当し、ｘは、ぼかし処理が施されたシャドウマップテクスチャのＺ値に相当する。この確率ｐｍａｘ（ｘ）から影の濃さ（色）を決めることになる。
【００９３】
そして本実施形態では上式（６）を変形した下式（７）を使用する。
【００９４】
【数５】
2010055131.tif 000007
ここで、Σは、σ２＋εを０〜１．０の範囲にクランプした値であり、調整された分散値である。
【００９５】
またεは分散調整パラメータであり、分散σ２に対してバイアス値を加算するためのパラメータである。この分散調整パラメータεの値を大きくすることで、分散シャドウマップにおける分散の度合いを強制的に大きくすることが可能になる。なお分散調整パラメータをε＝０に設定すると、本来は影とならない領域にノイズピクセルが発生してしまうが、ε＞０に設定することで、このノイズピクセルを低減できる。
【００９６】
例えばコンベンショナルなシャドウマップ処理ではＺ値だけをレンダリングするが、分散シャドウマップ処理では、Ｚ値をレンダリングすると共に、Ｚ値の二乗をレンダリングして、２チャネルのバッファにシャドウマップテクスチャを生成する。そして、このシャドウマップテクスチャに対して、ブラーなどのフィルタ処理（ガウシアン・フィルタ等）を施す。
【００９７】
次に、シャドウマップテクスチャにより上式（２）（３）のモーメントＭ１、Ｍ２を求め、上式（４）（５）の平均（期待値）μ、分散σ２を求める。また分散σ２と分散調整パラメータεに基づいて、調整された分散値であるΣを求める。
【００９８】
そして、ピクセル（フラグメント）のＺ値（デプス）であるｔが、ｔ＜μである場合には、影以外の部分であると判断する。一方、ｔ≧μである場合には、上式（７）の確率ｐｍａｘ（ｔ）により、光の減衰率を求めて、影の濃さ（色）を決定する。なお確率ｐｍａｘ（ｔ）そのものではなく、ｐｍａｘ（ｔ）のべき乗（例えば４乗）を用いてもよい。
【００９９】
以上のようなシャドウマップ処理を、モデルオブジェクトや背景オブジェクトの描画処理の際に行うことで、図２に示すモデルオブジェクトＭＯＢ１、ＭＯＢ２の影画像ＳＤ１、ＳＤ２を生成できるようになる。
【０１００】
２．３  足影画像の生成手法
次に、図２の足影画像ＬＳＤ１、ＬＳＤ２の具体的な生成手法について説明する。
【０１０１】
まず、図５（Ａ）に示すように、モデルオブジェクトの足部分ＬＯＢ（広義には接地部）に対応する足影生成用ポリゴンＧＰＬ（広義には影生成用プリミティブ面）を生成する。具体的には、足首のボーンＢＮ１の位置ＢＰ１（ＢＮ１の座標変換マトリクス）と、つま先のボーンＢＮ２の位置ＢＰ２（ＢＮ２の座標変換マトリクス）に基づいて、足影生成用ポリゴンＧＰＬを構成する頂点Ｖ１〜Ｖ６を生成する。
【０１０２】
更に具体的には図５（Ｂ）に示すようなサイズテーブルと図５（Ｃ）に示すような頂点データテーブルを用意する。
【０１０３】
ここで、図５（Ｂ）のサイズテーブルには、モデルオブジェクトの種別である男、女、怪物に対応して、標準的な足影サイズが格納されている。例えば小さい男用、大きい男用、小さい女用、大きい女用、小さい怪物用、大きい怪物用の足影サイズＳＺＡ、ＳＺＢ、ＳＺＣ、ＳＺＤ、ＳＺＥ、ＳＺＦが格納されている。また図５（Ｃ）の頂点データテーブルには各種別に対応する頂点データ（頂点座標）が格納されている。
【０１０４】
そして図５（Ａ）のボーンＢＮ１の位置（関節）ＢＰ１とボーンＢＮ２の位置（関節）ＢＰ２との距離ＬＢを求める。次に、モデルオブジェクトの種別が例えば男であった場合には、小さい男に対応する最小距離ＬＢＡと大きい男に対応する最大距離ＬＢＢを、図５（Ｂ）のサイズテーブルから読み出して、距離ＬＢと距離ＬＢＡ、ＬＢＢとに基づいて補間率を求める。そして、求められた補間率を用いて、小さい男用の足影サイズＳＺＡと大きい男用の足影サイズＳＺＢの補間処理を行うことで、モデルオブジェクトの足影サイズを求める。そして、求められた足影サイズ（補間率）に基づいて、図５（Ｂ）の頂点データテーブルの対応する種別の頂点データの補間処理を行うことで、図５（Ａ）の足影生成用ポリゴンＧＰＬの頂点Ｖ１〜Ｖ６の頂点データ（頂点座標）を求める。
【０１０５】
次に、図６に示すように、影生成用の光源ＬＳ（主光源、点光源）の投影方向ＰＤで、足影生成用ポリゴンＧＰＬの頂点Ｖ１〜Ｖ６をゲームフィールドＦＬＤ（広義にはフィールド）に投影することで、投影された頂点ＶＰ１〜ＶＰ６により構成される足影ポリゴンＳＰＬを生成する。
【０１０６】
また足影生成用ポリゴンＧＰＬの頂点Ｖ１〜Ｖ６のゲームフィールドＦＬＤ（地面）からの高さ距離ＬＨ１〜ＬＨ６を求める。そして光源ＬＳの明るさから求められた足影の最大濃さを、この高さ距離ＬＨ１〜ＬＨ６に応じて距離減衰させることで、足影ポリゴンＳＰＬの頂点ＶＰ１〜ＶＰ６に設定される影の濃さを求める。具体的には、所定距離で影が透明になると共に高さ距離ＬＨ１〜ＬＨ６が遠いほど減衰量が大きくなるように設定された演算式を用いて、足影ポリゴンＳＰＬの頂点ＶＰ１〜ＶＰ６の影の濃さを求める。そして、この影の濃さで足影ポリゴンＳＰＬを描画することで、図２に示すような足影画像ＬＳＤ１、ＬＳＤ２を生成する。このようにして、モデルオブジェクトＭＯＢ１、ＭＯＢ２の全体的な影画像ＳＤ１、ＳＤ２と、足影画像ＬＳＤ１、ＬＳＤ２とが合成された画像が生成される。
【０１０７】
なお本実施形態では、モデルオブジェクトＭＯＢ１、ＭＯＢ２の全体的な影画像ＳＤ１、ＳＤ２の生成に使用する投影ベクトルとは異なる投影ベクトルを用いて、足影画像ＬＳＤ１、ＬＳＤを生成できるようにしている。
【０１０８】
例えば図７では、モデルオブジェクトＭＯＢ１の剣とモデルオブジェクトＭＯＢ２の剣とがヒットするイベントにより、点光源が発生している。このような点光源が発生した場合には、この点光源の投影方向（投影ベクトル、光源ベクトル）を用いて、例えばモデルオブジェクトＭＯＢ１、ＭＯＢ２の足影画像ＬＳＤ１、ＬＳＤ２を生成する。この場合に足影画像ＬＳＤ１、ＬＳＤ２は、モデルオブジェクトＭＯＢ１、ＭＯＯＢ２の影画像ＳＤ１、ＳＤ２の光源（例えば主光源）とは異なる点光源の投影方向ＰＤを用いて生成される。従って、全体的な影画像ＳＤ１、ＳＤ２が落ちる方向とは異なる方向に足影画像ＬＳＤ１、ＬＳＤ２が落ちるようになる。この結果、図７に示すような点光源の発生をユーザに視覚的に訴えることが可能になり、ユーザの仮想現実感を向上できる。
【０１０９】
なお足影画像を生成する光源の切り替えは、光源の明るさに基づいて行うようにしてもよい。例えば、ゲームフィールド上に松明等を表す点光源が予め設定されている場合は、モデルオブジェクトと点光源との距離に応じて、モデルオブジェクトの位置での点光源の明るさを求める。そして、その明るさが所定のしきい値より小さい場合には、主光源の投影方向を用いて、足影画像を生成する。一方、点光源の明るさが所定のしきい値以上である場合には、主光源から点光源に切り替えて、点光源の投影方向で足影画像を生成する。このようにすれば、松明等の点光源の存在をプレーヤに対して視覚的に訴えることができ、プレーヤの仮想現実感を更に向上できる。
【０１１０】
図８〜図１１に本実施形態により生成されたゲーム画像の例を示す。
【０１１１】
例えば図８では、画面の左手前側に主光源が配置されているため、モデルオブジェクトＭＯＢ１の全体的な影画像ＳＤ１は、画面の左手前側から右奥側へと向かう方向に沿ってゲームフィールドＦＬＤに落ちる。一方、図８では、非常に明るい点光源が画面の右奥側に配置されているため、モデルオブジェクトＭＯＢ１の足影画像ＬＳＤ１については、全体的な影画像ＳＤ１とは反対に、画面の右奥側から左手前側へと向かう方向に沿ってゲームフィールドＦＬＤに落ちる。
【０１１２】
図９ではモデルオブジェクトＭＯＢ２の武器がモデルオブジェクトＭＯＢ１にヒットすることで、モデルオブジェクトＭＯＢ１の胸の付近に仮想的なエフェクト用の点光源が発生している。これにより、モデルオブジェクトＭＯＢ１の足影画像ＬＳＤ１は、この点光源の投影方向に沿ってゲームフィールドＦＬＤに落ちるようになる。
【０１１３】
図１０ではモデルオブジェクトＭＯＢ１の足部分が上方向に浮いている。そして、このように足部分が浮くにしたがって、足影画像ＬＳＤ１の濃さが薄くなって行く。そして図１１では、足部分の高さ距離が所定値を超えたため、足影画像ＬＳＤ１の濃さがほぼ透明になり、表示されないようになる。このようにすることで、モデルオブジェクトＭＯＢ１の足が徐々に上がって行く様子が、足影画像ＬＳＤ１によって表現されるようになり、生成される画像のリアル感や仮想現実感を向上できる。
【０１１４】
２．４  ゲームフィールドの端部付近での足影画像の生成
さて、図５（Ａ）〜図７等で説明した手法により足影画像を生成した場合に、例えばモデルオブジェクトの足部分がゲームフィールドの端部付近に置かれると、生成される画像に不具合が生じることが判明した。このよう不具合を解消するために本実施形態では以下に説明する手法を採用している。
【０１１５】
まず図１２（Ａ）に示すように、図５（Ａ）、図６の手法により生成された足影ポリゴンＳＰＬ（影プリミティブ面）のＺシフトを行う。具体的には足影ポリゴンＳＰＬを、仮想カメラから見て奥側方向にＺシフトして、ゲームフィールドＦＬＤの面よりも仮想カメラから見て奥側になるようにする。例えば仮想カメラから遠ざかるにつれてＺ値が大きくなる座標系では、足影ポリゴンＳＰＬのＺ値に対してＺシフト値を加算し、仮想カメラから遠ざかるにつれてＺ値が小さくなる座標系では、Ｚシフト値を減算すればよい。
【０１１６】
そして、影ポリゴンＳＬＰの各ピクセルのＺ値の方がＺバッファ１７７の対応するピクセルのＺ値よりも仮想カメラから見て奥側のＺ値である場合に描画されるというＺ比較の設定にして、影ポリゴンＳＰＬを描画する。即ち、通常のＺ比較では手前側のポリゴンが描画されるように設定されるが、これとは逆に奥側のポリゴンが描画されるように設定して、影ポリゴンＳＰＬを描画する。
【０１１７】
このようにすれば図１２（Ａ）のＡ１に示す部分では、ゲームフィールドＦＬＤに対して影ポリゴンＳＰＬの方が奥側にあるためＳＰＬが描画され、Ａ２に示す部分では、ＳＰＬは描画されないようになる。従って、足部分ＬＯＢの下側に適正に足影画像が生成されるようになる。
【０１１８】
即ち、上記のようなＺシフトとＺ比較の設定を行わずに影ポリゴンＳＰＬを描画すると、足部分ＬＯＢがゲームフィールドＦＬＤの端部付近にある場合に、Ａ１に示す部分のみならずＡ２に示す部分においても影ポリゴンＳＰＬが描画されてしまい、空間に影が浮いて見えるような不自然な画像が生成されてしまうおそれがある。
【０１１９】
この点、図１２（Ａ）の手法によれば、上記のようなＺシフトとＺ比較の設定を行うことで、Ａ１に示す部分においてのみ影ポリゴンＳＰＬが描画され、Ａ２に示す部分では影ポリゴンＳＰＬが描画されないようになるため、適正な足影画像の生成が可能になる。
【０１２０】
また図１２（Ａ）の手法では、ゲームフィールドＦＬＤのみならず足部分ＬＯＢに対しても影ポリゴンＳＰＬが描画されるＺ比較の設定になるため、足部分ＬＯＢに対して影が落ちたような画像が生成されてしまうおそれがある。
【０１２１】
即ち、ゲームフィールドＦＬＤや影ポリゴンＳＰＬを描画した後に、モデルオブジェクトを描画するという順序で描画すれば、このような事態は防止できる。しかしながら本実施形態では、描画処理の負荷を軽減するために、まずモデルオブジェクトを描画し、その後にゲームフィールドＦＬＤ等の背景オブジェクトを描画する手法を採用している。このようにすれば、モデルオブジェクトが既に描画された領域に対しては、背景オブジェクトを描画しなくても済むようになる。従って、ゲーム画面においてモデルオブジェクトが占める領域が大きい場合には、無駄な描画処理を省くことができ、描画処理の負荷を格段に軽減できる。
【０１２２】
しかしながら、このような順序で描画処理を行うと、図１２（Ａ）では、Ｚ比較において、足部分ＬＯＢが影ポリゴンＳＰＬにより隠面消去される設定になっているため、足部分ＬＯＢ上に足影が落ちる画像が生成されてしまう。
【０１２３】
そこで図１２（Ｂ）では、モデルオブジェクトの描画処理を行う際に、モデルオブジェクトの描画領域に対応するステンシルバッファ１７８の領域に対して所定ステンシル値を書き込む。そしてステンシルバッファ１７８に、上記の所定ステンシル値が書き込まれておらずステンシル値がクリアされている領域に対して、影ポリゴンＳＰＬを描画するようにする。
【０１２４】
このようにすれば、図１２（Ｂ）のＡ３に示す足部分ＬＯＢの領域には、影ポリゴンＳＰＬが描画されないようになるため、足部分ＬＯＢに対して足の影が落ちたような不自然な画像が生成されてしまう事態を防止できる。
【０１２５】
また、例えばモーションデータに基づいてモデルオブジェクトのモーションを再生した場合に、図１２（Ｃ）に示すようにモデルオブジェクトの足部分ＬＯＢがゲームフィールドＦＬＤに対してめり込んでしまう場合がある。即ちモーションデータに基づきモーション再生を行う場合に、モーション補正等を行うことで、このような足のめり込みを、ある程度は解消できるが、それには限界がある。例えばキャラクタの足の踏み込みが激しい場合等には、足部分ＬＯＢがゲームフィールドＦＬＤの下にめり込んでしまう。
【０１２６】
このようなめり込みが生じた場合には、図１２（Ｃ）のＡ４に示す領域にも、図１２（Ｂ）の処理により所定ステンシル値が書き込まれてしまう。従って、Ａ４の領域には影ポリゴンＳＰＬが描画されないようになり、Ａ４の領域だけ影が抜けたような不自然な画像が生成されてしまう。
【０１２７】
そこで図１２（Ｃ）では、Ａ４に対応する領域については、ステンシルバッファ１７８において所定ステンシル値をクリアする処理を行う。具体的には、影ポリゴンＳＰＬの各ピクセルのＺ値の方がＺバッファ１７７のＺ値よりも仮想カメラから見て手前側のＺ値である場合に描画されるという、通常のＺ比較の設定にする。そして、このような通常のＺ比較の設定で影ポリゴンＳＰＬに対応するポリゴン（プリミティブ面）をステンシルバッファ１７８に描画することで、図１２（Ｃ）のＡ４に対応する領域については、ステンシルバッファ１７８の所定ステンシル値をクリアしてゼロに設定する。
【０１２８】
このようにすればＡ４の領域にも影ポリゴンＳＰＬが描画されるようになるため、Ａ４の領域だけ影が抜けたような不自然な画像が生成されてしまう事態を防止できる。
【０１２９】
次に図１３〜図１８の画像を用いて本実施形態の具体的な描画処理について説明する。
【０１３０】
図１３では、まずモデルオブジェクトＭＯＢ１、ＭＯＢ２が描画されている。そして、このようにモデルオブジェクトＭＯＢ１、ＭＯＢ２を描画する際に、図１４に示すように、ＭＯＢ１、ＭＯＢ２の描画領域に対応するステンシルバッファ１７８の領域に対して、図１２（Ｂ）で説明したように所定ステンシル値（０以外のステンシル値）を書き込む。例えば図１４において白い領域には所定ステンシル値が書き込まれており、黒い領域ではステンシル値がゼロにクリアされている。
【０１３１】
次に図１５に示すように背景オブジェクトを描画する。このようにモデルオブジェクトＭＯＢ１、ＭＯＢ２を描画した後に背景オブジェクトを描画することで、無駄な領域に背景を描画しなくても済むようになり、描画処理の負荷を大幅に低減できる。そして、このような背景オブジェクトの描画処理の際に図３、図４で説明したシャドウマップ処理が行われることで、モデルオブジェクトＭＯＢ１の全体の影画像ＳＤ１が生成されるようになる。
【０１３２】
このように背景オブジェクトを描画した後に、図５（Ａ）〜図６、図１２（Ａ）〜図１２（Ｃ）で説明した足影ポリゴンＳＰＬの描画処理を行う。例えば図１６では、モデルオブジェクトＭＯＢ１の足部分ＬＯＢ１に対応する足影生成用ポリゴンＧＰＬが生成されている。そしてこの足影生成用ポリゴンＧＰＬを、影の投影方向でゲームフィールドに投影することで、影ポリゴンＳＰＬが生成され、この影ポリゴンＳＰＬを描画することで足影画像が生成される。
【０１３３】
具体的には、図１２（Ｃ）で説明したように、通常のＺ比較の設定で、影ポリゴンＳＰＬに対応するポリゴンをステンシルバッファ１７８に書き込むことで、図１２（Ｃ）のＡ４に示す領域の所定ステンシル値をゼロにクリアする。
【０１３４】
図１７にはこのような描画処理が行われた後のステンシルバッファ１７８の状態が示されている。図１４と図１７を比較すれば明らかなように、図１７ではＣ１に示す領域のステンシル値がゼロにクリアされている。従って、このＣ１に示す領域にも足影画像が生成されるようになる。
【０１３５】
即ち図１５ではモデルオブジェクトＭＯＢ１の足部分ＬＯＢ１のつま先がゲームフィールドにめり込んでいる。この場合に図１７のＣ１に示す領域に足影画像が生成されないと、Ｃ１に示す領域だけ影が抜けたような不自然な画像が生成されてしまう
この点、図１７に示すように、Ｃ１に示す領域でのステンシル値をゼロにクリアすれば、この領域にも影画像が生成されるようになり、この領域だけ影が抜けたような不自然な画像が生成されてしまう事態を防止できる。
【０１３６】
例えば図１８に、モデルオブジェクトＭＯＢ１の足部分ＬＯＢ１がゲームフィールドＦＬＤの端部付近にある場合に生成される画像の例を示す。図１８の上側の画像は実際に表示される画像である。一方、図１８の下側の画像では、説明を容易化するために、足影生成用ポリゴンＧＰＬや足影ポリゴンＳＰＬについても示している。
【０１３７】
図１８の上側の画像に示すように、本実施形態の手法を採用することで、モデルオブジェクトＭＯＢ１の全体の影画像ＳＤ１のみならず、ＭＯＢ１の足部分ＬＯＢ１の足影画像ＬＳＤ１についても適正に生成されている。即ち足部分ＬＯＢ１がゲームフィールドＦＬＤの端部付近に置かれている場合にも適正な足影画像ＬＳＤ１を生成することに成功している。
【０１３８】
例えば図１８では、足影用の点光源が、ゲームフィールドＦＬＤの高さと同じぐらいの低い位置に配置されている。従って、図１８の下側の画像のＤ１に示すように、足影ポリゴンＳＰＬがゲームフィールドＦＬＤの外側に向かって長く延びている。このような場合に、図１２（Ａ）で説明した手法を採用しないと、Ｄ１に示す部分にも足影が表示されてしまい、不自然な画像が生成されてしまう事態が生じるが、本実施形態の手法を採用することで、このような事態を防止できる。また図１２（Ｂ）、図１２（Ｃ）に示す手法を採用することで、足部分ＬＯＢ上に影が落ちたり、足部分ＬＯＢがゲームフィールドＦＬＤにめり込んだ場合に不自然な画像が生成されてしまう事態も防止できるようになる。
【０１３９】
２．５  詳細な処理例
次に本実施形態の詳細な処理例を図１９〜図２１のフローチャートを用いて説明する。図１９は全体的な描画処理の流れについて説明するためのフローチャートである。
【０１４０】
まず、図３で説明したように、影の投影方向（影生成用の光源の照明方向）での各オブジェクトのＺ値をレンダリングすることで、図４に示すようなシャドウマップテクスチャを生成する（ステップＳ１）。なお、分散シャドウマップ処理の場合には、Ｚ値についてのレンダリングとＺ値の二乗についてのレンダリングを行って、シャドウマップテクスチャを生成すればよい。
【０１４１】
次に、描画バッファ、Ｚバッファ、ステンシルバッファ等をクリアする（ステップＳ２）。そしてモデルオブジェクトのテクスチャ（元絵テクスチャ）と、ステップＳ１で生成されたシャドウマップテクスチャを用いて、例えばピクセルシェーダによりモデルオブジェクトの描画処理を行う（ステップＳ３）。この際に、図１２（Ｂ）や図１４で説明したように、モデルオブジェクトの描画領域に対応するステンシルバッファ１７８の領域に対して、所定ステンシル値を書き込む。
【０１４２】
次に、背景オブジェクトのテクスチャ（元絵テクスチャ）と、シャドウマップテクスチャを用いて、例えばピクセルシェーダにより背景オブジェクトの描画処理を行う（ステップＳ４）。このように、先にモデルオブジェクトの描画処理（ステップＳ３）を行った後に、背景オブジェクトの描画処理（ステップＳ４）を行うようにすれば、モデルオブジェクトの描画領域については、背景オブジェクトを描画しなくても済むようになる。従って、無駄な描画処理が行われるのを防止できるため、１フレーム内での描画処理が間に合わなくなってしまう事態を防止できる。特に画面全体においてモデルオブジェクトの占める面積が大きい場合には、ステップＳ３、Ｓ４に示すような順序で描画処理を行うことは効果的である。
【０１４３】
次に、図５（Ａ）〜図６や図１２（Ａ）〜図１２（Ｃ）等で説明した手法により、足影ポリゴンの描画処理を行い、モデルオブジェクトの影画像に足影画像が合成された画像を生成する（ステップＳ５）。
【０１４４】
図２０、図２１は、足影ポリゴンの描画処理の詳細を説明するためのフローチャートである。
【０１４５】
まず、ゲームフィールド（地面）よりも低い位置から見上げている仮想カメラの視点設定になっているか否かを判断し（ステップＳ１１）、このような視点設定の場合には、足影ポリゴンＳＰＬの描画は行わずに処理を終了する。このような視点設定で足影ポリゴンＳＰＬを描画すると、不自然な足影画像が生成されるおそれがあるからである。
【０１４６】
次に、図７で説明した点光源の明るさが所定のしきい値以上か否かを判断する（ステップＳ１２）。そして所定のしきい値以上である場合には、点光源の照明方向を足影の投影方向に設定する（ステップＳ１３）。このようにすることで、モデルオブジェクトの影画像の生成に使用する投影方向とは異なる投影方向を用いて、足影画像を生成できるようになる。なお、このような照明方向の設定の際に、必要であれば、投影方向を若干調整する処理を行う。即ち、図７のような位置に点光源を発生させた場合に、この点光源の位置では、足影が足の真下に表示されてしまう場合が多いため、点光源の発生をプレーヤに強調して伝えるために、投影方向を、例えば少しだけ水平方向側に向かうように調整する。
【０１４７】
一方、点光源の明るさが所定のしきい値よりも小さい場合には、シャドウマップ処理に使用する主光源（図３のＬＳ）の照明方向を足影の投影方向に設定する（ステップＳ１４）。この場合には、モデルオブジェクトの影画像の生成に使用する投影方向と、足影画像生成用の投影方向は同じになる。
【０１４８】
次に図５（Ａ）〜図５（Ｃ）で説明したように、モデルオブジェクト（キャラクタ）の種別に応じたサイズテーブルと頂点データテーブルを選択する（ステップＳ１５）。そして、足首のボーンＢＮ１の位置ＢＰ１とつま先のボーンＢＮ２の位置ＢＰ２の位置との距離ＬＢを求め、サイズテーブルに設定されている距離に基づき補間処理を行い、足影のサイズを求める（ステップＳ１６）。
【０１４９】
次に、ステップＳ１３又はＳ１４で採用された光源の明るさに基づいて、足影の最大濃さを求める（ステップＳ１７）。具体的には光源が明るいほど足影の最大濃さを濃くする。例えばステップＳ１３のように点光源が選択された場合には、点光源との距離が近づいて明るくなると、足影の最大濃さは濃くなる。これにより、プレーヤの仮想現実感を向上できる。
【０１５０】
次に、足首のボーンＢＮ１のＹ軸成分（絶対座標系での高さ方向の軸の成分）が小さくなるほど薄くなるように、ステップＳ１７で求められた足影の最大濃さを調整する（ステップＳ１８）。このようにすれば、足部分（接地部）の接地面と、モデルオブジェクトが移動するゲームフィールドとのなす角度に応じて、足影画像の濃さを制御することが可能になる。これにより、例えばモデルオブジェクトがダウンして倒れた場合等に、不自然な足影画像が生成されてしまう事態を防止できる。
【０１５１】
次に、ステップＳ１６で求められた足影のサイズと、図１５（Ｃ）で説明した頂点データテーブルに基づいて、足影生成用ポリゴンＧＰＬを生成する（ステップＳ１９）。そして、図６で説明したように、足影生成用ポリゴンＧＰＬの各頂点を、ステップＳ１３又はＳ１４で設定された足影の投影方向に投影することで、足影ポリゴンＳＰＬを生成する（ステップＳ２０）。この際に足影生成用ポリゴンＧＰＬの各頂点のゲームフィールドに対する高さ距離に基づいて、足影の最大濃さを減衰させて、足影ポリゴンＳＰＬの各頂点の影の濃さを設定する。
【０１５２】
次に足影ポリゴンＳＰＬの全頂点の影の濃さの和が、所定のしきい値以下か否かを判断し（ステップＳ２１）、所定のしきい値以下である場合には、足影ポリゴンＳＰＬの描画は行わずに処理を終了する。このようにすることで、図１０に示すように、足が上がるにつれて足影が消えて行く画像表現を実現できる。
【０１５３】
次に、足影ポリゴンＳＰＬの全頂点を画面座標系に変換し、これらの全頂点が画面外にあるか否かを判断する（ステップＳ２２）。そして画面外である場合には、足影ポリゴンＳＰＬの描画は行わずに処理を終了する。
【０１５４】
次に、足影ポリゴンＳＰＬを、仮想カメラから見て手前側にＺシフトする（ステップＳ２３）。そして、図１２（Ｃ）で説明したように、足影ポリゴンＳＰＬのＺ値の方がＺバッファ１７７のＺ値よりも手前側のＺ値である場合に描画するという通常のＺ比較の設定で、描画処理を行い、ステンシルバッファ１７８の対応する領域の所定ステンシル値をゼロにクリアする（ステップＳ２４）。即ち図１２（Ｃ）のＡ４に示す領域のステンシル値をクリアする。
【０１５５】
次に、図１２（Ａ）で説明したように、足影ポリゴンＳＰＬを、仮想カメラから見て奥側にＺシフトする（ステップＳ２５）。そして、足影ポリゴンＳＰＬのＺ値の方がＺバッファ１７７のＺ値よりも奥側のＺ値である場合に描画するという、通常とは異なるＺ比較の設定で、ステンシルバッファ１７８に所定ステンシル値が書き込まれておらずゼロにクリアされている領域（ピクセル）に対して、足影ポリゴンＳＰＬの描画処理を行う（ステップＳ２６）。これにより、図１８に示すように、足影ポリゴンＳＰＬに対応した適正な足影画像ＬＳＤ１が生成されるようになる。そして、Ｚ比較の設定を元の通常設定に戻すと共に、ステンシル機能をディスエーブルにする（ステップＳ２７）。
【０１５６】
３．ハードウェア構成
図２２（Ａ）に本実施形態を実現できるハードウェアの構成例を示す。
【０１５７】
ＣＰＵ９００（メインプロセッサ）は、複数のＣＰＵコア１、ＣＰＵコア２、ＣＰＵコア３を含むマルチコアプロセッサである。またＣＰＵ９００は図示しないキャッシュメモリを含む。ＣＰＵコア１、２、３の各々にはベクタ演算器等が設けられている。そしてＣＰＵコア１、２、３の各々は、例えば２つのＨ／Ｗスレッド処理をコンテクストスイッチをすることなしに並列実行でき、マルチスレッド機能がハードウェアでサポートされている。そして３つのＣＰＵコア１、２、３の合計で、６つのＨ／Ｗスレッド処理を並列実行できる。
【０１５８】
ＧＰＵ９１０（描画プロセッサ）は、頂点処理やピクセル処理を行って、描画（レンダリング）処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル（フラグメント）の描画色の決定を行う。１フレーム分の画像がＶＲＡＭ９２０（フレームバッファ）に書き込まれると、その画像はビデオ出力を介してＴＶなどのディスプレイに表示される。なおメインメモリ９３０はＣＰＵ９００やＧＰＵ９１０のワークメモリとして機能する。またＧＰＵ９１０では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またＧＰＵ９１０にはハードウェアのテッセレータも備えられている。またＧＰＵ９１０は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【０１５９】
ブリッジ回路９４０（サウスブリッジ）は、システム内部の情報流通を制御する回路であり、ＵＳＢコントローラ（シリアルインターフェース）、ネットワークの通信コントローラ、ＩＤＥコントローラ、或いはＤＭＡコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路９４０により、ゲームコントローラ９４２、メモリーカード９４４、ＨＤＤ９４６、ＤＶＤドライブ９４８との間のインターフェース機能が実現される。
【０１６０】
なお本実施形態を実現できるハードウェア構成は図２２（Ａ）に限定されず、例えば図２２（Ｂ）のような構成であってもよい。
【０１６１】
図２２（Ｂ）ではＣＰＵ９０２が、プロセッサエレメントＰＰと８つのプロセッサエレメントＰＥ１〜ＰＥ８を含む。プロセッサエレメントＰＰは汎用的なプロセッサコアであり、プロセッサエレメントＰＥ１〜ＰＥ８は比較的シンプルな構成のプロセッサコアである。そしてプロセッサエレメントＰＰとプロセッサエレメントＰＥ１〜ＰＥ８のアーキテクチャは異なっており、プロセッサエレメントＰＥ１〜ＰＥ８は、複数のデータに対して１命令で同じ処理を同時にできるＳＩＭＤ型のプロセッサコアとなっている。これによりストリーミング処理などのマルチメディア処理を効率的に実行できる。プロセッサエレメントＰＰは、２つのＨ／Ｗスレッド処理を並列実行でき、プロセッサエレメントＰＥ１〜ＰＥ８の各々は、１つのＨ／Ｗスレッド処理を実行できる。従って、ＣＰＵ９０２では、合計で１０個のＨ／Ｗスレッド処理の並列実行が可能になる。
【０１６２】
図２２（Ｂ）では、ＧＰＵ９１２とＣＰＵ９０２の連携が密になっており、ＧＰＵ９１２は、ＣＰＵ９０２側のメインメモリ９３０に直接にレンダリング処理を行うことができる。また例えばＣＰＵ９０２がジオメトリ処理を行って、頂点データを転送したり、ＧＰＵ９１２からＣＰＵ９０２にデータを戻すことも容易にできる。またＣＰＵ９０２が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション（平面分割）やドットフィルをＣＰＵ９０２が実行できる。例えば抽象度の高い処理はＣＰＵ９０２が行い、抽象度が低い細かな処理はＧＰＵ９１２が行うというような役割分担が可能である。
【０１６３】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ（ＣＰＵ、ＧＰＵ）に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１６４】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（接地部、影プリミティブ面、足影生成用プリミティブ面、足影画像、フィールド、モデルオブジェクト等）と共に記載された用語（足部分、足影ポリゴン、足影生成用ポリゴン、接地部の影画像、ゲームフィールド、キャラクタ等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１６５】
また、モデルオブジェクトの影画像の生成処理、接地部の影画像の生成処理、モデルオブジェクトの描画処理、シャドウマップ処理、分散シャドウマップ処理などのシャドウイング処理等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１６６】
【図１】本実施形態の画像生成システムのブロック図の例。
【図２】本実施形態より生成されたゲーム画像の例。
【図３】シャドウマップ処理の説明図。
【図４】シャドウマップテクスチャの例。
【図５】図５（Ａ）〜図５（Ｃ）は足影画像の生成手法の説明図。
【図６】足影画像の生成手法の説明図。
【図７】点光源による足影画像の生成手法の説明図。
【図８】本実施形態より生成されたゲーム画像の例。
【図９】本実施形態より生成されたゲーム画像の例。
【図１０】本実施形態より生成されたゲーム画像の例。
【図１１】本実施形態より生成されたゲーム画像の例。
【図１２】図１２（Ａ）〜図１２（Ｃ）は足影画像の生成手法の説明図。
【図１３】本実施形態の具体的な描画処理を説明するための図。
【図１４】本実施形態の具体的な描画処理を説明するための図。
【図１５】本実施形態の具体的な描画処理を説明するための図。
【図１６】本実施形態の具体的な描画処理を説明するための図。
【図１７】本実施形態の具体的な描画処理を説明するための図。
【図１８】本実施形態の具体的な描画処理を説明するための図。
【図１９】本実施形態の詳細な処理を説明するフローチャート。
【図２０】本実施形態の詳細な処理を説明するフローチャート。
【図２１】本実施形態の詳細な処理を説明するフローチャート。
【図２２】図２２（Ａ）、図２２（Ｂ）はハードウェア構成例。
【符号の説明】
【０１６７】
１００  処理部、１０２  ゲーム演算部、１０４  オブジェクト空間設定部、
１０６  移動体演算部、１０８  仮想カメラ制御部、１２０  描画処理部、
１２１  第１の描画処理部、１２２  第２の描画処理部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  オブジェクトデータ記憶部、
１７３  モーションデータ記憶部、１７４  テクスチャ記憶部、１７６  描画バッファ、
１７７  Ｚバッファ、１７８  ステンシルバッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  補助記憶装置、１９６  通信部
【図１】
2010055131.tif 000008
【図２】
2010055131.tif 000009
【図３】
2010055131.tif 000010
【図５】
2010055131.tif 000011
【図６】
2010055131.tif 000012
【図７】
2010055131.tif 000013
【図８】
2010055131.tif 000014
【図９】
2010055131.tif 000015
【図１０】
2010055131.tif 000016
【図１１】
2010055131.tif 000017
【図１２】
2010055131.tif 000018
【図１３】
2010055131.tif 000019
【図１４】
2010055131.tif 000020
【図１５】
2010055131.tif 000021
【図１６】
2010055131.tif 000022
【図１７】
2010055131.tif 000023
【図１８】
2010055131.tif 000024
【図１９】
2010055131.tif 000025
【図２０】
2010055131.tif 000026
【図２１】
2010055131.tif 000027
【図２２】
2010055131.tif 000028
【図４】
2010055131.tif 000029