(57)【特許請求の範囲】
【請求項１】
それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成するゲーム用３次元画像処理装置であって、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別手段と、陰面頂点を光源の光線の進行方向に、予め記憶手段に格納されている距離ｋだけ移動することにより前記立体モデルに変形を与える影モデル作成手段とを備えたことを特徴とするゲーム用３次元画像処理装置。
【請求項２】
前記頂点選別手段は、各ポリゴンの各頂点の法線ベクトルと前記光源からの光線の進行方向を表わす光源ベクトルとの内積の正負値によって陽面頂点と陰面頂点とを選別するものであることを特徴とする請求項１記載のゲーム用３次元画像処理装置。
【請求項３】
前記影モデル作成手段は、移動対象の頂点を前記光源の光線の進行方向と平行に移動させることを特徴とする請求項１または２に記載のゲーム用３次元画像処理装置。
【請求項４】
前記影モデル作成手段は、陽面頂点を有する影モデルの陰面頂点が移動方向に先窄まり形状となるように、移動対象の頂点の間の距離を狭めるようにすることを特徴とする請求項１または２に記載のゲーム用３次元画像処理装置。
【請求項５】
前記影モデル作成手段は、陽面頂点を有する影モデルの陰面頂点が移動方向に膨らむ形状となるように、移動対象の頂点の間の距離を広げるようにすることを特徴とする請求項１または２に記載のゲーム用３次元画像処理装置。
【請求項６】
影モデルを構成するポリゴンを仮想カメラの視点位置の方向を向いている表面ポリゴンと仮想カメラの視点位置に対して逆方向を向いている裏面ポリゴンとに選別し、表面ポリゴンに対応する画素から裏面ポリゴンに対応する画素を除いた画素に影画像を描画する影描画手段を有することを特徴とする請求項１〜５のいずれかに記載のゲーム用３次元画像処理装置。
【請求項７】
前記立体モデルの影画像の描画結果を格納する第１記憶手段と、影モデルを除くポリゴンモデルをレンダリング処理し、描画した結果を格納する第２記憶手段と、前記第１記憶手段に格納された画像と前記第２記憶手段に格納された画像とを読み出して合成する合成処理手段とを備えたことを特徴とする請求項６に記載のゲーム用３次元画像処理装置。
【請求項８】
前記立体モデルは、擬似３次元空間上で高さ方向に移動可能なキャラクタであることを特徴とする請求項１〜７のいずれかに記載のゲーム用３次元画像処理装置。
【請求項９】
それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成する３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータに、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別処理と、陰面頂点を光源の光線の進行方向に、予め記憶手段に格納されている距離ｋだけ移動することにより前記立体モデルに変形を与える影モデル作成処理とを実行させるためのゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記頂点選別処理は、各ポリゴンの各頂点の法線ベクトルと前記光源からの光線の進行方向を表わす光源ベクトルとの内積の正負値によって陽面頂点と陰面頂点とを選別するものであることを特徴とする請求項９記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記影モデル作成処理は、移動対象の頂点を前記光源の光線の進行方向と平行に移動させることを特徴とする請求項９または１０に記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記影モデル作成処理は、陽面頂点を有する影モデルの陰面頂点が移動方向に先窄まり形状となるように、移動対象の頂点の間の距離を狭めるようにすることを特徴とする請求項９または１０に記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記影モデル作成処理は、陽面頂点を有する影モデルの陰面頂点が移動方向に膨らむ形状となるように、移動対象の頂点の間の距離を広げるようにすることを特徴とする請求項９または１０に記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
コンピュータに、影モデルを構成するポリゴンを仮想カメラの視点位置の方向を向いている表面ポリゴンと仮想カメラの視点位置に対して逆方向を向いている裏面ポリゴンとに選別し、表面ポリゴンに対応する画素から裏面ポリゴンに対応する画素を除いた画素に影画像を描画する影描画処理を実行させるための請求項９〜１３のいずれかに記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記コンピュータに、前記立体モデルの影画像の描画結果と影モデルを除くポリゴンモデルをレンダリング処理し描画した結果とを記憶しておき、記憶された２つの画像を読み出して合成する合成処理を実行させるための請求項１４に記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記立体モデルは、擬似３次元空間上で高さ方向に移動可能なキャラクタであることを特徴とする請求項９〜１５のいずれかに記載の３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
コンピュータを用いて、それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成する３次元画像処理方法であって、コンピュータが、予め記憶手段に距離ｋを格納しており、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別処理と、陰面頂点を光源の光線の進行方向に距離ｋだけ移動することにより前記立体モデルに変形を与えることによって影モデルを作成する影モデル作成処理とを実行することを特徴とするゲーム用３次元画像処理方法。
【請求項１８】
請求項１〜８のいずれかに記載の３次元画像処理装置と、画像を表示するための画像表示手段と、ゲームプログラムデータが記録されたプログラム記憶手段と、外部から操作可能な操作手段とを備え、上記３次元画像処理装置は、上記ゲームプログラムデータに従って画像表示手段に画像を表示することを特徴とするビデオゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばビデオゲーム装置などに適用される、擬似３次元空間内に配置されたモデルをレンダリング処理してモニタに表示すべく所定の画像処理を施すゲーム用３次元画像処理技術に関するものである。
【０００２】
【従来の技術】
近年、キャラクタをモニタ画面内に作成される擬似３次元上に表示するようにした種々のゲーム装置が普及している。かかるゲーム装置として、スキー、サーフィン、モータボート、スノーボード、スケートボード等を模擬したものが知られている。
【０００３】
また、地面や海面等の面上でのみ走行や滑走等をするゲーム装置に比べてより興趣を喚起するべく、地面や海面等の起伏とキャラクタの走行（または滑走）速度からキャラクタがモニタ画面内の擬似３次元空間において地面や海面等から浮上するようにした模擬ゲーム装置も考えられている。この典型が、ジャンプを要素とするスノーボードやハーフパイプ等のゲームである。
【０００４】
【発明が解決しようとする課題】
このような擬似３次元空間をキャラクタを浮上、ジャンプさせるようにしたゲーム装置では、地面や海面等にキャラクタの影が投影されるようにすると、より臨場感が高まり、興趣性に富んだゲーム装置を実現することが可能となる。
【０００５】
従って、本発明は、キャラクタの影をリアルにかつ容易に描画するゲーム用３次元画像処理方法、装置、ゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオデーム装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
請求項１記載のゲーム用３次元画像処理装置は、それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成するゲーム用３次元画像処理装置であって、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別手段と、陰面頂点を光源の光線の進行方向に、予め記憶手段に格納されている距離ｋだけ移動することにより前記立体モデルに変形を与える影モデル作成手段とを備えたことを特徴としている。上記の構成によれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となる。
【０００７】
請求項２記載のゲーム用３次元画像処理装置は、前記頂点選別手段が各ポリゴンの各頂点の法線ベクトルと前記光源からの光線の進行方向を表わす光源ベクトルとの内積の正負値によって陽面頂点と陰面頂点とを選別するものであることを特徴としている。上記の構成によれば、陽面頂点と陰面頂点との選別がベクトルの内積計算によって行なわれるため、容易に実現される。
【０００８】
請求項３記載のゲーム用３次元画像処理装置は、前記影モデル作成手段が移動対象の頂点を前記光源の光線の進行方向と平行に移動させることを特徴としている。上記の構成によれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離の変化にかかわらず、一定の大きさの影となり、光源が太陽光線のような平行光線光源である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【０００９】
請求項４記載のゲーム用３次元画像処理装置は、前記影モデル作成手段が陽面頂点を有する影モデルの陰面頂点が移動方向に先窄まり形状となるように、移動対象の頂点の間の距離を狭めるようにすることを特徴としている。上記の構成によれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離が大きくなるにつれて、地面または海面等に映る影が小さくなり、光源が棒状または面状である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【００１０】
請求項５記載のゲーム用３次元画像処理装置は、前記影モデル作成手段が陽面頂点を有する影モデルの陰面頂点が移動方向に膨らむ形状となるように、移動対象の頂点の間の距離を広げるようにすることを特徴としている。上記の構成によれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離が大きくなるにつれて、地面または海面等に映る影が大きくなり、光源が点状である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【００１１】
請求項６記載のゲーム用３次元画像処理装置は、影モデルを構成するポリゴンを仮想カメラの視点位置の方向を向いている表面ポリゴンと仮想カメラの視点位置に対して逆方向を向いている裏面ポリゴンとに選別し、表面ポリゴンに対応する画素から裏面ポリゴンに対応する画素を除いた画素に影画像を描画する影描画手段を有することを特徴としている。上記の構成によれば、影モデルにステンシル処理と呼ばれる手法を施すことによって影を描画することが容易に実現可能となる。
【００１２】
請求項７記載のゲーム用３次元画像処理装置は、影モデルを使用して前記立体モデルの影画像を描画する影描画手段と、前記立体モデルの影画像の描画結果を格納する第１記憶手段と、影モデルを除くポリゴンモデルをレンダリング処理し、描画した結果を格納する第２記憶手段と、前記第１記憶手段に格納された画像と前記第２記憶手段に格納された画像とを読み出して合成する合成処理手段とを備えたことを特徴としている。上記の構成によれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となり、その影をリアルにかつ容易に描画することが可能となる。また、第１記憶手段に格納された立体モデルの影の画像と第２記憶手段に格納された前記影以外の画像とを合成することによって、前記立体モデルの影を描写した全体画像が得られる。
【００１３】
請求項８記載のゲーム用３次元画像処理装置は、前記立体モデルが擬似３次元空間上で高さ方向に移動可能なキャラクタであることを特徴としている。上記の構成によれば、移動キャラクタの高さ方向の動きに応じてその影が形成されるためキャラクタの動きがリアルにかつ迫力ある画像として表現される。
【００１４】
請求項９記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体は、それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成する３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータに、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別処理と、陰面頂点を光源の光線の進行方向に、予め記憶手段に格納されている距離ｋだけ移動することにより前記立体モデルに変形を与える影モデル作成処理とを実行させるためのゲーム用３次元画像処理プログラムを記録していることを特徴としている。上記のプログラムによれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となる。
【００１５】
請求項１０記載のゲーム用３次元画像処理プログラムを記録した可読記録媒体は、前記頂点選別処理が各ポリゴンの各頂点の法線ベクトルと前記光源からの光線の進行方向を表わす光源ベクトルとの内積の正負値によって陽面頂点と陰面頂点とを選別するものであることを特徴としている。上記のプログラムによれば、陽面頂点と陰面頂点との選別がベクトルの内積計算によって行なわれるため、容易に実現される。
【００１６】
請求項１１記載のゲーム用３次元画像処理プログラムを記録した可読記録媒体は、前記影モデル作成処理が移動対象の頂点を前記光源の光線の進行方向と平行に移動させることを特徴としている。上記のプログラムによれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離の変化にかかわらず、一定の大きさの影となり、光源が太陽光線のような平行光線光源である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【００１７】
請求項１２記載のゲーム用３次元画像処理プログラムを記録した可読記録媒体は、前記影モデル作成処理が陽面頂点を有する影モデルの陰面頂点が移動方向に先窄まり形状となるように、移動対象の頂点の間の距離を狭めるようにすることを特徴としている。上記のプログラムによれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離が大きくなるにつれて、地面または海面等に映る影が小さくなり、光源が棒状または面状である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【００１８】
請求項１３記載のゲーム用３次元画像処理プログラムを記録した可読記録媒体は、前記影モデル作成処理が陽面頂点を有する影モデルの陰面頂点が移動方向に膨らむ形状となるように、移動対象の頂点の間の距離を広げるようにすることを特徴としている。上記のプログラムによれば、影を表示する対象とするモデルのキャラクタが地面または海面等から浮上する距離が大きくなるにつれて、地面または海面等に映る影が大きくなり、光源が点状である場合に実際に形成される影と類似した挙動を示すためリアルで迫力ある描画が可能となる。
【００１９】
請求項１４記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータに、影モデルを構成するポリゴンを仮想カメラの視点位置の方向を向いている表面ポリゴンと仮想カメラの視点位置に対して逆方向を向いている裏面ポリゴンとに選別し、表面ポリゴンに対応する画素から裏面ポリゴンに対応する画素を除いた画素に影画像を描画する影描画処理を実行させることを特徴としている。上記のプログラムによれば、影モデルにステンシル処理と呼ばれる手法を施すことによって影を描画することが容易に実現可能となる。
【００２０】
請求項１５記載のゲーム用３次元画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体は、前記コンピュータに、前記立体モデルの影画像の描画結果と影モデルを除くポリゴンモデルをレンダリング処理し描画した結果とを記憶しておき、記憶された２つの画像を読み出して合成する合成処理を実行させることを特徴としている。上記のプログラムによれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となり、その影をリアルにかつ容易に描画することが可能となる。記憶された立体モデルの影の画像と影以外の画像とを合成することによって、前記立体モデルの影を描写した全体画像が得られる。
【００２１】
請求項１６記載のゲーム用３次元画像処理プログラムを記録した可読記録媒体は、前記立体モデルが擬似３次元空間上で高さ方向に移動可能なキャラクタであることを特徴としている。上記のプログラムによれば、移動キャラクタの高さ方向の動きに応じてその影が形成されるためキャラクタの動きがリアルにかつ迫力ある画像として表現される。
【００２２】
請求項１７記載のゲーム用３次元画像処理方法は、コンピュータを用いて、それぞれ頂点の法線ベクトルを有するポリゴンから構成された立体モデルの影モデルを作成する３次元画像処理方法であって、コンピュータが、予め記憶手段に距離ｋを格納しており、前記立体モデルを構成するポリゴンの各頂点に対し、光源方向を向いた陽面頂点と光源とは逆向きの陰面頂点とに選別する頂点選別処理と、陰面頂点を光源の光線の進行方向に距離ｋだけ移動することにより前記立体モデルに変形を与えることによって影モデルを作成する影モデル作成処理とを実行することを特徴としている。上記の方法によれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となる。
【００２３】
請求項１８記載のビデオゲーム装置は、請求項１〜８のいずれかに記載のゲーム用３次元画像処理装置と、画像を表示するための画像表示手段と、ゲームプログラムデータが記録されたプログラム記憶手段と、外部から操作可能な操作手段とを備え、上記ゲーム用３次元画像処理装置は、上記ゲームプログラムデータに従って画像表示手段に画像を表示することを特徴としている。上記の方法によれば、影をリアルにかつ容易に描画することが可能なビデオゲーム装置が実現可能となる。
【００２４】
【発明の実施の形態】
図１は、本発明に係るビデオゲーム装置の一実施形態を示すブロック構成図である。このゲーム装置１は、ゲーム装置本体と、ゲームの画像を出力するためのテレビジョンモニタ２と、ゲームでの効果音等を出力するための増幅回路３及びスピーカ４と、画像、音源及びプログラムデータからなるゲームデータの記録された記録媒体５とからなる。記録媒体５は、例えば上記ゲームデータやオペレーティングシステムのプログラムデータの記憶されたＲＯＭ等がプラスチックケースに収納された、いわゆるＲＯＭカセットや、光ディスク、フレキシブルディスク等であるが、ゲーム装置１の態様によっては、内蔵式のＲＯＭ等でもよい。
【００２５】
ゲーム装置本体は、ＣＰＵ６にアドレスバス、データバス及びコントロールバスからなるバス７が接続され、このバス７に、ＲＡＭ８、インターフェース回路９、インターフェース回路１０、信号処理プロセッサ１１、画像処理プロセッサ１２、インターフェース回路１３、インターフェース回路１４がそれぞれ接続され、インターフェース回路１０に操作情報インターフェース回路１５を介してコントローラ１６が接続され、インターフェース回路１３にＤ／Ａコンバータ１７が接続され、インターフェース回路１４にＤ／Ａコンバータ１８が接続されて構成される。
【００２６】
ＲＡＭ８、インターフェース回路９及び記録媒体５でメモリ部１９が構成され、ＣＰＵ６、信号処理プロセッサ１１及び画像処理プロセッサ１２で、ゲームの進行を制御するための制御部２０が構成され、インターフェース回路１０、操作情報インターフェース回路１５及びコントローラ１６で操作入力部２１が構成され、テレビジョンモニタ２、インターフェース回路１３及びＤ／Ａコンバータ１７で画像表示部２２が構成され、増幅回路３、スピーカ４、インターフェース回路１４及びＤ／Ａコンバータ１８で音声出力部２３が構成される。
【００２７】
信号処理プロセッサ１１は、主に擬似３次元空間上におけるキャラクタの位置等の計算、擬似３次元空間上の位置から２次元空間上での位置への変換のための計算、光源計算処理、及び各種の音源データの読み出し、合成処理を行う。
【００２８】
画像処理プロセッサ１２は、信号処理プロセッサ１１における計算結果に基づいて、ＲＡＭ８の表示エリアに描画すべき画像を構成するポリゴンを位置付ける処理、及び、これらポリゴンに対するテクスチャマッピング処理等のレンダリング処理を行う。
【００２９】
コントローラ１６は、種々のボタンを備え、ゲーム内容の選択、スタート指示、更には、主人公キャラクタに対する行動指示、方向指示等を与えるものである。
【００３０】
上記ゲーム装置１は、用途に応じてその形態が異なる。即ち、ゲーム装置１が、家庭用として構成されている場合においては、テレビジョンモニタ２、増幅回路３及びスピーカ４は、ゲーム装置本体とは別体となる。また、ゲーム装置１が、業務用として構成されている場合においては、図１に示されている構成要素はすべて一体型となっている１つの筐体に収納される。
【００３１】
また、ゲーム装置１が、パーソナルコンピュータやワークステーションを核として構成されている場合においては、テレビジョンモニタ２は、上記コンピュータ用のディスプレイに対応し、画像処理プロセッサ１２は、記録媒体５に記録されているゲームプログラムデータの一部若しくはコンピュータの拡張スロットに搭載される拡張ボード上のハードウェアに対応し、インターフェース回路９，１０，１３，１４、Ｄ／Ａコンバータ１７，１８、操作情報インターフェース回路１５は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウェアに対応する。また、ＲＡＭ８は、コンピュータ上のメインメモリ若しくは拡張メモリの各エリアに対応する。
【００３２】
本実施形態では、ゲーム装置１が家庭用として構成されている場合を例にして説明する。まず、ゲーム装置１の概略動作について説明する。電源スイッチ（図示省略）がオンにされ、ゲーム装置１に電源が投入されると、ＣＰＵ６が、記録媒体５に記憶されているオペレーティングシステムに基づいて、記録媒体５から画像、音源及びゲームプログラムデータを読み出す。読み出された画像、音源及びゲームプログラムデータの一部若しくは全部は、ＲＡＭ８に格納される。
【００３３】
以降、ＣＰＵ６は、ＲＡＭ８に記憶されているゲームプログラムデータ、並びにゲームプレーヤがコントローラ１６を介して指示する内容に基づいて、ゲームを進行する。即ち、ＣＰＵ６は、コントローラ１６を介してゲームプレーヤーから指示される指示内容に基づいて、適宜、描画や音声出力のためのタスクとしてのコマンドを生成する。
【００３４】
信号処理プロセッサ１１は、上記コマンドに基づいて３次元空間上（勿論、２次元空間上においても同様である）におけるキャラクタの位置等の計算、光源計算や、各種の音源データの読み出し、合成処理を行う。
【００３５】
続いて、画像処理プロセッサ１２は、上記計算結果に基づいて、ＲＡＭ８の表示エリア上に描画すべき画像データの書き込み処理等を行う。ＲＡＭ８に書き込まれた画像データは、インターフェース回路１３を介してＤ／Ａコンバータ１７に供給され、ここでアナログ映像信号にされた後にテレビジョンモニタ２に供給され、その画面上に画像として表示される。
【００３６】
一方、信号処理プロセッサ１１から出力された音データは、インターフェース回路１４を介してＤ／Ａコンバータ１８に供給され、（フィルタなどを介して）アナログ音声信号に変換された後に、増幅回路３を介して発音手段としてのスピーカ４からゲーム音として出力される。ゲーム音とは、ＢＧＭ、各種の効果音や演出音、また音声等を含んだものをいう。
【００３７】
図２は、ゲーム用３次元画像処理装置の主要部を示すブロック図である。ＲＡＭ８は、各ポリゴンの頂点座標、各頂点の法線ベクトル、面の法線ベクトル等のデータを記憶するポリゴンデータ部８０と、光源の光線の進行方向を表わすベクトルのデータを記憶する光源ベクトルデータ部８１と、仮想カメラの視線の向きを表わすベクトルのデータを記憶するカメラ視線ベクトルデータ部８２と、影モデル（シャドーボリューム）を作成する際に使用するデータを記憶する影モデル作成用データ部８３と、擬似３次元空間上に配置されたポリゴンモデルをレンダリング処理して得られる画像を格納するフレームバッファ８ａと、影モデルをステンシル処理して得られる影画像を格納するステンシルバッファ８ｂと、擬似３次元空間上での仮想カメラの視点から各画素に対応付けられたポリゴンまでの距離Ｚを格納しているＺ値データ８ｃ等とから構成されている。ここで、ポリゴンの各頂点の法線ベクトル及び面の法線ベクトル、光源ベクトル、カメラ視線ベクトルは全て正規化されているものとする。
【００３８】
ポリゴンデータ部８０は、影モデルの対象となるモデルのデータを記憶する影モデル作成対象モデルデータ部８０１等を含んでいる。影モデル作成用データ部８３は、影モデルの対象となるモデルを擬似３次元空間内に配置するための、モデルを表示位置へ平行移動する量を表わす平行移動量データ部８３１と、モデルの回転する量を表わす回転量データ部８３２と、モデルの拡大縮小を表わす拡縮量データ部８３３と、光源からの光線の当たらない各ポリゴンの頂点の集合（ここでは、陰面頂点と呼ぶ。これに対して、光源からの光線の当たるポリゴンの頂点の集合を陽面頂点と呼ぶ。）を光源ベクトルの方向にどれだけ平行移動させるかを表わす陰面平行移動データ部８３４と、陰面頂点をモデル中心を基準としてどれだけ拡縮するかを表わす陰面拡縮量データ部８３５とから構成されている。
【００３９】
信号処理プロセッサ１１は、後述する手順で影モデルを作成する影モデル作成部１１１等から構成されている。画像処理プロセッサ１２は、後述するステンシル処理と呼ばれる手順で影モデルから影画像を作成するステンシル処理部１２１と、擬似３次元空間上に配置されたポリゴンモデルをレンダリング処理して得られる画像をフレームバッファ８ａに書き込む処理や影画像をステンシルバッファ８ｂに書き込む処理を行なう描画処理部１２２と、フレームバッファ８ａに書き込まれた画像とステンシルバッファ８ｂに書き込まれた画像とを読み出して合成し、合成後の画像をフレームバッファ８ａに書き込む処理を行なう合成処理部１２３等とから構成されている。
【００４０】
図３は、擬似３次元空間内に配置されたポリゴンモデルをレンダリング処理してモニタに表示すると共に特定のポリゴンモデルについてはその影をモニタに表示すべく画像処理を施すゲーム用３次元画像処理の概要を示すフローチャートである。
【００４１】
まず、影モデル作成部１１１によって、影を表示したいポリゴンモデルの影モデルが作成される（ＳＴ１）。つぎに、ステンシル処理部１２１によって、影モデルにステンシル処理が施され影画像が作成される（ＳＴ３）。次いで、描画処理部１２２によって、影画像がステンシルバッファ８ｂに書き込まれる（ＳＴ５）。続いて、擬似３次元空間内に配置された影モデルを除く全ポリゴンモデルがレンダリング処理されて、影モデルを除くモデル全体の画像が得られる（ＳＴ７）。この後に、描画処理部１２２によって、影モデルを除くモデル全体の画像がフレームバッファ８ａに書き込まれる（ＳＴ９）。そして、合成処理部１２３によって、フレームバッファ８ａに書き込まれた画像とステンシルバッファ８ｂに書き込まれた画像とを読み出して合成し、合成後の画像がフレームバッファ８ａに書き込まれる（ＳＴ１１）。
【００４２】
以下の説明において使用するポリゴンモデルは、モデルを構成するそれぞれのポリゴンの各頂点に対応して頂点法線ベクトルデータを有しており、かつ、モデルを構成するそれぞれのポリゴンの各面に対応して面法線ベクトルデータをも有しているものとする。
【００４３】
ここで、ポリゴンモデルを擬似３次元空間に配置する際及び影モデルを作成する際等に使用する、モデル頂点の座標変換の方法について説明する。ポリゴンの各頂点の座標変換は、モデルの拡縮量、モデルの回転量、モデルの平行移動量により規定される。すなわち、ある頂点の初期の座標を（ｘ，ｙ，ｚ）から（ｘ'，ｙ'，ｚ'）に変換する場合には、数１に示す演算を行なう。
【００４４】
【数１】
0003641578.tif 000002
【００４５】
ここで、Ｍａｔは、４行４列のマトリクスである。
モデルを、Ｘ軸方向にＢｘ倍、Ｙ軸方向にＢｙ倍、Ｚ軸方向にＢｚ倍に拡縮する場合には、数１のＭａｔとして数２に示すＳＭａｔ（拡縮マトリクス）を使用すればよい。
【００４６】
【数２】
0003641578.tif 000003
【００４７】
また、モデルを、Ｘ軸を中心にＲｘ（ラジアン）、Ｙ軸を中心にＲｙ（ラジアン）、Ｚ軸を中心にＲｚ（ラジアン）だけ回転する場合には、数１のＭａｔとして数３に示すＲＭａｔ（回転マトリクス）を使用すればよい。
【００４８】
【数３】
0003641578.tif 000004
【００４９】
ここで、Ｓｒ＝ｓｉｎ（Ｒｘ）、Ｃｒ＝ｃｏｓ（Ｒｘ）
Ｓｐ＝ｓｉｎ（Ｒｙ）、Ｃｐ＝ｃｏｓ（Ｒｙ）
Ｓｈ＝ｓｉｎ（Ｒｚ）、Ｃｈ＝ｃｏｓ（Ｒｚ）
である。
【００５０】
なお、ポリゴンの頂点の法線ベクトル（あるいは面の法線ベクトル）も、モデルを回転する場合には、同様の回転処理を施す必要がある。また、モデルを、Ｘ軸方向にＴｘ、Ｙ軸方向にＴｙ、Ｚ軸方向にＴｚだけ平行移動する場合には、数１のＭａｔとして数４に示すＴＭａｔ（平行移動マトリクス）を使用すればよい。
【００５１】
【数４】
0003641578.tif 000005
【００５２】
上記の３種類の変換を同時に行なう場合には、数１のＭａｔとして、ＴＭａｔとＲＭａｔとＳＭａｔの積である数５に示すＴＲＳＭａｔを使用すればよい。
【００５３】
【数５】
0003641578.tif 000006
【００５４】
図４は、影モデルの作成手順を表わすフローチャートである。ここでは、影モデルの陰面頂点の拡縮を行なわない場合について説明する。まず、影となる対象のポリゴンの頂点法線ベクトルに回転マトリクスをかけることによって、影作成対象ポリゴンを擬似３次元空間に配置した状態での頂点法線ベクトルが求められる（ＳＴ１３）。
【００５５】
つぎに、影作成対象ポリゴンモデルの各頂点毎にＳＴ１３で求めた頂点法線ベクトルと光源ベクトルの内積が計算され（ＳＴ１５）、次いで求めた内積が"０"より大か否かの判定が行なわれる（ＳＴ１７）。
【００５６】
内積が"０"以下の場合は、その頂点は、光源からの光線が当たる頂点であり、頂点法線ベクトルに数５に示すマトリクスＴＲＳＭａｔ（これを陽面ローカルマトリクスと呼ぶ）をかけることによって、頂点が擬似３次元空間に配置される（ＳＴ１９）。つまり、影モデルの陽面頂点については、影作成対象ポリゴンを擬似３次元空間内に配置した状態と同じ位置に配置される。
【００５７】
一方、内積が"０"より大である場合は、その頂点は、光源からの光線が当たらない頂点であり、頂点法線ベクトルに数６に示すマトリクスＴＲＳＭａｔ'（これを陰面ローカルマトリクスと呼ぶ）をかけることによって、頂点が擬似３次元空間に配置される（ＳＴ２１）。
【００５８】
【数６】
0003641578.tif 000007
【００５９】
ここで、Ｔｘ'＝Ｔｘ＋ｋ×Ｌｘ
Ｔｙ'＝Ｔｙ＋ｋ×Ｌｙ
Ｔｚ'＝Ｔｚ＋ｋ×Ｌｚ
である。また、（Ｌｘ，Ｌｙ，Ｌｚ）は光源ベクトルであり、ｋは陰面平行移動量データ部８３４に格納されている陰面頂点の光源からの光線の進行方向への距離を表わす定数である。つまり、影モデルの陰面頂点については、影作成対象ポリゴンモデルを擬似３次元空間に配置した状態から光源の光線の進行方向に距離ｋだけ平行移動した位置に配置される。
【００６０】
影モデルは、ＳＴ２０で擬似３次元空間に配置された陽面頂点と、ＳＴ２１で擬似３次元空間に配置された陰面頂点とによって構成されている。
【００６１】
一方、陰面頂点を拡縮する場合は、ＳＴ２１において使用するマトリクスＴＲＳＭａｔ'の代わりに数７に示すマトリクスＴＲＳＭａｔ"を使用すればよい。
【００６２】
【数７】
0003641578.tif 000008
【００６３】
ここで、Ｂｘ'＝Ｂｘ×ＢＢｘ
Ｂｙ'＝Ｂｙ×ＢＢｙ
Ｂｚ'＝Ｂｚ×ＢＢｚ
であり、ＢＢｘ、ＢＢｙ、ＢＢｚは陰面拡縮量データ部８３５に格納されており、それぞれ、陰面をＸ軸方向、Ｙ軸方向、Ｚ軸方向に拡縮する倍率を表わしている。
【００６４】
図５は、影モデルの一例として、球状のポリゴンＭ０の影モデルを作成した図である。なお、図５（ａ）、（ｂ）、（ｃ）、（ｄ）において薄いハッチングが施されたポリゴンに含まれる頂点が陽面頂点（Ｍ０１、Ｍ１１、Ｍ２１、Ｍ３１）であり、それ以外の頂点が陰面頂点（Ｍ０２、Ｍ１２、Ｍ２２、Ｍ３２）である。また、座標軸の向きを図５の右下に示している。
【００６５】
（ａ）は、影モデルを作成する対象の球状のポリゴンＭ０である。図の光源ベクトルＶ１の向き、すなわち、右側から左側に向かって（ｘ軸の負の向きに）平行光線が当たっている。また、各頂点の法線ベクトルＶ２は、球状のポリゴンの中心から放射状に外側を向いている。光源ベクトルＶ１と頂点の法線ベクトルＶ２との内積が正の頂点、すなわち、頂点の法線ベクトルＶ２が光源ベクトルＶ１と同じ向きを向いている頂点が陰面頂点Ｍ０２であることが分かる。
【００６６】
（ｂ）は、陰面頂点Ｍ０２を拡縮しない場合の影モデルＭ１であり、（ａ）の陰面頂点Ｍ０２を光源ベクトルＶ１の向き、すなわち、ｘ軸の負の向きに平行移動することによって影モデルＭ１が作成されている。このような、影モデルＭ１を使用すると、影の投影面と影モデルＭ１の対象となるモデルＭ０との擬似３次元空間内での距離が所定値以下の場合には、その距離に関係なく一定の大きさの影が描かれる。したがって、陰面頂点の平行移動のみで作成される影モデルＭ１は、光源からの光が本例のように平行光線である場合の影の表現に適している。
【００６７】
（ｃ）は、陰面頂点Ｍ０２を縮小した場合の影モデルＭ２の一例であり、（ａ）の陰面頂点Ｍ０２をモデルの中心Ｏを基準としてｙ軸及びｚ軸の向きに縮小し、光源ベクトルＶ１の向き、すなわち、ｘ軸の負の向きに平行移動することによって影モデルＭ２が作成されている。このような、影モデルＭ２を使用すると、影の投影面と影モデルＭ２の対象となるモデルＭ０との擬似３次元空間内での距離が所定値以下の場合には、その距離が大きくなる程、描かれる影の大きさ小さくなる。したがって、陰面頂点の縮小と平行移動とによって作成される影モデルＭ２は、光源が面光源や線光源である場合の影の表現に適している。
【００６８】
（ｄ）は、陰面頂点Ｍ０２を拡大した場合の影モデルＭ３の一例であり、（ａ）の陰面頂点Ｍ０２をモデルの中心Ｏを基準としてｙ軸及びｚ軸の向きに拡大し、光源ベクトルＶ１の向き、すなわち、ｘ軸の負の向きに平行移動することによって影モデルＭ３が作成されている。このような、影モデルＭ３を使用すると、影の投影面と影モデルＭ３の対象となるモデルＭ０との擬似３次元空間内での距離が所定値以下の場合には、その距離が大きくなる程、描かれる影の大きさ大きくなる。したがって、陰面頂点の拡大と平行移動とによって作成される影モデルＭ３は、光源が点光源である場合の影の表現に適している。
【００６９】
図６は、影モデルを使用して影画像を作成するステンシル処理と呼ばれる処理の手順を示すフローチャートである。まず、影モデルを含む全ポリゴンモデルを擬似３次元空間に配置し、レンダリング処理を行なう（ＳＴ２５）。この処理によって、画面のピクセル単位に表示されるモデルのＲＧＢ値が、例えば８ビット（０〜２５５）でステンシルバッファ８ｂに書き込まれる。また、Ｚ値データ８ｃには、仮想カメラの視点から各画素に表示されたモデルまでの距離Ｚが書き込まれている。
【００７０】
次いで、ステンシルバッファ８ｂ内メモリのＲＧＢ値を全て１２８（白色を表わす）に初期化する（ＳＴ２７）。そして、影モデルを構成する各面の面法線ベクトルとカメラ視線ベクトルとの内積を計算する（ＳＴ２９）。その後、内積が"０"より大か否かの判定が行なわれる（ＳＴ３１）。
【００７１】
内積が"０"より大である面は、面法線がカメラの視点位置に対して逆方向を向いている面（表面ポリゴン）であり、この面に対応する画素のステンシルバッファ８ｂ内メモリのＲＧＢ値に、例えば"１"を減算する（ＳＴ３３）。内積が"０"以下である面は、面法線がカメラの視点位置の方向を向いている面（裏面ポリゴン）であり、この面に対応する画素のステンシルバッファ８ｂ内メモリのＲＧＢ値に、"１"を加算する（ＳＴ３５）。
【００７２】
つぎに、ステンシルバッファ８ｂ内メモリの全てのＲＧＢ値から１２８を減算する。この時、減算した結果が負の値となる場合は、"０"に置き換えられる（ＳＴ３７）。その後、ステンシルバッファ８ｂ内メモリのＲＧＢ値が"１"以上のピクセルに影を描画する（ＳＴ３９）。
【００７３】
以上の処理で、影モデルから影画像が作成される。なお、上記計算において、"１"を加算もしくは減算したが、１から１２７のいずれかの整数でよい。
【００７４】
上述のように、影が描かれる画素は、表面ポリゴンがあり、かつ、同じ画素位置に裏面ポリゴンがない画素である。ここで、影モデルは閉空間を切り取るポリゴンモデルであるから、影の投影面が無い場合には、影は描かれない。さらに、影の投影面がカメラの視点位置に対して逆方向を向いている場合にも、影は描かれない。
【００７５】
図７は、ゲレンデ表面に映るスノーボードの影の画像を影モデルにステンシル処理を施して作成した図である。（ａ）は、スノーボードＭ４の影モデルＭ４０を示す図である。ここでは、陰面頂点を縮小した場合の影モデルを採用している。
【００７６】
（ｂ）は、ゲレンデ表面Ｍ６に映ったスノーボードの影Ｍ５とゲレンデ表面Ｍ６によって切り取られた影モデルＭ４１とを示す図である。ゲレンデ表面Ｍ６によって切り取られた影モデルＭ４１において、影モデルを構成する表面ポリゴンＭ４１１があり、かつ、同じ画素位置に裏面ポリゴンＭ４１２がない画素が影Ｍ５として描画されていることが分かる。
【００７７】
なお、本発明は以下の態様をとることができる。
【００７８】
（Ａ）本実施態様においては、影となる対象のポリゴンモデルが１つである場合について説明したが、影を作成する対象のポリゴンモデルが２つ以上ある場合も同様の手順で影画像の作成が可能である。ただし、影を作成する対象のポリゴンモデルの個数分だけステンシルバッファ８ｂの領域を確保する必要がある。影を作成する対象のポリゴンモデルが多い程、画像をよりリアルにすることが可能となる。
【００７９】
（Ｂ）本実施態様においては、影となる対象のポリゴンが面の法線ベクトルと頂点の法線ベクトルとを有する場合について説明したが、少なくともいずれか一方のベクトルを有する態様であってもよい。少なくともいずれか一方のベクトルを採用することにより、影モデル作成対象モデルデータ部８０１の容量を低減することができる。ただし、下記の方法によって、影となる対象のポリゴンが有していないベクトル（面の法線ベクトルまたは頂点の法線ベクトル）を算出することができる。
【００８０】
ポリゴンの頂点の法線ベクトルは、当該頂点に隣接するポリゴンの面の法線ベクトルを加算平均することによって算出することができる。また、ポリゴンの面の法線ベクトルは、当該ポリゴンの各頂点の法線ベクトルを加算平均することによって算出することができる。
【００８１】
（Ｃ）本実施態様においては、頂点法線ベクトルと光源ベクトルとの内積が"０"の頂点を陽面頂点と判定しているが、陰面頂点と判定してもよい。この様態では陰面頂点と判定される頂点が本実施態様より増加し、異なる形状の影モデルが作成される。また、影を表示する対象のポリゴンモデルの頂点法線ベクトルの向きを変更することによって種々の形状の影モデルを作成することができる。
【００８２】
（Ｄ）本実施態様においては、影モデルの作成において陰面頂点を拡縮する場合に、モデル中心を基準として拡縮しているが、モデル中心以外の点、例えばモデル中心から光源方向に所定距離だけ移動した点等、任意の点を基準として拡縮してもよい。また、本実施態様においては、陰面頂点の拡縮倍率を全陰面頂点に共通の一定値としているが、所定の陰面頂点については拡大し、他の陰面頂点については縮小するように拡縮倍率を設定してもよい。さらに、本実施態様では、影モデル作成における陰面頂点の移動を、拡縮と平行移動によって行なっているが、擬似３次元空間上の陰面頂点毎に座標を設定する方法でもよい。これらの態様では、影が映る対象面の状態に応じて、基準点、拡縮倍率、頂点座標等の拡縮条件を決めるようにすれば、思い通りの影画像を得ることができる。
【００８３】
（Ｅ）本実施態様においては、モデルデータ等がＲＡＭ８に格納されている場合について説明したが、記憶媒体５からゲームの展開に応じてＲＡＭ８にその都度呼び出される態様であってもよい。この態様では、ＲＡＭ８の必要な容量を低減することができるという利点がある。
【００８４】
（Ｆ）本実施態様においては、ＲＧＢ値を８ビットで表わす場合について説明したが、任意のビット数でもよい。ビット数が大きい程、繊細な色調を表現することが可能である。
【００８５】
【発明の効果】
本発明によれば、影を表示する対象のポリゴンモデルのモデルデータを用いて影モデルを容易に作成することが可能となり、その影をリアルにかつ容易に描画することが可能となる。
【図面の簡単な説明】
【図１】  本発明に係るビデオゲーム装置の一実施形態を示すブロック構成図である。
【図２】  ゲーム用３次元画像処理装置の主要部を示すブロック図である。
【図３】  特定のポリゴンモデルについて、その影をモニタに表示すべく画像処理を施すゲーム用３次元画像処理の概要を示すフローチャートである。
【図４】  影モデルの作成手順を表わすフローチャートである。
【図５】  影モデルの一例として、球状のポリゴンの影モデルを作成した図である。（ａ）は、影モデルを作成する対象の球状のポリゴンである。（ｂ）は、陰面頂点を拡縮しない場合の影モデルである。（ｃ）は、陰面頂点を縮小した場合の影モデルの一例である。（ｄ）は陰面頂点を拡大した影モデルの一例である。
【図６】  影モデルを使用して影画像を作成する手順を示すフローチャートである。
【図７】  ゲレンデ表面に映るスノーボードの影の画像を影モデルにステンシル処理を施して作成した図である。（ａ）は、スノーボードの影モデルを示す図である。（ｂ）は、ゲレンデ表面に映ったスノーボードの影とゲレンデ表面によって切り取られた影モデルとを示す図である。
【符号の説明】
１１  信号処理プロセッサ
１１１  影モデル作成部
１２  画像処理プロセッサ
１２１  ステンシル処理部
１２２  描画処理部
１２３  合成処理部
１６  コントローラ
１８  Ｄ／Ａコンバータ
２  テレビジョンモニタ
３  増幅回路
４  スピーカ
５  記録媒体
６  ＣＰＵ
７  バス
８  ＲＡＭ
８１  光源ベクトルデータ部
８２  カメラ視線ベクトルデータ部
８３  影モデル作成用データ部
８３４  陰面平行移動データ部
８３５  陰面拡縮データ部
８ａ  フレームバッファ
８ｂ  ステンシルバッファ
Ｍ０  球状ポリゴン
Ｍ１、Ｍ２、Ｍ３  影モデル
Ｍ１１、Ｍ２１、Ｍ３１  陽面頂点
Ｍ１２、Ｍ２２、Ｍ３２  陰面頂点
Ｖ１  光源ベクトル
Ｖ２  頂点の法線ベクトル
【図１】
0003641578.tif 000009
【図２】
0003641578.tif 000010
【図３】
0003641578.tif 000011
【図４】
0003641578.tif 000012
【図５】
0003641578.tif 000013
【図６】
0003641578.tif 000014
【図７】
0003641578.tif 000015