(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
光源情報と法線情報とに基づいてオブジェクトの各構成点での反射ベクトルを求める手段と、
前記反射ベクトルの方向を、前記各構成点に設定された傷方向ベクトルに基づく方向に変化させて、第２の反射ベクトルを求める反射ベクトル変化手段と、
前記第２の反射ベクトルと視点情報とに基づいてオブジェクトのシェーディング演算を行うシェーディング演算手段とを含み、
前記傷方向ベクトルは、オブジェクト表面に特定方向の傷がついていると想定した場合の前記傷の方向により設定されることを特徴とするゲームシステム。
【請求項２】
請求項１において、
前記反射ベクトル変化手段が、
前記反射ベクトルを、前記傷方向ベクトルに基づく方向を定義する第２の座標系に座標変換し、前記第２の座標系において前記反射ベクトルの方向を変化させて前記第２の反射ベクトルを求め、前記第２の座標系での前記第２の反射ベクトルを前記第１の座標系に座標変換し、
前記シェーディング演算手段が、
前記第１の座標系での前記第２の反射ベクトルに基づいてオブジェクトのシェーディング演算を行うことを特徴とするゲームシステム。
【請求項３】
請求項２において、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、
前記反射ベクトル変化手段が、
前記第２の座標系での前記反射ベクトルの方向を前記第１、第２の軸のいずれかの方向に変化させて、前記第２の反射ベクトルを求めることを特徴とするゲームシステム。
【請求項４】
請求項２又は３において、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、
前記反射ベクトル変化手段が、
前記第２の座標系での前記反射ベクトルの前記第１の軸の成分を第１の係数でスケーリングすると共に、前記第２の座標系での前記反射ベクトルの前記第２の軸の成分を第２の係数でスケーリングすることで、前記第２の反射ベクトルを求めることを特徴とするゲームシステム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有し、オブジェクトが自由曲面により表される場合において、
自由曲面の各構成点での２つの接線ベクトルの方向に、前記第１、第２の軸が設定されること特徴とするゲームシステム。
【請求項６】
請求項５において、
前記２つの接線ベクトルに基づき前記法線情報となる法線ベクトルが求められ、該法線ベクトルの方向に、前記第２の座標系の第３の軸が設定されることを特徴とするゲームシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記シェーディング演算手段が、
スペキュラー表現テクスチャのテクスチャ座標を前記第２の反射ベクトルに基づいて求め、求められたテクスチャ座標に基づいて前記スペキュラー表現テクスチャをオブジェクトにマッピングすることを特徴とするゲームシステム。
【請求項８】
請求項７において、
前記シェーディング演算手段が、
前記第２の反射ベクトルの方向が視線ベクトルの方向に一致した場合に前記スペキュラー表現テクスチャに描かれたハイライト画像の中心が参照される変換を前記第２の反射ベクトルに対して施し、変換された前記第２の反射ベクトルに基づいて前記テクスチャ座標を求めることを特徴とするゲームシステム。
【請求項９】
コンピュータ読み取り可能な情報記憶媒体であって、
光源情報と法線情報とに基づいてオブジェクトの各構成点での反射ベクトルを求める手段と、
前記反射ベクトルの方向を、前記各構成点に設定された傷方向ベクトルに基づく方向に変化させて、第２の反射ベクトルを求める反射ベクトル変化手段と、
前記第２の反射ベクトルと視点情報とに基づいてオブジェクトのシェーディング演算を行うシェーディング演算手段としてコンピュータを機能させるためのプログラムを記憶し、
前記傷方向ベクトルは、オブジェクト表面に特定方向の傷がついていると想定した場合の前記傷の方向により設定されることを特徴とする情報記憶媒体。
【請求項１０】
請求項９において、
前記反射ベクトル変化手段が、
前記反射ベクトルを、前記傷方向ベクトルに基づく方向を定義する第２の座標系に座標変換し、前記第２の座標系において前記反射ベクトルの方向を変化させて前記第２の反射ベクトルを求め、前記第２の座標系での前記第２の反射ベクトルを前記第１の座標系に座標変換し、
前記シェーディング演算手段が、
前記第１の座標系での前記第２の反射ベクトルに基づいてオブジェクトのシェーディング演算を行うことを特徴とする情報記憶媒体。
【請求項１１】
請求項１０において、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、
前記反射ベクトル変化手段が、
前記第２の座標系での前記反射ベクトルの方向を前記第１、第２の軸のいずれかの方向に変化させて、前記第２の反射ベクトルを求めることを特徴とする情報記憶媒体。
【請求項１２】
請求項１０又は１１において、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、
前記反射ベクトル変化手段が、
前記第２の座標系での前記反射ベクトルの前記第１の軸の成分を第１の係数でスケーリングすると共に、前記第２の座標系での前記反射ベクトルの前記第２の軸の成分を第２の係数でスケーリングすることで、前記第２の反射ベクトルを求めることを特徴とする情報記憶媒体。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記第２の座標系が、前記傷方向ベクトルに基づく方向を表す第１の軸と該第１の軸に交差する第２の軸を有し、オブジェクトが自由曲面により表される場合において、
自由曲面の各構成点での２つの接線ベクトルの方向に、前記第１、第２の軸が設定されること特徴とする情報記憶媒体。
【請求項１４】
請求項１３において、
前記２つの接線ベクトルに基づき前記法線情報となる法線ベクトルが求められ、該法線ベクトルの方向に、前記第２の座標系の第３の軸が設定されることを特徴とする情報記憶媒体。
【請求項１５】
請求項９乃至１４のいずれかにおいて、
前記シェーディング演算手段が、
スペキュラー表現テクスチャのテクスチャ座標を前記第２の反射ベクトルに基づいて求め、求められたテクスチャ座標に基づいて前記スペキュラー表現テクスチャをオブジェクトにマッピングすることを特徴とする情報記憶媒体。
【請求項１６】
請求項１５において、
前記シェーディング演算手段が、
前記第２の反射ベクトルの方向が視線ベクトルの方向に一致した場合に前記スペキュラー表現テクスチャに描かれたハイライト画像の中心が参照される変換を前記第２の反射ベクトルに対して施し、変換された前記第２の反射ベクトルに基づいて前記テクスチャ座標を求めることを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、車（オブジェクト）を操作してオブジェクト空間内で走行させ、他のプレーヤやコンピュータが操作する車と競争することで３次元ゲームを楽しむ。
【０００３】
さて、このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルで高品質な画像を生成することが重要な技術的課題になっている。このため、オブジェクトの表面での鏡面反射（スペキュラー）についても、よりリアルに表現できることが望ましい。
【０００４】
このような鏡面反射を実現する手法とし、従来より、フォン（Phong）、ブリン（Blinn）などのモデルが知られている。しかしながら、これらのモデルはいずれも等方性反射のモデルであり、反射光の強度分布は等方的なものになっている。
【０００５】
一方、オブジェクトの表面上に一定方向の傷がある場合には、反射光がその傷に影響され、特定の方向に強く反射される現象が生じる。例えば、同心円状の傷がついてるオーディオ機器のつまみに特有の明暗パターンが見えたり、人間の髪の毛に「天使の輪」が見えたりする現象である。
【０００６】
このような特有の明暗パターンを表現するには、いわゆる異方性反射のモデルが必要になる。そして、このような異方性反射モデルの従来例については、例えば”「異方性反射モデルに関する検討」，高木・横井等，グラフィックスとＣＡＤ，11-1,1983.10.17”に開示されている。
【０００７】
例えばオブジェクト表面に図１（Ａ）に示すような傷があるとする。図１（Ａ）の点Ｐの部分を局所的に見ると、図１（Ｂ）に示すようになる。ここで、面に垂直な法線ベクトルをＮとし、傷に水平なベクトルをＵとし、傷に垂直なベクトルをＶとする。また光源ＬＳからの光源ベクトルＬの点Ｐでの反射ベクトルをＲとする。この時、反射ベクトルＲは下式（１）のようになる。
【０００８】
Ｒ＝２（Ｎ・Ｌ）Ｎ−Ｌ        （１）
一般的な反射モデルでは、上式（１）で求められた反射ベクトルＲと視線ベクトルとのなす角度に基づき鏡面反射光（スペキュラー成分）の強度（輝度）が決定される。
【０００９】
そして、鏡面反射光自体を扁平な楕円体の強度分布でモデル化したのが図２（Ａ）に示す大平のモデルである。即ち視線ベクトルＥが楕円体ＥＬＰと交わる点までの長さＤＥに基づいて鏡面反射光の強度を求める。
【００１０】
一方、図２（Ｂ）に示す高木・横井のモデルでは、ブリンの微少平面モデルに異方性を持たせ、微少平面の分布を楕円体モデルで解いている。
【００１１】
しかしながら、このような大平や高木・横井のモデルでは、楕円体モデルを用いるため、鏡面反射光の強度の計算に多大な処理時間を要する。従って、リアルタイム処理が強く要求されるゲームシステムには不向きなモデルである。
【００１２】
また、大平や高木・横井のモデルでは、スカラー量である鏡面反射光の強度が計算結果として出力される。従って、スペキュラー形状（ハイライト形状）がポリゴン形状の影響を受けて不自然な形になるという問題を、いわゆるスペキュラーマッピングの手法を利用して解決できない。
【００１３】
この場合、ノンリアルタイム処理のＣＧ（Computer Graphics）のようにピクセル単位で鏡面反射光の強度を計算すれば、上記問題を解決できるが、これは処理時間の更なる増加という問題を招く。
【００１４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、異方性反射の表現を少ない処理負担で実現できるゲームシステム及び情報記憶媒体を提供することにある。
【００１５】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、光源情報と法線情報とに基づいてオブジェクトの各構成点での反射ベクトルを求める手段と、前記反射ベクトルの方向を異方性反射の方向に変化させて、第２の反射ベクトルを求める手段と、前記第２の反射ベクトルと視点情報とに基づいてオブジェクトのシェーディング演算を行う手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１６】
本発明によれば、光源情報（例えば光源ベクトル、光源位置）と法線情報（例えば法線ベクトル、面の方向を表す情報）に基づいて、オブジェクトの各構成点（例えば頂点、プリミティブ点）での反射ベクトルが求められる。そして、この反射ベクトルを、異方性反射の方向（例えば、オブジェクトに傷等があると想定している場合には、その傷に垂直な方向）に変化させることで、第２の反射ベクトルが求められる。そして、この第２の反射ベクトルを用いて、オブジェクトのシェーディング演算が行われる。
【００１７】
このようにすることで本発明によれば、楕円体モデルを用いる従来の手法に比べて、非常に負荷の少ない演算処理で異方性反射を表現できる。従って、リアルタイム処理が要求されるゲームシステムに最適な異方性反射モデルを構築できる。
【００１８】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記反射ベクトルを、異方性反射の方向を定義する第２の座標系に座標変換し、前記第２の座標系において前記反射ベクトルの方向を変化させて前記第２の反射ベクトルを求め、前記第２の座標系での前記第２の反射ベクトルを前記第１の座標系に座標変換し、前記第１の座標系での前記第２の反射ベクトルに基づいてオブジェクトのシェーディング演算を行うことを特徴とする。
【００１９】
このようにすれば、例えば各構成点に設定された第２の座標系において、統一的な処理で反射ベクトルの方向を変化させることができるようになり、処理の簡素化を図れる。
【００２０】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２の座標系が、異方性反射の方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、前記第２の座標系での前記反射ベクトルの方向を前記第１、第２の軸のいずれかの方向に変化させて、前記第２の反射ベクトルを求めることを特徴とする。
【００２１】
このようにすれば、例えば各構成点に設定された第２の座標系において、反射ベクトルの方向を第１、第２の軸のいずれかの方向に変化させるという簡素な処理で、異方性反射を表現できる。
【００２２】
なお、オブジェクトの表面に想定される傷の方向は、第１、第２の軸のいずれの方向であってもよい。
【００２３】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２の座標系が、異方性反射の方向を表す第１の軸と該第１の軸に交差する第２の軸を有する場合において、前記第２の座標系での前記反射ベクトルの前記第１の軸の成分を第１の係数でスケーリングすると共に、前記第２の座標系での前記反射ベクトルの前記第２の軸の成分を第２の係数でスケーリングすることで、前記第２の反射ベクトルを求めることを特徴とする。
【００２４】
このようにすれば、反射ベクトルの第１、第２の軸の成分を第１、第２の係数でスケーリングするだけという簡素な処理で、第２の反射ベクトルを得ることができ、処理負荷を大幅に軽減化できる。
【００２５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２の座標系が、異方性反射の方向を表す第１の軸と該第１の軸に交差する第２の軸を有し、オブジェクトが自由曲面により表される場合において、自由曲面の各構成点での第１、第２の接線ベクトルの方向に、前記第１、第２の軸が設定されること特徴とする。
【００２６】
このようにすれば、自由曲面の各構成点での第１、第２の接線ベクトルを所与の計算式で求めるだけで、第２の座標系を設定できるようになり、第２の座標系の設定処理を簡素化できる。また法線ベクトルを得るために求める必要がある接線ベクトルを、第２の座標系の設定処理のために有効利用できるようになり、処理の効率化を図れる。
【００２７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第１、第２の接線ベクトルに基づき前記法線情報となる法線ベクトルが求められ、該法線ベクトルの方向に、前記第２の座標系の第３の軸が設定されることを特徴とする。
【００２８】
このようにすれば、この法線ベクトルを法線情報として用いて反射ベクトルを求めることができるようになると共に、この法線ベクトルを得るために求めた接線ベクトルを第２の座標系の設定処理に有効利用できるようになるため、処理の効率化を図れる。
【００２９】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、スペキュラー表現テクスチャのテクスチャ座標を前記第２の反射ベクトルに基づいて求め、求められたテクスチャ座標に基づいて前記スペキュラー表現テクスチャをオブジェクトにマッピングすることを特徴とする。
【００３０】
このようにすれば、スペキュラー形状（ハイライト形状）がプリミティブ面（ポリゴン等）の形状の影響を受けて不自然な形になるという問題を効果的に解決できるようになる。
【００３１】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記第２の反射ベクトルの方向が視線ベクトルの方向に一致した場合に前記スペキュラー表現テクスチャに描かれたハイライト画像の中心が参照される変換を前記第２の反射ベクトルに対して施し、前記テクスチャ座標を求めることを特徴とする。
【００３２】
このようにすれば、スペキュラー表現テクスチャを参照するためのテクスチャ座標を簡素な処理で求めることができるようになる。
【００３３】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３４】
１．構成
図３に、本実施形態のゲームシステム（画像生成システム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００３５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【００３６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３７】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００３８】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【００３９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４０】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００４１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４２】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４３】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００４５】
ここで、処理部１００が行うゲーム処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４６】
また、処理部１００は、上記のゲーム処理結果に基づいて例えばオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成し、表示部１９０に出力する。
【００４７】
更に、処理部１００は、上記のゲーム処理結果に基づいて各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００４８】
なお、処理部１００の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００４９】
処理部１００は、反射ベクトル演算部１１０、反射ベクトル変化部１１２、シェーディング演算部１１４、描画部１３０を含む。
【００５０】
ここで、反射ベクトル演算部１１０は、光源情報（光源位置、光源ベクトル等）と法線情報（法線ベクトル、面の方向を表す情報等）とに基づいて、オブジェクトの各構成点（頂点、プリミティブ点等）での反射ベクトルを求める。
【００５１】
反射ベクトル変化部１１２は、反射ベクトル演算部１１０で求められた反射ベクトルの方向を、異方性反射の方向（傷の方向により特定される方向）に変化させて、第２の反射ベクトルを求める。より具体的には、反射ベクトルを、第１の座標系（例えばワールド座標系）から、異方性反射の方向を定義する第２の座標系に座標変換する。次に、この第２の座標系において反射ベクトルの方向を変化させて第２の反射ベクトルを求める。そして、第２の座標系での第２の反射ベクトルを第１の座標系に座標変換して戻す。
【００５２】
シェーディング演算部１１４は、反射ベクトル変化部１１２で求められた第２の反射ベクトルと、視点情報（視点位置、視線ベクトル等）とに基づいて、オブジェクトのシェーディング演算を行う。この場合のシェーディング演算は、第２の反射ベクトルと視線ベクトルとのなす角度に基づいて鏡面反射光の強度（輝度）を求めるフォン（Phong）のモデルで実現してもよいし、物体の表面を微少平面の集合と考えるブリン（Blinn）のモデルで実現してもよい。或いは、第２の反射ベクトルに基づきテクスチャ座標を求め、このテクスチャ座標に基づきスペキュラー表現テクスチャをオブジェクトにマッピングするスペキュラーマッピングで実現してもよい。
【００５３】
描画部１３０はジオメトリ処理（座標変換、クリッピング処理、透視変換、或いは光源計算等）後のオブジェクト（１又は複数プリミティブ面）の画像を、描画領域１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できる領域）に描画する処理を行う。
【００５４】
なお、ジオメトリ処理後の描画データ（構成点に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）は、主記憶部１７２に格納される。描画部１３０は、この描画データ（ポリゴンデータ）に基づいて描画処理を行う。
【００５５】
描画部１３０が含むテクスチャマッピング部１３２は、テクスチャ記憶部１７６に記憶されるテクスチャをオブジェクトにマッピングするための処理を行う。
【００５６】
例えばスペキュラーマッピングを行う場合には、反射ベクトル変化部１１２で得られた第２の反射ベクトルに基づいてテクスチャ座標が求められ、そのテクスチャ座標がオブジェクトの各構成点（頂点）に対して付与される。そして、テクスチャマッピング部１３２は、各構成点に付与されたテクスチャ座標により指定されるスペキュラー表現テクスチャ（例えば、マッピングすべきハイライト画像が描かれたテクスチャ）をテクスチャ記憶部１７６から読み出して、オブジェクトにマッピングする。
【００５７】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５８】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００５９】
２．本実施形態の特徴
２．１  反射ベクトルの方向の変化による異方性反射の表現
異方性反射の性質を有するオブジェクトの表面には、ある特定方向に傷がついていると考えられる。この傷の存在により、オブジェクトの表面に入射された光の多くは、傷の向きに垂直な方向に反射される。従って、傷がないオブジェクトの表面での反射ベクトルの方向を、オブジェクトの表面上の傷を考慮した方向に変化させることができれば、異方性反射モデルを構築できる。
【００６０】
そこで本実施形態では、まず、図４（Ａ）に示すように、光源ＬＳからの光源ベクトルをＬとし、面に垂直な法線ベクトルをＮとした場合に、オブジェクトの各構成点（頂点、プリミティブ点等）での反射ベクトルＲを下式（２）のように求める。即ち、光源情報（Ｌ）と法線情報（Ｎ）とに基づいて反射ベクトルＲを求める。
【００６１】
Ｒ＝２（Ｎ・Ｌ）Ｎ−Ｌ        （２）
なお図４（Ａ）において、オブジェクトの表面上の傷は、Ｕ軸方向或いはＶ軸方向のいずかの方向に発生していると想定されている。
【００６２】
そして本実施形態では、上式（２）で求められた反射ベクトルＲを、図４（Ｂ）に示すように、異方性反射の方向に変化させて、反射ベクトルＲ２（第２の反射ベクトル）を得る。
【００６３】
より具体的には、傷の向きがＵ軸（第１、第２の軸の一方の軸）の方向であると想定されている場合には、図４（Ｂ）に示すように、反射ベクトルＲの方向をＶ軸の方に変化させて（回転させて）、反射ベクトルＲ２を得る。このようにすれば、オブジェクトの各構成点での反射ベクトルの方向を、傷に垂直なＶ軸の方に一律に変化させることができる。
【００６４】
一方、傷の向きがＶ軸（第１、第２の軸の他方の軸）の方向であると想定されている場合には、図４（Ｂ）とは逆に、反射ベクトルＲの方向をＵ軸の方に変化させて（回転させて）、反射ベクトルＲ２を得る。このようにすれば、オブジェクトの各構成点での反射ベクトルの方向を、傷に垂直なＵ軸の方に一律に変化させることができる。
【００６５】
そして本実施形態では、このようにして得られた反射ベクトルＲ２を用いてシェーディング演算を行い、オブジェクトの各構成点での鏡面反射光の強度（輝度）を求める。
【００６６】
例えばフォンのモデルを利用する場合には、反射ベクトルＲ２と視線ベクトルとのなす角度をθとした場合に、ＰS×ＣＯＳnθの計算を行い、鏡面反射光の強度を求める。なお、ＰSはスペキュラー係数（スペキュラー成分の最大係数）であり、ｎは累乗の係数である。ｎを変化させることでハイライトの広がり具合を制御できる。
【００６７】
また、ブリンのモデルを利用する場合には、反射ベクトルＲ２と光源ベクトルＬとの中間ベクトルを求め、この中間ベクトルと視線ベクトルとに基づいて鏡面反射光の強度を求めればよい。
【００６８】
以上のようにして鏡面反射光の強度を求めることで、本実施形態では、オブジェクトの表面での反射光の異方性反射の表現を、少ない処理負担で実現している。これにより、オーディオ機器のつまみの表面に見える特有の明暗パターン（ブラシ効果）や、人間の髪の毛に見える「天使の輪」（ヘアライン効果）などの画像を、少ない処理負担で生成できるようになる。
【００６９】
反射ベクトルの方向を変化させる処理は、より具体的には以下のような手法により実現できる。
【００７０】
（I）まず図５に示すように、上式（２）の計算に基づき、オブジェクトＯＢの各構成点（頂点）での反射ベクトルＲ（第１の反射ベクトル）をワールド座標系（ＸＷ、ＹＷ、ＺＷ）において求める。
【００７１】
（II）次に、図５のＡ１に示すように、反射ベクトルＲ（ＲＸ、ＲＹ、ＲＺ）を、ワールド座標系（第１の座標系）からＵＶＮ座標系（第２の座標系）に座標変換して、ＵＶＮ座標系での反射ベクトルＲＵＶＮ（ＲＵ、ＲＮ、ＲＶ）を得る。この座標変換は例えば下式（３）のようにして実現できる。
【００７２】
【数１】
0004518643.tif 000002
ここで、ＵＶＮ座標系のＵ軸及びＶ軸の一方の軸は、各構成点での傷の方向を表す軸であり、Ｕ軸及びＶ軸の他方の軸は上記一方の軸に直交する軸である。そして、上式（３）の（ＵＸ、ＵＹ、ＵＺ）はＵ軸方向の単位ベクトルであり、（ＶＸ、ＶＹ、ＶＺ）はＶ軸方向の単位ベクトルである。また、Ｎ軸は、法線ベクトルの方向に設定された軸であり、上式（３）の（ＮＸ、ＮＹ、ＮＺ）は、Ｎ軸方向の単位ベクトルである。
【００７３】
なお、Ｕ軸、Ｖ軸は互いに直交していなくてもよく、互いに交差する軸であればよい。また、Ｎ軸も、法線ベクトルの方向の軸でなくてもよく、Ｕ軸及びＶ軸に交差する軸であればよい。
【００７４】
（III）次に、図５のＡ２に示すように、ＵＶＮ座標系において反射ベクトルＲＵＶＮ（ＲＵ、ＲＮ、ＲＶ）の方向を変化させて、反射ベクトルＲ２ＵＶＮ（Ｒ２Ｕ、Ｒ２Ｎ、Ｒ２Ｖ）を求める。これは例えば下式（４）により求めることができる。
【００７５】
【数２】
0004518643.tif 000003
ここで、ＣＵはＵ軸成分でのスケーリング係数であり、ＣＶはＶ軸方向でのスケーリング係数である。
【００７６】
（IV）次に、図５のＡ３に示すように、反射ベクトルＲ２ＵＶＮ（Ｒ２Ｕ、Ｒ２Ｎ、Ｒ２Ｖ）を、ＵＶＮ座標系からワールド座標系に座標変換して、ワールド座標系での反射ベクトルＲ２（Ｒ２Ｘ、Ｒ２Ｙ、Ｒ２Ｚ）を求める。これは例えば下式（５）により求めることができる。
【００７７】
【数３】
0004518643.tif 000004
以上のように本実施形態では、異方性反射の方向を定義するＵＶＮ座標系を設定し、このＵＶＮ座標系において反射ベクトルＲＵＶＮを変化させて反射ベクトルＲ２ＵＶＮを求めるようにしている。このようにすれば、上式（４）のように、反射ベクトルＲＵＶＮのＵ軸成分ＲＵを係数ＣＵでスケーリングし、Ｖ軸成分ＲＶを係数ＣＶでスケーリングするだけという非常な簡素な処理で、反射ベクトルＲＵＶＮを異方性反射の方向に変化させて反射ベクトルＲ２ＵＶＮを得ることができるようになる。
【００７８】
例えば、Ｕ軸方向に傷の方向を設定する場合には、図６（Ａ）に示すように、Ｕ軸方向のスケーリング係数ＣＵを１．０よりも小さくすればよい。例えば図６（Ａ）では、ＣＵ＝０．５、ＣＶ＝２．０に設定されている。このようにすることで、反射ベクトルは、傷に垂直な方向であるＶ軸の方向に変化し、異方性反射を表現できるようになる。
【００７９】
一方、Ｖ軸方向に傷の方向を設定する場合には、図６（Ｂ）に示すように、Ｖ軸方向のスケーリング係数ＣＶを１．０よりも小さくすればよい。例えば図６（Ｂ）では、ＣＵ＝２．０、ＣＶ＝０．５に設定されている。このようにすることで、反射ベクトルは、傷に垂直な方向であるＵ軸の方向に変化し、異方性反射を表現できるようになる。
【００８０】
なお、スケーリング係数により反射ベクトルの方向を変化させる手法では、反射ベクトルの方向が象限を越えては変化しないことを前提としている。
【００８１】
また、図６（Ａ）、（Ｂ）では、スケーリング係数ＣＵ、ＣＶを用いて反射ベクトルＲＵＶＮの方向を変化させているが、ＲＵＶＮをＮ軸回りで回転させることでＲＵＶＮの方向を変化させる手法を採用してもよい。但し、この手法では、反射ベクトルを回転させる処理や、反射ベクトルの方向が象限を越えて変化しないように制御する処理が必要になるため、処理負荷が重くなるという不利点がある。
【００８２】
これに対して、スケーリング係数で反射ベクトルの方向を変化させる手法では、スケーリング係数を反射ベクトルの各成分に乗算するだけで済むと共に、反射ベクトルの方向が象限を越えて変化しないように制御する処理も不要となるため、処理負荷が非常に軽いという利点がある。
【００８３】
図７（Ａ）は、オブジェクトＯＢに対して、異方性反射の処理を行わずに通常のシェーディング処理を行った場合の生成画像例である。異方性反射の処理を行わない場合には、反射光の強度分布は等方的なものになるため、オブジェクトＯＢの表面には通常形状のハイライトが生じる。
【００８４】
図７（Ｂ）は、従来の楕円体モデルを用いて異方性反射を表現した場合の生成画像例である。図７（Ｂ）では、オブジェクトＯＢの上面に同心円状の傷があると想定されており、ブラシ効果が表現されたハイライト画像が生成されている。
【００８５】
一方、図７（Ｃ）は、本実施形態の手法により異方性反射を表現した場合の生成画像例である。図７（Ｃ）では、図６（Ａ）、（Ｂ）で説明したスケーリング係数がＣＵ＝０．５、ＣＶ＝２．０に設定されている。これにより、オブジェクトＯＢの上面に同心円状の傷がある場合に見えるブラシ効果のハイライト画像を生成できる。
【００８６】
図８（Ａ）は、従来の楕円体モデルを用いて異方性反射を表現した場合の生成画像例である。図８（Ａ）では、オブジェクトＯＢの中心から放射状に傷があると想定されており、ヘアライン効果（髪の毛の天使の輪）が表現されたハイライト画像が生成されている。
【００８７】
一方、図８（Ｂ）は、本実施形態の手法により異方性反射を表現した場合の生成画像例である。図８（Ｂ）では、スケーリング係数がＣＵ＝２．０、ＣＶ＝０．５に設定されている。これにより、オブジェクトＯＢの中心から放射状に傷がある場合に見えるヘアライン効果のハイライト画像を生成できる。
【００８８】
図９（Ａ）〜（Ｄ）、図１０（Ａ）〜（Ｄ）に、スケーリング係数ＣＵ、ＣＶを徐々に変化させた場合に本実施形態により生成されるオブジェクトＯＢの画像の例を示す。
【００８９】
図９（Ａ）では、ＣＵ＝０．５、ＣＶ＝２．０に設定されている。そして、図９（Ｂ）、（Ｃ）、（Ｄ）、図１０（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）では、ＣＵが０．２ずつ増加し、ＣＶが０．２ずつ減少している。図９（Ａ）では、ブラシ効果のハイライト画像が生成され、図１０（Ｄ）ではヘアライン効果のハイライト画像が生成される。
【００９０】
このように本実施形態によれば、スケーリング係数ＣＵ、ＣＶの値を所望の値に変化させるだけで、オブジェクトの表面上に想定する傷の方向を任意に制御でき、ブラシ効果やヘアライン効果などの多様なハイライト画像の生成に成功している。
【００９１】
２．２  自由曲面の利用
次に、オブジェクトを自由曲面で表す場合について説明する。オブジェクトを自由曲面で表すと、図５で説明したＵＶＮ座標系を簡易な処理で設定することができる。
【００９２】
自由曲面の構成点Ｐｕｖ（ｕ，ｖ）のｘ成分であるＰxｕｖ（ｕ，ｖ）は下式（６）のように求められる。
【００９３】
【数４】
0004518643.tif 000005
Ｐｕｖ（ｕ，ｖ）のｙ成分、ｚ成分についても、上式（６）と同様の式により求めることができる。
【００９４】
なお、有理化を行った場合には下式（７）のようになる。
【００９５】
【数５】
0004518643.tif 000006
上式（６）、（７）において、Ｑ00〜Ｑ33は制御点である。
【００９６】
またＮｕ0,4〜Ｎｕ3,4、Ｎｖ0,4〜Ｎｖ3,4は混ぜ合わせ関数である。これらの混ぜ合わせ関数は、下式（８）、（９）の再帰形表現の漸化式（DeBoorCoxの漸化式）と、下式（１０）のノットベクトルＴＵ、ＴＶとに基づき求めることができる。
【００９７】
【数６】
0004518643.tif 000007
【００９８】
【数７】
0004518643.tif 000008
ノットベクトルは、パラメータの節目を数値の列として与えるベクトルである。ノットベクトルのノット間隔（ノットベクトルの隣り合う要素間の数値差）が一定である場合には、ユニフォーム（Uniform）と呼ばれ、ノット間隔が一定でない場合は、ノンユニフォーム（Non Uniform）と呼ばれる。
【００９９】
ノンユニフォーム（Non Uniform）で、有理化（Rational）されたＢスプラインが、ＮＵＲＢＳ（Non Uniform Rational B-Spline）である。
【０１００】
図１１に、本実施形態により生成された曲面パッチ２０（自由曲面）の例を示す。
【０１０１】
上式（６）又は（７）から明らかなように、曲面パッチ２０の各構成点は、制御点Ｑ00〜Ｑ33と混ぜ合わせ関数Ｎｕ0,4〜Ｎｕ3,4、Ｎｖ0,4〜Ｎｖ3,4に基づき求められる。この場合、パラメータｕの変域はｕ3≦ｕ＜ｕ4となり、パラメータｖの変域はｖ3≦ｖ＜ｖ4になる。
【０１０２】
一方、曲面パッチ２２を生成する場合には、使用する制御点のセットが、Ｑ00〜Ｑ33からＱ01〜Ｑ34に変わる。そして、曲面パッチ２２の各構成点は、制御点Ｑ01〜Ｑ34と混ぜ合わせ関数Ｎｕ1,4〜Ｎｕ4,4、Ｎｖ0,4〜Ｎｖ3,4に基づき求められる。この場合、パラメータｕの変域はｕ4≦ｕ＜ｕ5となり、パラメータｖの変域はｖ3≦ｖ＜ｖ4になる。
【０１０３】
本実施形態により生成された曲面パッチ２０の各構成点は、ポリゴンの頂点に設定され、これらの頂点により構成されるポリゴンが画面上に表示されることになる。
【０１０４】
図１２に、自由曲面（ＮＵＲＢＳ）で表されたオブジェクトＯＢ（ワイヤーフレーム表示）の画像の例を示す。曲面の分割数を制御することで、オブジェクトＯＢの精密度を変化させることができる。
【０１０５】
さて、オブジェクトを自由曲面で表した場合には、曲面の接線（傾き）ベクトルを簡易に求めることができる。
【０１０６】
例えば、図１３において、構成点Ｐでのｕ方向の接線ベクトルＵＶＥＣのｘ成分は下式（１１）の計算を行うことで求めることができる。ｙ成分、ｚ成分も同様である。
【０１０７】
【数８】
0004518643.tif 000009
また、ｖ方向の接線ベクトルＶＶＥＣのｘ成分は下式（１２）の計算を行うことで求めることができる。ｙ成分、ｚ成分も同様である。
【０１０８】
【数９】
0004518643.tif 000010
なお、上式(１２)、(１３)は有理化を行わない場合の式であるが、有理化を行う場合も同様にして求めることができる。
【０１０９】
また、上式（１２）、（１３）により求められた接線ベクトルＵＶＥＣ、ＶＶＥＣの外積を計算することで、図１３に示すように、構成点Ｐでの法線ベクトルＮを求めることができる。
【０１１０】
そして、接線ベクトルＵＶＥＣの方向に図５で説明したＵＶＮ座標系のＵ軸を設定し、接線ベクトルＶＶＥＣの方向にＵＶＮ座標系のＶ軸を設定し、法線ベクトルＮの方向にＵＶＮ座標系のＮ軸を設定する。
【０１１１】
このようにすれば、オブジェクトの各構成点に対して図５に示すようなＵＶＮ座標系を設定できる。そして、この各構成点に設定されたＵＶＮ座標系において図５のＡ２に示すように反射ベクトルの方向を変化させれば、異方性反射を表現できるようになる。
【０１１２】
このように、オブジェクトを自由曲面を表した場合には、反射ベクトルを変化させるＵＶＮ座標系を、比較的簡易な処理で設定できるという利点がある。
【０１１３】
また、法線ベクトルＮを得るために求める接線ベクトルＵＶＥＣ、ＶＶＥＣを、ＵＶＮ座標系の設定処理のために有効利用できるようになり、処理の効率化を図れる。
【０１１４】
なお、オブジェクトをポリゴンで表現した場合にも、例えば以下に述べるような手法でＵＶＮ座標系を設定できる。
【０１１５】
例えば図１４（Ａ）では、オブジェクトＯＢ（ＯＢ１、ＯＢ２又はＯＢ３）のローカル座標系（ＸＬ、ＹＬ、ＺＬ）において、ＹＬ軸を中心としオブジェクトＯＢの各構成点（頂点）を通る円を想定し、この円の接線ベクトルＵＶＥＣの方向にＵ軸を設定する。そして、この接線ベクトルＵＶＥＣと各構成点に付与されている法線ベクトルとの外積を計算することでＶ軸の方向を求める。このようにすることで、オブジェクトＯＢの各構成点（頂点）に対してＵＶＮ座標系を設定できるようになる。
【０１１６】
そしてこの手法によれば、図１４（Ｂ）に示すように、一定方向（接線ベクトルＵＶＥＣの方向又はＵＶＥＣに垂直な方向）に傷がついた金属板等での異方性反射を表現できるようになる。
【０１１７】
２．３  スペキュラーマッピング
さて図４（Ｂ）や上式（５）で得られた反射ベクトルＲ２を用い行うシェーディング演算は、いわゆるスペキュラーマッピングにより実現することが望ましい。反射ベクトルＲ２と視線ベクトルのなす角度により鏡面反射の強度を計算するフォンのモデル等では、スペキュラー形状（ハイライト形状）がポリゴン（広義にはプリミティブ面）形状の影響を受けて不自然な形になるという問題が生じる場合があるからである。
【０１１８】
しかしながら、前述した大平や高木・横井のモデルでは、スカラー量である鏡面反射光の強度が計算結果として出力される。従って、スペキュラー形状がポリゴン形状の影響で不自然な形になるという問題を、いわゆるスペキュラーマッピングの手法により解決できない。
【０１１９】
この場合、ノンリアルタイム処理のＣＧのようにピクセル単位で鏡面反射光の強度を計算すれば、スペキュラー形状がポリゴン形状に依存してしまうという問題を解決できる。しかしながら、この解決手法は、リアルタイム処理が要求されるゲームシステムにおいては非現実的である。
【０１２０】
これに対して本実施形態では、スカラー量ではなく、反射ベクトルＲ２が上式（５）のように求められる。従って、この反射ベクトルＲ２に基づいてテクスチャ座標を求め、このテクスチャ座標に基づいてスペキュラー表現テクスチャをオブジェクトにマッピングするようにすれば、スペキュラーマッピングを実現できるようになる。
【０１２１】
より具体的には例えば図１５（Ａ）に示すようなスペキュラー表現テクスチャを用意する。なお、このスペキュラー表現テクスチャはリアルタイムに生成してもよい。
【０１２２】
図１５（Ａ）に示すスペキュラー表現テクスチャでは、その中心に例えば白いハイライト（光源）画像が描かれており、中心から周囲に向かうにつれてその輝度が徐々に減衰し、黒に変化して行く。なお、後述する最終的な極座標変換の後のハイライト画像が所望の適切な形状になるように、スペキュラー表現テクスチャに描かれるハイライト画像の形状を変形しておくことが望ましい。
【０１２３】
この図１５（Ａ）に示すスペキュラー表現テクスチャにより、図１５（Ｂ）に示すような仮想球３０を想定する。
【０１２４】
そして図１６に示すように、オブジェクトＯＢを内包するように仮想球３０を設定する。次に、光源ベクトルＬに基づき構成点Ｐでの反射ベクトルを求め、この反射ベクトルから、本実施形態の手法で、異方性反射を考慮した反射ベクトルＲ２を求める。そして、この反射ベクトルＲ２と仮想球３０との交点ＰＲを求めることで、スペキュラー表現テクスチャのテクスチャ座標ＴＸ、ＴＹ（コーディネート値）を求め、これらのＴＸ、ＴＹを構成点Ｐに設定する。
【０１２５】
そして、このようにして各構成点に設定されたテクスチャ座標ＴＸ、ＴＹに基づいて、図１５（Ａ）に示すスペキュラー表現テクスチャをオブジェクトＯＢにマッピングして、スペキュラーマッピングを実現する。
【０１２６】
以上のようにすれば、スペキュラー形状（ハイライト形状）がポリゴン形状の影響を受けないようになるため、より自然でリアルな画像を生成できるようになる。
【０１２７】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１７、図１８のフローチャートを用いて説明する。
【０１２８】
まずＰＮ（構成点の番号）を０に設定する（ステップＳ１）。
【０１２９】
次に、構成点（頂点）ＰＮでの接線ベクトルＵＶＥＣ、ＶＶＥＣを上式（１１）、（１２）などに基づいて求める（ステップＳ２）。
【０１３０】
次に、図１３で説明したように、接線ベクトルＵＶＥＣ、ＶＶＥＣの外積計算を行い、法線ベクトルＮを求める（ステップＳ３）。
【０１３１】
次に、光源情報、構成点ＰＮの位置、構成点ＰＮでの法線ベクトルＮに基づき反射ベクトルＲを求める（ステップＳ４）。例えば点光源の場合には、光源位置と構成点ＰＮの位置とを結ぶベクトルを図４（Ａ）の光源ベクトルＬとして求め、この光源ベクトルＬと法線ベクトルＮとに基づき反射ベクトルＲを求める。一方、平行光源の場合には、平行光源からの光源ベクトルＬと法線ベクトルＮとに基づき反射ベクトルＲを求める。
【０１３２】
次に、図５のＡ１で説明したように、ワールド座標系からＵＶＮ座標系（ＵＶＥＣ、ＶＶＥＣ、Ｎで構成される座標系）に反射ベクトルＲを座標変換し、ＲＵＶＮを求める（ステップＳ５）。
【０１３３】
次に、図５のＡ２で説明したように、ＵＶＮ座標系においてＲＵＶＮに対して、異方性反射の方向を表す係数ＣＵ、ＣＶに基づくスケーリング計算を行い、反射ベクトルＲ２ＵＶＮを求める（ステップＳ６）。
【０１３４】
次に、図５のＡ３で説明しように、Ｒ２ＵＶＮをワールド座標系に座標変換し、反射ベクトルＲ２を求める（ステップＳ７）。
【０１３５】
次に、Ｒ２と視線ベクトルとのなす角度θに基づき、例えばＰS×ＣＯＳnθの計算を行い、構成点ＰＮでの鏡面反射光の強度を求める（ステップＳ８）。
【０１３６】
次に、ＰＮがＰＥＮＤよりも大きいか否かを判断し、ＰＥＮＤよりも小さい場合には、ＰＮを１だけインクリメントし（ステップＳ１０）、ステップＳ２に戻る。一方、ＰＥＮＤよりも大きい場合には処理を終了する。
【０１３７】
図１８は、スペキュラーマッピングを行う場合のフローチャートである。スペキュラーマッピングを行う場合には、図１７のステップＳ８において図１８の処理を行うことになる。
【０１３８】
まず、オブジェクトの中心を仮想球の中心に設定した場合に、オブジェクトの中心と仮想球上のハイライト画像の中心（マップの中心）とを結ぶ方向を、視線ベクトルの方向に一致させるマトリクスＭを求める（ステップＳ１１）。
【０１３９】
即ち図１９（Ａ）に示すように、その中心がオブジェクトＯＢの中心と一致するような仮想球３０を想定する。そして、例えばオブジェクトに設定されたＸＹＺ座標系（各構成点に設定してもよい）において視点ＶＰの方へと向かう視線ベクトルをＥとした場合に、図１９（Ｂ）、（Ｃ）に示すように、視線ベクトルＥ’の方向がＸ’軸の負側方向に向くようなＸ’Ｙ’Ｚ’座標系を想定する。すると、上記のマトリクスＭは、下式（１３）のように、視線ベクトルＥ’をＥに変換するマトリクスとなる。
【０１４０】
Ｅ＝Ｍ×Ｅ’          （１３）
上式（１３）より、
Ｅ’＝Ｍ-1×Ｅ        （１４）
となる。上式（１４）において、Ｍ-1はＭの逆変換マトリクスである。
【０１４１】
そして、この逆変換マトリクスＭ-1に基づいて下式（１５）のように反射ベクトルＲ２を変換して、反射ベクトルＲ２’を求める（ステップＳ１２）。
【０１４２】
Ｒ２’＝Ｍ-1×Ｒ２    （１５）
次に、図１９（Ｄ）に示すように、反射ベクトルＲ２’を極座標変換して、テクスチャ座標ＴＸ、ＴＹを求める（ステップＳ１３）。
【０１４３】
即ち、図１９（Ｄ）に示すように、反射ベクトルＲ２’をＸ’Ｚ’平面に投影したベクトルをＲ２”とし、Ｒ２”とＸ’軸とのなす角度をθ１（度）とする。また反射ベクトルＲ２’とＹ’軸のなす角度をθ２（度）とする。この場合に、下式（１６）のようにしてテクスチャ座標ＴＸ、ＴＹを求めることができる。
【０１４４】
ＴＸ＝θ１／３６０
ＴＹ＝θ２／１８０      （１６）
例えば上式（１６）において、θ１＝１８０（度）、θ２＝９０（度）とした場合には、図１９（Ｄ）から明らかなように、反射ベクトルＲ２’の方向と視線ベクトルＥ’の方向とが一致する。そして、この時のテクスチャ座標は、ＴＸ＝０．５、ＴＹ＝０．５となり、スペキュラー表現テクスチャのハイライト画像の中心（マップの中心）が参照されることになる。即ち、上式（１５）の変換は、反射ベクトルの方向が視線ベクトルの方向に一致した場合に、スペキュラー表現テクスチャのハイライト画像の中心が参照されるような変換であるということができる。
【０１４５】
最後に、求められたテクスチャ座標ＴＸ、ＴＹを構成点ＰＮ（頂点）に付与する（ステップＳ１４）。このテクスチャ座標ＴＸ、ＴＹを用いて、図１５（Ａ）に示すようなスペキュラー表現テクスチャをオブジェクトＯＢにマッピングすることで、いわゆるスペキュラーマッピングを実現できる。
【０１４６】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２０を用いて説明する。
【０１４７】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１４８】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４９】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１５０】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１５１】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１５２】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１５３】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１５４】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１５５】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１５６】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１５７】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１５８】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１５９】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１６０】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１６１】
図２１（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム又はデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１６２】
図２１（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１６３】
図２１（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１６４】
なお、図２１（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１６５】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１６６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１６７】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１６８】
また反射ベクトルの方向を変化させる手法としては、処理の簡素化の観点からは図５で説明した手法が特に望ましいが、本発明はこれに限定されず種々の変形実施が可能である。
【０１６９】
また第２の座標系の設定手法も、図１３や図１４（Ａ）、（Ｂ）で説明した手法に限定されるものではない。
【０１７０】
また、シェーディング演算により得られた鏡面反射光の強度（輝度）をα値（各ピクセルに関連づけられて記憶される情報であり色情報以外のプラスアルファの情報）に設定し、このα値に基づいてα合成（αブレンディング、α加算）を行い、例えばガラス表面上の傷で反射光が異方性反射する様子を表現してもよい。
【０１７１】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１７２】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【図面の簡単な説明】
【図１】図１（Ａ）、（Ｂ）は、異方性反射について説明するための図である。
【図２】図２（Ａ）、（Ｂ）は、楕円体モデルを用いて異方性反射を実現する手法について説明するための図である。
【図３】本実施形態のゲームシステムの機能ブロック図の例である。
【図４】図４（Ａ）、（Ｂ）は、反射ベクトルの方向を変化させて異方性反射を実現する手法について説明するための図である。
【図５】ＵＶＮ座標系で反射ベクトルの方向を変化させて異方性反射を実現する手法について説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、スケーリング係数を用いて反射ベクトルの方向を変化させる手法について説明するための図である。
【図７】図７（Ａ）はノーマルシェーディングの場合、図７（Ｂ）は楕円体モデルを用いた場合、図７（Ｃ）は本実施形態の手法を用いた場合の生成画像例である。
【図８】図８（Ａ）は楕円体モデルを用いた場合、図８（Ｂ）は本実施形態の手法を用いた場合の生成画像例である。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、スケーリング係数を徐々に変化させた場合の生成画像例である。
【図１０】図１０（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）も、スケーリング係数を徐々に変化させた場合の生成画像例である。
【図１１】オブジェクトを自由曲面で表現する手法について説明するための図である。
【図１２】オブジェクトを自由曲面で表現する手法について説明するための図である。
【図１３】各構成点での接線ベクトルを求めて、ＵＶＮ座標系を設定する手法について説明するための図である。
【図１４】図１４（Ａ）、（Ｂ）は、オブジェクトがポリゴンで表現される場合におけるＵＶＮ座標系の設定手法について説明するための図である。
【図１５】図１５（Ａ）、（Ｂ）は、スペキュラー表現テクスチャと仮想球について説明するための図である。
【図１６】スペキュラーマッピングについて説明するための図である。
【図１７】本実施形態の処理の詳細例について示すフローチャートである。
【図１８】本実施形態の処理の詳細例について示すフローチャートである。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、スペキュラー表現テクスチャのテクスチャ座標の求め方について説明するための図である。
【図２０】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２１】図２１（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＯＢ    オブジェクト
ＬＳ    光源
ＶＰ    視点
Ｌ      光源ベクトル
Ｎ      法線ベクトル
Ｒ、Ｒ２、ＲＵＶＮ、Ｒ２ＵＶＮ  反射ベクトル
２０、２２  曲面パッチ
３０    仮想球
１００  処理部
１１０  反射ベクトル演算部
１１２  反射ベクトル変化部
１１４  シェーディング演算部
１３０  描画部
１３２  テクスチャマッピング部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画領域
１７６  テクスチャ記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004518643.tif 000011
【図２】
0004518643.tif 000012
【図３】
0004518643.tif 000013
【図４】
0004518643.tif 000014
【図５】
0004518643.tif 000015
【図６】
0004518643.tif 000016
【図７】
0004518643.tif 000017
【図８】
0004518643.tif 000018
【図９】
0004518643.tif 000019
【図１０】
0004518643.tif 000020
【図１１】
0004518643.tif 000021
【図１２】
0004518643.tif 000022
【図１３】
0004518643.tif 000023
【図１４】
0004518643.tif 000024
【図１５】
0004518643.tif 000025
【図１６】
0004518643.tif 000026
【図１７】
0004518643.tif 000027
【図１８】
0004518643.tif 000028
【図１９】
0004518643.tif 000029
【図２０】
0004518643.tif 000030
【図２１】
0004518643.tif 000031