(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
第１のオブジェクトとはレンダリング情報が異なる第２のオブジェクトを、前記第１のオブジェクトから第１の方向側に所与のオフセット値だけずらして配置設定する配置設定手段と、
Ｚ値が格納されるＺバッファを用いて陰面消去を行いながら、前記第１、第２のオブジェクトが設定されるオブジェクト空間の所与の視点での画像を描画する描画手段と、を含み、
前記描画手段が、
前記第１、第２のオブジェクトを構成するプリミティブ面の頂点のＺ値に基づき、プリミティブ面の各ピクセルのＺ値を補間演算する補間手段を含み、
前記配置設定手段が、
前記第２のオブジェクトを、前記補間手段の演算誤差よりも大きな値のオフセット値だけ前記第１のオブジェクトから前記第１の方向側にずらして配置することを特徴とするゲームシステム。
【請求項２】
請求項１において、
前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき影を擬似的に表すオブジェクトであるとことを特徴とするゲームシステム。
【請求項３】
請求項１において、
前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき照光画像を擬似的に表すオブジェクトであるとことを特徴とするゲームシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記第２のオブジェクトが、中央領域から輪郭線の方に向かうにつれて徐々に透明又は不透明になるオブジェクトであることを特徴とするゲームシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記配置設定手段が、
前記第２のオブジェクトの輪郭線に沿って、前記第１、第２のオブジェクト間の前記第１の方向での隙間を遮るための遮りオブジェクトを設けることを特徴とするゲームシステム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記描画手段が、プリミティブ面単位で描画処理を行う場合において、
前記第１、第２のオブジェクトを、複数のプリミティブ面に分割する手段を含むことを特徴とするゲームシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記第２のオブジェクトが、
前記第１のオブジェクトと同一形状又はほぼ同一形状であるがレンダリング情報が異なる第３のオブジェクトから所与の条件で切り出されたオブジェクトであることを特徴とするゲームシステム。
【請求項８】
請求項７において、
移動する第４のオブジェクトの情報と光源情報とに基づいて、前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とするゲームシステム。
【請求項９】
請求項７又は８において、
所与の平面を用いて前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とするゲームシステム。
【請求項１０】
コンピュータが読み取り可能な情報記憶媒体であって、
第１のオブジェクトとはレンダリング情報が異なる第２のオブジェクトを、前記第１のオブジェクトから第１の方向側に所与のオフセット値だけずらして配置設定する配置設定手段と、
Ｚ値が格納されるＺバッファを用いて陰面消去を行いながら、前記第１、第２のオブジェクトが設定されるオブジェクト空間の所与の視点での画像を描画する描画手段と、してコンピュータを機能させるためのプログラムを含み、
前記描画手段が、
前記第１、第２のオブジェクトを構成するプリミティブ面の頂点のＺ値に基づき、プリミティブ面の各ピクセルのＺ値を補間演算する補間手段を含み、
前記配置設定手段が、
前記第２のオブジェクトを、前記補間手段の演算誤差よりも大きな値のオフセット値だけ前記第１のオブジェクトから前記第１の方向側にずらして配置することを特徴とする情報記憶媒体。
【請求項１１】
請求項１０において、
前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき影を擬似的に表すオブジェクトであるとことを特徴とする情報記憶媒体。
【請求項１２】
請求項１０において、
前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき照光画像を擬似的に表すオブジェクトであるとことを特徴とする情報記憶媒体。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記第２のオブジェクトが、中央領域から輪郭線の方に向かうにつれて徐々に透明又は不透明になるオブジェクトであることを特徴とする情報記憶媒体。
【請求項１４】
請求項１０乃至１３のいずれかにおいて、
前記配置設定手段が、
前記第２のオブジェクトの輪郭線に沿って、前記第１、第２のオブジェクト間の前記第１の方向での隙間を遮るための遮りオブジェクトを設けることを特徴とする情報記憶媒体。
【請求項１５】
請求項１０乃至１４のいずれかにおいて、
前記描画手段が、プリミティブ面単位で描画処理を行う場合において、
前記第１、第２のオブジェクトを、複数のプリミティブ面に分割する手段を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
【請求項１６】
請求項１０乃至１５のいずれかにおいて、
前記第２のオブジェクトが、
前記第１のオブジェクトと同一形状又はほぼ同一形状であるがレンダリング情報が異なる第３のオブジェクトから所与の条件で切り出されたオブジェクトであることを特徴とする情報記憶媒体。
【請求項１７】
請求項１６において、
移動する第４のオブジェクトの情報と光源情報とに基づいて、前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とする情報記憶媒体。
【請求項１８】
請求項１６又は１７において、
所与の平面を用いて前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ガンゲームを楽しむことができるゲームシステムを例にとれば、プレーヤ（操作者）は、銃などを模して作られたガン型コントローラ（シューティングデバイス）を用いて、画面に映し出される敵キャラクタ（オブジェクト）などの標的オブジェクトをシューティングすることで、３次元ゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、視点から見えない部分を消去し、視点から見える部分だけを表示するための陰面消去が必要になる。そして、この陰面消去の中で代表的なもとのしては、奥行きソート法と呼ばれるものやＺバッファ法と呼ばれるものが知られている。
【０００４】
奥行きソート法（Ｚソート法）では、視点からの距離に応じてポリゴン（広義にはプリミティブ面）をソーティングし、視点から遠い順にポリゴンを描画する。この奥行きソート法には、アルゴリズムが簡易であると共に陰面消去の処理負荷が軽いという利点がある反面、代表値によるソーティングだけでは正確な陰面消去ができないという不利点がある。なお、奥行きソート法において正確な陰面消去を実現する従来技術としては、例えば特開平６−２０３１７２号公報に開示される技術が知られている。
【０００５】
一方、Ｚバッファ法では、画面の全てのピクセル（ドット）についてのＺ値（奥行き値）を格納するＺバッファを用意し、このＺバッファを利用して陰面消去を行う。このＺバッファ法では、奥行きソート法に比べて陰面消去の処理負荷が重いという不利点がある反面、ピクセル単位で陰面消去が行われるため、奥行きソート法よりも正確な陰面消去が可能になるという利点がある。
【０００６】
さて、このＺバッファ法では、ポリゴンの各ピクセルのＺ値は、ポリゴンの各頂点のＺ値に基づく補間演算により求められる。そして、この補間演算の誤差に起因して、ポリゴンの前後関係が狂ってしまい、本来は後ろに隠されるべきポリゴンの各部分が、前に表示されてしまうという問題があることが判明した。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、Ｚバッファ法における陰面消去の誤りの問題を簡素な手法で解決できるゲームシステム及び情報記憶媒体を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、第１のオブジェクトとはレンダリング情報が異なる第２のオブジェクトを、前記第１のオブジェクトから第１の方向側に所与の微少オフセット値だけずらして配置設定する手段と、Ｚ値が格納されるＺバッファを用いて陰面消去を行いながら、前記第１、第２のオブジェクトが設定されるオブジェクト空間の所与の視点での画像を描画する描画手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【０００９】
本発明によれば、第１のオブジェクトとはレンダリング情報（陰影づけ情報、半透明情報、屈折率情報、反射率情報、色情報、輝度情報、或いはテクスチャ情報等）が異なる第２のオブジェクトが、第１のオブジェクトから第１の方向側（例えば上側等）に重ねて配置される。これにより、第１のオブジェクトに影やハイライト画像が落ちるなどの第１のオブジェクトの表面のレンダリング状態の変化を疑似的に表現できる。
【００１０】
そして本発明によれば、第２のオブジェクトが第１の方向側に所与の微少オフセット値だけずらして配置される。従って、視点から見た場合のＺ値（奥行き値）を、第１のオブジェクトと第２のオブジェクトとで異ならせることが可能になり、Ｚ値の補間処理に演算誤差が生じた場合等にも、陰面消去に誤りが生じる問題を効果的に解決できる。
【００１１】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき影を擬似的に表すオブジェクトであるとことを特徴とする。
【００１２】
このようにすれば、第２のオブジェクトを配置するだけという簡素な処理で、影を表現できるようになる。なお、第２のオブジェクトは、影を作り出すオブジェクトの移動に追従させて移動させることが望ましい。
【００１３】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、前記第１のオブジェクトに描かれるべき照光画像を擬似的に表すオブジェクトであるとことを特徴とする。
【００１４】
このようにすれば、第２のオブジェクトを配置するだけという簡素な処理で、ハイライト画像などの照光画像を表現できるようになる。なお、照光画像の光の強さは、光源情報、第２のオブジェクトを配置する位置での第１のオブジェクトの法線情報、或いは視線情報等に基づいて変化させることが望ましい。
【００１５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、中央領域から輪郭線の方に向かうにつれて徐々に透明又は不透明になるオブジェクトであることを特徴とする。
【００１６】
このようにすれば、例えば、第２のオブジェクトの輪郭線付近がぼやけて見えるようになる表現等が可能になり、影や照光画像などのリアルな表現が可能になる。また、第２のオブジェクトの輪郭線付近がぼやけて見えるようになり、第１、第２のオブジェクト間の隙間を目立たなくすることも可能になる。
【００１７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトの輪郭線に沿って、前記第１、第２のオブジェクト間の前記第１の方向での隙間を遮るための遮りオブジェクトを設けることを特徴とする。
【００１８】
このようにすれば、第１、第２のオブジェクト間の隙間が見えてしまう問題を解決できる。
【００１９】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記描画手段が、プリミティブ面単位で描画処理を行う場合において、前記第１、第２のオブジェクトを、複数のプリミティブ面に分割する手段（又は該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００２０】
このように、第１、第２のオブジェクトが複数のプリミティブ面（例えば三角形ポリゴン）に分割される場合には、第１のオブジェクトや第２のオブジェクトの分割のされ方が、状況に応じて変化してしまうおそれがある。このような場合にも、本発明によれば、第２のオブジェクトを微少オフセット値だけずらして配置することで、陰面消去に誤りが生じる問題を解決できる。
【００２１】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記描画手段が、前記第１、第２のオブジェクトを構成するプリミティブ面の頂点のＺ値に基づき、プリミティブ面の各ピクセルのＺ値を補間演算する補間手段を含み、前記第２のオブジェクトが、前記補間手段の演算誤差よりも大きな値の微少オフセット値だけ前記第１のオブジェクトから前記第１の方向側にずらして配置されることを特徴とする。
【００２２】
このようにすれば、補間処理の演算誤差に起因する陰面消去の誤りの問題を、より確実に解決できる。
【００２３】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、前記第１のオブジェクトと同一形状又はほぼ同一形状であるがレンダリング情報が異なる第３のオブジェクトから所与の条件で切り出されたオブジェクトであることを特徴とする。
【００２４】
このようにすれば、第２のオブジェクトが存在している領域だけが、それ以外の領域とレンダリング情報が異なって見えるようになり、影等のリアルな表現が可能になる。しかも、第１のオブジェクトと第３のオブジェクトとは、その形状が同一又はほぼ同一であるため、第１のオブジェクトの形状と、第３のオブジェクトから切り出される第２のオブジェクトの形状との間の整合性も保たれるようになる。この結果、第１のオブジェクトが複雑な形状を有していた場合にも、不自然さのないリアルな画像を生成できるようになる。
【００２５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、移動する第４のオブジェクトの情報と光源情報とに基づいて、前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とする。
【００２６】
このようにすれば、第４のオブジェクトの情報（位置データ、回転角度データ又は形状データ等）や光源情報（光源ベクトル、光源位置又は光源の強さ等）が反映された影等を表現できるようになる。また、第１のオブジェクトが複雑な形状を有していても、その形状との整合性が保たれた影等を表現できるようになる。
【００２７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、所与の平面を用いて前記第３のオブジェクトから前記第２のオブジェクトが切り出されることを特徴とする。
【００２８】
このように平面を用いて第２のオブジェクトを切り出すようにすれば、オブジェクトの切り出し処理を簡素化できる。
【００２９】
なお、この場合、第４のオブジェクトの第１、第２の頂点と、該第１、第２の頂点のいずれか一方と所与のベクトル（例えば光源ベクトル）とにより得られる第３の頂点とに基づき、上記平面（第１、第２、第３の頂点により構成される三角形を含む平面）を特定することが望ましい。このように平面を特定すれば、第４のオブジェクトの位置データや形状データや所与のベクトルの方向を、切り出される第２のオブジェクトの配置や形状に反映させることが可能になる。
【００３０】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３１】
１．構成
図１に、本実施形態のゲームシステム（画像生成システム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００３２】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【００３３】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３４】
情報記憶媒体１８０（コンピュータにより使用可能な記憶媒体）は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００３５】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【００３６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３７】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３８】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３９】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４０】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成（描画）処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。
【００４２】
ここで、処理部１００が行うゲーム処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４３】
なお、処理部１００の機能は、より好適には、ハードウェア（ＣＰＵ、ＤＳＰ等のプロセッサ又はゲートアレイ等のＡＳＩＣ）とプログラム（ゲームプログラム又はファームウェア等）との組み合わせにより実現される。但し、処理部１００の機能の全てを、ハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。
【００４４】
処理部１００は、オブジェクト空間設定部１１０、分割部１１２、描画部１３０、音生成部１５０を含む。
【００４５】
ここで、オブジェクト空間設定部１１０は、キャラクタ、マップなどの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置にその回転角度（Ｘ、Ｙ、Ｚ軸回転）でオブジェクトを配置する。
【００４６】
そして、オブジェクト空間設定部１１０は、第１のオブジェクト（例えばマップオブジェクト、建物オブジェクト又は移動オブジェクト等）とはレンダリング情報（例えば陰影づけ情報、半透明情報、屈折率情報、反射率情報、色情報、輝度情報又はテクスチャ情報等）が異なる第２のオブジェクト（例えば影オブジェクト、照光画像オブジェクト又はコースにおけるタイヤの跡を表すオブジェクト等）を、第１のオブジェクトから第１の方向側（例えば上下左右方向の一方側又はワールド座標系におけるＹ軸方向側等）に、所与の微少オフセット値（例えばＺ値の補間演算における演算誤差よりも大きな値）だけずらして配置する設定を行う。
【００４７】
分割部１１２は、オブジェクト（第１、第２のオブジェクト等）を構成するプリミティブ面（ポリゴン等）を、例えば複数のＫ角形のプリミティブ面（Ｋは定数であり、例えばＫ＝３）に分割する処理を行う（例えばトライアングル・ストリップ処理）。即ち分割部１１２は、オブジェクトを構成するプリミティブ面を、描画部１３０の描画単位に分割する。このようにすることで、描画部１３０がＫ角形のプリミティブ面しか扱えないような場合にも、適正な描画が可能になる。
【００４８】
描画部１３０は、ゲーム処理結果等に基づいて、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成し、描画領域１７４に描画する。そして、描画領域１７４に描画された画像は表示部１９０により出力される。
【００４９】
より具体的には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、描画部１３０は、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像を、描画領域１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できる領域）に描画する。
【００５０】
描画部１３０は、補間部１３２、陰面消去部１３４、テクスチャマッピング部１３６を含む。
【００５１】
ここで補間部１３２は、プリミティブ面（ポリゴン）の頂点（例えば３頂点）のＺ値に基づき、プリミティブ面の各ピクセルのＺ値を、ＤＤＡ（Digital Differential Analyzer）などのアルゴリズムを用いた補間演算により求める。
【００５２】
陰面消去部１３４は、Ｚ値（奥行き値）が格納されるＺバッファ１７８を用いて、Ｚバッファ法のアルゴリズムにしたがった陰面消去を行う。
【００５３】
テクスチャマッピング部１３６は、テクスチャ記憶部１７６に記憶されるテクスチャをオブジェクトにマッピングする。
【００５４】
音生成部１５０は、ゲーム処理結果等に基づいて各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００５５】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５６】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００５７】
２．本実施形態の特徴
２．１  影オブジェクトのオフセット配置
さて、地形に落ちる影を表現する手法として、暗い色調で描かれた擬似的な影オブジェクト（第２のオブジェクト）を用意し、この影オブジェクトを、地形、コースなどを表すマップオブジェクト（第１のオブジェクト）の上に重ねて配置する手法を考えることができる。
【００５８】
この手法によれば、マップオブジェクトの上に影オブジェクトを重ねて配置するだけで影を表現できるため、光源と照明モデルを用いた照光処理を行い影を表現する手法に比べて、処理負荷を大幅に軽減化できる。
【００５９】
一方、近年、ゲームシステムにおいては、よりリアルで高品質な画像を生成することが強く要望されている。このため、Ｚバッファ法のアルゴリズムを利用した陰面消去処理をハードウェアでサポートするゲームシステムが登場してきている。
【００６０】
ところが、このようにＺバッファ法のアルゴリズムで陰面消去を行うゲームシステムにおいて、マップオブジェクトに影オブジェクトを配置して影を表現する手法を採用すると、次のような問題が生じることが判明した。
【００６１】
即ち図２（Ａ）に示すように、本来ならば円形に見えるべき影１０の一部が欠けて表示されてしまい、生成される画像が非常に不自然になる。そして、図２（Ｂ）、（Ｃ）に示すように、この欠ける部分の場所や形状は、影１０が表示される位置や視点位置や視線方向に応じて変化する。従って、この影１０を作っているキャラクタ（図示せず）が移動すると、影１０の形状が不規則に間断なく変化してしまい、非常に見苦しい画像になる。
【００６２】
本発明者は、このような問題が生じるのは以下の理由によるということを見出した。
【００６３】
即ち、図１の描画部１３０が扱うことができるポリゴン（広義にはプリミティブ面）の形状は、描画処理の高速化を図るために、一定形状に固定されている場合がある。より具体的には、描画部１３０が、その仕様上、三角形のポリゴンしか扱うことができない場合がある。このような場合には、頂点数が４個以上のポリゴンについては、描画部１３０にそのデータを転送する前に、三角形ポリゴンに分割しておく必要がある。
【００６４】
例えば図３（Ａ）の場合には、図１の分割部１１２は、オブジェクトＯＢ１を三角形ポリゴンＰＡ１、ＰＢ１に分割し、オブジェクトＯＢ２を三角形ポリゴンＰＡ２、ＰＢ２に分割する。そして、描画部１３０は、これらの分割された各三角形ポリゴン毎に描画処理を行うことになる。
【００６５】
ところが、このようなポリゴン分割においては、同一形状のオブジェクトであっても、分割の仕方によっては、分割後の三角形ポリゴンの頂点構成が異なったものになってしまう場合があることが判明した。
【００６６】
例えば図３（Ｂ）では、オブジェクトＯＢ１については図３（Ａ）と同じ三角形ポリゴンＰＡ１、ＰＢ１に分割されている。しかしながら、オブジェクトＯＢ２については図３（Ａ）のＰＡ２、ＰＢ２とは異なる三角形ポリゴンＰＣ２、ＰＤ２に分割されている。
【００６７】
そして、影を擬似的に表現するためにオブジェクトＯＢ１と同一位置にオブジェクトＯＢ２（影オブジェクト）を配置すると、図３（Ａ）の場合には正しい表示になるが、図３（Ｂ）の場合には表示エラーになることが判明した。
【００６８】
即ち、図３（Ａ）のようにＯＢ１、ＯＢ２が分割された場合には、三角形ポリゴンＰＡ１とＰＡ２、三角形ポリゴンＰＢ１とＰＢ２は同一形状（頂点）になるため、正しい表示が行われる。
【００６９】
一方、図３（Ｂ）では、三角形ポリゴンＰＡ１とＰＣ２、三角形ポリゴンＰＢ１とＰＤ２は異なる形状になるため、表示エラーが生じてしまう。即ち、ポリゴンの前後関係が狂ってしまい、本来ならば後ろに隠れるべきオブジェクトＯＢ１のピクセルがオブジェクトＯＢ２の手前に表示される事態が生じてしまう。
【００７０】
このような表示エラーが生じるのは、Ｚバッファ法を用いた陰面消去処理での補間演算の誤差に起因する。
【００７１】
即ち、図１の補間部１３２は、ポリゴン（プリミティブ面）の頂点のＺ値に基づいて、ポリゴンの各ピクセル（ドット）のＺ値をＤＤＡなどの手法により算出する。ところが、この補間処理には、通常、例えば１ＬＳＢ程度の演算誤差（累積誤差）がある。この演算誤差は、補間部１３２の補間精度を高精度なものにすれば小さくできるが、これは、システムのコスト増を招く。従って、この演算誤差を零にすることは実質的に極めて難しい。
【００７２】
一方、図１の陰面消去部１３４は、Ｚ値が同一である場合には、通常、後にポリゴンデータが転送されてきた方を上書きするように構成されている。
【００７３】
そして、図３（Ａ）の場合には、三角形ポリゴンＰＡ１とＰＡ２、三角形ポリゴンＰＢ１とＰＢ２の形状（頂点）は同一になっている。従って、補間処理により得られるＰＡ１とＰＡ２の各ピクセルのＺ値は、たとえ演算誤差があっても、同一になる。同様に、補間処理により得られるＰＢ１とＰＢ２の各ピクセルのＺ値も、たとえ演算誤差があっても、同一になる。従って、この場合には、全てのピクセルにおいて、ポリゴンＰＡ１の上にポリゴンＰＡ２が上書きされ、ポリゴンＰＢ１の上にポリゴンＰＢ２が上書きされるようになる。従って、正しい前後関係でポリゴンが描画されるようになり、正しい表示になる。
【００７４】
しかしながら、図３（Ｂ）の場合には、三角形ポリゴンＰＡ１とＰＣ２、三角形ポリゴンＰＢ１とＰＤ２の形状は異なっている。従って、補間処理により得られるＰＡ１とＰＣ２の各ピクセルのＺ値が、本来は同じ値になるべきなのに、演算誤差の存在に起因して、異なった値になってしまう場合がある。同様に、補間処理により得られるＰＢ１とＰＤ２の各ピクセルのＺ値も、演算誤差の存在に起因して、異なった値になってしまう場合がある。このため、本来は後ろに隠れるべきポリゴンＰＡ１、ＰＢ１のピクセルが、ポリゴンＰＣ２、ＰＤ２の手前に表示される事態が生じ、図２（Ａ）、（Ｂ）、（Ｃ）に示すような不自然な画像が生成されてしまう。
【００７５】
そこで、本実施形態では、このような問題を解決するために図４に示すような手法を採用している。
【００７６】
即ち図４のＡ１に示すように、オブジェクトＯＢ１（マップオブジェクト等）の上にオブジェクトＯＢ２（影オブジェクト等）を重ねて配置する際に、オブジェクトＯＢ１から上方向側（広義には第１の方向側）に微少オフセット値ＯＦＳだけずらしてオブジェクトＯＢ２を配置する。即ち、ワールド座標系のＹ軸方向側にＯＦＳだけずらしてＯＢ２を配置する。
【００７７】
このようにすれば、図４のＡ２に示すように、視点ＶＰから見たときのオブジェクトＯＢ１のＺ値（奥行き値）とＯＢ２のＺ値とが異なるようになる。即ち、視点座標系におけるＺ値がＯＢ１とＯＢ２とで異なるようになる。
【００７８】
従って、図５に示すように、オブジェクトＯＢ１のポリゴン分割のされ方とオブジェクトＯＢ２のポリゴン分割のされ方が異なる場合にも、微少オフセット値ＯＦＳにより補間処理の演算誤差の影響が打ち消されるため、正しい画像表示がなされるようになる。
【００７９】
即ち、図４のＡ３に示すように、オブジェクトＯＢ１とＯＢ２を同一位置（同一のＹ座標）に配置すると、視点ＶＰから見たときのオブジェクトＯＢ１、ＯＢ２のＺ値（視点座標系でのＺ値）が同一になってしまう。従って、ポリゴン分割のされ方によっては、図３（Ｂ）に示すようにエラー表示になってしまう。
【００８０】
これに対して図４のＡ２に示すようにオブジェクトＯＢ２の例えば各頂点のＹ座標にＯＦＳを加算すれば、視点ＶＰから見たときにＯＢ２がＯＢ１よりも常に手前に来るようになる。例えば視点に近いほどＺ値が大きな値になる場合には、ＯＢ１の各頂点のＺ値よりもＯＢ２の各頂点のＺ値の方が常に大きくなる。従って図２（Ａ）、（Ｂ）、（Ｃ）に示すような不自然な画像が生成される事態を防止できる。
【００８１】
例えば、視点からの距離に応じてポリゴンをソーティングし、視点から遠い順にポリゴンを描画する奥行きソート法においては、ピクセル単位での陰面消去処理が行われない。従って、陰面消去されるべきポリゴンが手前に表示されてしまう表示エラーの問題が必然的に生じる。このような表示エラーの問題をＺシフト処理により解決したのが前述の特開平６−２０３１７２号公報に開示された従来技術である。
【００８２】
これに対して、Ｚバッファ法では奥行きソート法と異なりピクセル単位で陰面消去処理が行われる。従って、たとえオブジェクトＯＢ１、ＯＢ２を同一位置に配置しても、陰面消去されるべきポリゴンが手前に表示されてしまうという上記表示エラーは原理的に生じないと信じられていた。
【００８３】
しかしながら、Ｚ値の補間処理の精度が低い場合や、オブジェクトの分割のされ方が状況に応じて図３（Ａ）、（Ｂ）のように変動する場合には、図２（Ａ）、（Ｂ）、（Ｃ）に示すような表示エラーが生じる課題があることを本発明者は見出した。
【００８４】
本実施形態の特徴は、このような課題があることを発見し、この課題を、オブジェクトＯＢ２を微少オフセット値だけずらすという簡素な手法で解決したことにある。
【００８５】
例えば特開平６−２０３１７２号公報の従来技術では、画面に表示される全てのポリゴンに対してＺシフト処理が行われためて、処理負荷が重くなるという課題がある。
【００８６】
本実施形態では、影オブジェクトのように、マップオブジェクトと同一位置（同一Ｙ座標）に配置されるオブジェクトにだけ微少オフセット値ＯＦＳの加算処理を行えばよいため、処理負荷が少なくて済むという利点がある。
【００８７】
さて、図６（Ａ）に、本実施形態で使用されるオブジェクトＯＢ２の一例を示す。
【００８８】
図６（Ａ）に示すように、オブジェクトＯＢ２は、中央領域から輪郭線の方に向かうにつれて徐々に透明になるオブジェクトになっている（徐々に不透明になるオブジェクトにすることもできる）。これは例えば、オブジェクトＯＢ２を４つのポリゴンＰＬ１、ＰＬ２、ＰＬ３、ＰＬ４に分割し、ＯＢ２の中心位置にある頂点のα値を１．０（不透明）に設定すると共に、ＯＢ２の輪郭線上にある頂点のα値を０．０（透明）に設定することで実現できる。
【００８９】
このようにすれば、影の輪郭がぼやけて見えるようになり、より写実的な影の表現が可能になる。
【００９０】
また、図４のＡ２に示すようにＯＢ２を上側方向にずらして配置すると、視点ＶＰからＯＢ１とＯＢ２の隙間が見えてしまうという問題が生じる可能性がある。
【００９１】
しかしながら、図６（Ａ）に示すように、ＯＢ２の輪郭線付近の画像を透明にしてぼかせば、このような隙間が見えてしまう問題を効果的に解決できる。
【００９２】
なお、図６（Ｂ）に示すように、影を表すオブジェクトＯＢ２は、キャラクタなどの移動オブジェクトＯＢ４に追従して移動するようになっている。即ち、オブジェクトＯＢ２の位置又は回転角度（方向）は、オブジェクトＯＢ４の位置又は回転角度に基づいて決められることになる。
【００９３】
図７（Ａ）、（Ｂ）、（Ｃ）に、本実施形態により生成された画像の例を示す。
【００９４】
図２（Ａ）と図７（Ａ）を比較すれば明らかなように、本実施形態によれば、影１０の一部が欠けて見えなくなるという図２（Ａ）の問題を解決している。
【００９５】
また、図７（Ｂ）、（Ｃ）に示すように、影１０の表示位置や視点位置や視線方向が変化した場合にも、影１０の一部が欠けて見えなくなるという問題は生じず、本来の円形の影１０を常に表示されるようになる。
【００９６】
また、図６（Ａ）で説明したように、影１０の画像が、中央領域から輪郭線の方に向かうにつれて透明になるような画像になっているため、影１０の表現をより写実的なものにすることができる。
【００９７】
なお、以上では、オブジェクトＯＢ２が、影を表現する影オブジェクトである場合について説明した。しかしながら、オブジェクトＯＢ２は、影オブジェクトに限定されず、ハイライト画像のような照光画像を表すオブジェクトや、コースに付着するタイヤの跡を表すオブジェクトなどであってもよい。
【００９８】
例えば図８では、オブジェクトＯＢ１の上に、ハイライト画像が描かれたオブジェクトＯＢ２を配置している。このようにすれば図９に示すように、オブジェクトＯＢ１の表面に、あたかもハイライトが生じたかのように見える画像表現を実現できる。
【００９９】
そして図８の手法によれば、オブジェクトＯＢ１の各頂点における光源計算（鏡面反射モデルを用いた光源計算）が不要になる。従って、処理負荷を大幅に軽減できる。
【０１００】
また、図８の手法によれば、図９に示すように、オブジェクトＯＢ２により表されるハイライト画像（照光画像）の一部が、オブジェクトＯＢ１の画像からはみ出して見える画像を生成できる。従って、オブジェクトＯＢ１自体が発光しているかのように光り輝いて見える画像を生成でき、鏡面反射モデルを用いた通常の光源計算処理では実現できない画像効果を得ることができる。
【０１０１】
なお、オブジェクトＯＢ２に描かれるハイライト画像の光の強さ（輝度）は、光源情報（光源位置、光源ベクトル）、ＯＢ２の配置位置（反射点）でのオブジェクトＯＢ１の法線ベクトル、或いは視線ベクトルなどに基づいて変化させることが望ましい。このようにすれば、よりリアルなハイライト表現が可能になる。
【０１０２】
さて、オブジェクトＯＢ１の上にオブジェクトＯＢ２を微少オフセット値ＯＦＳだけずらして配置する場合には、図１０に示すように、オブジェクトＯＢ２の輪郭線に沿って、ＯＢ１、ＯＢ２間の隙間を遮るための遮りオブジェクトＯＢＳを設けることが望ましい。
【０１０３】
このようにすれば、オブジェクトＯＢ２を微少オフセット値ＯＦＳだけずらして配置した場合にも、視点ＶＰから見てＯＢ１とＯＢ２の隙間が見えてしまう事態を効果的に防止でき、より自然な画像を生成できる。
【０１０４】
また、微少オフセット値ＯＦＳの大きさは、図１の補間部１３２でのＤＤＡ（Digital Differential Analyzer）の演算誤差よりも大きな値にすることが望ましい。
【０１０５】
より具体的には図１１に示すように、ＤＤＡの演算誤差が、例えば、Ｎ×ＬＳＢの場合には、微少オフセット値ＯＦＳの大きさを、（Ｎ＋Ｋ）×ＬＳＢにする（但し、Ｋ≧１）。このようにすれば、演算誤差に起因する陰面消去の誤りの問題を効果的に解決できる。
【０１０６】
２．２  影の切り出し
さて、本実施形態では、オブジェクトＯＢ２の生成手法に関して以下に説明するような工夫を施している。
【０１０７】
例えば図１２（Ａ）のように、オブジェクトＯＢ１が平らな場合には、オブジェクトＯＢ１の上にＯＢ２を単に重ねて配置するだけでも、自然な影を表現できる。
【０１０８】
しかしながら、オブジェクトＯＢ１（マップオブジェクト）の形状が複雑になると、図１２（Ｂ）、（Ｃ）に示すような不具合が生じる。
【０１０９】
例えば、図１２（Ｂ）のように階段状のオブジェクトＯＢ１の上段に影を表すオブジェクトＯＢ２が配置されると、オブジェクトＯＢ２が地面から浮いて見えるようになってしまう。
【０１１０】
一方、図１２（Ｃ）のようにオブジェクトＯＢ１の下段にオブジェクトＯＢ２が配置されると、図１２（Ｄ）のようにオブジェクトＯＢ２がオブジェクトＯＢ１に潜り込んで見えるようになってしまう。
【０１１１】
本実施形態では、このような問題を解決するために、以下のような手法で影を生成している。
【０１１２】
即ち図１３のＥ１、Ｅ２に示すように、まず、地形などを表すオブジェクトＯＢ１（第１のオブジェクト）と影切り出し用オブジェクトＯＢ３（第３のオブジェクト）を用意する。
【０１１３】
ここで、図１３のＥ１、Ｅ２に示すように、オブジェクトＯＢ１と影切り出し用オブジェクトＯＢ３は、その形状が同一になっているが、陰影づけ情報（広義にはレンダリング情報）が異なっている。即ち、影切り出し用オブジェクトＯＢ３の陰影づけ（輝度）はオブジェクトＯＢ１に比べて暗くなっている。
【０１１４】
なお、影切り出し用オブジェクトＯＢ３として、オブジェクトＯＢ１の絵柄（テクスチャ）とは無関係の真っ黒なオブジェクトを用意してもよいし、オブジェクトＯＢ１の絵柄の輝度を全体的に暗くしたオブジェクトを用意してもよい。
【０１１５】
また、影切り出し用オブジェクトＯＢ３の形状は、オブジェクトＯＢ１と完全同一である必要はなく、ほぼ同一の形状であってもよい。即ち、例えばオブジェクトＯＢ１の複雑な形状を簡略化したオブジェクトを、影切り出し用オブジェクトＯＢ３として用いてもよい。また、オブジェクトＯＢ１の形状と影切り出し用オブジェクトＯＢ３の形状とは、全ての範囲で同一又はほぼ同一である必要はなく、着目する狭い範囲内で同一又はほぼ同一であれば十分である。
【０１１６】
次に、図１３のＥ３に示すように、影切り出し用オブジェクトＯＢ３を例えば平面２２により切断する。同様に、図１３のＥ４、Ｅ５、Ｅ６に示すように、影切り出し用オブジェクトＯＢ３を、平面２４、２６、２８により切断する。このようにして、図１３のＥ７に示すように、影切り出し用オブジェクトＯＢ３（第３のオブジェクト）から、影オブジェクトＯＢ２（第２のオブジェクト）が切り出される。
【０１１７】
そして最後に、切り出されたオブジェクトＯＢ２をオブジェクトＯＢ１に重ねて配置する。そして、この際に、図４のＡ１、Ａ２で説明したように、微少オフセット値ＯＦＳだけ上方向側にずらしてＯＢ２を配置する。
【０１１８】
以上のようにすれば、オブジェクトＯＢ１が複雑な形状を有していても、オブジェクトＯＢ１の形状とオブジェクトＯＢ２の形状との間に不整合が生じるのを防止でき、リアルな影を表現できるようになる。即ち、図１２（Ａ）〜（Ｄ）で説明したような不具合が生じるのを効果的に防止できる。
【０１１９】
図１４（Ａ）、（Ｂ）に、本実施形態により生成されたゲーム画像の例を示す。これらの図では、戦車４０がマップ上を走行しており、この戦車４０の影４２がマップ上に投影されている。そして図１４（Ｂ）では、段差のある階段の上を戦車４０が通過している。この場合に本実施形態では、図１４（Ｂ）のＦ１に示すように、階段の段差の形状と影４２の形状との整合性が保たれるようになり、リアルな影を表現できる。
【０１２０】
このように図１３の手法によれば、影切り出し用オブジェクトＯＢ３から影オブジェクトＯＢ２を切り出し、マップオブジェクトＯＢ１に配置するだけという簡素な処理で、図１４（Ａ）、（Ｂ）に示すように、マップオブジェクトとの整合性が保たれたリアルな影を表現できるようになる。
【０１２１】
しかも、図１３の手法によると、影オブジェクトＯＢ２は、マップオブジェクトＯＢ１と同一形状のＯＢ３から切り出されるため、ＯＢ１とＯＢ２のＹ座標が必然的に同一になってしまい、図２（Ａ）、（Ｂ）、（Ｃ）に示すような表示エラーが生じてしまう。
【０１２２】
しかしながら、本実施形態では、図４で説明したように、影オブジェクトＯＢ２が微少オフセット値ＯＦＳだけずらして配置される。従って、図２（Ａ）、（Ｂ）、（Ｃ）に示すような表示エラーの発生を防止しながら、マップオブジェクトＯＢ１との整合性が保たれたリアルな影を表現できるようになる。
【０１２３】
さて、本実施形態では、オブジェクトＯＢ４（第４のオブジェクト）の情報と、光源情報とに基づいて、影切り出し用オブジェクトＯＢ３から影オブジェクトＯＢ２を切り出している。
【０１２４】
例えば図１５では、オブジェクトＯＢ４の形状データ（広義にはオブジェクト情報）と光源ベクトルＬＶ（広義には光源情報）とに基づいて、オブジェクトＯＢ２を切り出し、オブジェクトＯＢ１上に配置している。より具体的には、オブジェクトＯＢ４の形状データと光源ベクトルＬＶとに基づいて、図１３の平面２２、２４、２６、２８を特定し、これらの平面２２〜２８により、影切り出し用オブジェクトＯＢ３からオブジェクトＯＢ２を切り出す。
【０１２５】
このようにすれば、オブジェクトＯＢ２の配置位置や形状に、光源ベクトルＬＶの方向やオブジェクトＯＢ４の位置や形状が反映されるようになる。即ち、光源ベクトルＬＶの方向やオブジェクトＯＢ４の位置が変われば、オブジェクトＯＢ２の配置位置も変化し、オブジェクトＯＢ４の形状が変われば、オブジェクトＯＢ２の形状も変化するようになる。従って、少ない処理負担でリアルな影を表現できる。
【０１２６】
なお、オブジェクトＯＢ４として、移動オブジェクトである戦車４０の形状を簡易化したオブジェクトを用いるようにしてもよい。即ち、戦車４０の位置に基づいてオブジェクトＯＢ４の代表点の位置を特定し、戦車４０の大きさに基づいてオブジェクトＯＢ４の長さ及び幅を特定するようにする。そして、このオブジェクトＯＢ４を用いて、図１５に示すようにオブジェクトＯＢ２を切り出す。
【０１２７】
このような、戦車４０の形状を簡易化したものをオブジェクトＯＢ４として用いるようにすれば、オブジェクトＯＢ２の切り出し範囲を求める処理（平面を特定する処理）を簡素化でき、処理負担の軽減化を図れる。
【０１２８】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１６、図１７のフローチャートを用いて説明する。
【０１２９】
図１６は、オブジェクトＯＢ２を微少オフセット値だけずらしてオブジェクトＯＢ１に重ねて配置する処理に関するフローチャートである。
【０１３０】
まず、キャラクタ、戦車（或いはその簡易オブジェクト）などの移動オブジェクトＯＢ４の当該フレームでの移動情報（位置、回転角度）を演算する（ステップＳ１）。
【０１３１】
次に、移動オブジェクトＯＢ４の位置（代表点の位置）や回転角度（方向）に基づいて、影オブジェクトＯＢ２の頂点位置を決定する（ステップＳ２）。そして、影オブジェクトＯＢ２の頂点位置のＹ座標に対して、微少オフセット値ＯＦＳを加算する（ステップＳ３）。
【０１３２】
次に、影オブジェクトＯＢ２の頂点情報（頂点の位置、テクスチャ座標、α値等）を描画部に転送する（ステップＳ４）。描画部はこの頂点情報（描画データ）に基づいて、描画領域（フレームバッファ）にジオメトリ処理後の影オブジェクトＯＢ２の画像を描画することになる。
【０１３３】
次に、影オブジェクトＯＢ２の全ての頂点についての処理が終了したか否かを判断し（ステップＳ５）、終了していない場合にはステップＳ２に戻る。
【０１３４】
以上のようにして図７（Ａ）、（Ｂ）、（Ｃ）に示すような表示エラーの発生しない影の画像を生成できるようになる。
【０１３５】
図１３は、図１７で説明した影の切り出し処理に関するフローチャートである。
【０１３６】
まず、マップオブジェクトＯＢ１と同一形状（或いはほぼ同一形状）の影切り出し用オブジェクトＯＢ３を用意する（ステップＳ１１）。即ち図１３のＥ２に示すような影切り出し用オブジェクトＯＢ３を用意する。
【０１３７】
次に、図１５で説明したように、移動オブジェクトＯＢ４の情報と、光源ベクトルとに基づき、影オブジェクトＯＢ２の切り出しに用いる平面のパラメータをセットする（ステップＳ１２）。
【０１３８】
次に、図１３のＥ３〜Ｅ６に示すように、影切り出し用オブジェクトＯＢ３を、ステップＳ１２でパラメータがセットされた平面により切断する処理を行う（ステップＳ１３）。そして、全ての平面についての切り出し処理を終了したか否かを判断し（ステップＳ１４）、終了していない場合にはステップＳ１３に戻る。一方、終了した場合には、図１３のＥ８に示すように、平面により切り出された影オブジェクトＯＢ２をマップオブジェクトＯＢ１の上に重ねて配置する（ステップＳ１５）。そして、この際に、微少オフセット値ＯＦＳだけ上方向側にずらして影オブジェクトＯＢ２を配置する。
【０１３９】
以上のようにすることで、図１４（Ａ）、（Ｂ）に示すようなリアルで表示エラーの発生しない影を生成できるようになる。
【０１４０】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１８を用いて説明する。
【０１４１】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１４２】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４３】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１４４】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１４５】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１４６】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１４７】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１４８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１４９】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１５０】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１５１】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１５２】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１５３】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１５４】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１５５】
図１９（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム又はデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１５６】
図１９（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１５７】
図１９（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１５８】
なお、図１９（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１５９】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１６０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１６１】
例えば、本実施形態では、第１、第２のオブジェクト間で異なるレンダリング情報が陰影づけ情報である場合について主に説明した。リアルな影の表現のためには、レンダリング情報は本実施形態のように陰影づけ情報であることが特に望ましいが、本発明のレンダリング情報は、陰影づけ情報に限定されない。例えば本発明のレンダリング情報としては、半透明（透明）情報、反射率情報、屈折率情報、テクスチャ情報、色情報、輝度情報、或いは表面形状情報等、種々のものを考えることができる。このように、陰影づけ情報以外のレンダリング情報を用いることで、オブジェクト上で動く水たまりやアメーバなどの表現も可能になる。
【０１６２】
また、本実施形態ではプリミティブ面がポリゴンである場合について主に説明したが、プリミティブ面が自由曲面、サブディビジョンサーフェス等である場合にも本発明は適用できる。
【０１６３】
また、微少オフセット値の大きさの決定手法も、図１１等で説明した手法が特に望ましいが、これに限定されるものではない。
【０１６４】
また、本実施形態では第１のオブジェクトをずらす第１の方向が上方向（Ｙ軸方向）である場合について主に説明したが、本発明における第１の方向はこれに限定されない。
【０１６５】
また、第２のオブジェクトは、図６（Ｂ）、図１３で説明した手法により生成してもよいし、他の手法により生成してもよい。
【０１６６】
また、第４のオブジェクト（戦車等）に基づいて第２のオブジェクト（影等）を切り出す場合、移動オブジェクトの形状を簡易化したオブジェクトを第４のオブジェクトとして切り出し処理を行ってもよいし、移動オブジェクトそのものを第４のオブジェクトとして切り出し処理を行ってもよい。
【０１６７】
また、第２のオブジェクトは平面を用いて切り出すことが特に望ましいが、平面以外の図形を用いて切り出すようにしてもよい。
【０１６８】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１６９】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１７０】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態のゲームシステムの機能ブロック図の例である。
【図２】図２（Ａ）、（Ｂ）、（Ｃ）は、表示エラーが発生している影の画像例について示す図である。
【図３】図３（Ａ）、（Ｂ）は、ポリゴン分割が原因となって発生する表示エラーの問題について説明するための図である。
【図４】オブジェクトＯＢ２を微少オフセット値ＯＦＳだけずらして配置する手法について説明するための図である。
【図５】オブジェクトＯＢ２を微少オフセット値ＯＦＳだけずらして配置する手法について説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、本実施形態で使用される影オブジェクトＯＢ２について説明するための図である。
【図７】図７（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の手法により生成される影の画像例について示す図である。
【図８】ハイライト（照光）画像を生成する手法について説明するための図である。
【図９】ハイライト画像を生成する手法について説明するための図である。
【図１０】遮りオブジェクトＯＢＳを設ける手法について説明するための図である。
【図１１】ＤＤＡの演算誤差の大きさに基づいて微少オフセット値ＯＦＳの大きさを決定する手法について説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）、（Ｃ）は、影オブジェクトをマップオブジェクト上に単純に配置した場合の問題点について説明するための図である。
【図１３】本実施形態の影オブジェクトの切り出し手法について説明するための図である。
【図１４】図１４（Ａ）、（Ｂ）は、本実施形態により生成されるゲーム画像の例である。
【図１５】光源ベクトルとオブジェクトの形状データに基づいて影オブジェクトを切り出す手法について説明するための図である。
【図１６】本実施形態の処理の詳細例について示すフローチャートである。
【図１７】本実施形態の処理の詳細例について示すフローチャートである。
【図１８】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＯＢ１  マップオブジェクト（第１のオブジェクト）
ＯＢ２  影オブジェクト（第２のオブジェクト）
ＯＢ３  影切り出し用オブジェクト（第３のオブジェクト）
ＯＢ４  移動オブジェクト（第４のオブジェクト）
ＶＰ    視点
ＯＦＳ  微少オフセット値
１００  処理部
１１０  オブジェクト空間設定部
１１２  分割部
１３０  描画部
１３２  補間部
１３４  陰面消去部
１３６  テクスチャマッピング部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画領域
１７６  テクスチャ記憶部
１７８  Ｚバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004512240.tif 000002
【図２】
0004512240.tif 000003
【図３】
0004512240.tif 000004
【図４】
0004512240.tif 000005
【図５】
0004512240.tif 000006
【図６】
0004512240.tif 000007
【図７】
0004512240.tif 000008
【図８】
0004512240.tif 000009
【図９】
0004512240.tif 000010
【図１０】
0004512240.tif 000011
【図１１】
0004512240.tif 000012
【図１２】
0004512240.tif 000013
【図１３】
0004512240.tif 000014
【図１４】
0004512240.tif 000015
【図１５】
0004512240.tif 000016
【図１６】
0004512240.tif 000017
【図１７】
0004512240.tif 000018
【図１８】
0004512240.tif 000019
【図１９】
0004512240.tif 000020