(57)【特許請求の範囲】
【請求項１】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
複数の光源を設定する光源設定部と、
前記光源設定部によって設定された複数の光源の各光源を、合成処理の対象となる光源、又は、合成処理の対象から除外する光源として決定し、
前記光源設定部によって設定された複数の光源のうち、合成処理の対象として決定された複数の光源を合成し、合成光源を求める光源合成部と、
求められた合成光源に基づいて、オブジェクトのシェーディングを行うシェーディング部として、
コンピュータを機能させると共に、
前記光源合成部が、
前記光源設定部によって設定された複数の光源のうち、合成処理の対象から除外された光源の色を、アンビエント光の色に付加することを特徴とするプログラム。
【請求項２】
請求項１において、
前記光源設定部が、
複数の光源の各光源に対して、オブジェクトに対する各光源の照明方向ベクトルを設定し、
前記光源合成部が、
複数の光源の各照明方向ベクトルに基づいて、前記光源設定部によって設定された複数の光源の各光源を、合成処理の対象となる光源、又は、合成処理の対象から除外する光源に決定することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
光源情報に基づいて、前記光源設定部によって設定された複数の光源の中から基底光源を選択する基底光源選択部として、コンピュータを更に機能させ、
前記光源設定部が、
複数の光源の各光源に対して、オブジェクトに対する各光源の照明方向ベクトルを設定し、
前記光源合成部が、
基底光源の照明方向ベクトルと、基底光源以外の各光源の照明方向ベクトルとのなす角度に基づいて、基底光源以外の各光源を、当該基底光源に対して合成するための合成処理の対象となる光源、又は、当該合成処理の対象から除外する光源として決定し、
当該合成処理の対象として決定された光源を当該基底光源に合成し、当該合成処理の対象から除外された光源の色を、アンビエント光の色に付加することを特徴とするプログラム。
【請求項４】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
複数の光源を設定する光源設定部と、
前記光源設定部によって設定された複数の光源を用いて、第１のオブジェクト用の第１の合成光源と、第２のオブジェクト用の第２の合成光源とを求める光源合成部と、
求められた第１の合成光源に基づいて第１のオブジェクトのシェーディングを行い、求められた第２の合成光源に基づいて第２のオブジェクトのシェーディングを行うシェーディング部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項５】
請求項４において、
前記光源設定部が、
複数の光源の各光源に対して、第１のオブジェクトに対する各光源の第１の照明方向ベクトルと、第２のオブジェクトに対する各光源の第２の照明方向ベクトルとを設定し、
前記光源合成部が、
第１のオブジェクトに対する各光源の第１の照明方向ベクトルを合成し、第１のオブジェクトに対する第１の合成光源の照明方向ベクトルを求め、
第２のオブジェクトに対する各光源の第２の照明方向ベクトルを合成し、第２のオブジェクトに対する第２の合成光源の照明方向ベクトルを求めることを特徴とするプログラム。
【請求項６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至５のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項７】
オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、
複数の光源を設定する光源設定部と、
前記光源設定部によって設定された複数の光源の各光源を、合成処理の対象となる光源、又は、合成処理の対象から除外する光源として決定し、
前記光源設定部によって設定された複数の光源のうち、合成処理の対象として決定された複数の光源を合成し、合成光源を求める光源合成部と、
求められた合成光源に基づいて、オブジェクトのシェーディングを行うシェーディング部とを含み、
前記光源合成部が、
前記光源設定部によって設定された複数の光源のうち、合成処理の対象から除外された光源の色を、アンビエント光の色に付加することを特徴とする画像生成システム。
【請求項８】
オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、
複数の光源を設定する光源設定部と、
前記光源設定部によって設定された複数の光源を用いて、第１のオブジェクト用の第１の合成光源と、第２のオブジェクト用の第２の合成光源とを求める光源合成部と、
求められた第１の合成光源に基づいて第１のオブジェクトのシェーディングを行い、求められた第２の合成光源に基づいて第２のオブジェクトのシェーディングを行うシェーディング部とを含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作部）を用いて自キャラクタ（オブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、照明方向ベクトル、色、光源位置などの光源情報が設定された光源が用意される。そして、この光源情報と照明モデルとに基づいて、グーロー（Gouraud）シェーディング、フォン（Phong）シェーディングなどの種々のスムースシェーディングが行われ、オブジェクトの陰影づけが行われる。
【０００４】
そして、このような画像生成システムにおいて、よりリアルな画像を生成するためには、より多くの光源を用意することが望ましい。例えば、日光（太陽）を表現する光源のみならず、松明、炎、エフェクトなどを表現する種々の光源を用意することが望ましい。
【０００５】
しかしながら、用意する光源の数を増やすと、その分だけ画像生成システムの処理負荷が増えてしまう。このため、光源の数を増やしすぎると、１フレーム以内に全ての処理を完了させるというリアルタイム処理の要請に応えることが難しくなるという課題がある。
【特許文献１】特開２００１−２２９４０４号公報
【特許文献２】特開平６−３０１７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷でリアルな光源処理を実現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、オブジェクトを照明するための複数の光源を用意し、複数の光源の各光源に対して、オブジェクトに対する各光源の照明方向ベクトルを設定する光源設定部と、複数の光源の照明方向ベクトルを合成し、オブジェクトに対する合成光源の照明方向ベクトルをオブジェクト毎に求める光源合成部と、合成光源に基づいて、オブジェクトのシェーディングを行うシェーディング部とを含むことを特徴とする。また本発明に係るプログラムは、上記各部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【０００８】
本発明では、オブジェクトを照明するための複数の光源が用意（設定、配置）される。そして、これらの複数の光源の照明方向ベクトルを合成することで、合成光源の照明方向ベクトルが求められ、合成光源に基づいてオブジェクトのシェーディングが行われる。
【０００９】
このように本発明では、最終的にシェーディングに使用される光源（合成光源）の数を少なくすることができるため、処理負荷を軽減できる。そして本発明では、論理的に用意された複数の光源に基づいて合成光源が生成され、この合成光源に基づいてオブジェクトのシェーディングが行われるため、よりリアルな光源処理を実現できる。
【００１０】
なお、照明方向ベクトルと数学的に均等なパラメータを用いる場合も、本発明の範囲に含めることができる。
【００１１】
また、光源が平行光源を表すものである場合には、その照明方向ベクトルは、オブジェクトとの位置関係に依存せずに一義的に決めることができる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、複数の光源に設定された色を合成することで、合成光源の色を求めるようにしてもよい。
【００１３】
この場合に、色の合成率と照明方向ベクトルの合成率は、同じ合成率であってもよいし、違う合成率であってもよい。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、光源の合成率を、合成される複数の光源の照明方向ベクトルの内積、及び、合成される複数の光源の明度の割合の少なくとも一方に基づいて求めるようにしてもよい。
【００１５】
この場合に、光源の合成率は、例えば、内積又は内積に変換処理を施したものや、明度割合又は明度割合に変換処理を施したものなどに基づいて求めることができる。また、光源の合成率は、例えば、光源情報（照明方向ベクトル又は色等）の合成率である。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記複数の光源が疑似点光源を含み、前記光源設定部が、オブジェクトと疑似点光源との位置関係に基づいて、オブジェクトに対する疑似点光源の照明方向ベクトルと疑似点光源の明度を設定するようにしてもよい。
【００１７】
この場合にオブジェクトと疑似点光源との位置関係としては、オブジェクトと疑似点光源の間の距離や、オブジェクトと疑似点光源とを結ぶ方向などを考えることができる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、光源の明度に基づいて複数の光源の中から基底光源を選択する基底光源選択部を含み（或いは基底光源選択部としてコンピュータを機能させるためのプログラム又は該プログラムを記憶した情報記憶媒体であって）、前記光源合成部が、選択された基底光源よりも他の光源の合成率が低くなるように、選択された基底光源に対して他の光源を合成するようにしてもよい。
【００１９】
この場合に、基底光源の選択に使用される明度は、光源の明度に変換処理を施したものであってもよい。また、光源の合成率は、例えば、光源情報（照明方向ベクトル又は色等）の合成率などである。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、第Ｎのフレームでは第Ｋの光源が基底光源として選択され、次の第Ｎ＋１のフレームでは第Ｌの光源が基底光源として選択された場合には、合成処理に対する第Ｋの光源の影響度がフレーム経過に伴い減少するように、光源の合成を行うようにしてもよい。
【００２１】
この場合の影響度は、光源の合成率などにより制御されるものである。また、基底光源の切替時に、第Ｋの光源の影響度を零又はほぼ零にすることも可能である。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、現在のフレームで得られた合成光源に前回のフレームで得られた合成光源を合成し、最終的な合成光源を求めるようにしてもよい。
【００２３】
この場合の前回のフレームは、１フレーム前でもよいし、１〜Ｊフレーム前でもよい。
【００２４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、現在のフレームで得られた合成光源と前回のフレームで得られた合成光源との合成率を、可変に制御するようにしてもよい。
【００２５】
この場合の合成光源の合成率は、例えば時間要素に基づいて制御してもよいし、ゲームイベント（ヒットイベント、オブジェクトの移動・動作）の発生に基づいて制御してもよい。
【００２６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源合成部が、複数の光源のうち、合成処理の対象とならなかった光源の色を、アンビエント光の色に付加するようにしてもよい。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記光源設定部が、オブジェクトに対するヒットイベントが発生した場合に、複数のヒット位置に前記複数の光源を設定し、前記光源合成部が、複数のヒット位置に設定された複数の光源を合成し、合成光源を求めるようにしてもよい。
【００２８】
また本発明は、オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、複数の光源を設定する光源設定部と、設定された複数の光源を合成し、合成光源を求める光源合成部と、求められた合成光源に基づいて、オブジェクトのシェーディングを行うシェーディング部とを含み、前記光源合成部が、複数の光源のうち、合成処理の対象とならなかった光源の色を、アンビエント光の色に付加することを特徴とする。また本発明に係るプログラムは、上記各部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２９】
本発明によれば、複数の光源のうち、合成処理の対象とならなかった光源が特定される。そして、この光源の色が、アンビエント光の色に付加（合成、ブレンド）されて、オブジェクトのシェーディングが行われる。これにより、合成処理の対象とならなかった光源の影響を残すことが可能になり、よりリアルな画像表現を実現できる。
【００３０】
なお、光源の色そのものを、アンビエント光の色に付加してもよいし、光源の色に変換処理を施したものを、アンビエント光の色に付加してもよい。
【００３１】
また本発明は、オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、オブジェクトに対するヒットイベントが発生した場合に、オブジェクトのヒットチェックを行い、ヒット位置を求めるヒットチェック部と、求められた複数のヒット位置に、ヒットエフェクト光を表すための複数の光源を設定する光源設定部と、複数のヒット位置に設定された複数の光源を合成し、合成光源を求める光源合成部と、求められた合成光源に基づいて、オブジェクトのシェーディングを行うシェーディング部とを含むことを特徴とする。また本発明に係るプログラムは、上記各部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００３２】
本発明によれば、ヒット位置が判定され、そのヒット位置に光源が設定（配置）される。そして、設定された光源が合成され、求められた合成光源に基づいてオブジェクトのシェーディングが行われる。これにより、ヒットイベント時に発生するヒットイベント光の表現を、簡素で自動的な処理により実現できるようになる。
【発明を実施するための最良の形態】
【００３３】
以下、本実施形態について図面を用いて説明する。
【００３４】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外の各部（機能ブロック）については任意の構成要素とすることができる。
【００３６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【００３７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部（各手段）としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００３９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４０】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００４１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４２】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４３】
なお本実施形態の各部（各手段）としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００４５】
ここで、処理部１００が行う処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４６】
処理部１００は、移動・動作処理部１１０、オブジェクト空間設定部１１２、ヒットチェック部１１４、光源設定部１１６、基底光源選択部１１８、光源合成部１１９、画像生成部１２０、音生成部１３０を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【００４７】
移動・動作処理部１１０は、オブジェクト（移動体）の移動情報（位置、回転角度）や動作情報（オブジェクトの各パーツの位置、回転角度）を求める処理を行う。即ち、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作（モーション、アニメーション）させたりする処理を行う。
【００４８】
より具体的には、移動・動作処理部１１０は、オブジェクト（移動体）の位置や回転角度を例えば１フレーム（１／６０秒、１／３０秒等）毎に変化させる。例えば（ｋ−１）フレームでのオブジェクトの位置、回転角度をＰk-1、θk-1とし、オブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転速度）を△Ｐ、△θとする。するとｋフレームでのオブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４９】
Ｐk＝Ｐk-1＋△Ｐ              （１）
θk＝θk-1＋△θ              （２）
オブジェクト空間設定部１１２は、移動体（キャラクタ、車、戦車、ロボット）、柱、壁、建物、マップ（地形）などの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転）でオブジェクトを配置する。
【００５０】
ヒットチェック部１１４は、オブジェクト（キャラクタ）に対して、攻撃（キック、パンチ又はショット等）がヒットしたか否かをチェックする処理を行う。具体的には、一方のオブジェクトの部位（手、足）や武器（剣、ショット）が、他方のオブジェクト（体、武器）にヒットしたか否かをチェックする。そして、他方のオブジェクトに攻撃がヒットした場合には、攻撃がヒットしたことをプレーヤに視覚的に伝えられるためのヒットエフェクト光（ヒットエフェクト画像）が生成される。また、他方のオブジェクトは、攻撃を受けたことを示すモーション（やられモーション、被ヒットモーション）を行うようになる。
【００５１】
なお、オブジェクト（キャラクタ）の形状を簡略化して擬似的に表したヒットボリューム（ヒットボックス、ヒットエリア、簡易オブジェクト）や、オブジェクトの部位（手、足）や武器などが描く軌道を簡略化して擬似的に表したヒットボリュームを用いて、ヒットチェックを行うことが望ましい。
【００５２】
光源設定部１１６は、複数の光源を設定（配置）する処理を行う。具体的には、オブジェクト（照明位置又はオブジェクトの代表位置）を照明するための複数の光源（論理的な光源）を用意し、複数の光源の各光源に対して、照明方向ベクトル、色、明度又は光源位置などの光源情報（属性情報）を設定する。
【００５３】
なお、光源設定部１１６は、オブジェクトに対するヒットイベントが発生した場合に、ヒットチェック部１１４により検出されたヒット位置に、ヒットエフェクト光を表すための光源を設定（配置）する処理も行う。
【００５４】
基底光源選択部１１８は、光源の明度（光源情報）に基づいて、複数の光源の中から基底光源（メイン光源、基準光源）を選択する処理（光源のソート処理）を行う。
【００５５】
光源合成部１１９は、複数の光源を合成する処理（照明方向ベクトルの合成処理、色の合成処理等）を行い、合成光源（合成ベクトルや合成色などを、光源情報として有する光源）を求める処理を行う。より具体的には、光源設定部１１６により設定された複数の光源の照明方向ベクトルを合成し、合成光源の照明方向ベクトル（合成ベクトル）を求める。或いは、複数の光源に設定された色を合成することで、合成光源の色（合成色）を求める。
【００５６】
この場合、光源合成部１１９は、例えば、照明方向ベクトルの内積（内積と数学的に均等なものを含む）や、明度の割合（明度を関数により変換したものの割合を含む）などに基づいて。光源の合成率（照明方向ベクトルの合成率、色の合成率又は光源位置の合成率等）を得る。
【００５７】
また、光源合成部１１９は、基底光源選択部１１８により選択された基底光源（基底ベクトル）に対して、他の光源（照明方向ベクトル）を合成する処理を行う。そして、前のフレームで選択された光源とは異なる光源が基底光源選択部１１８により基底光源として選択された場合には、前のフレームで選択された光源の影響度（合成率）が、その後のフレーム経過に伴い徐々に減少するように、光源の合成を行う。これにより、光源の切り替わりが目立ってしまう事態を防止できる。
【００５８】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。
【００５９】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６０】
画像生成部１２０が含むシェーディング部１２２は、オブジェクトに陰影をつけるための処理を行う。より具体的には、光源情報（照明方向ベクトル、色又は光源位置等）、照明モデル、オブジェクトの法線ベクトル（頂点又は面の法線ベクトル）などに基づいてシェーディング処理を行う。
【００６１】
ここで、シェーディング処理は、例えばオブジェクトの各点（ピクセル、ドット）での光の色（ＲＧＢ、ＹＣｒＣｂ、ＹＵＶ、ＹＩＱ）を決定する処理と定義できる。そして、このシェーディング処理は、実世界での照明現象を模擬した数学的なモデルである照明モデルを用いて行われる。この照明モデルとしては、実世界現象のモデル化の態様に応じて、ランバード（Lambert）、フォン（Phong）、ブリン（Blinn）などの種々のモデルがある。また、プリミティブ面（ポリゴン、曲面等）の陰影づけを滑らかにして、プリミティブ面の境界を目立たなくする手法として、グーロー（Gouraud）シェーディング、フォン（Phong）シェーディングなどの種々のスムースシェーディング手法がある。
【００６２】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６３】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００６４】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお、以下では、格闘ゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、格闘ゲーム以外の種々のゲームに広く適用できる。
【００６５】
２．１  光源の合成
さて、よりリアルで高品質なゲーム画像を生成するためには、より多くの数の光源を用いてシェーディングを行うことが望ましい。
【００６６】
しかしながら、光源の数が多くなると、その分だけシェーディングの処理負荷が重くなってしまうという問題がある。
【００６７】
例えばグーローシェーディングでは、オブジェクトの頂点に設定された法線ベクトルと光源の照明方向ベクトルとの内積を求めることで、オブジェクトの各頂点色を求める。従って、オブジェクトの頂点数がＩ個であり、光源の数が１個の場合には、頂点色を求める処理がＩ回分だけ必要になる。従って、光源の数がＪ個になると、頂点色を求める処理が（Ｉ×Ｊ）回分だけ必要になってしまう。
【００６８】
通常、オブジェクトの頂点数Ｉは非常に多いため、このように光源数を増やすことによる処理負荷の増加は過大なものとなる。
【００６９】
このような課題を解決するために本実施形態では以下のような手法を採用している。
【００７０】
即ち、本実施形態では図２（Ａ）に示すように、複数の光源ＬＳ１、ＬＳ２を用意する（３個以上用意してもよい）。
【００７１】
例えば、光源ＬＳ１は、その照明方向ベクトルがＶ１１であり、その色がＣ１であり、その明度がＢＲ１（例えば色Ｃ１をグレースケールで表した時の明るさ）である。ここで、照明方向ベクトルＶ１１は、光源ＬＳ１とオブジェクトＯＢ１（照明位置又はＯＢ１の代表位置ＬＰ１）とを結ぶ方向に沿ったベクトル（単位ベクトル）である。
【００７２】
また、光源ＬＳ２は、その照明方向ベクトルがＶ２１であり、その色がＣ２であり、その明度がＢＲ２である。ここで、照明方向ベクトルＶ２１は、光源ＬＳ２とオブジェクトＯＢ１（照明位置又は代表位置ＬＰ１）とを結ぶ方向に沿ったベクトル（単位ベクトル）である。
【００７３】
本実施形態では図２（Ａ）に示すように、これらの光源ＬＳ１、ＬＳ２（論理的な光源）を合成することで、オブジェクトＯＢ１に対する合成光源ＬＳＳ１（シェーディング用の光源）を求める。
【００７４】
より具体的には、オブジェクトＯＢ１に対する光源ＬＳ１、ＬＳ２の照明方向ベクトルＶ１１、Ｖ２１を合成し、合成光源ＬＳＳ１の照明方向ベクトルＶＳ１（単位ベクトル）を求める。また、光源ＬＳ１、ＬＳ２の色Ｃ１、Ｃ２を合成し、合成光源ＬＳＳ１の色ＣＳ１を求める。
【００７５】
そして、この求められた合成光源ＬＳＳ１を用いて、オブジェクトＯＢ１に対するシェーディングを行う。即ち、光源ＬＳ１、ＬＳ２の代わりに、照明方向ベクトルがＶＳ１で色がＣＳ１である合成光源ＬＳＳ１（平行光源）が仮想的に存在すると考え、この合成光源ＬＳＳ１だけを用いてシェーディングを行う。
【００７６】
一方、オブジェクトＯＢ２については、図２（Ｂ）に示すような合成処理を行う。即ち、光源ＬＳ１、ＬＳ２を合成することで、オブジェクトＯＢ２（照明位置又はＯＢ２の代表位置ＬＰ２）に対する合成光源ＬＳＳ２を求める。
【００７７】
より具体的には、オブジェクトＯＢ２に対する光源ＬＳ１、ＬＳ２の照明方向ベクトルＶ１２、Ｖ２２を合成し、合成光源ＬＳＳ２の照明方向ベクトルＶＳ２を求める。また、光源ＬＳ１、ＬＳ２の色Ｃ１、Ｃ２を合成し、合成光源ＬＳＳ２の色ＣＳ２を求める。
【００７８】
そして、この求められた合成光源ＬＳＳ２を用いて、オブジェクトＯＢ２に対するシェーディングを行う。
【００７９】
このようにすれば、論理的な光源（ＬＳ１、ＬＳ２）は複数個存在するにも拘わらず、シェーディング用の物理的な光源は例えば１個で済むため、シェーディングの処理負荷を軽減できる。例えば、オブジェクトの頂点数がＩ個である場合には、頂点色を求める処理は、各オブジェクトについてＩ回分だけ行えば済むようになる。
【００８０】
そして、本実施形態では、論理的な光源（ＬＳ１、ＬＳ２）が複数個存在するため、光源が１個しか存在しない場合に比べてリアルな画像表現が可能になる。例えば、光源ＬＳ１、ＬＳ２の位置関係や色の関係に応じて、合成光源の照明方向ベクトルや色が様々に変化するようになる。また、図２（Ａ）、（Ｂ）から明らかなように、オブジェクト毎に、或いはオブジェクトと光源との位置関係に応じて、シェーディングに使用される合成光源は異なったものになり、異なったシェーディングが施されるようになる。
【００８１】
例えば本実施形態と異なる手法として、複数の光源を用意し、オブジェクトとの位置関係に基づいて、その複数の光源の中から適当な１つの光源を選択し、選択された光源を用いてオブジェクトのシェーディングを行う手法が考えられる。
【００８２】
しかしながら、この手法では、例えば図２（Ａ）において光源ＬＳ１が選択された場合には、光源ＬＳ２の影響が全く無視されてしまう。逆に、光源ＬＳ２が選択された場合には、光源ＬＳ１の影響が全く無視されてしまう。
【００８３】
即ち、光源ＬＳ１が選択された場合には照明方向はＶ１１の方向になり、ＬＳ２が選択された場合にはＶ２１の方向になるというように、照明方向が択一的になってしまう。同様に、光源ＬＳ１の色が白でＬＳ２の色が赤であったとすると、ＬＳ１が選択された場合には白の陰影づけだけがオブジェクトに施され、ＬＳ２が選択された場合には赤の陰影づけだけが施されるようになり、陰影づけされる色も択一的になってしまう。従って、今ひとつリアルな画像を生成できない。
【００８４】
これに対して本実施形態では、合成光源ＬＳＳ１の照明方向、色は、光源ＬＳ１の照明方向、色のみならず、光源ＬＳ２の照明方向、色の影響も受けるようになる。従って、上記の手法に比べて、得られる画像のリアル度を格段に高めることができる。
【００８５】
なお、以下では、説明を簡単にするために、２個又は３個の数の光源を合成する場合を主に例にとり説明する。しかしながら、この明細書で説明する本実施形態の手法は、３個以上又は４個以上の数の光源を使用する場合にも当然に拡張できる。
【００８６】
２．２  光源の合成率
さて、本実施形態では光源の合成率（照明方向ベクトルの合成率、色の合成率）を、以下に説明する手法で求めている。
【００８７】
例えば、図３（Ａ）において、光源ＬＳ１、ＬＳ２の明度をＢＲ１、ＢＲ２とした場合に、明度の割合ＢＲＰ（例えばＢＲＰ＝ＢＲ２／ＢＲ１）を求める。
【００８８】
また、光源ＬＳ１、ＬＳ２の照明方向ベクトルＶ１、Ｖ２の内積ＶＩＰ＝Ｖ１・Ｖ２を求める。
【００８９】
次に、これらの明度割合ＢＲＰと内積ＶＩＰに基づいて、合成率γ＝Ｆ（ＢＲＰ、ＶＩＰ）を求める。ここで、Ｆ（ＢＲＰ、ＶＩＰ）は、ＢＲＰ、ＶＩＰを引数とする関数である。
【００９０】
そして、この合成率γを用いて、光源ＬＳ１、ＬＳ２の照明方向ベクトルＶ１、Ｖ２を合成し、合成光源ＬＳＳの照明方向ベクトルＶＳを求める。或いは、ＬＳ１、ＬＳ２の色Ｃ１、Ｃ２を合成し、ＬＳＳの色ＣＳを求める。
【００９１】
ＶＳ＝Ｖ１＋γ×Ｖ２                （３）
ＣＳ＝Ｃ１＋γ×Ｃ２                （４）
なお、上式（３）のベクトル合成処理は、ベクトルＶＳ、Ｖ１、Ｖ２のＸ、Ｙ、Ｚ座標の各々について行う。また、上式（４）の色合成処理は、色ＣＳ、Ｃ１、Ｃ２のＲ、Ｇ、Ｂ成分（広義には第１〜第３の成分）の各々について行う。
【００９２】
また、上式（３）、（４）は、加算ブレンディング方式を採用しているが、下式のような狭義のブレンディング方式を採用してもよい。
【００９３】
ＶＳ＝（１−γ）×Ｖ１＋γ×Ｖ２    （５）
ＣＳ＝（１−γ）×Ｃ１＋γ×Ｃ２    （６）
また、合成率γを求める際に使用する明度割合（明度比率）ＢＲＰは、ＢＲ１、ＢＲ２そのものの割合（比率）であってもよいし、ＢＲ１、ＢＲ２を関数等で変換することで得られるＢＲ１’、ＢＲ２’の割合であってもよい。
【００９４】
また、合成率γを求める関数Ｆとしては、例えばＦ（ＢＲＰ、ＶＩＰ）＝Ｋ×ＢＲＰ×ＶＩＰ（Ｋは定数）を考えることができる。また、関数Ｇ、Ｈを用いて、Ｆ（ＢＲＰ、ＶＩＰ）＝Ｋ×Ｇ（ＢＲＰ）×Ｈ（ＶＩＰ）とすることもできる。ここで、関数Ｇ、Ｈとしては、引数を非線形変換する関数（正弦関数、余弦関数、ｎ次式）などを採用できる。
【００９５】
また、合成率γを、内積ＶＩＰのみに基づいて求めたり、明度割合ＢＲＰにのみに基づいて求めてもよい。
【００９６】
以上のように本実施形態では、光源ＬＳ１、ＬＳ２の照明方向ベクトルＶ１、Ｖ２の内積ＶＩＰを用いて合成率γを求めている。従って、図３（Ａ）、（Ｂ）に示すように、照明方向ベクトルＶ１、Ｖ２間のなす角度に応じて、合成率γも変化するようになり、多様な画像表現を実現できる。
【００９７】
より具体的には、内積ＶＩＰを用いて合成率γを求めるようにすれば、図３（Ｂ）のようにＶ１とＶ２のなす角度が大きくなって９０度に近づいたとしても、合成光源ＬＳＳの照明方向ベクトルＶＳの向きを、Ｖ２の方向よりもＶ１の方向に常に近づけるようにすることができる。これにより、例えば照明ベクトルＶ１（基底ベクトル）を、常に支配的な光源に設定できるようになる。
【００９８】
また本実施形態では、光源ＬＳ１、ＬＳ２の明度ＢＲ１、ＢＲ２の割合ＢＲＰを用いて合成率γを求めている。従って、明度（ＲＧＢをグレースケール変換した時の明るさ等）の高い方の光源を支配的な光源に設定することが可能になる。例えば、図３（Ａ）、（Ｂ）において、光源ＬＳ１の明度ＢＲ１の方が明るい場合には、合成光源ＬＳＳの照明方向ベクトルＶＳの向きが、Ｖ２の方向よりもＶ１の方向に近づくようになる。
【００９９】
２．３  疑似点光源
本実施形態では平行光源を用いて点光源を擬似的に表現している。
【０１００】
即ち図４（Ａ）において、光源ＬＳ１は通常の平行光源（例えば日光）に設定され、光源ＬＳ２は疑似点光源（例えば松明）に設定されている。そして、この場合には、オブジェクトＯＢ（照明位置又はＯＢの代表位置ＬＰ）と疑似点光源ＬＳ２との距離ＤＩＳ（広義には位置関係）を求める。そして、疑似点光源ＬＳ２の明度ＢＲ２を、この距離ＤＩＳに応じて変化（減衰）させる。具体的には、例えば、ＢＲ２＝ＢＲ２／ＤＩＳn（例えばｎ＝３）という変換を行う。また、点光源ＬＳ２の照明方向ベクトルＶ２を、ＬＳ２からＯＢ（ＬＰ）へと向かう方向のベクトルに設定する。
【０１０１】
このようにすることで、平行光源を用いながら、擬似的に点光源を表現できるようになる。
【０１０２】
即ち、図４（Ｂ）に示すように、オブジェクトＯＢと疑似点光源ＬＳ２との位置関係（距離関係、方向関係）が変化すると、ＯＢに対するＬＳ２の明度ＢＲ２が変化（増減）したり、照明方向ベクトルＶ２の方向が変化するようになる。
【０１０３】
なお、平行光源（例えば日光）として設定された光源ＬＳ１については、その明度ＢＲ１や照明方向ベクトルＶ１の方向は、オブジェクトＯＢが移動しても一定になる。但し、ＢＲ１やＶ１の方向を、時間経過やゲームイベントの発生に伴い変化させるようにしてもよい。
【０１０４】
図５、図６に、本実施形態により生成される画像の例を示す。
【０１０５】
図５は、ゲームフィールド（オブジェクト空間）の全体を示す画像の例である。このゲームフィールドには、日光を表現する光源ＬＳ１や、松明を表現する疑似点光源ＬＳ２などが設定されており、これらの光源ＬＳ１、ＬＳ２を用いてオブジェクト（キャラクタ）ＯＢ１、ＯＢ２のシェーディングが行われる。
【０１０６】
図６は、図２（Ａ）、（Ｂ）の手法で光源ＬＳ１、ＬＳ２を合成し、求められた合成光源を用いてオブジェクトＯＢ１をシェーディングした場合の画像の例である。
【０１０７】
図６に示すように、本実施形態によれば、オブジェクトＯＢ１の体全体が、光源ＬＳ１、ＬＳ２の合成光源により自然にシェーディングされるようになる。また、合成光源の色は、日光（ＬＳ１）の白と松明（ＬＳ２）の赤が合成された色になる。従って、あたかも２つの光源でシェーディングしたかのように見えるリアルな画像を提供できる。また、オブジェクトＯＢ１が、松明（ＬＳ２）から離れた位置から松明の方に近づいて行った場合に、日光により支配的にシェーディングされる状態から、松明により支配的にシェーディングされる状態に徐々に移行するようになり、より自然な画像表現が可能になる。
【０１０８】
なお、図７に、日光（ＬＳ１）だけを用いてオブジェクトＯＢ１をシェーディングした場合の画像の例を示し、図８に、松明（ＬＳ２）だけを用いてＯＢ１をシェーディングした場合の画像の例を示す。
【０１０９】
図７では、松明（ＬＳ２）からの光の影響が、オブジェクトＯＢ１のシェーディングの際に考慮されず、日光（ＬＳ１）の白の光だけでシェーディングされてしまうため、図６に比べて今ひとつリアルな画像を表現できない。また、図８では、松明（ＬＳ２）からの赤の色の光だけでオブジェクトＯＢ１がシェーディングされてしまうため、不自然な画像になってしまう。
【０１１０】
この場合、例えば、オブジェクトＯＢ１が松明（ＬＳ２）に近づいた時に、所与のタイミングで、日光（ＬＳ１）だけを用いるシェーディングから、松明（ＬＳ２）だけを用いるシェーディングに切り替える手法を考えることもできる。
【０１１１】
しかしながら、この手法によると、プレーヤの見る画像が、図７の画像から図８の画像に突然切り替わる事態が生じてしまい、プレーヤが不自然さを感じる。
【０１１２】
図２（Ａ）、（Ｂ）の本実施形態によれば、光源ＬＳ１、ＬＳ２の合成光源でオブジェクトＯＢ１がシェーディングされるため、上記のような事態を防止でき、より自然でリアルな画像を生成できる。
【０１１３】
２．４  基底光源
本実施形態では、光源を合成する前に、複数の光源の中から基底光源（メイン光源、基準光源）を、まず選択する。そして、この選択された基底光源に対して、他の光源を合成するようにしている。
【０１１４】
より具体的には、例えば図９（Ａ）では、光源ＬＳ１が基底光源として選択されている。この基底光源の選択は、例えば光源の明度（広義には光源情報）に基づいて行う。そして、明度が最も高い光源を基底光源として選択する。図９（Ａ）では、光源ＬＳ１〜ＬＳ３のうち、ＬＳ１の明度ＢＲ１がＬＳ２、ＬＳ３の明度ＢＲ２、ＢＲ３よりも高いため、ＬＳ１が基底光源として選択される。
【０１１５】
本実施形態では、このようにして選択された基底光源ＬＳ１に対して、他の光源ＬＳ２、ＬＳ３を合成する。
【０１１６】
即ち、図２（Ａ）〜図４（Ｂ）で説明した手法を用いて、基底光源ＬＳ１の照明方向ベクトルＶ１に対して、光源ＬＳ２、ＬＳ３の照明方向ベクトルＶ２、Ｖ３を合成する。また、ＬＳ１の色Ｃ１に対して、ＬＳ２、ＬＳ３の色Ｃ２、Ｃ３を合成する。そして、得られた合成光源ＬＳＳ（合成ベクトルＶＳ、合成色ＣＳ）でオブジェクトＯＢ（ＬＰ）をシェーディングする。
【０１１７】
この場合に本実施形態では、基底光源よりも他の光源の合成率が低くなるように、基底光源に対して他の光源を合成している。
【０１１８】
従って、図９（Ｂ）に示すように、ＬＳ１の明度ＢＲ１の方がＬＳ２のＢＲ２より高く、ＬＳ１が基底光源として選択された場合には、合成光源ＬＳＳの照明方向ベクトルＶＳの方向が、Ｖ２の方向よりもＶ１の方向に近づくようになる。また、図９（Ｃ）に示すように、ＬＳ２の明度ＢＲ２の方がＬＳ１のＢＲ１より高く、ＬＳ２が基底光源として選択された場合には、ＶＳの方向が、Ｖ１の方向よりもＶ２の方向に近づくようになる。即ち、合成光源の照明方向ベクトルの方向を、明度が高い基底光源の照明ベクトルの方向の方に自動的に近づけることができる。これにより、明度が高い基底光源を支配的な光源に設定して、オブジェクトＯＢをシェーディングすることが可能になる。
【０１１９】
例えば図５に示すゲームフィールドにおいて、オブジェクトＯＢ１と疑似点光源ＬＳ２（松明）との距離が遠い場合には、図４（Ａ）、（Ｂ）で説明したようにＯＢ１に対する疑似点光源ＬＳ２の明度は低くなる。従って、この場合には、ＬＳ２に比べて明度が高い光源ＬＳ１（日光）が基底光源として選択され、ＬＳ１の照明方向にほぼ一致する照明方向で、オブジェクトＯＢ１がシェーディングされるようになる。
【０１２０】
一方、オブジェクトＯＢ１が疑似点光源ＬＳ２（松明）に近づくと、ＯＢ１、ＬＳ２間の距離が短くなり、ＯＢ１に対する疑似点光源ＬＳ２の明度は高くなる。そして、ＯＢ１、ＬＳ２間が所与の距離になると、ＬＳ２（松明）の明度の方がＬＳ１（日光）の明度よりも高くなり、ＬＳ２が基底光源として選択される。これにより、ＬＳ２の照明方向に近い照明方向で、オブジェクトＯＢ１がシェーディングされるようになる。
【０１２１】
従って、ＯＢ１、ＬＳ２間の距離が遠い場合には、ＬＳ１（日光）が支配的な光源になるシェーディングが行われ、ＯＢ１、ＬＳ２間の距離が近い場合には、ＬＳ２（松明）が支配的な光源になるシェーディングが行われるようになる。
【０１２２】
さて、図９（Ａ）に示す手法を採用すると、例えば基底光源がＬＳ１からＬＳ２に切り替わった際に、合成光源ＬＳＳの照明方向ベクトルＶＳの方向が、図９（Ｂ）、図９（Ｃ）に示すように急激に切り替わってしまう可能性がある。また、合成光源ＬＳＳの色ＣＳが、例えば白（日光）から赤（松明）に急激に切り替わってしまう可能性がある。
【０１２３】
そこで本実施形態では、基底光源が、例えばＬＳ１（第Ｎのフレームの第Ｋの光源）からＬＳ２（第Ｎ＋１のフレームの第Ｌの光源）に切り替わった場合に、合成処理に対するＬＳ１の影響度（合成率）が、フレーム経過に伴い徐々に減少するように、光源の合成処理を行っている。
【０１２４】
即ち図１０（Ａ）に示すように、合成光源ＬＳＳのＶＳの方向が、ＬＳ１のＶ１の方向から、ＬＳ２のＶ２の方向の方に徐々に変化するように、光源の合成処理を行っている。また、合成光源ＬＳＳの色ＣＳが、ＬＳ１の色Ｃ１から、ＬＳ２の色Ｃ２の方に徐々に変化するように、光源の合成処理を行っている。
【０１２５】
より具体的には、このような合成処理は例えば以下のような手法で実現できる。
【０１２６】
即ち、図１０（Ｂ）に示すように、前回のフレーム（第Ｎのフレーム）で得られた合成光源ＬＳＳ’の情報（ＶＳ’、ＣＳ’）を破棄せずに取っておく。そして、この前回（過去）のフレームの合成光源ＬＳＳ’と、現在のフレーム（第Ｎ＋１のフレーム）の合成光源ＬＳＳを合成し、最終的な合成光源ＬＳＳＬを求める。そして、このＬＳＳＬを用いてオブジェクトＯＢをシェーディングする。
【０１２７】
例えば、前回のフレームの合成光源ＬＳＳ’の照明方向ベクトルＶＳ’、色ＣＳ’と、現在のフレームの合成光源ＬＳＳの照明方向ベクトルＶＳ、色ＣＳとを、合成率ＧＲを用いて下式のように合成し、最終的な合成光源ＬＳＳＬの照明方向ベクトルＶＳＬ、色ＣＳＬを求める。
【０１２８】
ＶＳＬ＝（１．０−ＧＲ）×ＶＳ’＋ＧＲ×ＶＳ    （７）
ＣＳＬ＝（１．０−ＧＲ）×ＣＳ’＋ＧＲ×ＣＳ    （８）
なお、上式（７）、（８）に示すような狭義のブレンディング方式ではなく、前述した式（３）、（４）のような加算ブレンディング方式で合成処理を行ってもよい。
【０１２９】
また、上式の合成率ＧＲを、可変に制御するようにしてもよい。
【０１３０】
例えば、基底光源の切り替わりの際に、図９（Ｂ）の状態から図９（Ｃ）の状態に素早く移行させたい場合には、合成率ＧＲを１．０（最大値）に設定したり、１．０に近い値に設定する。
【０１３１】
このようにすれば、上式（７）、（８）から明らかなように、前回（過去）のフレームの合成光源ＬＳＳ’のＶＳ’、ＣＳ’が、最終的な合成光源ＬＳＳＬのＶＳＬ、ＣＳＬに対して与える影響が少なくなる。これにより、光源の素早い切替が可能になる。
【０１３２】
一方、基底光源の切り替わりの際に、図１０（Ａ）に示すように、ＬＳＳのＶＳやＣＳを徐々に変化させたい場合には、ＧＲを小さな値（０．０に近い値）に設定する。或いは、小さな値から大きな値にフレーム経過に伴い変化するように、ＧＲを設定する。
【０１３３】
このようにすれば、上式（７）、（８）から明らかなように、前回（過去）のフレームの合成光源ＬＳＳ’のＶＳ’、ＣＳ’の影響が強く残るようになる。これにより、最終的な合成光源ＬＳＳＬのＶＳＬ、ＣＳＬがゆっくりと変化するようになり、より自然で滑らかな光源の切替が可能になる。
【０１３４】
２．５  アンビエント光への付加
本実施形態では、複数の光源のうち、合成処理の対象とならなかった光源の色を、アンビエント光の色に付加するようにしている。
【０１３５】
例えば図１１（Ａ）では、光源ＬＳ１、ＬＳ２、ＬＳ３を合成することで、合成光源ＬＳＳが求められ、ＬＳＳに基づいてオブジェクトＯＢのシェーディングが行われている。
【０１３６】
一方、図１１（Ｂ）では、オブジェクトＯＢが移動しており、ＯＢとＬＳ１、ＬＳ２、ＬＳ３の位置関係が変化している。そして図１１（Ｂ）では、基底光源となるＬＳ１の照明方向ベクトルＶ１と、光源ＬＳ２の照明方向ベクトルＶ２とのなす角度が９０度（直角）以上になっている。
【０１３７】
このような場合に、光源ＬＳ２の影響がＬＳＳの合成処理に及んだままになると、不自然な事態が生じるおそれがある。特に、光源の合成率γを、図３（Ａ）、（Ｂ）に示すように内積値ＶＩＰに基づいて求めている場合には、Ｖ１とＶ２のなす角度が９０度よりも広がると、ＶＩＰが負の値になってしまい、合成率γを適切に求めることができなくなるおそれがある。
【０１３８】
そこで本実施形態では、図１１（Ｂ）のようにＶ１とＶ２のなす角度が９０度以上になった場合には、光源ＬＳ２を合成処理の対象から除外している。そして、この除外された光源ＬＳ２の色Ｃ２を、アンビエント光の色（ＲＧＢ）に付加する。
【０１３９】
このようにすれば、光源ＬＳ２は、合成処理の対象からは除外されるものの、その影響は、アンビエント光の色として残るようになる。
【０１４０】
例えば図５において、オブジェクトＯＢ１と松明（ＬＳ２）の位置関係が変化し、松明が光源の合成処理の対象から除外された場合を考える。このような場合に、松明（ＬＳ２）による照明の影響が全く無くなってしまうと、今ひとつリアルな画像を生成できない。
【０１４１】
本実施形態では、このような場合にも、松明（ＬＳ２）の色（赤）がアンビエント光の色に付加される。従って、松明による赤の照明の影響が少なからず残るようになり、少ない処理でリアルな画像の生成が可能になる。
【０１４２】
なお、図１１（Ｂ）において光源ＬＳ２を合成処理の対象から除外するか否かは、Ｖ１とＶ２の内積ＶＩＰが負になったか否かで判断することが望ましいが、これとは異なる基準で判断するようにしてもよい。
【０１４３】
また、ＬＳ２の色Ｃ２そのものをアンビエント光の色に付加する代わりに、Ｃ２に変換処理を施し、変換処理後のＣ２をアンビエント光の色に付加するようにしてもよい。
【０１４４】
２．６  ヒットイベント時のエフェクト光
格闘ゲームなどにおいては、一方のオブジェクト（キャラクタ）の攻撃（武器、キック、パンチ）が他方のオブジェクトにヒットするヒットイベントの発生時に、ヒットイベントが発生したことをプレーヤに視覚的に伝えるヒットエフェクト光を表示することが望ましい。
【０１４５】
本実施形態では、このヒットエフェクト光の表示を、図２（Ａ）、（Ｂ）で説明した光源合成処理で実現している。
【０１４６】
例えば図１２（Ａ）では、オブジェクトＯＢ２（キャラクタ）の攻撃（武器）がオブジェクトＯＢ１にヒットしている。そして、ヒットチェック処理により、ヒット位置としてＨＰ１、ＨＰ２、ＨＰ３、ＨＰ４が検出されている。
【０１４７】
この場合に本実施形態では図１２（Ｂ）に示すように、これらの複数のヒット位置ＨＰ１、ＨＰ２、ＨＰ３、ＨＰ４に、ヒットエフェクト光を表現するための光源ＬＳ１、ＬＳ２、ＬＳ３、ＬＳ４を設定（配置）する。
【０１４８】
そして、これらの光源ＬＳ１〜ＬＳ４を図２（Ａ）、（Ｂ）で説明した手法により合成することで、図１３（Ａ）に示すように、合成光源ＬＳＳ１を求める。そして、求められた合成光源ＬＳＳ１に基づいてオブジェクトＯＢ１のシェーディングを行う。
【０１４９】
より具体的には、光源ＬＳ１〜ＬＳ４からオブジェクトＯＢ１の代表位置ＬＰ１に向かう方向の照明方向ベクトルを求める。そして、これらの照明方向ベクトルを合成し、合成光源ＬＳＳ１の照明方向ベクトルＶＳ１を求める。また、光源ＬＳ１〜ＬＳ４の色を合成し、合成光源ＬＳＳ１の色ＣＳ１を求める。
【０１５０】
そして、求められた照明方向ベクトルＬＳＳ１、色ＣＳ１を用いて、オブジェクトＯＢ１の各頂点の色などを求め、ＯＢ１のシェーディングを行う。
【０１５１】
一方、オブジェクトＯＢ２については、図１３（Ｂ）に示すような合成光源ＬＳＳ２を求める。そして、求められた合成光源ＬＳＳ２に基づいてオブジェクトＯＢ２のシェーディングを行う。
【０１５２】
より具体的には、光源ＬＳ１〜ＬＳ４からオブジェクトＯＢ２の代表位置ＬＰ２に向かう方向の照明方向ベクトルを求める。そして、これらの照明方向ベクトルを合成し、合成光源ＬＳＳ２の照明方向ベクトルを求める。また、光源ＬＳ１〜ＬＳ４の色を合成し、合成光源ＬＳＳ２の色ＣＳ２を求める。そして、求められた照明方向ベクトルＬＳＳ２、色ＣＳ２を用いて、オブジェクトＯＢ２の各頂点の色などを求め、ＯＢ２のシェーディングを行う。
【０１５３】
図１４に、図１２（Ａ）〜図１３（Ｂ）の本実施形態の手法により生成される画像の例を示す。
【０１５４】
このように本実施形態によれば、あたかも複数個の光源で構成されているかのように見えるヒットエフェクト光を、簡素な処理で生成できる。
【０１５５】
しかも、ヒットチェックにより検出されたヒット位置に複数の光源を配置するだけで、その後の光源合成処理は自動的に行われる。従って、ヒット位置に応じて処理内容を変えるなどの煩雑な処理を必要とすることなく、ヒット位置を反映した適正な合成光源で、オブジェクトをシェーディングすることが可能になる。
【０１５６】
また、本実施形態によれば、図１３（Ａ）、（Ｂ）に示すように、同じヒット位置に基づいて、オブジェクトＯＢ１用の合成光源ＬＳＳ１と、オブジェクトＯＢ２用の合成光源ＬＳＳ２の両方を自動的に生成できる。そして、これらのＬＳＳ１、ＬＳＳ２を用いることで、オブジェクトＯＢ１、ＯＢ２に対して、異なったシェーディングを施すことが可能になり、よりリアルなシェーディングを実現できる。
【０１５７】
なお、ヒットイベントが発生する前においては、合成光源ＬＳＳ１やＬＳＳ２に使用されるシェーディング用の物理的な光源を、他の用途に使用することが望ましい。ここで、他の用途としては、例えば、オブジェクトの逆光部分を照明する逆光補正用の光源などの用途が考えられる。そして、ヒットイベントが発生したことを条件に、このシェーディング用の物理的な光源を、図１３（Ａ）、（Ｂ）に示すようなヒットエフェクト光の光源に使用するようにすればよい。
【０１５８】
また、ヒットエフェクト光の生成時には、図１０（Ａ）、（Ｂ）や上式（７）、（８）で説明した合成率ＧＲ（移行速度）を、なるべく大きな値に設定することが望ましい。例えば、ヒットエフェクト光の生成時には、上式（７）、（８）においてＧＲ＝１．０に設定する。このようにすることで、例えば他の用途の光源（逆光補正用の光源）からヒットエフェクト用の光源への切替を素早く行うことが可能になる。
【０１５９】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１５、図１６、図１７のフローチャートを用いて説明する。
【０１６０】
まず、各光源について、オブジェクト（照明位置）に対する照明方向ベクトルと明度（減衰度）を決定する（ステップＳ１）。ここで、減衰率は、図４（Ａ）、（Ｂ）で説明した疑似点光源の明度の減衰率である。そして、全ての光源について処理が終了するまで処理を繰り返す（ステップＳ２）。
【０１６１】
次に、ステップＳ１で決定した明度（減衰後の明度）に基づき、オブジェクトを照明する光源を、明るい順になるようにソートする（ステップＳ３）。即ち、明度が最も高い光源が先頭になるようにソートする。そして、全ての光源のソートが終了するまで処理を繰り返す（ステップＳ４）。
【０１６２】
次に、処理対象となる光源が、ソートされた光源のうちの先頭の光源か否かを判断する（図１６のステップＳ５）。そして、先頭の光源である場合には、その光源が、前回のフレームで基底光源として使用した光源と同じか否かを判断する（ステップＳ６）。そして、同じ光源である場合にはステップＳ１０に移行する。
【０１６３】
一方、違う光源である場合（基底光源が切り替わった場合）には、合成率ＧＲの移行速度ＳＳを早くするか否かを判定する（ステップＳ７）。そして、速くする場合（図１２（Ａ）〜図１４のヒットエフェクト光の場合）には、ＳＳを１．０（最大値）に設定する（ステップＳ８）。一方、速くしない場合（図５の日光と松明の場合）には、ＳＳを０．０（最小値）に設定する（ステップＳ９）。
【０１６４】
次に、処理対象光源を基底光源に設定する（ステップＳ１０）。より具体的には、基底光源（図９（Ａ）〜（Ｃ）参照）の照明方向ベクトルを基底ベクトルＶＢに設定すると共に合成ベクトルＶＳの初期値に設定する。また、基底光源の明度を基底明度ＢＲＢに設定し、基底光源の色を合成色ＣＳの初期値に設定する。そして、追従度Ｔを１．０に設定し（ステップＳ１１）、ステップＳ１９に移行する。
【０１６５】
ステップＳ５で、処理対象光源が先頭の光源ではないと判断された場合には、基底明度ＢＲＢに対する、処理対象光源の明度ＢＲの割合ＢＲＰを求め、求められたＢＲＰを０．０〜１．０の範囲にリミットする（ステップＳ１２）。また、基底ベクトルＶＢと処理対象光源の照明方向ベクトルＶとの内積ＶＩＰを求める（ステップＳ１３）。
【０１６６】
次に、内積ＶＩＰが負の値か否かを判断し（ステップＳ１４）、ＶＩＰ＜０の場合には、処理対象光源の色ＣとＶＩＰに基づき、アンビエント光の色に付加すべき色ＣＡを求める（ステップＳ１５。図１１（Ａ）、（Ｂ）参照）。
【０１６７】
一方、ＶＩＰ≧０の場合には、明度割合ＢＲＰと内積ＶＩＰに基づいて、合成率γ＝Ｆ（ＢＲＰ，ＶＩＰ）を求める（ステップＳ１６。図３（Ａ）、（Ｂ）参照）。
【０１６８】
次に、基底光源と処理対象光源の明度が近いほど小さな値になる追従度Ｔ＝｛Ｔ＋（１−ＢＲＰ）｝×０．５を設定する（ステップＳ１７）。
【０１６９】
次に、求まった合成率γと、処理対象光源の照明方向ベクトルＶ及び色Ｃに基づいて、合成ベクトルＶＳ＝ＶＳ＋γ×Ｖ、合成色ＣＳ＝ＣＳ＋γ×Ｃを求める。（ステップＳ１８。図２（Ａ）、（Ｂ）、図９（Ａ）、（Ｂ）、（Ｃ）参照）。そして、全ての処理対象光源を処理したか否かを判断し（ステップＳ１９）、処理していない場合にはステップＳ５に戻る。
【０１７０】
次に、合成ベクトルＶＳを正規化する（図１７のステップＳ２０）。そして、過去の合成ベクトルとの合成率ＧＲをコントロールするか否かを判断する（ステップＳ２１）。
【０１７１】
そして、ＧＲをコントロールする場合には、ＧＲ＝Ｔ3に設定し、得られたＧＲを０．１〜１．０の範囲にリミットする（ステップＳ２２）。このようにすることで、ＧＲは、Ｔ＝１．０付近で急峻に０．０から１．０に変化するようになる。一方、ＧＲをコントロールしない場合には、ＧＲ＝１．０に設定する（ステップＳ２３）。
【０１７２】
次に、ＧＲ＝ＧＲ×ＳＳに設定し、得られたＧＲを０．０５〜１．０の範囲にリミットする（ステップＳ２４）。ＧＲ≧０．０５となるようにＧＲをリミットすることで、移行速度ＳＳ＝０．０の場合にも、ＧＲが０．０５よりも小さくならないことが保証されるようになる。
【０１７３】
次に、移行速度ＳＳ＝ＳＳ＋１／Ｍ（例えばＭ＝２４）に設定し、得られたＳＳを０．０〜１．０の範囲にリミットする（ステップＳ２５）。このようにすることで、移行速度ＳＳが、フレーム経過に伴い徐々に増加するようになる。
【０１７４】
次に、前回のフレームの合成ベクトルＶＳ’と、今回のフレームの合成ベクトルＶＳと、合成率ＧＲに基づき、最終合成ベクトルＶＳＬ＝（１．０−ＧＲ）×ＶＳ’＋ＧＲ×ＶＳを求める（ステップＳ２６。図１０（Ｂ）参照）。
【０１７５】
また、前回のフレームの合成色ＣＳ’と、今回のフレームの合成色ＣＳと、合成率ＧＲに基づき、最終合成色ＣＳＬ＝（１．０−ＧＲ）×ＣＳ’＋ＧＲ×ＣＳを求める（ステップＳ２７）。
【０１７６】
そして、求められた最終合成ベクトルＶＳＬと、最終合成色ＣＳＬと、移行速度ＳＳを、次のフレームの処理に使用するために主記憶部に保存する（ステップＳ２８）。
【０１７７】
最後に、最終合成ベクトルＶＳＬ、最終合成色ＣＳＬに基づき、オブジェクトのシェーディングを行う（ステップＳ２９）。
【０１７８】
以上のようにすることで、当該フレームでの光源の合成処理が完了し、オブジェクトをシェーディングすることができる。
【０１７９】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１８を用いて説明する。
【０１８０】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１８１】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１８２】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１８３】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１８４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１８５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１８６】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１８７】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１８８】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１８９】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１９０】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１９１】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１９２】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１９３】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【０１９４】
図１９（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、操作部１１０２（レバー、ボタン）を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０１９５】
図１９（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０１９６】
図１９（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４-１〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-１〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-１〜１３０４-nに伝送し端末において出力することになる。
【０１９７】
なお、図１９（Ｃ）の構成の場合に、本実施形態の各部を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１９８】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【０１９９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２００】
例えば、明細書中の記載において広義な用語（光源情報、光源の合成、光源等）として引用された用語（照明方向ベクトル・色・光源位置・明度、照明方向ベクトル・色の合成、疑似点光源等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０２０１】
また、本発明の光源の合成処理手法は、図２（Ａ）〜図１７で詳細に説明した手法に限定されず、種々の変形実施が可能である。
【０２０２】
例えば、合成率を、内積や明度割合以外のパラメータで求めるようにしてもよい。また、光源を合成する方式も、加算ブレンディング方式や狭義のブレンディング方式に限定されない。
【０２０３】
特に、合成処理の対象とならなかった光源の色をアンビエント光の色に付加する発明や、複数のヒット位置に複数の光源を設定して合成光源を求める発明においては、光源の合成処理を、本実施形態で説明したものとは異なる処理で実現してもよい。
【０２０４】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２０５】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）に適用できる。
【０２０６】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【０２０７】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】図２（Ａ）、（Ｂ）は、本実施形態の光源合成手法について説明するための図である。
【図３】図３（Ａ）、（Ｂ）は、光源合成の合成率を得る手法について説明するための図である。
【図４】図４（Ａ）、（Ｂ）は、疑似点光源について説明するための図である。
【図５】本実施形態により生成された画像の例を示す図である。
【図６】本実施形態により生成された画像の例を示す図である。
【図７】本実施形態の処理を施さなかった場合の画像の例を示す図である。
【図８】本実施形態の処理を施さなかった場合の画像の例を示す図である。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）は、基底光源を用いて光源合成を行う手法について説明するための図である。
【図１０】図１０（Ａ）、（Ｂ）は、基底光源の切替時における光源合成手法について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、合成処理の対象とならなかった光源の色をアンビエント光に付加する手法について説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）は、複数のヒット位置に複数の光源を設定して合成する手法について説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）も、複数のヒット位置に複数の光源を設定して合成する手法について説明するための図である。
【図１４】本実施形態により生成された画像の例を示す図である。
【図１５】本実施形態の処理の詳細例について示すフローチャートである。
【図１６】本実施形態の処理の詳細例について示すフローチャートである。
【図１７】本実施形態の処理の詳細例について示すフローチャートである。
【図１８】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
【０２０８】
ＬＳ１、ＬＳ２    光源
Ｃ１、Ｃ２        色
ＢＲ１、ＢＲ２    明度
Ｖ１１、Ｖ２１、Ｖ１２、Ｖ２２、Ｖ１、Ｖ２  照明方向ベクトル
ＬＳＳ１、ＬＳＳ２、ＬＳＳ  合成光源
ＣＳ１、ＣＳ２、ＣＳ        色
ＶＳ１、ＶＳ２、ＶＳ        照明方向ベクトル
ＯＢ１、ＯＢ２、ＯＢ  オブジェクト
ＬＰ１、ＬＰ２、ＬＰ  照明位置、代表位置
１００  処理部
１１０  移動・動作処理部
１１２  オブジェクト空間設定部
１１４  ヒットチェック部
１１６  光源設定部
１１８  基底光源選択部
１１９  光源合成部
１２０  画像生成部
１２２  シェーディング部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画バッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004596551.tif 000002
【図２】
0004596551.tif 000003
【図３】
0004596551.tif 000004
【図４】
0004596551.tif 000005
【図５】
0004596551.tif 000006
【図６】
0004596551.tif 000007
【図７】
0004596551.tif 000008
【図８】
0004596551.tif 000009
【図９】
0004596551.tif 000010
【図１０】
0004596551.tif 000011
【図１１】
0004596551.tif 000012
【図１２】
0004596551.tif 000013
【図１３】
0004596551.tif 000014
【図１４】
0004596551.tif 000015
【図１５】
0004596551.tif 000016
【図１６】
0004596551.tif 000017
【図１７】
0004596551.tif 000018
【図１８】
0004596551.tif 000019
【図１９】
0004596551.tif 000020