(57)【要約】【課題】元画像に影画像や光照射画像が形成された画像を簡素な処理で生成できるプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】  第１の色と第２の色の加算描画により加算結果が黒色になる描画モードで、視点から見て表面となるモディファイアボリュームのプリミティブ面については第１の色で描画し、視点から見て裏面となるプリミティブ面については第２の色で描画する。そしてモディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に減算又は加算描画することで、元画像に影画像又は光照射画像が形成された画像を生成する。モディファイアボリュームのプリミティブ面の描画により生成された画像に画像加工処理（ぼかし処理、色の同一化処理）を施し、画像加工処理後の画像を元画像に減算又は加算描画する。【選択図】      図８
2005157541.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
モディファイアボリュームを設定するモディファイアボリューム設定部と、
第１の色と第２の色の加算描画により輝度値がオーバフローした場合に加算結果が黒色になる描画モードで、視点から見て表面となるモディファイアボリュームのプリミティブ面については前記第１の色で描画し、視点から見て裏面となるモディファイアボリュームのプリミティブ面については前記第２の色で描画し、モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に描画することで、元画像に影画像又は光照射画像が形成された画像を生成する描画部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記描画部が、
モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に減算描画することで、元画像に影画像が形成された画像を生成することを特徴とするプログラム。
【請求項３】
請求項１において、
前記描画部が、
モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に加算描画することで、元画像に光照射画像が形成された画像を生成することを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記描画部が、
モディファイアボリュームのプリミティブ面の描画により生成された画像に所与の画像加工処理を施し、画像加工処理後の画像を元画像に減算描画又は加算描画することで、元画像に影画像又は光照射画像が形成された画像を生成することを特徴とするプログラム。
【請求項５】
請求項４において、
前記画像加工処理が、モディファイアボリュームのプリミティブ面の描画により生成された画像をぼかす処理であることを特徴とするプログラム。
【請求項６】
請求項４において、
前記画像加工処理が、モディファイアボリュームのプリミティブ面の描画により生成された画像のうち影画像又は光照射画像となるべき画像部分の色を、同一色にする処理であることを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記第２の色は、そのＲＧＢの各輝度値が、前記第１の色のＲＧＢの各輝度値と２進数表現で２の補数の関係になる色であることを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記描画モードが、
前記第１の色のＲＧＢの各輝度値と前記第２の色のＲＧＢの各輝度値との加算によるオーバフローにより、加算結果の繰り上がりビットに１が繰り上がった場合に、加算結果の繰り上がりビットを無効にし、繰り上がりビットよりも下位のＮビットだけを有効にするモードであることを特徴とするプログラム。
【請求項９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至８のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１０】
オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、
モディファイアボリュームを設定するモディファイアボリューム設定部と、
第１の色と第２の色の加算描画により輝度値がオーバフローした場合に加算結果が黒色になる描画モードで、視点から見て表面となるモディファイアボリュームのプリミティブ面については前記第１の色で描画し、視点から見て裏面となるモディファイアボリュームのプリミティブ面については前記第２の色で描画し、モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に描画することで、元画像に影画像又は光照射画像が形成された画像を生成する描画部と、
を含むことを特徴とする画像生成システム。
【請求項１１】
請求項１０において、
前記描画部が、
モディファイアボリュームのプリミティブ面の描画により生成された画像に所与の画像加工処理を施し、画像加工処理後の画像を元画像に減算描画又は加算描画することで、元画像に影画像又は光照射画像が形成された画像を生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、影画像や光照射画像についてもリアルに表現できることが望ましい。そしてこのようなリアルな影画像等を生成する手法として、ステンシルバッファを用いる手法がある。
【０００４】
しかしながら、ステンシルバッファ手法で影画像を生成するためには、ステンシルバッファのハードウェアを画像生成システムが備えていることが必要である。従って、このようなハードウェアを備えていない画像生成システムにおいては、ステンシルバッファ手法による影画像等の生成を実現できないという課題があった。
【特許文献１】特開２０００−３５３２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、元画像に影画像や光照射画像が形成された画像を簡素な処理で生成できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、モディファイアボリュームを設定するモディファイアボリューム設定部と、第１の色と第２の色の加算描画により輝度値がオーバフローした場合に加算結果が黒色になる描画モードで、視点から見て表面となるモディファイアボリュームのプリミティブ面については前記第１の色で描画し、視点から見て裏面となるモディファイアボリュームのプリミティブ面については前記第２の色で描画し、モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に描画することで、元画像に影画像又は光照射画像が形成された画像を生成する描画部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明では、第１の色と第２の色との加算描画の結果が黒色になる描画モードに設定されて、モディファイアボリュームのプリミティブ面の描画処理が行われる。具体的には、モディファイアボリュームを構成するプリミティブ面のうち、視点から見て表面となるプリミティブ面については第１の色で描画され、視点から見て裏面となるプリミティブ面については第２の色で描画される。そして、このようなプリミティブ面の描画により得られた画像（画像加工処理が施された画像を含む）を、元画像（元画像が描画されている領域）に描画（α合成等）することで、元画像に影画像又は光照射画像が形成された画像が生成される。このように本発明によれば、表面のプリミティブ面を第１の色で描画し、裏面のプリミティブ面を第２の色で描画し、描画により得られた画像を元画像に描画するだけという簡素な処理で、影画像や光照射画像を生成できる。従って例えばステンシルバッファなどのハードウェアを有しない画像生成システムにおいても、リアルで自然な影画像や光照射画像を生成できるという利点がある。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に減算描画することで、元画像に影画像が形成された画像を生成するようにしてもよい。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、モディファイアボリュームのプリミティブ面の描画により得られた画像を元画像に加算描画することで、元画像に光照射画像が形成された画像を生成するようにしてもよい。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、モディファイアボリュームのプリミティブ面の描画により生成された画像に所与の画像加工処理を施し、画像加工処理後の画像を元画像に減算描画又は加算描画することで、元画像に影画像又は光照射画像が形成された画像を生成するようにしてもよい。
【００１１】
このようにすれば、ステンシルバッファ手法では実現できない影画像や光照射画像の画像加工処理を実現できるようになり、生成される画像の品質やリアル感を向上できる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像加工処理が、モディファイアボリュームのプリミティブ面の描画により生成された画像をぼかす処理であってもよい。
【００１３】
このようにすれば、影画像や光照射画像の境界を目立たなくするアンチエリアシングなどを簡素に実現できる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像加工処理が、モディファイアボリュームのプリミティブ面の描画により生成された画像のうち影画像又は光照射画像となるべき画像部分の色を、同一色にする処理であってもよい。
【００１５】
このようにすれば、影画像や光照射画像にムラが生じるのを防止でき、画像の品質やリアル感を向上できる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第２の色は、そのＲＧＢの各輝度値が、前記第１の色のＲＧＢの各輝度値と２進数表現で２の補数の関係になる色であってもよい。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画モードが、前記第１の色のＲＧＢの各輝度値と前記第２の色のＲＧＢの各輝度値との加算によるオーバフローにより、加算結果の繰り上がりビットに１が繰り上がった場合に、加算結果の繰り上がりビットを無効にし、繰り上がりビットよりも下位のＮビットだけを有効にするモードであってもよい。
【発明を実施するための最良の形態】
【００１８】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１９】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２０】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２３】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２４】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２５】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２６】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、視点制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２７】
オブジェクト空間設定部１１０は、キャラクタ、車、樹木、柱、壁、建物、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２８】
オブジェクト空間設定部１１０はモディファイアボリューム設定部１１１を含む。このモディファイアボリューム設定部１１１は、影画像や光照射画像の生成のためのモディファイアボリューム（狭義にはシャドウボリューム）の設定処理（生成、配置処理）行う。ここでモディファイアボリュームは、影画像や光照射画像を形成する領域（属性変更領域）を特定するために用いられるボリューム（仮想的なオブジェクト）であり、例えば閉じたサーフェスモデルで定義される。
【００２９】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３０】
視点制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３１】
例えば仮想カメラによりオブジェクトを後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。この場合には、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００３２】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画領域１７２（ピクセル単位で画像情報を記憶できる領域。ＶＲＡＭ領域）に描画する。これにより、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像が生成される。
【００３３】
そして本実施形態では描画部１２０が、第１の色（例えば（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ））と第２の色（例えば（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１））が加算描画された場合に加算結果が黒色（例えば（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００））になる描画モードで、モディファイアボリュームの各プリミティブ面（ポリゴン等）を描画する。
【００３４】
この場合に、モディファイアボリュームを構成する複数のプリミティブ面のうち、視点から見て表面となるプリミティブ面については上記の第１の色で描画する。一方、視点から見て裏面となるプリミティブ面については上記の第２の色で描画する。
【００３５】
そしてモディファイアボリュームのプリミティブ面の描画により得られた画像（描画により生成された画像そのもの、或いは該画像に画像加工処理を施した後の画像）を元画像（元画像が描画されている領域）に描画（減算又は加算描画）することで、元画像（元画像の影領域又は光照射領域）に影画像又は光照射画像が形成された画像を生成する。例えばモディファイアボリュームのプリミティブ面の描画により生成された画像を、元画像に減算描画することで、元画像（影領域）に影画像が形成された画像（フレーム画像）を生成する。或いはモディファイアボリュームのプリミティブ面の描画により生成された画像を、元画像に加算描画することで、元画像（光照射領域）に光照射画像が形成された画像（フレーム画像）を生成する。
【００３６】
なお元画像は、ジオメトリ処理後のオブジェクト（移動オブジェクト、背景オブジェクト等）を描画することで生成されるフレーム画像（１画面分の画像）であり、影画像や光照射画像が形成される前のフレーム画像である。
【００３７】
描画部１２０は、テクスチャマッピング部１２２、隠面消去部１２４、α合成部１２６を含む。
【００３８】
テクスチャマッピング部１２２は、テクスチャ領域１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理を行う。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ領域１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００３９】
隠面消去部１２４は、Ｚ値（奥行き情報）が格納されるＺバッファ１７６（奥行きバッファ）を用いて、公知のＺバッファ法（奥行き比較法）による隠面消去処理を行う。
【００４０】
α合成部１２６はα値（Ａ値）に基づくα合成処理（αブレンディング、α加算又はα減算等）を行う。例えばα合成がαブレンディングである場合には下式の合成処理を行う。
【００４１】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
一方、α合成が加算αブレンディングである場合には下式の合成処理を行う。
【００４２】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画領域１７２に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画領域１７２に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４５】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお以下では、影画像の生成に本実施形態の手法を採用した場合について主に説明するが、本実施形態の手法によれば影画像のみならず光照射画像（光により照らされることを表現する画像）についても生成できる。
【００４６】
２．１  ステンシルバッファ
まず本実施形態の比較例としてステンシルバッファを用いて影画像を生成する手法について説明する。ここでステンシルバッファは、直接、固定値のステンシル値（ステンシルバッファでのピクセル値）を書き込んだり、格納されているステンシル値にインクリメント（＋１）やデクリメント（−１）などの演算を施すことが可能なバッファである。ピクセルの描画の際には、ピクセル単位でステンシルバッファのステンシル値を参照し、参照されたステンシル値に基づいて、そのピクセルに対する描画を許可又は禁止することで、元画像に影画像が形成された画像を得ることができる。
【００４７】
例えば図２（Ａ）（Ｂ）に示すように、光源ＬＳからの光によりオブジェクトＯＢ１の影ＳＤがオブジェクトＯＢ２に落ちる画像を生成する場合には、以下のような処理が行われる。
【００４８】
まず図３（Ａ）に示すようなモディファイアボリュームＭＶを設定（生成、用意）する。このモディファイアボリュームＭＶは、例えば光源ＬＳから、影ＳＤを落とすオブジェクトＯＢ２に向かって、オブジェクトＯＢ１の頂点を引き延ばすことで設定できる。
【００４９】
そしてステンシルバッファへの描き込み処理は次のようにして行う。まずステンシルバッファの全ての領域に「０」を描き込んで、クリアしておく。そして図３（Ｂ）に示すように、モディファイアボリュームＭＶを構成するプリミティブ面（ポリゴン）のうち１枚目のプリミティブ面ＰＬ１をステンシルバッファに描画する。この場合、ＰＬ１は視点から見て表面であるため、ＰＬ１が描画される領域でのステンシル値は「１」だけインクリメントされる。
【００５０】
次に図４（Ａ）に示すように、モディファイアボリュームＭＶの２枚目のプリミティブ面ＰＬ２をステンシルバッファに描画する。この場合、ＰＬ２は視点から見て裏面であるため、ＰＬ２が描画される領域でのステンシル値は「−１」だけデクリメントされる。従って、元々何も描かれていない領域（ステンシル値が「０」の領域）では、ステンシル値が「−１」になる。一方、ＰＬ１とＰＬ２が重なる領域では、「１」のステンシル値が「−１」だけデクリメントされて「０」になる。
【００５１】
次に図４（Ｂ）に示すように、モディファイアボリュームＭＶの最後の３枚目のプリミティブ面ＰＬ３をステンシルバッファに描画する。この場合、ＰＬ３は視点から見て表面であるため、ＰＬ３が描画される領域でのステンシル値は「１」だけインクリメントされる。従って、図４（Ａ）でステンシル値が「−１」であった領域（ＰＬ２だけが描かれている領域）は、ステンシル値が「１」だけインクリメントされて「０」になる。一方、それ以外の領域では、ステンシル値が「１」だけインクリメントされて「１」になる。
【００５２】
以上のようなステンシルバッファ手法を用いれば、図４（Ｂ）に示すように、オブジェクトＯＢ１の影が形成されるべき領域だけで、ステンシル値が「１」になり、それ以外の領域ではステンシル値が「０」になる。従って、ステンシルバッファのステンシル値が「１」となっている領域（ピクセル）についてだけ、黒色の影画像を描画するようにすれば（属性情報を変更すれば）、オブジェクトＯＢ１の影がオブジェクトＯＢ２に落ちる画像を生成できる。
【００５３】
２．２  特定色のプリミティブ面の描画による影画像等の生成
上述のステンシルバッファを用いた影生成手法を実現するためには、画像生成システムがステンシルバッファのハードウェアを有している必要がある。従って、このようなステンシルバッファを備えていない画像生成システムでは、ステンシルバッファ手法で影画像を生成できないという課題があった。
【００５４】
そこで本実施形態では、ＶＲＡＭのＲＧＢプレーンを、あたかもステンシルバッファのステンシル値プレーンのようにみなして、影画像（光照射画像）を生成している。具体的には、モディファイアボリュームのプリミティブ面（ポリゴン等）を描画領域（ＶＲＡＭ）に特定色（ＲＧＢ）で描画することで、影画像（光照射画像）を生成している。以下、この本実施形態の手法について詳細に説明する。
【００５５】
まずＶＲＡＭにフレームバッファと同様に１画面分の描画領域を確保する。そしてその描画領域を例えば黒色（０ｘ００、０ｘ００、０ｘ００）で塗りつぶして、クリアしておく。
【００５６】
次に図３（Ａ）と同様に、モディファイアボリュームＭＶを設定（用意）しておく。このモディファイアボリュームＭＶの設定手法としては種々の手法がある。例えば光源ＬＳからの光の投影方向にオブジェクトＯＢ１の頂点を引き延ばす（移動する）ことで、モディファイアボリュームＭＶを設定（生成）してもよい。或いはオブジェクトＯＢ１を内包するバウンディングボリュームの頂点を投影方向に引き延ばすことで、モディファイアボリュームＭＶを設定してもよい。或いは、オブジェクトＯＢ１自体を投影方向に変形することで、モディファイアボリュームＭＶを設定してもよい。
【００５７】
なお、光源ＬＳが常に真上にあることが想定されるゲームなどでは、モディファイアボリュームＭＶの設定に用いる投影方向は、真上から真下へと向かう方向（Ｙ軸に沿った方向）に固定できる。また例えばキャラクタ（オブジェクト）の影画像（或いは光照射画像）の形状を丸形状に固定する場合（丸影の場合）には、キャラクタの位置に対応する位置に円錐状のバウンディングボリュームを設定（配置）すればよい。
【００５８】
次に、ＶＲＡＭの描画モードを、カラークランプが無効（マスク）になるモードに設定する。この描画モードは、第１の色のＲＧＢの各輝度値と第２の色のＲＧＢの各輝度値との加算によるオーバフローにより、加算結果の繰り上がりビット（例えば９ビット目）に１が繰り上がった場合に、加算結果の繰り上がりビットを無効にし、繰り上がりビットの下位のＮビット（例えば１〜８ビット）だけを有効にするモードである。
【００５９】
この描画モードで例えば（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）に（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０２、０ｘ０８）を加算すると、（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ０１、０ｘ０７）になる。例えば輝度値Ｒ＝（０ｘｆｆ）＝（１１１１１１１１）と輝度値Ｒ＝（０ｘ０１）＝（０００００００１）の加算によるオーバフローにより、繰り上がりビットである９ビット目に「１」が繰り上がった場合に、その繰り上がりビットの「１」は無視される。そして下位の８ビット（広義にはＮビット）である（００００００００）だけが有効になる。この結果、加算結果はＲ＝（０ｘ００）＝（００００００００）になる。
【００６０】
そして本実施形態では、このような描画モードで、モディファイアボリュームを構成する複数のプリミティブ面を描画する。具体的には、視点から見て表面となるプリミティブ面については第１の色で描画し、視点から見て裏面となるプリミティブ面については第２の色で描画する。例えば、第１の色は（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）であり、第２の色は（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）である。この場合、上記描画モードにおいて、第１の色（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）に第２の色（０ｘ０１、０ｘ０１、０ｘ０１）が加算描画されると、加算結果である第３の色は、黒色（広義には特定色）である（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）になる。
【００６１】
ここで、上記のように、第１の色は、ＲＧＢの各輝度値が最大値となる色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）にすることができる。一方、第２の色は、そのＲＧＢの各輝度値が、第１の色のＲＧＢの各輝度値（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）と、２進数表現で２の補数の関係になる色（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）にすることができる。即ち第１の色のＲＧＢの輝度値（０ｘｆｆ）＝（１１１１１１１１）と、第２の色のＲＧＢの輝度値（０ｘ０１）＝（０００００００１）とは、２の補数の関係となる。
【００６２】
なお第１の色として、ＲＧＢの輝度値が最大値よりも小さい値になる色を採用することもできる。例えば第１の色として（Ｒ、Ｇ、Ｂ）＝（０ｘｆｅ、０ｘｆｅ、０ｘｆｅ）や（Ｒ、Ｇ、Ｂ）＝（０ｘｆｄ、０ｘｆｄ、０ｘｆｄ）などを採用することもできる。この場合には第２の色は、各々、（Ｒ、Ｇ、Ｂ）＝（０ｘ０２、０ｘ０２、０ｘ０２）や（Ｒ、Ｇ、Ｂ）＝（０ｘ０３、０ｘ０３、０ｘ０３）にすることができる。また第１の色と第２の色の加算結果である特定色の第３の色は、（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）という黒色（真っ黒）であることが望ましいが、（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）や（Ｒ、Ｇ、Ｂ）＝（０ｘ０２、０ｘ０２、０ｘ０２）というような色にすることも可能である。
【００６３】
本実施形態の手法によりモディファイアボリュームの各プリミティブ面が描画される様子を図５（Ａ）（Ｂ）、図６（Ａ）に示す。なおこれらの各図の左側には、図３（Ａ）〜図４（Ｂ）のステンシルバッファ手法との対比を分かり易く示すために、ステンシルバッファの対応するステンシル値（「０」、「１」、「−１」）を併記している。
【００６４】
まず図５（Ａ）に示すように、モディファイアボリュームＭＶを構成するプリミティブ面（ポリゴン）のうち１枚目のプリミティブ面ＰＬ１をＶＲＡＭの描画領域（黒色にクリアされた１画面分の領域）に描画する。この場合、プリミティブ面ＰＬ１は視点から見て表面であるため、このＰＬ１は、第１の色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）で描画される。これにより、ＶＲＡＭの描画領域の様子は図５（Ａ）の右側に示すようになる。即ち描画領域は黒色のクリア色（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）で塗りつぶされており、プリミティブ面ＰＬ１が描画される領域（ピクセル）の色は、第１の色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）になる。これはステンシルバッファ手法においてステンシルバッファの領域に「１」が描き込まれることに相当する。
【００６５】
なお、モディファイアボリュームＭＶのプリミティブ面の描き込みの際に、Ｚバッファを用いた隠面消去も行われる。従って、図５（Ａ）の右側に示すように、オブジェクトＯＢ２により隠面消去される領域に対しては、（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）は描き込まれず、その領域の色は（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）のままとなる。但し、モディファイアボリュームＭＶは実際に表示されるオブジェクトではないため、この隠面消去の際にＺバッファの更新については行われない。
【００６６】
次に図５（Ｂ）に示すように、モディファイアボリュームＭＶの２枚目のプリミティブ面ＰＬ２をＶＲＡＭの描画領域に描画する。この場合、プリミティブ面ＰＬ２は視点から見て裏面であるため、このＰＬ２は、第２の色（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）で描画される。これにより、ＶＲＡＭの描画領域の様子は図５（Ｂ）の右側に示すようになる。即ち、ＰＬ２が描画される領域のうち、元々何も描かれていない領域（（０ｘ００、０ｘ００、０ｘ００））の色は、第２の色（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）になる。一方、ＰＬ１とＰＬ２が重なる領域の色は、上述した描画モードでの加算描画により（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）＋（０ｘ０１、０ｘ０１、０ｘ０１）＝（０ｘ００、０ｘ００、０ｘ００）という加算結果になるため、黒色（０ｘ００、０ｘ００、０ｘ００）になる。これはステンシルバッファ手法においてステンシルバッファに「０」が描き込まれることに相当する。
【００６７】
次に図６（Ａ）に示すように、モディファイアボリュームＭＶの３枚目のプリミティブ面ＰＬ３をＶＲＡＭの描画領域に描画する。この場合、プリミティブ面ＰＬ３は視点から見て表面であるため、このＰＬ２は、第１の色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）で描画される。これにより、ＶＲＡＭの描画領域の様子は図６（Ａ）の右側に示すようになる。即ちＰＬ２が描画される領域のうち、図５（Ｂ）において何も描かれていない領域（（０ｘ００、０ｘ００、０ｘ００））の色は、第１の色（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）になる。一方、ＰＬ２とＰＬ３が重なる領域の色は、上述した描画モードでの加算描画により（０ｘ０１、０ｘ０１、０ｘ０１）＋（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）＝（０ｘ００、０ｘ００、０ｘ００）という加算結果になるため、黒色（０ｘ００、０ｘ００、０ｘ００）になる。これはステンシルバッファ手法においてステンシルバッファに「０」が描き込まれることに相当する。
【００６８】
以上のようなプリミティブ面ＰＬ１〜ＰＬ３の描画により得られた画像（描画領域に最終的に生成された画像）の例を、図６（Ｂ）に示す。図６（Ｂ）では、オブジェクトＯＢ２の影となるべき影領域の色は、第１の色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）になっている。一方、影領域以外の領域の色は、黒色（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）になっている。即ち影領域にだけ何らかの色が残り、それ以外の領域は黒色になる。
【００６９】
この図６（Ｂ）の画像（該画像に加工処理を施した画像を含む）を、図２（Ａ）の元画像（ジオメトリ処理後のオブジェクトＯＢ１、ＯＢ２をフレームバッファに描画することで得られる画像）に描画することで、元画像に影画像や光照射画像が形成された図２（Ｂ）の画像を生成できる。
【００７０】
より具体的には、図６（Ｂ）の画像を図２（Ａ）の元画像に減算描画すれば、元画像に影画像が形成された画像を生成できる。即ち図２（Ｂ）のＳＤの領域において、（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）を減算描画することで、ＳＤの領域が黒くなり、影画像が形成される。
【００７１】
一方、図６（Ｂ）の画像を図２（Ａ）の元画像に加算描画すれば、元画像に光照射画像が形成された画像を生成できる。即ち図２（Ｂ）のＳＤの領域において、（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）を加算描画することで、ＳＤの領域が白くなり、光照射画像が形成される。
【００７２】
以上のように本実施形態では、ＶＲＡＭのＲＧＢプレーンをステンシルバッファのステンシル値プレーンのようにみなして描画処理を行うことで、影画像や光照射画像を生成している。この本実施形態の手法によれば、ステンシルバッファのハードウェアを有しない画像生成システムにおいても、ステンシルバッファ手法に準じた描画手法で影画像や光照射画像を生成できるという利点がある。
【００７３】
なお飛行機ゲームなどにおいては、飛行機やミサイル（広義には移動オブジェクト）の影と、飛行機やミサイルの後方に発生する煙（広義には移動オブジェクトに追従するオブジェクト）の影とを、その濃さを異ならせて表現できることが望ましい。即ち飛行機やミサイルの影は、より真っ黒にし、煙の影は薄くする（半影）。この場合には、飛行機やミサイルについて設定されたモディファイアボリュームのプリミティブ面を本実施形態の手法で描画することで、図６（Ｂ）と同様の第１の画像を生成し、この第１の画像を元画像に描画する。また煙（ベーパートレイル）について設定されたモディファイアボリュームのプリミティブ面を本実施形態の手法で描画することで、図６（Ｂ）と同様の第２の画像を生成し、この第２の画像を元画像に描画すればよい。そして第１の画像の影の画像部分での第１の輝度値と、第２の画像の影の画像部分での第２の輝度値とを異ならせることで、飛行機やミサイルの影と煙の影の濃さを異ならせることが可能になる。例えば第２の輝度値を第１の輝度値よりも暗くすることで、飛行機やミサイルの影と煙の影の濃さの違いを表現できる。
【００７４】
２．３  画像加工処理
さて、ステンシルバッファ手法では、影画像（光照射画像）の境界をぼかすなどの画像の加工処理を実現できないという問題点がある。即ちステンシルバッファ手法では、モディファイアボリュームのプリミティブ面の描画により、ステンシルバッファにステンシル値のプレーンが生成される。そしてピクセル描画の際にステンシルバッファを参照し、ステンシル値が「１」となる領域を黒色で描画することで、影画像を生成する。従って例えば図４（Ｂ）において、ステンシル値が「１」となる影領域には黒色が描画される一方で、ステンシル値が「０」となる領域では黒色が描画されないようになるため、影領域とそれ以外の領域との間の境界が目立ってしまう。このため、生成される影画像が今ひとつ不自然になるという問題がある。
【００７５】
これに対して本実施形態では、モディファイアボリュームのプリミティブ面の描画により、ステンシル値のプレーンが生成されるのではなく、ＶＲＡＭの描画領域（テンポラリバッファ）に図６（Ｂ）に示すようなＲＧＢの画像（ＲＧＢプレーン）が生成される。そして影画像（光照射画像）は、この図６（Ｂ）の画像を元画像に描画することで生成される。従って本実施形態によれば、モディファイアボリュームのプリミティブ面の描画により生成される図６（Ｂ）の画像に対して、画像加工処理を施し、画像加工処理後の画像を元画像に描画（減算描画、加算描画）することで、影画像（光照射画像）を生成することも可能になる。例えば図６（Ｂ）の画像に、画像加工処理としてぼかし処理を施せば、影領域（光照射領域）とそれ以外の領域との間の境界をぼかすことができ、いわゆるアンチエリアシングを実現できる。これにより、単なるステンシルバッファ手法では生成できない、自然でリアルな影画像（光照射画像）の生成が可能になる。
【００７６】
なお図６（Ｂ）の画像のぼかし画像を生成する手法としては、種々の手法がある。例えば第１の手法では、図６（Ｂ）の画像を、バイリニア補間（バイリニアテクスチャマッピング）を行いながらそのサイズを縮小する。例えば図６（Ｂ）の画像を、バイリニア補間を行いながら１／２のサイズに縮小し、得られた画像を、バイリニア補間を行いながら更に１／２のサイズに縮小する。そして縮小後の画像を拡大し、元のサイズに戻して、元画像に描画する。また第２の手法では、ぼかし処理用のルックアップテーブルを用意する。そして図６（Ｂ）の画像の情報（ＲＧＢ）を、このルックアップテーブルのインデックス番号に設定し、ルックアップテーブルを用いたインデックス・カラーテクスチャマッピングを行うことで、図６（Ｂ）の画像のぼかし画像を生成する。
【００７７】
また図６（Ｂ）の画像に施す画像加工処理は、ぼかし処理に限定されない。例えば、図６（Ｂ）の画像のうち影画像（光照射画像）となるべき画像部分の色を、同一色にする画像加工処理（色を均一化する画像加工処理）を行ってもよい。
【００７８】
即ち本実施形態の手法では、複数の影が重なった場合に、モディファイアボリュームのプリミティブ面の描画により図７（Ａ）のような画像が生成されてしまうおそれがある。即ち図７（Ａ）に示すように、複数の影が重なった領域の色は、上述した描画モードでの加算描画により（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）＋（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）＝（０ｘｆｅ、０ｘｆｅ、０ｘｆｅ）の加算結果の色になる。従って、影が重なっている領域の色（０ｘｆｅ、０ｘｆｅ、０ｘｆｅ）が、影が重なっていない影領域の色（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）に比べて、少しだけ暗くなってしまい、画像の品質が低下する。
【００７９】
そこで本実施形態では図７（Ｂ）に示すように、モディファイアボリュームのプリミティブ面の描画により生成された図７（Ａ）の画像のうち、影画像となるべき画像部分の色が、同一色になるようにする画像加工処理を行っている。例えば図７（Ｂ）では、影画像となるべき画像部分の色が、同一色の（Ｒ、Ｇ、Ｂ）＝（０ｘ８０、０ｘ８０、０ｘ８０）になるような画像加工処理が行われている。この画像加工処理は、図７（Ａ）の画像のＲＧＢの輝度値を、（Ｒ、Ｇ、Ｂ）＝（０ｘ８０、０ｘ８０、０ｘ８０）を用いてマスク（論理積）して、最上位ビットのみを残す処理を行うことで実現できる。
【００８０】
例えば図７（Ａ）において輝度値Ｒ＝（０ｘｆｆ）の領域では、（０ｘ８０）との論理積を取ることで最上位の８ビット目だけを残すようにすれば、その結果は輝度値Ｒ＝（０ｘ８０）になる。同様に、輝度値Ｒ＝（０ｘｆｅ）の領域でも、（０ｘ８０）との論理積を取ることで最上位の８ビット目だけを残すようにすれば、その結果は輝度値Ｒ＝（０ｘ８０）になる。一方、輝度値Ｒ＝（０ｘ００）の領域では、（０ｘ８０）との論理積を取ると、その結果は輝度値Ｒ＝（０ｘ００）のままとなる。従って、この画像加工処理により、図７（Ａ）の画像が図７（Ｂ）の画像に変換される。そして図７（Ｂ）の画像では、影が重なった部分にむらができないため、より自然でリアルな影画像を生成できる。
【００８１】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図８のフローチャートを用いて説明する。
【００８２】
まずＶＲＡＭに１画面分の描画領域を確保し、黒色で塗りつぶす（ステップＳ１）。そして描画モードを、カラークランプが無効になるモードに設定する（ステップＳ２）。即ち第１の色（Ｒ、Ｇ、Ｂ）＝（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）と第２の色（Ｒ、Ｇ、Ｂ）＝（０ｘ０１、０ｘ０１、０ｘ０１）の加算結果が黒色（Ｒ、Ｇ、Ｂ）＝（０ｘ００、０ｘ００、０ｘ００）になる描画モードに設定する。
【００８３】
次に描画しようとするモディファイアボリュームのプリミティブ面（ポリゴン）が、視点から見て表面なのか裏面なのかを判定する（ステップＳ３）。このような表面、裏面の判定手法としては、公知の種々の手法を採用できる。
【００８４】
そして描画対象となるプリミティブ面が視点から見て表面であると判定された場合には、ＶＲＡＭの描画領域に、そのプリミティブ面を第１の色（０ｘｆｆ、０ｘｆｆ、０ｘｆｆ）で描画する（ステップＳ４。図５（Ａ）、図６（Ａ）参照）。一方、描画対象となるプリミティブ面が視点から見て裏面であると判定された場合には、ＶＲＡＭの描画領域に、そのプリミティブ面を第２の色（０ｘ０１、０ｘ０１、０ｘ０１）で描画する（ステップＳ５。図５（Ｂ）参照）。そして全てのプリミティブ面について処理したか否かを判断し（ステップＳ６）、処理していない場合にはステップＳ３に戻る。一方、処理した場合には、描画領域に生成された画像に対して、画像加工処理を施す（ステップＳ７。図７（Ａ）（Ｂ）参照）。そして画像加工処理後の画像を、元画像（フレーム画像）に減算又は加算描画する（ステップＳ８）。このようにすることで図２（Ｂ）のように、元画像に影画像（光照射画像）が形成された画像が完成する。
【００８５】
以上のように説明した本実施形態の手法によれば、ＲＧＢバッファを擬似ステンシルバッファとみなして影画像や光照射画像を生成できる。そしてこのような疑似ステンシルバッファを用いる手法によれば、複数のスポット光が各々別の色光を有している場合にも、１つの疑似ステンシルバッファ（ＲＧＢバッファ）を用いて同時に処理できるという利点がある。即ち本実施形態の手法では、裏面のプリミティブ面の描画色のＲＧＢの輝度値と表面のプリミティブ面の描画色のＲＧＢの輝度値とは、上述のように２の補数の関係であればよく、描画したいスポット光の光色の値を疑似ステンシルバッファに書き込むことが出来るからである。
【００８６】
また疑似ステンシルバッファについては、描画用のフレームバッファと同等の領域サイズを確保する必要はない。例えば疑似ステンシルバッファを用いて生成された画像のエッジをぼかす処理を行う場合には、疑似ステンシルバッファの領域サイズ（領域量）を、描画用のフレームバッファの領域サイズの例えば１／４のサイズに設定する。そして影画像を生成し、疑似ステンシルバッファの画像を、フィルタ処理（バイリニアフィルタ処理等）を行いながら拡大する。そして拡大後の画像をフレームバッファに描画すればよい。このようにすれば、疑似ステンシルバッファの領域サイズをコンパクト化でき、メモリの使用記憶容量を節約できる。
【００８７】
４．ハードウェア構成
図９に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００８８】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００８９】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００９０】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００９１】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００９２】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００９３】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００９４】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（Ｎビット、プリミティブ面、移動オブジェクト、移動オブジェクトに追従するオブジェクト等）として引用された用語（８ビット、ポリゴン、飛行機・ミサイル、煙等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【００９５】
またモディファイアボリュームのプリミティブ面の描画手法やモディファイアボリュームの設定手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また第１、第２の色として、本実施形態で例示した以外の色を採用してもよい。
【００９６】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【００９７】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】図２（Ａ）（Ｂ）はモディファイアボリューム等の説明図である。
【図３】図３（Ａ）（Ｂ）はステンシルバッファ手法の説明図である。
【図４】図４（Ａ）（Ｂ）もステンシルバッファ手法の説明図である。
【図５】図５（Ａ）（Ｂ）は本実施形態の描画手法の説明図である。
【図６】図６（Ａ）（Ｂ）も本実施形態の描画手法の説明図である。
【図７】図７（Ａ）（Ｂ）は画像加工処理の説明図である。
【図８】本実施形態の具体的な処理のフローチャートである。
【図９】ハードウェア構成例である。
【符号の説明】
【００９８】
ＬＳ  光源、ＯＢ１、ＯＢ２  オブジェクト、ＳＤ  影、
ＭＶ  モディファイアボリューム、ＰＬ１、ＰＬ２、ＰＬ３  プリミティブ面、
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１３  モディファイアボリューム設定部、１１４  視点制御部、
１２０  描画部、１２２  テクスチャマッピング部、
１２４  隠面消去部、１２６  α合成部、１３０  音生成部、１６０  操作部、
１７０  記憶部、１７２  描画領域、１７４  テクスチャ領域、
１７６  Ｚバッファ、１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2005157541.tif 000003
【図２】
2005157541.tif 000004
【図３】
2005157541.tif 000005
【図４】
2005157541.tif 000006
【図５】
2005157541.tif 000007
【図６】
2005157541.tif 000008
【図７】
2005157541.tif 000009
【図８】
2005157541.tif 000010
【図９】
2005157541.tif 000011