(57)【要約】【課題】少ないリソースでリアルな環境マッピングを実現できるプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】画像生成システムは、四面体環境テクスチャ生成部と、三角形領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４により形成されるテクスチャ領域が確保されるテクスチャ記憶部と、テクスチャマッピング部を含む。四面体環境テクスチャ生成部は、仮想カメラの視線方向をＤ１、Ｄ２、Ｄ３、Ｄ４方向に設定してレンダリング処理を行い、画像ＩＭ１、ＩＭ２、ＩＭ３、ＩＭ４をテクスチャ領域の三角形領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４に描画することで、ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４により形成されるテクスチャ領域に四面体環境テクスチャを生成する。【選択図】図４
2007141079.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
四面体環境テクスチャを生成する四面体環境テクスチャ生成部と、
第１の三角形領域と、前記第１の三角形領域と辺を共有する第２の三角形領域と、前記第２の三角形領域と辺を共有する第３の三角形領域と、前記第３の三角形領域と辺を共有する第４の三角形領域とにより形成されるテクスチャ領域が確保されるテクスチャ記憶部と、
オブジェクトに対してテクスチャマッピング処理を行うテクスチャマッピング部として、
コンピュータを機能させ、
前記四面体環境テクスチャ生成部は、
仮想カメラの視線方向を第１、第２、第３、第４の方向に設定して第１、第２、第３、第４のレンダリング処理を行い、前記第１、第２、第３、第４のレンダリング処理により、第１、第２、第３、第４の画像を前記テクスチャ領域の前記第１、第２、第３、第４の三角形領域に描画することで、前記第１、第２、第３、第４の三角形領域により形成される前記テクスチャ領域に四面体環境テクスチャを生成することを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１、第２、第３、第４の三角形領域は直角三角形領域であり、
前記テクスチャ記憶部には、前記第１、第２、第３、第４の三角形領域により形成される矩形のテクスチャ領域が確保されることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記四面体環境テクスチャ生成部は、
前記第１、第２、第３、第４の画像の三角形領域の形状が前記第１、第２、第３、第４の三角形領域の形状に変形されるように、前記第１、第２、第３、第４のレンダリング処理を行って、前記四面体環境テクスチャを生成することを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記四面体環境テクスチャ生成部は、
前記第１、第２の三角形領域の境界、前記第２、第３の三角形領域の境界、前記第３、第４の三角形領域の境界において画像が連続するように、前記第１、第２、第３、第４のレンダリング処理を行って、前記四面体環境テクスチャを生成することを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記矩形テクスチャ領域に生成された前記四面体環境テクスチャに対してエフェクト処理を施すエフェクト処理部を含むことを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
生成された四面体環境テクスチャに基づいて、キューブ環境テクスチャを生成するキューブ環境テクスチャ生成部としてコンピュータを機能させ、
前記テクスチャマッピング部は、
生成されたキューブ環境テクスチャに基づいてテクスチャマッピング処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記キューブ環境テクスチャ生成部は、
前記第１、第２、第３、第４の三角形領域に描画された第１、第２、第３、第４の三角形画像が、その第１、第２、第３、第４のプリミティブ面にマッピングされる四面体オブジェクトを用いて、前記キューブ環境テクスチャを生成することを特徴とするプログラム。
【請求項８】
請求項７において、
前記キューブ環境テクスチャ生成部は、
前記四面体オブジェクト内に設定された仮想カメラの視線方向を、第５、第６、第７、第８、第９、第１０の方向に設定して第５、第６、第７、第８、第９、第１０のレンダリング処理を行うことで、前記キューブ環境テクスチャを生成することを特徴とするプログラム。
【請求項９】
請求項１乃至５のいずれかにおいて、
前記テクスチャマッピング部は、
前記第１、第２、第３、第４の三角形領域に描画された第１、第２、第３、第４の三角形画像が、その第１、第２、第３、第４のプリミティブ面にマッピングされる四面体オブジェクトを用いて、オブジェクトに対する環境マッピングを行うことを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至９のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
画像を生成する画像生成システムであって、
四面体環境テクスチャを生成する四面体環境テクスチャ生成部と、
第１の三角形領域と、前記第１の三角形領域と辺を共有する第２の三角形領域と、前記第２の三角形領域と辺を共有する第３の三角形領域と、前記第３の三角形領域と辺を共有する第４の三角形領域とにより形成されるテクスチャ領域が確保されるテクスチャ記憶部と、
オブジェクトに対してテクスチャマッピング処理を行うテクスチャマッピング部とを含み、
前記四面体環境テクスチャ生成部は、
仮想カメラの視線方向を第１、第２、第３、第４の方向に設定して第１、第２、第３、第４のレンダリング処理を行い、前記第１、第２、第３、第４のレンダリング処理により、第１、第２、第３、第４の画像を前記テクスチャ領域の前記第１、第２、第３、第４の三角形領域に描画することで、前記第１、第２、第３、第４の三角形領域により形成される前記テクスチャ領域に四面体環境テクスチャを生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、車、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。このような画像生成システムでは、仮想現実感の向上のために、よりリアルな画像を生成することが課題となっており、このような課題を解決する１つの手法として、環境マッピングと呼ばれる手法が知られている。
【０００３】
この環境マッピングのうち動的環境マッピングでは、オブジェクトの周囲の環境を表す環境テクスチャを動的（リアルタイム）に生成し、生成された環境テクスチャをオブジェクトにマッピングすることで、オブジェクトへの環境の映り込みを表現する。
【０００４】
また環境マッピングとしては、四面体環境マッピングやキューブ環境マッピングなどが知られている。そしてキューブ環境マッピングはハードウェアによりサポートされている場合が多いが、四面体環境マッピングはハードウェアによりサポートされていない場合が多い。従って、限られたメモリー等のリソースで、如何にしてリアルな環境マッピングを実現するかが技術的課題になる。
【特許文献１】特開２００１−７０６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ないリソースでリアルな環境マッピングを実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、四面体環境テクスチャを生成する四面体環境テクスチャ生成部と、第１の三角形領域と、前記第１の三角形領域と辺を共有する第２の三角形領域と、前記第２の三角形領域と辺を共有する第３の三角形領域と、前記第３の三角形領域と辺を共有する第４の三角形領域とにより形成されるテクスチャ領域が確保されるテクスチャ記憶部と、オブジェクトに対してテクスチャマッピング処理を行うテクスチャマッピング部とを含み、前記四面体環境テクスチャ生成部は、仮想カメラの視線方向を第１、第２、第３、第４の方向に設定して第１、第２、第３、第４のレンダリング処理を行い、前記第１、第２、第３、第４のレンダリング処理により、第１、第２、第３、第４の画像を前記テクスチャ領域の前記第１、第２、第３、第４の三角形領域に描画することで、前記第１、第２、第３、第４の三角形領域により形成される前記テクスチャ領域に四面体環境テクスチャを生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明では、仮想カメラの視線方向が第１、第２、第３、第４の方向に設定されて生成された第１、第２、第３、第４の画像が、テクスチャ領域の第１、第２、第３、第４の三角形領域に描画される。そして、第１、第２、第３、第４の三角形領域により形成されるテクスチャ領域に、四面体環境テクスチャが生成され、環境テクスチャマッピングが行われる。このようにテクスチャ領域に四面体環境テクスチャを生成すれば、テクスチャ記憶部の使用記憶容量を節約できるため、少ないリソースでリアルな環境マッピングを実現できる。
【０００８】
また本発明では、前記第１、第２、第３、第４の三角形領域は直角三角形領域であり、前記テクスチャ記憶部には、前記第１、第２、第３、第４の三角形領域により形成される矩形のテクスチャ領域が確保されていてもよい。
【０００９】
このように、確保されるテクスチャ領域を矩形の形状にすれば、テクスチャ記憶領域を更に効率的に使用できるようになる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記四面体環境テクスチャ生成部は、前記第１、第２、第３、第４の画像の三角形領域の形状が前記第１、第２、第３、第４の三角形領域の形状に変形されるように、前記第１、第２、第３、第４のレンダリング処理を行って、前記四面体環境テクスチャを生成するようにしてもよい。
【００１１】
この場合の変形処理は、変形を実現するマトリクスを、レンダリング処理に使用するマトリクスに含ませることで実現できる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記四面体環境テクスチャ生成部は、前記第１、第２の三角形領域の境界、前記第２、第３の三角形領域の境界、前記第３、第４の三角形領域の境界において画像が連続するように、前記第１、第２、第３、第４のレンダリング処理を行って、前記四面体環境テクスチャを生成するようにしてもよい。
【００１３】
このようにすれば、四面体環境テクスチャにおいて三角形領域間の境界の画像が連続するようになる。従って四面体環境テクスチャに対して所与の処理を行った場合に、正しい処理結果を得ることができ、画像の品質の向上等を図れる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記矩形テクスチャ領域に生成された前記四面体環境テクスチャに対してエフェクト処理を施すエフェクト処理部を含むようにしてもよい。
【００１５】
このようなエフェクト処理を行うことで、高品質でリアルな環境マッピングを実現できる。また本発明では、四面体環境テクスチャにおいて三角形領域間の境界の画像が連続するようになる。従って、このようなエフェクト処理を行った場合にも、正しい処理結果を得ることができ、画像の品質の向上等を図れる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、生成された四面体環境テクスチャに基づいて、キューブ環境テクスチャを生成するキューブ環境テクスチャ生成部を含み（キューブ環境テクスチャ生成部としてコンピュータを機能させ）、前記テクスチャマッピング部は、生成されたキューブ環境テクスチャに基づいてテクスチャマッピング処理を行うようにしてもよい。
【００１７】
このようにすれば、例えばキューブ環境マッピングがサポートされているような画像生成システムにおいて、少ない処理負荷でリアルな環境マッピングを実現できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記キューブ環境テクスチャ生成部は、前記第１、第２、第３、第４の三角形領域に描画された第１、第２、第３、第４の三角形画像が、その第１、第２、第３、第４のプリミティブ面にマッピングされる四面体オブジェクトを用いて、前記キューブ環境テクスチャを生成するようにしてもよい。
【００１９】
このようにすれば、四面体オブジェクトを用意するだけで、四面体環境テクスチャを用いたキューブ環境マッピングを実現できるようになる。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記キューブ環境テクスチャ生成部は、前記四面体オブジェクト内に設定された仮想カメラの視線方向を、第５、第６、第７、第８、第９、第１０の方向に設定して第５、第６、第７、第８、第９、第１０のレンダリング処理を行うことで、前記キューブ環境テクスチャを生成するようにしてもよい。
【００２１】
こうすれば簡素な処理でキューブ環境テクスチャを生成できる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記テクスチャマッピング部は、前記第１、第２、第３、第４の三角形領域に描画された第１、第２、第３、第４の三角形画像が、その第１、第２、第３、第４のプリミティブ面にマッピングされる四面体オブジェクトを用いて、オブジェクトに対する環境マッピングを行うようにしてもよい。
【００２３】
このようにすれば、例えばスフィア環境マッピングなどの種々の環境マッピングを実現できるようになる。
【発明を実施するための最良の形態】
【００２４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２５】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、ハードディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２９】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３２】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３３】
オブジェクト空間設定部１１０は、車、電車、キャラクタ、建物、球場、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部１７６には、移動体オブジェクト（車）、固定物オブジェクト（ビル）、背景オブジェクト（マップ、天球）のモデルデータが記憶されている。そしてオブジェクト空間設定部１１０は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定（配置）処理を行う。
【００３４】
移動・動作処理部１１２は、オブジェクト（車、キャラクタ、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（モデルオブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３５】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００３６】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００３８】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００３９】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００４０】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００４１】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、隠面消去処理、αブレンディング等を行う。
【００４２】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のモデルデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００４３】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００４４】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００４５】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４６】
描画部１２０は、四面体環境テクスチャ生成部１２２、エフェクト処理部１２４、キューブ環境テクスチャ生成部１２６、テクスチャマッピング部１２８を含む。なおこれらの一部を省略した構成にしてもよい。
【００４７】
四面体環境テクスチャ生成部１２２は、四面体環境テクスチャ(Tetrahedron environment texture）の生成処理を行う。具体的にはテクスチャ記憶部１７８には、例えば矩形のテクスチャ領域が確保される。そしてこの矩形テクスチャ領域（広義にはテクスチャ領域）は、第１の直角三角形領域（広義には第１の三角形領域）と、第１の直角三角形領域と長辺（広義には辺）を共有（一致）する第２の直角三角形領域（広義には第２の三角形領域）と、第２の直角三角形領域と短辺（広義には辺）を共有する第３の直角三角形領域（広義には第３の三角形領域）と、第３の直角三角形領域と長辺（辺）を共有する第４の直角三角形領域（広義には第４の三角形領域）とにより形成される。そして四面体環境テクスチャ生成部１２２は、仮想カメラの視線方向を第１、第２、第３、第４の方向に設定して第１、第２、第３、第４のレンダリング処理を行って、仮想カメラの視線方向が第１、第２、第３、第４の方向に向いた場合に見える画像を生成する。具体的には例えば、第１、第２、第３、第４の画像の三角形領域（正三角形領域）の形状が、第１、第２、第３、第４の直角三角形領域（第１、第２、第３、第４の三角形領域）の形状に変形されるように、第１、第２、第３、第４のレンダリング処理を行う。この形状の変形は、レンダリング処理の際に使用されるマトリクスにより実現できる。また四面体環境テクスチャ生成部１２２は、第１、第２の直角三角形領域の境界（長辺）、第２、第３の直角三角形領域の境界（短辺）、第３、第４の直角三角形領域の境界（長辺）において画像（ピクセル画像）が連続するように、第１、第２、第３、第４のレンダリング処理を行う。なお第１、第２、第３、第４のレンダリング処理の順序は任意である。
【００４８】
そしてこれらの第１、第２、第３、第４のレンダリング処理により、第１、第２、第３、第４の画像（三角形画像、正三角形画像）が、テクスチャ記憶部１７８のテクスチャ領域の第１、第２、第３、第４の直角三角形領域に描画される。これにより、第１、第２、第３、第４の直角三角形領域により構成される矩形のテクスチャ領域（テクスチャ記憶部１７８）に四面体環境マッピング用の環境テクスチャが生成（描画）される。
【００４９】
エフェクト（ぼかし）処理部１２４は、テクスチャ記憶部１７８の矩形テクスチャ領域に生成された四面体環境テクスチャに対してエフェクト処理を施す。この場合のエフェクト処理としては、ぼかし処理、エッジ抽出処理などの各種のフィルタ処理がある。またぼかし処理としては、ピクセル値の平均化処理、ピクセルの入れ替え処理などがある。
【００５０】
キューブ環境テクスチャ生成部１２６（テクスチャ変換部）は、四面体環境テクスチャ生成部１２２により生成された四面体環境テクスチャ(Cube environment texture）に基づいて、キューブ環境テクスチャの生成処理を行う。具体的には、第１、第２、第３、第４の直角三角形領域に描画された第１、第２、第３、第４の直角三角形画像（広義には第１、第２、第３、第４の三角形画像）が、その第１、第２、第３、第４のプリミティブ面（ポリゴン）にマッピングされる四面体オブジェクトを用意する。即ち第１、第２、第３、第４の直角三角形画像が第１、第２、第３、第４の面にマッピングされるようにテクスチャ座標が設定された四面体オブジェクトを用意する。この四面体オブジェクトのデータはモデルデータ記憶部１７６に記憶しておくことができる。そしてキューブ環境テクスチャ生成部１２６は、この四面体オブジェクトを用いたレンダリング処理を行うことで、キューブ環境テクスチャを生成する。具体的には、四面体オブジェクト内に配置された仮想カメラの視線方向を、第５、第６、第７、第８、第９、第１０の方向（前、右、後、左、下、上方向）に設定して第５、第６、第７、第８、第９、第１０のレンダリング処理を行うことで、キューブ環境テクスチャを生成する。
【００５１】
テクスチャマッピング部１２８は、オブジェクト（モデル）に対してテクスチャマッピング処理を行う。ここでテクスチャマッピング処理は、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７８からテクスチャ（色、α値などの表面プロパティ）のデータを読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行うことができる。
【００５２】
そして本実施形態ではテクスチャマッピング部１２８が、四面体環境テクスチャ生成部１２２、キューブ環境テクスチャ生成部１２４などにより生成された環境テクスチャをオブジェクトにマッピングする処理を行う。この場合に、必要であれば、オブジェクトに設定された法線ベクトルの座標をテクスチャ座標に変換するなどのテクスチャ座標の演算処理を行う。
【００５３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５５】
２．本実施形態の手法
２．１  四面体環境テクスチャの生成
本実施形態では図２に示すように、仮想的な四面体（正四面体）オブジェクトＯＢＴ内に設定された仮想カメラＶＣから見える環境の画像を、四面体環境テクスチャとしてリアルタイムに動的に生成している。
【００５６】
具体的には図３（Ａ）に示すように、仮想的な立方体オブジェクトＯＢＣの中心点ＣＰＣに設定された仮想カメラＶＣの視線方向をＤ１方向に設定する。このＤ１方向は、立方体オブジェクトＯＢＣの中心点ＣＰＣから頂点ＶＣ１に向かう方向である。これは図２において、四面体オブジェクトＯＢＴの中心点ＣＰＣに設定された仮想カメラＶＣの視線方向を、ＯＢＴを構成する正三角形の面ＳＦ１の中心点（重心）に向けることに相当する。この場合、仮想カメラＶＣの視線方向であるＤ１方向のベクトルと面ＳＦ１は直交するようになる。
【００５７】
そして、このような視線方向がＤ１方向に設定された仮想カメラＶＣから見える周囲の環境の画像のレンダリング処理（第１のレンダリング処理）により、図４（Ａ）の第１の画像ＩＭ１が生成される。例えば仮想カメラＶＣは移動体オブジェクトの代表点（例えば中心点）の位置に設定される。そしてこの仮想カメラＶＣの視線方向がＤ１方向に設定されて、移動体オブジェクト（車、電車）の周囲の環境の画像（空、ビル等の背景）が第1の画像ＩＭ１として生成される。
【００５８】
そして本実施形態ではこの第１の画像ＩＭ１は、図４（Ａ）に示すように第１の直角三角形領域ＴＲ１に描画される。即ち仮想カメラＶＣのビューポートがＴＲ１、ＴＲ２の領域に設定され、ＴＲ１、ＴＲ２のうちＴＲ１だけが描画領域に設定されて画像ＩＭ１が描画される。
【００５９】
ここでテクスチャ記憶部１７８には、動的環境テクスチャの生成領域として、矩形（長方形、正方形）のテクスチャ領域ＲＥＲが確保されている。この矩形テクスチャ領域ＲＥＲは、第１の直角三角形領域ＴＲ１と、ＴＲ１とその長辺ＬＳ１を共有する第２の直角三角形領域ＴＲ２と、ＴＲ２とその短辺ＳＳ１を共有する第３の直角三角形領域ＴＲ３と、ＴＲ３とその長辺ＬＳ２を共有する第４の直角三角形領域ＴＲ４とにより形成される。なお領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４の形状は二等辺直角三角形であってもよいし、二等辺ではない直角三角形であってもよいし、直角三角形以外の三角形であってもよい。
【００６０】
そして画像ＩＭ１の直角三角形領域ＴＲ１へのレンダリング処理は図５（Ａ）に示す手法で実現される。即ち画像ＩＭ１の三角形領域（図２の面ＳＦ１）の形状が、直角三角形領域ＴＲ１の形状に変形されるように、レンダリング処理が行われる。具体的には、三角形領域（正三角形領域）の頂点ＶＡ、ＶＢ、ＶＣが直角三角形領域ＴＲ１の頂点ＶＴＡ、ＶＴＢ、ＶＴＣに一致するように変形処理が行われる。こうすることで、画像ＩＭ１の三角形領域の画像が変形されて、直角三角形領域ＴＲ１に描画されるようになる。
【００６１】
次に図３（Ｂ）に示すように、仮想カメラＶＣの視線方向が、立方体オブジェクトＯＢＣの中心点ＣＰＣから頂点ＶＣ８に向かう方向である第２の方向Ｄ２に設定される。これは図２において仮想カメラＶＣの視線方向を、四面体オブジェクトＯＢＴを構成する正三角形の面ＳＦ２の中心点（重心）に向けることに相当する。この場合、仮想カメラＶＣのＤ２方向のベクトルと面ＳＦ２は直交するようになる。また第１の方向Ｄ１と第２の方向Ｄ２のなす角度θ１は、θ１＝ａｒｃｔａｎ（−１／３）になる。
【００６２】
このような視線方向がＤ２方向に設定された仮想カメラＶＣから見える周囲の環境の画像のレンダリング処理（第２のレンダリング処理）により、図４（Ｂ）に示すように第２の画像ＩＭ２が第２の直角三角形領域ＴＲ２に描画される。即ち領域ＴＲ１、ＴＲ２のうちＴＲ２だけが描画領域に設定されて画像ＩＭ２が描画される。この場合に画像ＩＭ２の直角三角形領域ＴＲ２へのレンダリング処理は図５（Ａ）と同様の手法で実現される。
【００６３】
次に図３（Ｃ）に示すように、仮想カメラＶＣの視線方向が、立方体オブジェクトＯＢＣの中心点ＣＰＣから頂点ＶＣ６に向かう方向である第３の方向Ｄ３に設定される。これは図２において仮想カメラＶＣの視線方向を、四面体オブジェクトＯＢＴを構成する正三角形の面ＳＦ３の中心点（重心）に向けることに相当する。この場合、仮想カメラＶＣのＤ３方向のベクトルと面ＳＦ３は直交するようになる。また第２の方向Ｄ２と第３の方向Ｄ３のなす角度θ２は、θ２＝ａｒｃｔａｎ（−１／３）になる。
【００６４】
このような視線方向がＤ３方向に設定された仮想カメラＶＣから見える周囲の環境の画像のレンダリング処理（第３のレンダリング処理）により、図４（Ｃ）に示すように第３の画像ＩＭ３が第３の直角三角形領域ＴＲ３に描画される。即ち仮想カメラＶＣのビューポートがＴＲ１、ＴＲ２の領域からＴＲ３、ＴＲ４の領域に切り替えられ、ＴＲ３、ＴＲ４のうちＴＲ３だけが描画領域に設定されて画像ＩＭ３が描画される。この場合に画像ＩＭ３の直角三角形領域ＴＲ３へのレンダリング処理は図５（Ａ）と同様の手法で実現される。
【００６５】
次に図３（Ｄ）に示すように、仮想カメラＶＣの視線方向が、立方体オブジェクトＯＢＣの中心点ＣＰＣから頂点ＶＣ３に向かう方向である第４の方向Ｄ４に設定される。これは図２において仮想カメラＶＣの視線方向を、四面体オブジェクトＯＢＴを構成する正三角形の面ＳＦ４の中心点（重心）に向けることに相当する。この場合、仮想カメラＶＣのＤ４方向のベクトルと面ＳＦ４は直交するようになる。また第３の方向Ｄ３と第４の方向Ｄ４のなす角度θ３は、θ３＝ａｒｃｔａｎ（−１／３）になる。
【００６６】
このような視線方向がＤ４方向に設定された仮想カメラＶＣから見える周囲の環境の画像のレンダリング処理（第４のレンダリング処理）により、図４（Ｄ）に示すように第４の画像ＩＭ４が第４の直角三角形領域ＴＲ４に描画される。この場合に、画像ＩＭ４の直角三角形領域ＴＲ４へのレンダリング処理は図５（Ａ）と同様の手法で実現される。
【００６７】
図６に、本実施形態により生成された四面体環境テクスチャの例を示す。図６に示すように本実施形態では、四面体環境テクスチャが、矩形のテクスチャ領域にコンパクトにまとめられて記憶される。従ってテクスチャ記憶部の使用記憶容量を節約でき、少ないリソースでリアルな環境マッピングを実現できる。
【００６８】
またキューブ環境テクスチャを動的にリアルタイムに生成しようとすると、処理負荷が重い環境画像のレンダリング処理が６回必要になる。これに対して本実施形態によれば、環境画像のレンダリング処理は４回で済むため、処理負荷を軽減できる。
【００６９】
また例えば図５（Ｂ）に示す比較例の手法では、図５（Ａ）に示すような直角三角形の形状への変形処理が行われない。このため、四面体環境テクスチャが書き込まれるテクスチャ領域が大きくなってしまい、図４（Ａ）〜（Ｄ）の本実施形態の手法に比べて、テクスチャ記憶部の使用記憶容量が圧迫されてしまう。
【００７０】
また図５（Ｂ）の比較例の手法では、三角形領域の境界ＢＬ２とＢＬ３、ＢＬ４とＢＬ５、ＢＬ６とＢＬ７が一致しない。従って、四面体環境テクスチャに対してぼかし処理などのエフェクト処理を施すことが難しいという問題がある。例えば図５（Ｃ）では、周囲のピクセルＰＸＡ、ＰＸＢ、ＰＸＣ、ＰＸＤの色情報（広義にはピクセル情報）に基づいて、ピクセルＰＸの色情報を決定するぼかし処理が行われている。具体的にはＰＸＡ、ＰＸＢ、ＰＸＣ、ＰＸＤの色情報の平均値により、ピクセルＰＸの色情報が求められるぼかし処理が行われている。
【００７１】
図５（Ｂ）の比較例では三角形領域の境界が一致しないため、このようなぼかし処理を行った場合に、ピクセルＰＸＢ、ＰＸＣが隣の三角形領域のピクセルにはならないため、ぼかし処理の結果が正しい結果にならない。
【００７２】
これに対して本実施形態では図７のＡ１に示すように、直角三角形領域ＴＲ１、ＴＲ２の境界ＢＬ１２、直角三角形領域ＴＲ２、ＴＲ３の境界ＢＬ２３、直角三角形領域ＴＲ３、ＴＲ４の境界ＢＬ３４において画像が連続するようにレンダリング処理が行われて、四面体環境テクスチャが生成される。従って図７のＡ２に示すように、四面体環境テクスチャに対してぼかし処理を施した場合に、境界ＢＬ１２、ＢＬ２３、ＢＬ３４の付近のピクセルにおいて、ぼかし処理の結果が正しい結果になり、正しいぼかし処理を実現できる。また例えばミップマップや低い指数のスペキュラ反射に使用できるぼかし画像の生成が容易なる。そしてこのようなぼかし処理を行うことで、高品質でリアルな環境マッピングを実現できる。
【００７３】
なお本実施形態で生成された四面体環境テクスチャに施されるエフェクト処理は、図５（Ｃ）に示すようなぼかし処理に限定されず、種々の処理が考えられる。例えばピクセルの色情報（ピクセル情報）の平均化処理のみならず、重み付けをした平均化処理、所定の関数を用いた処理、ピクセルの入れ替え処理などであってもよい。またぼかし処理以外のエッジ検出（強調）処理などのエフェクト処理であってもよい。即ち本実施形態のエフェクト処理は、直角三角形領域間の境界の画像が連続していることで正しい結果が得られるようなエフェクト処理であればよい。
【００７４】
２．２  キューブ環境テクスチャへの変換
キューブ環境マッピングは、画像生成システムにおいてハードウェア的にサポートされている場合がある。一方、四面体環境マッピングは、ハードウェア的にサポートされていない場合が多い。そこで本実施形態では、四面体環境テクスチャを変換してキューブ環境テクスチャを生成する手法を採用している。
【００７５】
具体的には図８（Ａ）に示すような四面体オブジェクトＯＢＳを用意する。この四面体オブジェクトＯＢＳには、動的にリアルタイムに生成された四面体環境テクスチャがマッピングされる。本実施形態では、このように四面体環境テクスチャがマッピングされた四面体オブジェクトＯＢＳを用いて、キューブ環境テクスチャを生成している。
【００７６】
具体的には図８（Ａ）に示すように四面体オブジェクトＯＢＳは、第１〜第４のプリミティブ面ＳＳ１、ＳＳ２、ＳＳ３、ＳＳ４（ポリゴン）により構成される。そして図８（Ｂ）のＣ１の四面体オブジェクトＯＢＳの展開図に示されるように、これらのプリミティブ面ＳＳ１、ＳＳ２、ＳＳ３、ＳＳ４には、図４（Ａ）〜（Ｄ）の手法で直角三角形領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４に描画された直角三角形画像ＩＭＴ１、ＩＭＴ２、ＩＭＴ３、ＩＭＴ４がマッピングされる。
【００７７】
即ちこれらの直角三角形画像ＩＭＴ１、ＩＭＴ２、ＩＭＴ３、ＩＭＴ４がプリミティブ面ＳＳ１、ＳＳ２、ＳＳ３、ＳＳ４にマッピングされるように、四面体オブジェクトＯＢＳの頂点ＶＳＡ、ＶＳＢ、ＶＳＣに対してテクスチャ座標が設定される。そしてこのテクスチャ座標に基づいてテクスチャ記憶部１７８から、図８（Ｂ）のＣ２に示す四面体環境テクスチャが読み出されて、四面体オブジェクトＯＢＳにマッピングされる。このようなテクスチャマッピングを行うことで、図５（Ａ）で直角三角形画像に変形された画像が、元の正三角形画像に戻る。
【００７８】
そしてこの四面体オブジェクトＯＢＳ内（中心点）に仮想カメラＶＣを配置し、図９（Ａ）に示すように仮想カメラＶＣの視線方向を、第５、第６、第７、第８、第９、第１０の方向Ｄ５、Ｄ６、Ｄ７、Ｄ８、Ｄ９、Ｄ１０に設定する。そして第５、第６、第７、第８、第９、第１０のレンダリング処理を行う。こうすることで図９（Ｂ）に示すようなキューブ環境テクスチャが生成される。
【００７９】
具体的には例えば、四面体オブジェクトＯＢＳ内に配置された仮想カメラＶＣの視線方向をＤ５方向に設定して第５のレンダリング処理を行い、生成された画像を正方形（矩形）の領域ＣＲ５に描画する。同様に、ＯＢＳ内に配置された仮想カメラＶＣの視線方向をＤ６、Ｄ７、Ｄ８、Ｄ９、Ｄ１０方向に設定して第６、第７、第８、第９、第１０のレンダリング処理を行い、生成された画像を正方形（矩形）の領域ＣＲ６、ＣＲ７、ＣＲ８、ＣＲ９、ＣＲ１０に描画する。こうすることで、図１０に示すようなキューブ環境テクスチャを生成できる。
【００８０】
そして生成されたキューブ環境テクスチャを用いてオブジェクトへのキューブ環境マッピング処理を行う。例えばキューブ環境マッピングをサポートしてる画像生成システムを利用してキューブ環境マッピングを行う。例えば車、電車等の移動体オブジェクトに対してキューブ環境テクスチャを用いたキューブ環境マッピングを行うことで、周囲の環境が移動体オブジェクトに映り込んだリアルな画像を生成できる。
【００８１】
例えばキューブ環境テクスチャを動的にリアルタイムに生成しようとすると、環境画像のレンダリング処理が６回必要になる。この点、本実施形態では図３（Ａ）〜図４（Ｄ）に示すように、四面体環境テクスチャの生成は４回のレンダリング処理で済む。従って、処理負荷が重い動的な環境テクスチャ生成についてのレンダリング処理の回数を減らすことができる。また図８（Ａ）〜図９（Ｂ）で説明したキューブ環境テクスチャの生成処理は、移動体オブジェクトの周囲の背景オブジェクトの描画が必要な環境画像のレンダリング処理に比べて負荷が軽い。従って本実施形態によれば全体としての処理負荷を軽減できる。
【００８２】
なお本実施形態におけるオブジェクト（移動体オブジェクト）への環境マッピングはキューブ環境マッピングには限定されない。例えばスフィア環境マッピング、パラボロイド環境マッピング、シリンダ環境マッピングなどであってもよい。
【００８３】
例えば図１１にスフィア環境マッピングの例を示す。図１１では、四面体オブジェクトＯＢＳ内に、環境マッピングの対象となるオブジェクトＯＢ（移動体オブジェクト）が配置される。そして仮想カメラの視線ベクトルＳＬとオブジェクトの法線ベクトルＮとに基づいて反射ベクトルＲＬが求められる。そしてこの反射ベクトルＲＬの方向の直線と四面体オブジェクトＯＢＳとの交点ＩＰの画像情報が、オブジェクトＯＢの反射点ＲＰの画像情報に設定される。このようにすることで、四面体オブジェクトＯＢＳにマッピングされた四面体環境テクスチャの画像が、オブジェクトＯＢにマッピングされるようになり、スフィア環境マッピングを実現できる。このように図１１では、図８（Ｂ）の直角三角形領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４に描画された直角三角形画像ＩＭＴ１、ＩＭＴ２、ＩＭＴ３、ＩＭＴ４が、そのプリミティブ面ＳＳ１、ＳＳ２、ＳＳ３、ＳＳ４にマッピングされる四面体オブジェクトＯＢＳを用いて、オブジェクトＯＢに対する環境マッピングが行われている。
【００８４】
なおパラボロイド環境マッピングを行う場合には、例えば生成された四面体環境テクスチャをメッシュ状のオブジェクトにマッピングすることで、魚眼レンズから見たように見える２枚のパラボロイド環境テクスチャを生成して、パラボロイド環境マッピングを実現すればよい。
【００８５】
２．３  詳細な処理例
次に本実施形態の詳細な処理例を図１２、図１３のフローチャートを用いて説明する。
【００８６】
まず車、電車等の移動体オブジェクトの位置、方向を演算する（ステップＳ１）。具体的には、操作部１６０からの操作データやプログラムなどに基づいて、１フレームごとの移動体オブジェクトの位置の変化や、方向の変化が、リアルタイムに演算される。
【００８７】
次に仮想カメラの位置を決定する（ステップＳ２）。具体的には移動体オブジェクトの位置等に基づいて仮想カメラの位置が決定される。例えば移動体オブジェクトの代表点の位置に仮想カメラが配置される。
【００８８】
次に図３（Ａ）に示すように仮想カメラの視線方向をＤ１方向に設定してマトリクスＭ１を決定する（ステップＳ３）。図１４にこのマトリクスＭ１の例を示す。またテクスチャ領域の直角三角形領域ＴＲ１を描画領域に設定する（ステップＳ４）。即ちビューポートを領域ＴＲ１及びＴＲ２に設定し、ＴＲ１だけを描画領域に設定する。そして図４（Ａ）に示すように、マトリクスＭ１に基づきＤ１方向でのレンダリング処理を行い、直角三角形領域ＴＲ１に描画する（ステップＳ５）。
【００８９】
次に図３（Ｂ）に示すように仮想カメラの視線方向をＤ２方向に設定してマトリクスＭ２を決定する（ステップＳ６）。また直角三角形領域ＴＲ２を描画領域に設定する（ステップＳ７）。そして図４（Ｂ）に示すようにマトリクスＭ２に基づきＤ２方向でのレンダリング処理を行い、直角三角形領域ＴＲ２に描画する（ステップＳ８）。
【００９０】
次に図３（Ｃ）に示すように仮想カメラの視線方向をＤ３方向に設定してマトリクスＭ３を決定する（ステップＳ９）。また直角三角形領域ＴＲ３を描画領域に設定する（ステップＳ１０）。そして図４（Ｃ）に示すようにマトリクスＭ３に基づきＤ３方向でのレンダリング処理を行い、直角三角形領域ＴＲ３に描画する（ステップＳ１１）。
【００９１】
次に図３（Ｄ）に示すように仮想カメラの視線方向をＤ４方向に設定してマトリクスＭ４を決定する（ステップＳ１２）。また直角三角形領域ＴＲ４を描画領域に設定する（ステップＳ１３）。そして図４（Ｄ）に示すようにマトリクスＭ４に基づきＤ４方向でのレンダリング処理を行い、直角三角形領域ＴＲ４に描画する（ステップＳ１４）。
【００９２】
以上のようにすることで図６に示すような四面体環境テクスチャが生成される。
【００９３】
次に図１４のマトリクスＭ１、Ｍ２、Ｍ３、Ｍ４について説明する。例えばマトリクスＭ１は、ビューマトリクスＶ１と、射影マトリクスＰと、マトリクスｍ１、ｍ２、ｍ３、ｍ４を乗算したマトリクスになる。
【００９４】
ここでＶ１は、原点から、（＋１、＋１、＋１）方向を仮想カメラの上向き方向にして（−１、−１、＋１）方向を見た時のビューマトリクスである。このビューマトリクスＶ１により、仮想カメラの視線方向をＤ１方向に設定できる。また正三角形の頂点が例えば図４（Ａ）のような位置関係になるように仮想カメラの上向き方向（傾き）が設定される。
【００９５】
また図１５に示すように、マトリクスｍ１により、二等辺の三角形ＴＲがＹ方向に沿って＋１／３だけ移動する。これにより、四角形ＱＤ内に三角形ＴＲが入るようになる。なお射影マトリクスＰにより四面体オブジェクトの正三角形は二等辺三角形に変形されている。
【００９６】
次にマトリクスｍ２により、三角形ＴＲがＹ方向に沿って−１だけ移動する。これにより、原点が三角形ＴＲの底辺に位置するようになる。次にマトリクスｍ３により、三角形ＴＲが直角三角形に変形される。そしてマトリクスｍ４により、三角形ＴＲがＹ方向に沿って＋１だけ移動する。これにより、四角形ＱＤ内に直角三角形ＴＲが入るようになる。
【００９７】
次に、キューブ環境テクスチャ生成及びテクスチャマッピング処理について図１３のフローチャートを用いて説明する。まず四面体環境テクスチャがマッピングされる図８（Ａ）の四面体オブジェクトのデータを読み込む（ステップＳ２１）。
【００９８】
次に図９（Ａ）に示すように、仮想カメラの視線方向をＤ５方向に設定してマトリクスＭ５を決定する（ステップＳ２２）。またマトリクスＭ５に基づきレンダリング処理を行い、テクスチャ領域である図９（Ｂ）の領域ＣＲ５に描画する（ステップＳ２３）。
【００９９】
同様にして、仮想カメラの視線方向をＤ６、Ｄ７、Ｄ８、Ｄ９、Ｄ１０方向に設定してマトリクスＭ６、Ｍ７、Ｍ８、Ｍ９、Ｍ１０を決定する（ステップＳ２４、Ｓ２６、Ｓ２８、Ｓ３０、Ｓ３２）。またマトリクスＭ６、Ｍ７、Ｍ８、Ｍ９、Ｍ１０に基づきレンダリング処理を行い、テクスチャ領域である図９（Ｂ）の領域ＣＲ６、ＣＲ７、ＣＲ８、ＣＲ９、ＣＲ１０に描画する（ステップＳ２５、Ｓ２７、Ｓ２９、Ｓ３１、Ｓ３３）。そして生成されたキューブ環境テクスチャを移動体オブジェクトにマッピングする（ステップＳ３４）。以上により、移動体オブジェクトに対して周りの環境が映り込んだリアルな画像が生成されるようになる。
【０１００】
３．ハードウェア構成
図１６に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０１】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１０２】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１０３】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１０４】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１０５】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０６】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１０７】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（第１、第２、第３、第４の三角形領域、第１、第２、第３、第４の三角形画像、テクスチャ領域等）と共に記載された用語（第１、第２、第３、第４の直角三角形領域、第１、第２、第３、第４の直角三角形画像、矩形テクスチャ領域等）は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１０８】
また四面体環境テクスチャの生成手法や環境テクスチャのマッピング手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。例えば仮想カメラの視線方向やレンダリング処理の順序も図３（Ａ）〜図４（Ｄ）に限定されず、種々の変形実施が可能である。またレンダリング処理の手法も図３（Ａ）〜図４（Ｄ）の手法に限定されない。また環境テクスチャのマッピング手法も、図８（Ａ）〜図１０で説明したようなキューブ環境マッピング手法には限定されず、種々の環境マッピング手法を採用できる。
【０１０９】
また本実施形態では領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４が直角三角形領域である場合について説明したが、これらの領域ＴＲ１、ＴＲ２、ＴＲ３、ＴＲ４は、直角三角形ではない三角形の領域であってもよい。
【０１１０】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１１１】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】四面体環境マッピングの説明図。
【図３】図３（Ａ）〜（Ｄ）は四面体環境テクスチャの生成手法の説明図。
【図４】図４（Ａ）〜（Ｄ）は四面体環境テクスチャの生成手法の説明図。
【図５】図５（Ａ）は四面体環境テクスチャの生成手法の説明図であり、図５（Ｂ）（Ｃ）は比較例の手法及びその問題点の説明図。
【図６】本実施形態により生成された四面体環境テクスチャの例。
【図７】四面体環境テクスチャに対するエフェクト処理手法の説明図。
【図８】図８（Ａ）（Ｂ）はキューブ環境テクスチャの生成手法の説明図。
【図９】図９（Ａ）（Ｂ）はキューブ環境テクスチャの生成手法の説明図。
【図１０】本実施形態により生成されたキューブ環境テクスチャの例。
【図１１】スフィア環境マッピングを用いた場合の説明図。
【図１２】本実施形態の処理の詳細例。
【図１３】本実施形態の処理の詳細例。
【図１４】本実施形態で用いられるマトリクスの説明図。
【図１５】本実施形態で用いられるマトリクスの説明図。
【図１６】ハードウェア構成例。
【符号の説明】
【０１１２】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１２０  描画部、１２２  四面体環境テクスチャ生成部、
１２４  エフェクト処理部、１２６  キューブ環境テクスチャ生成部、
１２８  テクスチャマッピング部、１３０  音生成部、１６０  操作部、
１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  モデルデータ記憶部、１７８  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2007141079.tif 000003
【図２】
2007141079.tif 000004
【図３】
2007141079.tif 000005
【図４】
2007141079.tif 000006
【図５】
2007141079.tif 000007
【図７】
2007141079.tif 000008
【図８】
2007141079.tif 000009
【図９】
2007141079.tif 000010
【図１１】
2007141079.tif 000011
【図１２】
2007141079.tif 000012
【図１３】
2007141079.tif 000013
【図１４】
2007141079.tif 000014
【図１５】
2007141079.tif 000015
【図１６】
2007141079.tif 000016
【図６】
2007141079.tif 000017
【図１０】
2007141079.tif 000018