(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
第１のオブジェクトの仮想的な代表点である仮想点に設定された仮想点座標系に、第２のオブジェクトの定義点の位置座標を座標変換する手段と、
座標変換後の前記第２のオブジェクトの定義点の位置座標に基づいて、仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿ったベクトルとは異なる方向を向く描画ベクトルを求める描画ベクトル演算手段と、
求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段と、
を含むことを特徴とするゲームシステム。
【請求項２】
請求項１において、
前記描画ベクトル演算手段が、
所与のマッピング方向に沿ったベクトルを第１のベクトルとし、仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿ったベクトルを第２のベクトルとした場合に、第１のベクトルと描画ベクトルのなす角度と第２のベクトルと描画ベクトルのなす角度との間に所与の関係式が成り立つ描画ベクトルを演算することを特徴とするゲームシステム。
【請求項３】
請求項１において、
前記描画ベクトル演算手段が、
座標変換後の第２のオブジェクトの定義点の位置座標と、第２のオブジェクトの定義点と仮想点との距離に基づいて、描画ベクトルを演算することを特徴とするゲームシステム。
【請求項４】
画像生成を行うゲームシステムであって、
所与のマッピング方向に沿った第１のベクトルと、第１のオブジェクトの仮想的な代表点である仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿った第２のベクトルとに基づいて、前記仮想点を含む所与の仮想面に対して垂直な方向を向き、前記第２のベクトルとは異なる方向を向く描画ベクトルを求める描画ベクトル演算手段と、
求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段と、
を含むことを特徴とするゲームシステム。
【請求項５】
請求項４におてい、
前記仮想面が、前記第１のベクトルが仮想的な入射方向を表すベクトルとなり、前記第２のベクトルが仮想的な反射方向を表すベクトルとなる面であることを特徴とするゲームシステム。
【請求項６】
コンピュータが使用可能な情報記憶媒体であって、
第１のオブジェクトの仮想的な代表点である仮想点に設定された仮想点座標系に、第２のオブジェクトの定義点の位置座標を座標変換する手段と、
座標変換後の前記第２のオブジェクトの定義点の位置座標に基づいて、仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿ったベクトルとは異なる方向を向く描画ベクトルを求める描画ベクトル演算手段と、
求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段と、
を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
【請求項７】
請求項６において、
前記描画ベクトル演算手段が、
所与のマッピング方向に沿ったベクトルを第１のベクトルとし、仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿ったベクトルを第２のベクトルとした場合に、第１のベクトルと描画ベクトルのなす角度と第２のベクトルと描画ベクトルのなす角度との間に所与の関係式が成り立つ描画ベクトルを演算することを特徴とする情報記憶媒体。
【請求項８】
請求項６において、
前記描画ベクトル演算手段が、
座標変換後の第２のオブジェクトの定義点の位置座標と、第２のオブジェクトの定義点と仮想点との距離に基づいて、描画ベクトルを演算することを特徴とする情報記憶媒体。
【請求項９】
コンピュータが使用可能な情報記憶媒体であって、
所与のマッピング方向に沿った第１のベクトルと、第１のオブジェクトの仮想的な代表点である仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿った第２のベクトルとに基づいて、前記仮想点を含む所与の仮想面に対して垂直な方向を向き、前記第２のベクトルとは異なる方向を向く描画ベクトルを求める描画ベクトル演算手段と、
求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段と、
を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
【請求項１０】
請求項９において、
前記仮想面が、前記第１のベクトルが仮想的な入射方向を表すベクトルとなり、前記第２のベクトルが仮想的な反射方向を表すベクトルとなる面であることを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、レーシングカー（オブジェクト）を操作してオブジェクト空間内で走行させ、他のプレーヤやコンピュータが操作するレーシングカーと競争することで３次元ゲームを楽しむ。
【０００３】
このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。従って、表示への周囲の環境の映り込みなどについても、リアルに表現できることが望まれる。
【０００４】
そして、このような映り込み表現（鏡面表現）を実現する手法としては例えば以下の第１、第２の手法が考えられる。
【０００５】
第１の手法（レイトレーシング）では、図１に示すように、視点（仮想カメラ）とオブジェクトＯＢ１上の点Ｐ１１、Ｐ１２、Ｐ１３・・・・とを結ぶ方向を入射方向ＤＩ１、ＤＩ２、ＤＩ３・・・・とした場合に、これらの入射方向に対応する反射方向ＲＩ１、ＲＩ２、ＲＩ３・・・を求める。そして、これらの反射方向が指す点Ｐ２１、Ｐ２２、Ｐ２３でのオブジェクトＯＢ２の画像を、オブジェクトＯＢ１の点Ｐ１１、Ｐ１２、Ｐ１３に描画することで、映り込み表現を実現する。
【０００６】
しかしながら、この第１の手法は、非常にリアルな画像を生成できるという利点を有する反面、処理負荷が非常に重くなるという不利点を有する。
【０００７】
また第２の手法では、オブジェクトから仮想カメラの方を見た時の環境を擬似的に表す環境テクスチャを予め用意しておき、この擬似的な環境テクスチャを仮想カメラの方向（仮想カメラからオブジェクトの方へと向かう方向）から単にマッピングする。
【０００８】
しかしながら、この第２の手法は、第１の手法よりも処理負荷が軽くなるとい利点を有する反面、得られる画像が単調になってしまい、リアルな映り込み表現を実現できないという不利点を有する。
【０００９】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負担でリアルな映り込み表現を実現できるゲームシステム及び情報記憶媒体を提供することにある。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、第１のオブジェクトの仮想的な代表点である仮想点に設定された仮想点座標系に、第２のオブジェクトの定義点の位置座標を座標変換する手段と、座標変換後の前記第２のオブジェクトの定義点の位置座標に基づいて、描画ベクトルを求める手段と、求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１１】
本発明によれば、仮想点座標系への座標変換後の第２のオブジェクトの定義点の位置座標に基づいて、描画ベクトルが求められ、求められた描画ベクトルに基づいて、第２のオブジェクトに対応するプリミティブ面（第２のオブジェクトの各プリミティブ面に対応するプリミティブ面）が描画領域に描画される。従って、この描画領域に描画された画像を、第１のオブジェクトの例えば環境テクスチャや光沢表現テクスチャ等として利用できるようになり、第１、第２のオブジェクト間の相対的な位置関係等に応じて変化するテクスチャを、リアルタイムに生成することなどが可能になる。
【００１２】
なお、仮想点の設定位置や、仮想点座標系の設定位置及び設定方向は任意である。
【００１３】
また第２のオブジェクトの定義点（オブジェクトの形状を定義するための点）は、第２のオブジェクトを構成するポリゴンの頂点であってもよいし、第２のオブジェクトを構成する自由曲面の制御点であってもよい。
【００１４】
また、描画ベクトルは、座標変換後の第２のオブジェクトの定義点の位置座標の他に、例えば、仮想点座標系の座標軸の方向などに基づいて、求めることができる。
【００１５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第１のオブジェクトの各面の方向を表すための、仮想点座標系での法線ベクトルを求める手段と、仮想点座標系での前記法線ベクトルにより特定されるテクスチャ座標に基づいて、前記描画領域に描画された画像を、前記第１のオブジェクトにマッピングする手段（或いは該手段を実行するためのプログラム又は処理ルーチン）とを含むことを特徴とする。
【００１６】
このようにすれば、第１、第２のオブジェクトの相対的な位置関係等に応じて変化するリアルなテクスチャを、第１のオブジェクトにマッピングすることが可能になり、これまでにないリアルな画像を少ない処理負担で生成できるようになる。
【００１７】
なお、オブジェクトの各面の方向を表すための法線ベクトルは、オブジェクトを構成するプリミティブ面の頂点に設定された法線ベクトルであってもよいし、オブジェクトを構成するプリミティブ面自体に設定された法線ベクトルであってもよい。
【００１８】
また、仮想点座標系での法線ベクトルの座標成分を直接テクスチャ座標として用いてもよいし、仮想点座標系での法線ベクトルの座標成分に加工処理を加えたものをテクスチャ座標として用いてもよい。
【００１９】
また、オブジェクトが自由曲面（プリミティブ面の１つ）により表される場合には、仮想点座標系に座標変換された制御点などに基づいて、自由曲面の接線ベクトル（傾き）を求め、得られた接線ベクトルの外積をとることで、仮想点座標系での自由曲面の法線ベクトルを求めてもよい。
【００２０】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、前記第１のオブジェクトの周囲に配置されるオブジェクトであり、前記描画領域に描画された画像が、前記第１のオブジェクトの環境テクスチャとして前記第１のオブジェクトにマッピングされることを特徴とする。
【００２１】
このようにすれば、擬似的な環境テクスチャをマッピングする手法では実現できないリアルな環境マッピングを、少ない処理負担で実現できるようになる。
【００２２】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトが、光源を擬似的に表すための光源オブジェクトであり、前記描画領域に描画された画像が、前記第１のオブジェクトの光沢表現テクスチャとして前記第１のオブジェクトにマッピングされることを特徴とする。
【００２３】
このようにすれば、あたかも忠実な光源計算を行って生成されたかのように見えるリアルな光沢表現を実現できる。
【００２４】
なお、光源オブジェクトは立体形状であってもよいし平面形状であってもよい。
【００２５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記光源オブジェクトとして、複数の第１〜第Ｎの光源オブジェクトが用意され、前記第１〜第Ｎの光源オブジェクトに対応するプリミティブ面が描画された画像が、前記光沢表現テクスチャとして前記第１のオブジェクトにマッピングされることを特徴とする。
【００２６】
このようにすれば、照明モデルを用いた光源計算では処理負荷が過大になってしまい実現が困難であった複数光源による光沢表現を、少ない処理負荷で実現できるようになる。
【００２７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想点と前記光源オブジェクトとを結ぶ線に対して前記光源オブジェクトの主面が略垂直になるように、前記光源オブジェクトが配置されることを特徴とする。
【００２８】
このようにすれば、常に同一形状の光源が第１のオブジェクトに映り込むようになり、よりリアルな光沢表現を実現できるようになる。
【００２９】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想点と前記第２のオブジェクトの定義点との距離により特定される奥行き値に基づいて、前記描画領域に描画されるプリミティブ面間の陰面消去を行う手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００３０】
このようにすれば、第１のオブジェクトにマッピングされても矛盾が生じない適正な画像を、描画領域に描画できるようになる。
【００３１】
なお、仮想点と第２のオブジェクトの定義点との距離自体を直接奥行き値として用いてもよいし、この距離に加工処理を加えたものを奥行き値として用いてもよい。
【００３２】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２のオブジェクトを構成するプリミティブ面のうち前記仮想点から見て裏向きであるプリミティブ面又はプリミティブ面の裏向き部分については、前記描画領域への描画を省略する手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００３３】
このようにすれば、無用なプリミティブ面（又はプリミティブ面の裏向き部分）の描画処理が行われる事態を防止でき、処理を効率化できる。
【００３４】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記描画領域への描画対象となるプリミティブ面のうち前記描画領域において裏向きであるプリミティブ面又はプリミティブ面の裏向き部分については、前記描画領域への描画を省略する手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００３５】
このようにすれば、描画されるべきではないプリミティブ面（又はプリミティブ面の裏向き部分）が描画領域に描画される事態を防止でき、矛盾の無い描画画像を得ることができる。
【００３６】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、裏向きのプリミティブ面又はプリミティブ面の裏向き部分の描画の省略により描画予定領域に生じる隙間領域を、修正する処理を行う手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００３７】
このようにして、隙間領域を修正する処理（埋める処理）を行えば、描画領域の画像を第１のオブジェクトに適正にマッピングすること等が可能になる。
【００３８】
なお、描画予定領域とは、描画ベクトルによりプリミティブ面が描画される予定の領域であり、描画領域の画像をテクスチャとして用いる場合には、テクスチャ座標により指定される可能性がある領域である。
【００３９】
また本発明は、画像生成を行うゲームシステムであって、所与のマッピング方向に沿った第１のベクトルと、第１のオブジェクトの仮想的な代表点である仮想点と第２のオブジェクトの定義点とを結ぶ方向に沿った第２のベクトルとに基づいて、前記仮想点を含む所与の仮想面に対して垂直な方向を向く描画ベクトルを求める手段と、求められた前記描画ベクトルに基づいて、前記第２のオブジェクトに対応するプリミティブ面を所与の描画領域に描画する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００４０】
本発明によれば、第１、第２のベクトルに基づいて、仮想面に対して垂直な方向を向く描画ベクトルが求められ、求められた描画ベクトルに基づいて、第２のオブジェクトに対応するプリミティブ面が描画領域に描画される。従って、この描画領域に描画された画像を、第１のオブジェクトの例えば環境テクスチャや光沢表現テクスチャ等として利用できるようになり、第１、第２のオブジェクト間の相対的な位置関係等に応じて変化するテクスチャを、リアルタイムに生成することなどが可能になる。
【００４１】
なお、マッピング方向はテクスチャ等をマッピングする方向であり、マッピング方向としては、仮想カメラの視線方向やワールド座標系での鉛直方向など、種々の方向を考えることができる。
【００４２】
また、第１のベクトルは、仮想面の入射方向に相当するベクトルとして考えることができ、第２のベクトルは、仮想面の反射方向に相当するベクトルとして考えることができる。
【００４３】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００４４】
１．構成
図２に、本実施形態のゲームシステム（画像生成システム）のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００４５】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００４６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００４７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００４８】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４９】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００５０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００５１】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００５２】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００５３】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５４】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００５５】
処理部１００は、ゲーム処理部１１０、画像生成部１３０、音生成部１５０を含む。
【００５６】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００５７】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００５８】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００５９】
なお、ゲーム処理部１１０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００６０】
ゲーム処理部１１０は移動・動作演算部１１２を含む。
【００６１】
ここで移動・動作演算部１１２は、車などのオブジェクトの移動情報（位置データ、回転角度データ）や動作情報（オブジェクトの各パーツの位置データ、回転角度データ）を演算するものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【００６２】
より具体的には、移動・動作演算部１１２は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでのオブジェクトの位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでのオブジェクトの位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００６３】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
画像生成部１３０は、仮想点座標系設定部１３２、座標変換部１３４、描画ベクトル演算部１３６、テクスチャ描画部１３８、テクスチャマッピング部１４０、陰面消去部１４２、表裏判定部１４４、隙間領域修正部１４６を含む。
【００６４】
仮想点座標系設定（作成）部１３２は、オブジェクトＯＢ１の仮想点（オブジェクトＯＢ１の仮想的な代表点）に設定された仮想点座標系を設定（作成）するための処理を行う。より具体的には、仮想点の位置やマッピング方向（視線方向等）に基づいて、ワールド座標系から仮想点座標系への変換マトリクスを求める。
【００６５】
座標変換部１３４は、オブジェクトＯＢ２の定義点（ポリゴンの頂点、自由曲面の制御点等）の位置座標を、仮想点座標系に座標変換するための処理を行う。より具体的には、オブジェクトＯＢ２の定義点の位置座標を、上記の変換マトリクスを用いてワールド座標系から仮想点座標系に座標変換する。
【００６６】
なお、座標変換部１３４は、オブジェクトＯＢ１の各面の方向を表すための法線ベクトル（定義点又は面に設定された法線ベクトル）を仮想点座標系に座標変換したりするための処理も行う。
【００６７】
また、オブジェクトＯＢ１が自由曲面により表される場合には、座標変換部１３４が、自由曲面の制御点を仮想点座標系に座標変換し、仮想点座標系での制御点などに基づいて、仮想点座標系での法線ベクトルを求めるようにしてもよい。
【００６８】
描画ベクトル演算部１３６は、座標変換後のオブジェクトＯＢ２の定義点の位置座標に基づいて、描画ベクトル（仮想法線ベクトル）を求めるための処理を行う。より具体的には、マッピング方向と、仮想点及びオブジェクトＯＢ２の定義点を結ぶ方向との中間方向を求め、その中間方向を向く単位ベクトルを、描画ベクトルとして求める。
【００６９】
テクスチャ描画部１３８は、求められた描画ベクトルに基づいて、オブジェクトＯＢ２に対応するプリミティブ面（ポリゴン、自由曲面）を、所与の描画領域（例えばテクスチャ領域１７４）に描画するための処理を行う。これにより、オブジェクトＯＢ１にマッピングされる環境テクスチャや光沢表現テクスチャなどのテクスチャを生成できるようになる。
【００７０】
テクスチャマッピング部１４０は、オブジェクトＯＢ１の仮想点座標系での法線ベクトルに基づいて、テクスチャ座標を求め、求められたテクスチャ座標に基づいて、テクスチャ（描画領域に描画された画像）を、オブジェクトＯＢ１にマッピングするための処理を行う。これにより、テクスチャ描画部１３８により生成された環境テクスチャや光沢表現テクスチャがオブジェクトＯＢ１にマッピングされ、オブジェクトＯＢ１の環境マッピングや光沢表現を実現できるようになる。
【００７１】
陰面消去部１４２は、Ｚ値（奥行き値）が格納されるＺバッファ（Ｚプレーン）１７６を用いて、Ｚバッファ法のアルゴリズムにしたがった陰面消去を行う。但し、視点からの距離に応じてプリミティブ面をソーティングし、視点から遠い順にプリミティブ面を描画する奥行きソート法（Ｚソート法）などにより陰面消去を行ってもよい。
【００７２】
この場合に本実施形態の陰面消去部１４２は、仮想点とオブジェクトＯＢ２の定義点との距離により特定されるＺ値（奥行き値）に基づいて、描画領域（テクスチャ領域１７４）に描画されるプリミティブ面間の陰面消去を行うようにしている。このようにすることで、オブジェクトＯＢ１にマッピングされても矛盾が生じない適正なテクスチャ（環境テクスチャ、光沢表現テクスチャ等）を生成できるようになる。
【００７３】
表裏判定部１４４は、オブジェクトＯＢ２を構成するプリミティブ面が、仮想点から見て裏向きになっているか否か（プリミティブ面が自由曲面の場合には、プリミティブ面の裏向き部分か否か）を判定する。そして裏向きであった場合（裏向き部分であった場合）には、そのプリミティブ面（その裏向き部分）の描画を省略するための処理を行う。
【００７４】
また表裏判定部１４４は、描画領域に描画されるプリミティブ面が描画領域において裏向きになっているか否か（自由曲面の場合には裏向き部分か否か）も判定する。そして、裏向きであった場合（裏向き部分であった場合）には、そのプリミティブ面（その裏向き部分）の描画を省略するための処理を行う。
【００７５】
隙間領域修正部１４６は、裏向きのプリミティブ面（プリミティブ面の裏向き部分）の描画の省略により描画予定領域に隙間領域が生じる場合に、その隙間領域が生じないようにするための修正処理を行う。より具体的には、描画領域へのプリミティブ面の描画時に、そのプリミティブ面の描画座標のスケーリング等を行うことで、隙間領域を埋める。
【００７６】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７７】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００７８】
２．本実施形態の特徴
２．１  環境テクスチャのリアルタイム生成
本実施形態では図３のＡ１に示すように、オブジェクトＯＢ１の仮想点Ｐ（代表点）に対して仮想点座標系（ＸＰ、ＹＰ、ＺＰ）を設定する。
【００７９】
そして、図３のＡ２、Ａ３、Ａ４に示すようにオブジェクトＯＢ２の定義点（頂点、制御点）Ｓ１、Ｓ２、Ｓ３・・・・の位置座標を、ワールド座標系（ＸＷ、ＹＷ、ＺＷ）から仮想点座標系（ＸＰ、ＹＰ、ＺＰ）に座標変換し、座標変換後の定義点の位置座標に基づいて、描画ベクトルＮを求める。
【００８０】
次に、図３のＡ５に示すように、求められた描画ベクトルＮに基づいて、描画領域（テクスチャ領域Ｕ、Ｖ）に、オブジェクトＯＢ２に対応するプリミティブ面（ポリゴン、自由曲面）を順次描画して行き、オブジェクトＯＢ１の環境テクスチャをリアルタイムに生成する。
【００８１】
そして、図４に示すように、オブジェクトＯＢ１の定義点（或いはＯＢ１の面）に設定された法線ベクトルＮＳを、仮想点座標系（ＸＰ、ＹＰ、ＺＰ）に座標変換する（広義には、仮想点座標系での法線ベクトルを求める）。そして、仮想点座標系での法線ベクトルＮＳに基づき特定されるテクスチャ座標（Ｕ、Ｖ）に基づいて、描画領域に描画された画像を、オブジェクトＯＢ１にテクスチャマッピングする。このようにすることで、オブジェクトＯＢ１の周りの環境（オブジェクトＯＢ２の画像等）を、オブジェクトＯＢ１に映し込むことができ、少ない処理負担でリアルな映り込み表現を実現できる。
【００８２】
なお、オブジェクトＯＢ１が自由曲面により表される場合には、例えば、自由曲面の制御点を仮想点座標系に座標変換し、仮想点座標系での制御点などに基づいて自由曲面の第１、第２の方向での接線（傾き）ベクトルを求める。そして、得られた接線ベクトルの外積をとることで、自由曲面の仮想点座標系での法線ベクトルを求めることができる。
【００８３】
例えば図１で説明した第１の手法では、リアルタイムに変化する周囲の環境がオブジェクトに映り込むようになるため、高品質な映り込み表現を実現できる。
【００８４】
しかしながら、この第１の手法では、オブジェクトＯＢ１上の全ての点（ドット）Ｐ１１、Ｐ１２、Ｐ１３・・・について、反射方向ＲＩ１、ＲＩ２、ＲＩ３を求めたり、これらの反射方向が指す点Ｐ２１、Ｐ２２、Ｐ２３でのオブジェクトＯＢ２の画像を、点Ｐ１１、Ｐ１２、Ｐ１３に描画したりするなどの処理が必要になる。従って、ゲームシステムの処理負荷が非常に重くなり、１フレーム（例えば１／６０秒）内に全画面の描画を完了するというリアルタイム処理の実現が困難になる。
【００８５】
これに対して、本実施形態では、オブジェクトＯＢ２の定義点（頂点）の個数分だけ、描画ベクトルを求める処理を行えば済む。従って、図１の第１の手法に比べて、処理負荷を大幅に軽減できる。
【００８６】
しかも、本実施形態によれば、オブジェクトＯＢ１、ＯＢ２間の相対的な位置関係や仮想カメラ１０の位置や方向などに応じて変化する高品質な環境テクスチャが、リアルタイムに生成され、オブジェクトＯＢ１にマッピングされる。
【００８７】
従って、予め用意された擬似的な環境テクスチャをオブジェクトＯＢ１にマッピングする前述の第２の手法に比べて、格段にリアルで多様な映り込み表現を実現できるようになる。
【００８８】
なお、図３に示す仮想点座標系（ＸＰ、ＹＰ、ＺＰ）は、仮想点Ｐの位置やマッピング方向（仮想カメラ１０の視線方向）などにより特定されている。即ち、図３では、ＺＰ軸はマッピング方向に沿った軸になっており、ＸＰ軸、ＹＰ軸は、ＺＰ軸に直交する軸（視点座標系のＸ軸、Ｙ軸）になっている。
【００８９】
しかしながら、本実施形態における仮想点座標系の設定手法は図３の手法に限定されない。例えば、マッピング方向（ＺＰ軸の方向）の向きは任意であり、例えばワールド座標系（ＸＷ、ＹＷ、ＺＷ）における鉛直方向をマッピング方向に設定してもよい。
【００９０】
さて、描画ベクトルＮ（仮想法線ベクトル）は、図５に示すような手法により求めることが望ましい。
【００９１】
例えば、テクスチャのマッピング方向（仮想カメラ１０の視線方向、ワールド座標系での鉛直方向等）に沿ったベクトルをＶＣ（第１のベクトル）とし、仮想点ＰとオブジェクトＯＢ２の定義点Ｓとを結ぶ方向に沿ったベクトルをＶＴ（第２のベクトル）とする。このベクトルＶＣは、仮想面ＳＶに対する仮想的な入射方向（入射方向と逆方向）を表すベクトルであり、ベクトルＶＴは、仮想面ＳＶに対する仮想的な反射方向を表すベクトルである。
【００９２】
この場合に本実施形態では、ベクトルＶＣとＶＴに基づいて、仮想点Ｐを含む仮想面ＳＶに対して垂直な方向を向く描画ベクトルＮ（仮想法線ベクトル）を求めている。即ち、ベクトルＶＣ（入射方向に沿ったベクトル）の方向とベクトルＶＴ（反射方向に沿ったベクトル）の方向の中間方向（θ１＝θ２）を向く単位ベクトルを、描画ベクトルＮとして求めている。
【００９３】
そして図３のＡ５に示すように、環境テクスチャは、この描画ベクトルＮに基づいて描画領域に描画される。例えば、図５の定義点Ｓでの画像は、描画ベクトルＮが指す位置に描画されるようになる。
【００９４】
このような描画ベクトルＮを用いて環境テクスチャを生成することで、オブジェクトＯＢ１、ＯＢ２間の相対的な位置関係などに応じて変化するリアルな環境テクスチャを生成できるようになる。
【００９５】
なお、図５では、ベクトルＶＣと描画ベクトルＮとのなす角度θ１と、ベクトルＶＴと描画ベクトルＮとのなす角度θ２とが等しくなるという条件で、描画ベクトルＮを求めている。しかしながら、θ１とθ２を常に等しくする必要性はなく、例えばオブジェクトの表面の屈折率などを考慮して、θ１とθ２との間に所与の関係式θ１＝Ｆ（θ２）が成立するという条件で、描画ベクトルＮを求めてもよい。
【００９６】
図６（Ａ）に、本実施形態によりリアルタイムに生成された環境テクスチャの例を示し、図６（Ｂ）に、この環境テクスチャがマッピングされたオブジェクトＯＢ１が描かれたゲーム画像の例を示す。
【００９７】
図６（Ａ）は、オブジェクトＯＢ１を正面方向（マッピング方向）から見た場合に生成される環境テクスチャの例であり、図６（Ｂ）では、この環境テクスチャが正面方向からオブジェクトＯＢ１に対してマッピングされている。
【００９８】
また図７（Ａ）に、本実施形態によりリアルタイムに生成された環境テクスチャの例を示し、図７（Ｂ）に、この環境テクスチャがマッピングされたオブジェクトＯＢ１が描かれたゲーム画像の例を示す。
【００９９】
図７（Ａ）は、オブジェクトＯＢ１を斜め方向（マッピング方向）から見た場合に生成される環境テクスチャの例であり、図７（Ｂ）では、この環境テクスチャが斜め方向からオブジェクトＯＢ１に対してマッピングされている。
【０１００】
図６（Ｂ）、図７（Ｂ）から明らかなように、本実施形態によれば、オブジェクトＯＢ１をどの方向から見た場合にも、オブジェクトＯＢ１の周囲の環境が矛盾なくオブジェクトＯＢ１に映り込むようになり、リアルな環境マッピングを実現できる。
【０１０１】
２．２  光沢表現テクスチャ
本実施形態によれば、環境テクスチャ以外にも、種々のテクスチャをリアルタイムに生成できる。
【０１０２】
例えば図８（Ａ）では、光源を擬似的に表すための複数の光源オブジェクトＯＢ２１、ＯＢ２２、ＯＢ２３が用意されている（オブジェクト空間内に配置されている）。
【０１０３】
そして、図３で説明した手法を用いて、これらの光源オブジェクトＯＢ２１、ＯＢ２２、ＯＢ２３に対応するプリミティブ面を描画領域（テクスチャ領域）に描画することで、オブジェクトＯＢ１の光沢表現（スペキュラ）テクスチャがリアルタイムに生成される。
【０１０４】
より具体的には、光源オブジェクトＯＢ２１、ＯＢ２２、ＯＢ２３の定義点の位置座標を、ワールド座標系から仮想点座標系に座標変換し、座標変換後の定義点の位置座標に基づいて、描画ベクトルを求める。そして、求められた描画ベクトルに基づいて、描画領域に、光源オブジェクトＯＢ２１、ＯＢ２２、ＯＢ２３に対応するプリミティブ面（ポリゴン、自由曲面）を順次描画して行き、オブジェクトＯＢ１の光沢表現テクスチャをリアルタイムに生成する。
【０１０５】
そして、オブジェクトＯＢ１の仮想点座標系での法線ベクトルを求め、得られた仮想点座標系での法線ベクトルに基づき特定されるテクスチャ座標に基づいて、光沢表現テクスチャをオブジェクトＯＢ１にマッピングする。
【０１０６】
このようにすることで、あたかも、光源オブジェクトＯＢ２１、ＯＢ２２、ＯＢ２３からの光によりオブジェクトＯＢ１の表面に光沢が生じたかのように見える画像を生成できる。
【０１０７】
例えば、複数光源によるオブジェクトの光沢（ハイライト）表現を、照明モデルを用いた光源計算により忠実に実現しようとすると、ゲームシステムの処理負荷が過大になってしまう。
【０１０８】
本実施形態によれば、図３、図８（Ａ）の手法で生成された光沢表現テクスチャをオブジェクトにマッピングするだけで、複数光源によるオブジェクトの光沢表現を実現できる。そして、光源の数が増えても、光沢表現テクスチャの生成処理の負荷が若干増加するだけであり、全体の処理負荷はそれほど増加しない。従って、本実施形態によれば、少ない処理負担で、よりリアルなオブジェクトの光沢表現を実現できるようになる。
【０１０９】
なお、光源オブジェクトは、球のような立体形状の物であってもよいし、平面形状の物であってもよい。平面形状の光源オブジェクトを採用する場合には、図８（Ｂ）に示すように、仮想点Ｐと光源オブジェクトＯＢ２１とを結ぶ線に対して、光源オブジェクトＯＢ２１の主面が略垂直になるように、光源オブジェクトＯＢ２１を配置することが望ましい。このようにすれば、オブジェクトＯＢ１と光源オブジェクトＯＢ２１との相対的な位置関係が変化した場合にも、仮想点Ｐから見て光源オブジェクトＯＢ２１が常に同一形状（例えば円）に見えるようになる。従って、常に同一形状の光源がオブジェクトＯＢ１に映り込むようになり、よりリアルな光沢表現を実現できるようになる。
【０１１０】
２．３  陰面消去
さて、図３で説明した手法により、オブジェクトＯＢ２に対応するプリミティブ面を描画領域（テクスチャ領域）に描画する場合には、プリミティブ面間の陰面消去が必要になる。
【０１１１】
そこで本実施形態では、図９に示すように、オブジェクトＯＢ１の仮想点ＰとオブジェクトＯＢ２の定義点Ｓ１、Ｓ２、Ｓ３・・・との距離Ｌ１、Ｌ２、Ｌ３を、陰面消去のための奥行き値Ｚ１、Ｚ２、Ｚ３として設定している。そして、これらの奥行き値Ｚ１、Ｚ２、Ｚ３に基づいて、描画領域に描画されるプリミティブ面間の陰面消去を行っている。
【０１１２】
このようにすることで、描画領域上のプリミティブ面の適正な陰面消去が可能になり、矛盾の無い環境テクスチャ（光沢表現テクスチャ）を生成できるようになる。
【０１１３】
なお、仮想点ＰとオブジェクトＯＢ２の定義点Ｓ１、Ｓ２、Ｓ３との距離Ｌ１、Ｌ２、Ｌ３そのものを、奥行き値Ｚ１、Ｚ２、Ｚ３に設定してもよいし、距離Ｌ１、Ｌ２、Ｌ３に加工を加えたものを、奥行き値Ｚ１、Ｚ２、Ｚ３に設定してもよい。
【０１１４】
２．４  裏向きのプリミティブ面の描画省略
さて、本実施形態では裏向きのプリミティブ面（自由曲面の場合は裏向き部分）の描画を省略するカリング（Culling)処理として、２種類のカリング処理を行っている。
【０１１５】
第１のカリング処理では、図１０に示すように、オブジェクトＯＢ２を構成するプリミティブ面のうち、仮想点Ｐから見て裏向きであるプリミティブ面（自由曲面の場合は、プリミティブ面の裏向き部分）については、描画領域（テクスチャ領域）への描画（図３のＡ５参照）を省略する。このようにすることで、プリミティブ面の無駄な描画処理が行われる事態が防止され、環境テクスチャ（光沢表現テクスチャ）の生成処理を効率化できる。
【０１１６】
また、第２のカリング処理では、描画領域への描画対象となるプリミティブ面のうち、描画領域において裏向きであるプリミティブ面（自由曲面の場合は、プリミティブ面の裏向き部分）については、描画領域への描画を省略している。
【０１１７】
例えば、図１１（Ａ）のようにオブジェクトＯＢ１を正面方向から見た場合に、生成される環境テクスチャは図１１（Ｂ）のようになり、この環境テクスチャが正面方向からオブジェクトＯＢ１にマッピングされる。
【０１１８】
この場合に、プリミティブ面Ｓ１-Ｓ２-Ｓ３-Ｓ４については、描画領域に描画しても問題ないが、プリミティブ面Ｓ５-Ｓ６-Ｓ７-Ｓ８が描画されてしまうと、プリミティブ面Ｓ１-Ｓ２-Ｓ３-Ｓ４の上にプリミティブ面Ｓ５-Ｓ６-Ｓ７-Ｓ８が重ね書きされてしまうことになり、正しい環境テクスチャを生成できなくなる。
【０１１９】
即ち、仮想点Ｐと定義点Ｓ５、Ｓ６、Ｓ７又はＳ８を結ぶ方向は仮想的な反射方向に相当する（図５参照）。しかしながら、このような仮想点Ｐと定義点Ｓ５、Ｓ６、Ｓ７又はＳ８を結ぶ反射方向は、現実にはあり得ない反射方向であり、プリミティブ面Ｓ５-Ｓ６-Ｓ７-Ｓ８については、その描画を省略すべきである。
【０１２０】
そこで本実施形態の第２のカリング処理では、プリミティブ面Ｓ１-Ｓ２-Ｓ３-Ｓ４については、表向きのプリミティブ面であるとして描画する一方で、プリミティブ面Ｓ５-Ｓ６-Ｓ７-Ｓ８については、裏向きのプリミティブ面であるとして描画しないようにしている。このようにすることで、矛盾の無い環境テクスチャを生成できるようになる。
【０１２１】
２．５  隙間領域の修正
さて、上記のような第２のカリング処理を行った場合に、次のような問題が発生することが判明した。
【０１２２】
即ち、第２のカリング処理によりカリングされるプリミティブ面の大きさが十分に小さければ問題は発生しないが、カリングされるプリミティブ面が十分に小さくない場合には、生成される環境テクスチャに対して図１２に示すように隙間領域（プリミティブ面が描画されない領域）２０、２２、２４、２６が生じてしまう。
【０１２３】
例えば図１２において、四角形３０の内接円３２の内側領域が環境マッピングの際に使用される領域である。従って、この内接円３２の内側領域に隙間領域２０、２２、２４、２６が発生してしまうと、適正な環境マッピングを実現できない。
【０１２４】
そこで、本実施形態では、裏向きのプリミティブ面（自由曲面の場合は、プリミティブ面の裏向き部分）の描画を省略するカリング処理により描画予定領域（描画ベクトルによりプリミティブ面が描画される予定の領域であり、具体的には内接円３２の内側領域）に生じる隙間領域２０、２２、２４、２６を、修正するための処理を行っている。
【０１２５】
より具体的には、図１２に示すように、描画領域でのプリミティブ面の定義点（頂点）と内接円３２の中心点３４との距離（描画ベクトルのＸＹ平面上での長さ）が所与のしきい値ＲＬよりも長いか否かを判断する。そして、そして、中心点３４からの距離がＲＬよりも長い定義点（例えば３６）については、中心点３４から遠ざけるようにスケーリング処理を行う（描画ベクトルのＸ成分、Ｙ成分をスケーリングする）。
【０１２６】
このようにすることで、図１３に示すように、描画予定領域（内接円３２の内側領域）に隙間領域が生じなくなり、適正な環境テクスチャを生成できるようになる。
【０１２７】
なお、隙間領域の修正手法は図１２、図１３で説明した手法に限定されず、種々の変形実施が可能である。例えば、描画領域（テクスチャ領域）の全てのプリミティブ面の全ての定義点を、中心点から遠ざけるようにスケーリングしてもよい。
【０１２８】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１４、図１５、図１６のフローチャートを用いて説明する。
【０１２９】
図１４は、環境テクスチャ（光沢表現テクスチャ）の生成処理に関するフローチャートである。
【０１３０】
まず、図３で説明したようにオブジェクトＯＢ１に設定された仮想点Ｐの位置とマッピング方向（例えば視線方向）とに基づいて、ワールド座標系（ＸＷ、ＹＷ、ＺＷ）から仮想点座標系（ＸＰ、ＹＰ、ＺＰ）への変換マトリクスＭを求める（ステップＳＰ１）。
【０１３１】
より具体的には、図１７においてＰ、Ｃ、Ａ、Ｂは、
Ｐ＝Ｐｘ、Ｐｙ、Ｐｚ：ワールド座標系での仮想点Ｐの位置
Ｃ＝Ｃｘ、Ｃｙ、Ｃｚ：マッピング方向を向くワールド座標系の単位ベクトル
Ａ＝Ａｘ、Ａｙ、Ａｚ：Ｃに垂直なワールド座標系の単位ベクトル
Ｂ＝Ｂｘ、Ｂｙ、Ｂｚ：Ｃ、Ａに垂直なワールド座標系の単位ベクトル
となっている。
【０１３２】
この場合に、変換マトリクスＭ（要素Ｍ００〜Ｍ３３）は下式（３）のようにして計算できる（なお、以下において「*」は乗算を意味する）。
【０１３３】
【数１】
0004480322.tif 000002
【０１３４】
次に、オブジェクトＯＢ２を構成するポリゴンの頂点のワールド座標系での位置Ｓ（Ｓｘ、Ｓｙ、Ｓｚ）を、仮想点座標系での位置Ｔ（Ｔｘ、Ｔｙ、Ｔｚ）に上記の変換マトリクスＭを用いて座標変換する（ステップＳＰ２）。
【０１３５】
具体的には下式（４）に示すような計算を行う。
【０１３６】
【数２】
0004480322.tif 000003
【０１３７】
次に、図１０で説明したように、仮想点Ｐから見てオブジェクトＯＢ２を構成するポリゴンが裏向きか否かを判断する（ステップＳＰ３）。
【０１３８】
具体的には図１８（Ａ）において、オブジェクトＯＢ２を構成するポリゴン５０の第１、第２、第３の頂点の仮想点座標系での位置をＴ１（Ｔ１ｘ、Ｔ１ｙ、Ｔ１ｚ）、Ｔ２（Ｔ２ｘ、Ｔ２ｙ、Ｔ２ｚ）、Ｔ３（Ｔ３ｘ、Ｔ３ｙ、Ｔ３ｚ）とする。また、Ｔ１からＴ２に向かうベクトルをＶＴ１２、Ｔ１からＴ３に向かうベクトルをＶＴ１３、ＰからＴ１に向かうベクトルをＶＰＴ（＝Ｔ１）とする。
【０１３９】
すると、表裏判定パラメータＩ１は下式（５）のように計算される。なお、下式において「×」は外積、「・」は内積を表す。
【０１４０】
0004480322.tif 000004
このＩ１の符号（正か負か）を調べることで、ポリゴン５０が仮想点Ｐから見て裏向きか否かを判断できる。
【０１４１】
そして、このＩの符号に基づいて、仮想点Ｐから見てポリゴンが裏向きであると判断された場合には、以降のステップＳＰ４〜ＳＰ１０の処理を省略する。一方、ポリゴンが裏向きではないと判断された場合には、図９で説明したように、仮想点Ｐとポリゴンの各頂点との距離Ｌを求める（ステップＳＰ４）。
【０１４２】
具体的には距離Ｌは下式（６）のように計算される。
【０１４３】
Ｌ＝（Ｔｘ2＋Ｔｙ2＋Ｔｚ2）1/2                          （６）
次に、図１７に示すように、仮想点座標系でのマッピング方向（Ｃの方向）と、位置Ｔが示す方向との中間方向を向き（θ１＝θ２）、長さが１である、仮想点座標系の描画ベクトルＮ（Ｎｘ、Ｎｙ、Ｎｚ）を求める（ステップＳＰ５）。
【０１４４】
具体的には下式（７）のように計算される。
【０１４５】
（Ｎｘ、Ｎｙ、Ｎｚ）
＝（Ｔｘ／Ｒ３、Ｔｙ／Ｒ３、（Ｔｚ＋Ｌ）／Ｒ３）      （７）
但し、上式（７）において、
Ｒ３＝｛Ｔｘ2＋Ｔｙ2＋（Ｔｚ＋Ｌ）2｝1/2                （８）
である。
【０１４６】
次に、図１２で説明したように、描画ベクトルＮのＸＹ（ＵＶ）平面上での長さＲ２がしきい値ＲＬよりも大きいか否かを判断する（ステップＳＰ６）。
【０１４７】
ここで、
Ｒ２＝（Ｎｘ2＋Ｎｙ2）1/2                              （９）
である。
【０１４８】
Ｒ２がＲＬよりも大きい場合には、図１３で説明したように、描画予定領域の隙間領域を埋めるために描画ベクトルＮのＸ成分、Ｙ成分をスケーリングする（ステップＳＰ７）。
【０１４９】
例えば、スケーリングパラメータをＳＣとすると、描画ベクトルＮのＸ成分Ｎｘ、Ｙ成分Ｎｙは下式（１０）のようなスケーリングされる。
【０１５０】
Ｎｘ←Ｎｘ*｛１＋ＳＣ*（Ｒ２−ＲＬ）／Ｒ２｝
Ｎｙ←Ｎｙ*｛１＋ＳＣ*（Ｒ２−ＲＬ）／Ｒ２｝          （１０）
次に、描画ベクトルＮのＸ成分、Ｙ成分に基づいて、描画座標系での位置Ｑを求める（ステップＳＰ８）。
【０１５１】
具体的には位置Ｑは下式（１１）のように計算される。
【０１５２】
Ｑｘ＝（Ｎｘ*０．５＋０．５）*Ｗ
Ｑｙ＝（Ｎｙ*０．５＋０．５）*Ｈ                      （１１）
但し、
Ｗ：描画領域の幅
Ｈ：描画領域の高さ
である。
【０１５３】
次に、図１１（Ａ）、（Ｂ）で説明したように、位置Ｑにより構成されるポリゴンが裏向きか否かを判断する（ステップＳＰ９）。
【０１５４】
具体的には図１８（Ｂ）において、ポリゴン５２の第１、第２、第３の頂点の描画座標系での位置をＱ１（Ｑ１ｘ、Ｑ１ｙ）、Ｑ２（Ｑ２ｘ、Ｑ２ｙ）、Ｑ３（Ｑ３ｘ、Ｑ３ｙ）とする。また、Ｑ１からＱ２に向かうベクトルをＶＱ１２、Ｑ１からＱ３に向かうベクトルをＶＱ１３とする。
【０１５５】
すると、表裏判定パラメータＩ２は下式（１２）のように計算される。
【０１５６】
Ｉ２＝(Q2x-Q1x)*（Q3y-Q1y)-(Q2y-Q1y)*(Q3x-Q1x)        （１２）
このＩ２の符号（正か負か）を調べることで、ポリゴン５２が描画領域において裏向きか否かを判断できる。
【０１５７】
そして、Ｉ２に基づきポリゴンが裏向きであると判断された場合には、ステップＳＰ１０の描画処理が省略される。一方、裏向きではないと判断された場合には、図９で説明したように、距離ＬをＺ値とする陰面消去を行いながら、位置Ｑにより構成されるポリゴンを描画（テクスチャ）領域に描画する（ステップＳＰ１０）。
【０１５８】
次に、全てのポリゴンに対する処理を完了したか否かを判断し（ステップＳＰ１１）、完了していない場合には図１４のステップＳＰ２に戻る。
【０１５９】
図１６は、環境テクスチャ（光沢表現テクスチャ）のマッピング時の処理に関するフローチャートである。
【０１６０】
まず、図４で説明したように、オブジェクトＯＢ１を構成するポリゴンの頂点の法線ベクトルを、図１４のステップＳＰ１で作成された変換マトリクスＭを用いて仮想点座標系に座標変換する（ステップＳＰ２０）。
【０１６１】
次に、座標変換後の法線ベクトルに基づいてテクスチャ座標を求める（ステップＳＰ２１）。そして、求められたテクスチャ座標に基づいて、描画領域の画像（環境テクスチャ、光沢表現テクスチャ）をオブジェクトＯＢ１にマッピングする（ステップＳＰ２２）。
【０１６２】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１９を用いて説明する。
【０１６３】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１６４】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１６５】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１６６】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１６７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１６８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１６９】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１７０】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１７１】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１７２】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１７３】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１７４】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１７５】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１７６】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１７７】
図２０（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１７８】
図２０（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１７９】
図２０（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１８０】
なお、図２０（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１８１】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１８２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１８３】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１８４】
また、仮想点や仮想点座標系の設定手法も本実施形態で説明した手法が特に望ましいが、本発明では、これとは異なる種々の手法を採用できる。
【０１８５】
また、本実施形態では、環境テクスチャ、光沢表現テクスチャをリアルタイム生成する場合について説明したが、本発明によれば、環境テクスチャ、光沢表現テクスチャ以外のテクスチャを生成することもできる。
【０１８６】
また、本実施形態で説明した座標変換手法と数学的に等価な座標変換手法を用いる場合も、本発明の均等な範囲に含まれる。
【０１８７】
また、マッピング方向としては、仮想カメラの視線方向に限定されず、任意の方向を採用できる。
【０１８８】
また、裏向きのプリミティブ面（プリミティブ面の裏向き部分）の描画を省略する手法や、隙間領域を修正する手法も、本実施形態で説明した手法が特に望ましいが、これに限定されるものではない。
【０１８９】
また、オブジェクトにマッピングされるテクスチャは、色情報（カラーコード、インデックス番号）のテクスチャに限定されず、輝度情報、半透明情報（α値）、表面形状情報（バンプ値）、反射率情報、屈折率情報、或いは深さ情報などについてのテクスチャでもよい。
【０１９０】
また、オブジェクトが自由曲面により表される場合には、得られた自由曲面上の各点を直接描画するようにしてもよいし、得られた自由曲面上の各点が頂点に設定されたポリゴン（ポリゴンデータ）を生成し、そのポリゴンを描画するようにしてもよい。
【０１９１】
また本発明はレーシングゲーム以外にも種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１９２】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【図面の簡単な説明】
【図１】映り込み表現を実現する第１の手法について説明するための図である。
【図２】本実施形態のゲームシステムのブロック図の例である。
【図３】本実施形態による環境テクスチャの生成手法について説明するための図である。
【図４】オブジェクトへの環境テクスチャのマッピング手法について説明するための図である。
【図５】描画ベクトルを求める手法について説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、本実施形態により生成される環境テクスチャとゲーム画像の例について示す図である。
【図７】図７（Ａ）、（Ｂ）は、本実施形態により生成される環境テクスチャとゲーム画像の他の例について示す図である。
【図８】図８（Ａ）、（Ｂ）は、光沢表現テクスチャの生成手法について説明するための図である。
【図９】プリミティブ面の陰面消去の手法について説明するための図である。
【図１０】第１のカリング処理について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、第２のカリング処理について説明するための図である。
【図１２】描画予定領域に生じる隙間領域について説明するための図である。
【図１３】隙間領域の修正処理について説明するための図である。
【図１４】本実施形態の詳細な処理例について示すフローチャートである。
【図１５】本実施形態の詳細な処理例について示すフローチャートである。
【図１６】本実施形態の詳細な処理例について示すフローチャートである。
【図１７】本実施形態の詳細な処理例について説明するための図である。
【図１８】図１８（Ａ）、（Ｂ）は、ポリゴンの表裏の判定処理について説明するための図である。
【図１９】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２０】図２０（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＯＢ１  オブジェクト（第１のオブジェクト）
ＯＢ２  オブジェクト（第２のオブジェクト）
Ｐ      仮想点
Ｓ、Ｓ１、Ｓ２、Ｓ３  定義点（頂点、制御点）
ＸＰ、ＹＰ、ＺＰ  仮想点座標系
ＸＷ、ＹＷ、ＺＷ  ワールド座標系
Ｎ      描画ベクトル
１０    仮想カメラ（視点）
２０、２２、２４、２６    隙間領域
３２    内接円（描画予定領域）
１００  処理部
１１０  ゲーム処理部
１１２  移動・動作演算部
１３０  画像生成部
１３２  仮想点座標系設定部
１３４  座標変換部
１３６  描画ベクトル演算部
１３８  テクスチャ描画部
１４０  テクスチャマッピング部
１４２  陰面消去部
１４４  表裏判定部
１４６  隙間領域修正部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  フレームバッファ
１７４  テクスチャ領域
１７６  Ｚバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004480322.tif 000005
【図２】
0004480322.tif 000006
【図３】
0004480322.tif 000007
【図４】
0004480322.tif 000008
【図５】
0004480322.tif 000009
【図６】
0004480322.tif 000010
【図７】
0004480322.tif 000011
【図８】
0004480322.tif 000012
【図９】
0004480322.tif 000013
【図１０】
0004480322.tif 000014
【図１１】
0004480322.tif 000015
【図１２】
0004480322.tif 000016
【図１３】
0004480322.tif 000017
【図１４】
0004480322.tif 000018
【図１５】
0004480322.tif 000019
【図１６】
0004480322.tif 000020
【図１７】
0004480322.tif 000021
【図１８】
0004480322.tif 000022
【図１９】
0004480322.tif 000023
【図２０】
0004480322.tif 000024