(57)【要約】【課題】頂点処理部、ピクセル処理部への効率的な処理の割り振りを可能にするプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】画像生成システムは頂点処理部とピクセル処理部を含む。仮想カメラからの距離が遠いオブジェクトに対して所定処理を行う場合には、所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を頂点処理部が行い、処理負荷が重い第２の処理をピクセル処理部が行う。仮想カメラからの距離が近いオブジェクトに対して前記所定処理を行う場合には、所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を頂点処理部が行い、処理負荷が軽い第４の処理をピクセル処理部が行う。【選択図】図５
2007141078.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
頂点単位で処理を行う頂点処理部と、
ピクセル単位で処理を行うピクセル処理部として、
コンピュータを機能させ、
仮想カメラからの距離が遠い第１のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、
仮想カメラからの距離が前記第１のオブジェクトよりも近い第２のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行うことを特徴とするプログラム。
【請求項２】
画像を生成するためのプログラムであって、
オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
頂点単位で処理を行う頂点処理部と、
ピクセル単位で処理を行うピクセル処理部として、
コンピュータを機能させ、
スクリーン上での面積が小さい第１のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、
スクリーン上での面積が前記第１のオブジェクトよりも大きい第２のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行うことを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記所定処理は、ライトスキャッタリング処理であることを特徴とするプログラム。
【請求項４】
請求項３において、
前記頂点処理部は、
仮想カメラとオブジェクトの頂点との距離を求める処理を含む前記第１の処理を行い、
前記ピクセル処理部は、
アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を求め、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第２の処理を行うことを特徴とするプログラム。
【請求項５】
請求項３又は４において、
前記頂点処理部は、
アウトスキャッタリングによる頂点色とインスキャッタリングによる頂点色を求める処理を含む前記第３の処理を行い、
前記ピクセル処理部は、
アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第４の処理を行うことを特徴とするプログラム。
【請求項６】
請求項１又は２において、
前記所定処理は、テクスチャ座標を演算する処理であることを特徴とするプログラム。
【請求項７】
請求項６において、
前記頂点処理部は、
頂点の法線ベクトルのデータを出力する処理を含む前記第１の処理を行い、
前記ピクセル処理部は、
ピクセルの法線ベクトルを座標変換してピクセルのテクスチャ座標を演算し、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第２の処理を行うことを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記頂点処理部は、
頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理を含む前記第３の処理を行い、
前記ピクセル処理部は、
ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第４の処理を行うことを特徴とするプログラム。
【請求項９】
請求項１又は２において、
前記所定処理は、ライティング処理であることを特徴とするプログラム。
【請求項１０】
請求項９において、
前記頂点処理部は、
頂点の法線ベクトルのデータを出力する処理を含む前記第１の処理を行い、
前記ピクセル処理部は、
ピクセルの法線ベクトルと照明モデルに基づいてピクセルの光強度を求め、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第２の処理を行うことを特徴とするプログラム。
【請求項１１】
請求項９又は１０において、
前記頂点処理部は、
頂点の法線ベクトルと照明モデルに基づいて頂点の光強度を求める処理を含む前記第３の処理を行い、
前記ピクセル処理部は、
ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第４の処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１又は２において、
前記所定処理は、色の変換処理であることを特徴とするプログラム。
【請求項１３】
請求項１２において、
前記頂点処理部は、
頂点位置、頂点色のデータを出力する処理を含む前記第１の処理を行い、
前記ピクセル処理部は、
ピクセル色を変換テーブル又は変換関数を用いて変換する処理を含む前記第２の処理を行うことを特徴とするプログラム。
【請求項１４】
請求項１２又は１３において、
前記頂点処理部は
頂点色を変換テーブル又は変換関数を用いて変換する処理を含む前記第３の処理を行い、
前記ピクセル処理部は、
変換後の頂点色から求められたピクセル色を出力する処理を含む前記第４の処理を行うことを特徴とするプログラム。
【請求項１５】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１４のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１６】
画像を生成する画像生成システムであって、
オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
頂点単位で処理を行う頂点処理部と、
ピクセル単位で処理を行うピクセル処理部を含み、
仮想カメラからの距離が遠い第１のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、
仮想カメラからの距離が前記第１のオブジェクトよりも近い第２のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行うことを特徴とする画像生成システム。
【請求項１７】
画像を生成する画像生成システムであって、
オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、
頂点単位で処理を行う頂点処理部と、
ピクセル単位で処理を行うピクセル処理部を含み、
スクリーン上での面積が小さい第１のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、
スクリーン上での面積が前記第１のオブジェクトよりも大きい第２のオブジェクトに対して所定処理を行う場合には、
前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、車、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、頂点単位で行われる処理（per vertex processing）である頂点処理と、ピクセル単位で行われる処理（per pixel processing）であるピクセル処理がある。
【０００４】
しかしながら、これまでの画像生成システムでは、頂点処理を行う頂点処理部、ピクセル処理を行うピクセル処理部への処理の割り振りについてはあまり考慮されていなかった。従って、無駄な頂点処理やピクセル処理が行われる可能性があることが判明した。
【特許文献１】特開２００２−３７３３４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、頂点処理部、ピクセル処理部への効率的な処理の割り振りを可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、頂点単位で処理を行う頂点処理部と、ピクセル単位で処理を行うピクセル処理部を含み、仮想カメラからの距離が遠い第１のオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、仮想カメラからの距離が前記第１のオブジェクトよりも近い第２のオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明では、仮想カメラからの距離が遠い第１のオブジェクトに対して所定処理を行う場合には、ピクセル処理部が、負荷が重い主要処理部分を行う一方で、仮想カメラからの距離が近い第２のオブジェクトに対して所定処理を行う場合には、頂点処理部が、負荷が重い主要処理部分を行うようになる。従って、頂点処理部、ピクセル処理部への効率的な処理の割り振りが可能になり、処理の効率化や、生成される画像の品質の維持等が可能になる。
【０００８】
なお処理負荷が重いとは、例えばその処理を実現するプログラムに記述される関数及び変数の少なくとも一方の記述量（ステップ数）が多い場合や、その関数が複雑（次数が多い）である場合等をいう。一方、処理負荷が軽いとは、例えばその処理を実現するプログラムに記述される関数及び変数の少なくとも一方の記述量が少ない場合や、その関数が簡素（次数が少ない）である場合等をいう。
【０００９】
また本発明は、画像を生成する画像生成システムであって、オブジェクト空間へのオブジェクトの設定処理を行うオブジェクト空間設定部と、頂点単位で処理を行う頂点処理部と、ピクセル単位で処理を行うピクセル処理部を含み、スクリーン上での面積が小さい第１のオブジェクトに対して所定処理を行う場合には、前記所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理を前記頂点処理部が行い、処理負荷が重い第２の処理を前記ピクセル処理部が行い、スクリーン上での面積が前記第１のオブジェクトよりも大きい第２のオブジェクトに対して所定処理を行う場合には、  前記所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理を前記頂点処理部が行い、処理負荷が軽い第４の処理を前記ピクセル処理部が行う画像生成システムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１０】
本発明では、スクリーン上での面積が小さい第１のグループのオブジェクトに対して所定処理を行う場合には、ピクセル処理部が、負荷が重い主要処理部分を行う一方で、スクリーン上での面積が大きい第２のグループのオブジェクトに対して所定処理を行う場合には、頂点処理部が、負荷が重い主要処理部分を行うようになる。従って、頂点処理部、ピクセル処理部への効率的な処理の割り振りが可能になり、処理の効率化や、生成される画像の品質の維持等が可能になる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、ライトスキャッタリング処理であってもよい。
【００１２】
こうすれば、効率的なライトスキャッタリング処理が可能になり、光の散乱のシミュレートが可能になる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、仮想カメラとオブジェクトの頂点との距離を求める処理を含む前記第１の処理を行い、前記ピクセル処理部は、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を求め、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第２の処理を行うようにしてもよい。
【００１４】
このようにすれば、ライトスキャッタリング処理のうち負荷の軽い第１の処理を頂点処理部に割り振り、負荷の重い第２の処理をピクセル処理部に割り振ることが可能になる。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、アウトスキャッタリングによる頂点色とインスキャッタリングによる頂点色を求める処理を含む前記第３の処理を行い、前記ピクセル処理部は、アウトスキャッタリングによるピクセル色とインスキャッタリングによるピクセル色を加算する処理を含む前記第４の処理を行うようにしてもよい。
【００１６】
このようにすれば、ライトスキャッタリング処理のうち負荷の重い第３の処理を頂点処理部に割り振り、負荷の軽い第４の処理をピクセル処理部に割り振ることが可能になる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、テクスチャ座標を演算する処理であってもよい。
【００１８】
こうすれば、効率的なテクスチャ演算処理が可能になり、例えば環境マッピング等の処理負荷を軽減できる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルのデータを出力する処理を含む前記第１の処理を行い、前記ピクセル処理部は、ピクセルの法線ベクトルを座標変換してピクセルのテクスチャ座標を演算し、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第２の処理を行うようにしてもよい。
【００２０】
このようにすれば、テクスチャ座標演算処理のうち負荷の軽い第１の処理を頂点処理部に割り振り、負荷の重い第２の処理をピクセル処理部に割り振ることが可能になる。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理を含む前記第３の処理を行い、前記ピクセル処理部は、ピクセルのテクスチャ座標を用いたテクスチャマッピングによりピクセル色を求める処理を含む前記第４の処理を行うようにしてもよい。
【００２２】
このようにすれば、テクスチャ座標演算処理のうち負荷の重い第３の処理を頂点処理部に割り振り、負荷の軽い第４の処理をピクセル処理部に割り振ることが可能になる。
【００２３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、ライティング処理であってもよい。
【００２４】
こうすれば、効率的なライティング処理が可能になり、よりリアルな画像を生成できる。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルのデータを出力する処理を含む前記第１の処理を行い、前記ピクセル処理部は、ピクセルの法線ベクトルと照明モデルに基づいてピクセルの光強度を求め、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第２の処理を行うようにしてもよい。
【００２６】
このようにすれば、ライティング処理のうち負荷の軽い第１の処理を頂点処理部に割り振り、負荷の重い第２の処理をピクセル処理部に割り振ることが可能になる。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点の法線ベクトルと照明モデルに基づいて頂点の光強度を求める処理を含む前記第３の処理を行い、前記ピクセル処理部は、ピクセルの光強度に基づいてピクセル色を求める処理を含む前記第４の処理を行うようにしてもよい。
【００２８】
このようにすれば、ライティング処理のうち負荷の重い第３の処理を頂点処理部に割り振り、負荷の軽い第４の処理をピクセル処理部に割り振ることが可能になる。
【００２９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記所定処理は、色の変換処理であってもよい。
【００３０】
こうすれば、効率的な色変換処理が可能になり、ガンマ補正等の変換処理を実現できるようになる。
【００３１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は、頂点位置、頂点色のデータを出力する処理を含む前記第１の処理を行い、前記ピクセル処理部は、ピクセル色を変換テーブル又は変換関数を用いて変換する処理を含む前記第２の処理を行うようにしてもよい。
【００３２】
このようにすれば、色変換処理のうち負荷の軽い第１の処理を頂点処理部に割り振り、負荷の重い第２の処理をピクセル処理部に割り振ることが可能になる。
【００３３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点処理部は頂点色を変換テーブル又は変換関数を用いて変換する処理を含む前記第３の処理を行い、前記ピクセル処理部は、変換後の頂点色から求められたピクセル色を出力する処理を含む前記第４の処理を行うようにしてもよい。
【００３４】
このようにすれば、色変換処理のうち負荷の重い第３の処理を頂点処理部に割り振り、負荷の軽い第４の処理をピクセル処理部に割り振ることが可能になる。
【発明を実施するための最良の形態】
【００３５】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３６】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３７】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、ハードディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４０】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４１】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４２】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４３】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４４】
オブジェクト空間設定部１１０は、車、電車、キャラクタ、建物、球場、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部１７６には、移動体オブジェクト（車）、固定物オブジェクト（ビル）、背景オブジェクト（マップ、天球）のモデルデータが記憶されている。そしてオブジェクト空間設定部１１０は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定（配置）処理を行う。
【００４５】
移動・動作処理部１１２は、オブジェクト（車、キャラクタ、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（モデルオブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４６】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４７】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００４８】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４９】
描画部１２０は、オブジェクトを描画する際にジオメトリ処理、隠面消去処理、αブレンディング等を行う。
【００５０】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のモデルデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００５１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００５２】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００５３】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５４】
描画部１２０は、頂点処理部１２２、ピクセル処理部１２４を含む。
【００５５】
頂点処理部１２２は、頂点単位の処理（per vertex processing）である頂点処理を行う。この頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われる。そして、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データが変更（更新、調整）される。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。
【００５６】
そしてこのラスタライズに続いて、ピクセル処理部１２４は、ピクセル単位の処理（per pixel processing）であるピクセル処理を行う。このピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理が行われる。そして画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５８】
そして本実施形態では、仮想カメラ（視点）からの距離が遠い第１のオブジェクト（第１のグループに属するオブジェクト）に対して所定処理を行う場合には、その所定処理を実現（実行、構成）する第１、第２の処理のうちの処理負荷が軽い第１の処理を頂点処理部１２２が行う。一方、処理負荷が重い第２の処理をピクセル処理部１２４が行う。或いは、スクリーン（画面）上での面積（描画面積、占有面積）が小さい第１のオブジェクトに対して所定処理を行う場合には、処理負荷が軽い第１の処理を頂点処理部１２２が行い、処理負荷が重い第２の処理をピクセル処理部１２４が行う。
【００５９】
一方、仮想カメラ（視点）からの距離が第１のオブジェクトよりも近い第２のオブジェクト（第２のグループに属するオブジェクト）に対して所定処理を行う場合には、所定処理を実現（実行、構成）する第３、第４の処理のうちの処理負荷が重い第３の処理を頂点処理部１２２が行い、処理負荷が軽い第４の処理をピクセル処理部１２４が行う。或いは、スクリーン（画面）上での面積（描画面積、占有面積）が第１のオブジェクトよりも大きい第２のオブジェクトに対して所定処理を行う場合には、処理負荷が重い第３の処理を頂点処理部１２２が行い、処理負荷が軽い第４の処理をピクセル処理部１２４が行う。
【００６０】
なお仮想カメラからの距離は、奥行き距離（Ｚ値）であってもよいし、直線距離であってもよい。或いは、第１、第２のオブジェクトが移動するコースにコースデータが設定されている場合には、このコースデータに基づいて仮想カメラと第１、第２のオブジェクトの距離を判断してもよい。またスクリーン上での面積は、例えば第１、第２のオブジェクト（オブジェクトの頂点）のスクリーン上への投影点のＸ座標、Ｙ座標の最小値や最大値に基づいて判断したり、これらの最小値、最大値に基づいて設定されるバウンディングボックス（バウンディングボリューム）の面積に基づいて判断できる。
【００６１】
また所定処理としては、ライトスキャッタリング（光散乱）処理、法線ベクトルに基づいてテクスチャ座標を求める処理（環境マッピング処理）、ライティング処理、色（画像情報）の変換処理などがある。但し所定処理は、これに限定されず、種々の処理（シェーディング処理）が考えられる。即ち所定処理は、頂点処理部１２２、ピクセル処理部１２４への処理の割り振りを行うことで効率化できるものであればよい。
【００６２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６４】
２．本実施形態の手法
２．１  頂点処理部、ピクセル処理部
図２に頂点処理部１２２、ピクセル処理部１２４の構成例を示す。頂点処理部１２２（頂点シェーダ）は、例えばベクトル演算ユニットなどのハードウェアと頂点処理プログラム（頂点シェーダプログラム）のソフトウェアにより実現できる。またピクセル処理部１２４（ピクセルシェーダ）も、例えばベクトル演算ユニットなどのハードウェアとピクセル処理プログラム（ピクセルシェーダプログラム）のソフトウェアにより実現できる。なお頂点処理部１２２、ピクセル処理部１２４に割り当てられるベクトル演算ユニットは固定的であってもよいし、頂点処理部１２２、ピクセル処理部１２４に対する複数のベクトル演算ユニットの割り当てを動的に変化させてもよい。
【００６５】
頂点処理部１２２は、座標変換部１０、ライティング処理部１２、テクスチャ座標演算部１４を含む。
【００６６】
座標変換部１０は、ワールド座標系への座標変換、ビュー座標系への座標変換などを行う。この座標変換部１０により、オブジェクト（モデル）の頂点のスクリーン上での位置を求めることができる。なお座標変換部１０は、位置の座標変換のみならず、法線ベクトル等の座標変換も行うことができる。
【００６７】
ライティング処理部１２は、オブジェクトの法線ベクトルと照明モデルに基づいてライティング処理（光源計算）を行う。このライティング処理は、光源の属性パラメータ（光源の色、明るさ、タイプ）、法線ベクトルのパラメータ、オブジェクトのマテリアルのパラメータ（色、材質）などを用いて行われる。なお照明モデルとしては、環境光（アンビエント光）と拡散光（ディフューズ光）だけを考慮したランバードの照明モデル、環境光、拡散光に加えて鏡面反射光（スペキュラー光）も考慮するフォンの照明モデルや、ブリンの照明モデルなどの種々のモデルがある。
【００６８】
テクスチャ座標演算部１４は、テクスチャ座標の演算（算出、取得）処理を行う。具体的には、例えば頂点の法線ベクトルを座標変換して頂点のテクスチャ座標を演算する処理などを行う。
【００６９】
ラスタライズ処理部１２３はラスタライズ（走査線変換）処理を行う。具体的にはラスタライズ処理部１２３には、頂点処理部１２２から加工済みの頂点データが入力される。そしてラスタライズ処理部１２３は、加工済みの頂点データに基づいて、ポリゴンを構成するピクセルの生成処理を行う。この場合に例えば、頂点データに含まれる頂点位置、頂点色、頂点テクスチャ座標、頂点法線ベクトルなどの各種パラメータの補間処理（線形補間等）が行われ、ピクセル位置、ピクセル色、ピクセルのテクスチャ座標、ピクセルの法線ベクトルなどが求められる。
【００７０】
ピクセル処理部１２４はテクスチャマッピング部２０、ピクセル加工処理部２２を含む。テクスチャマッピング部２０は、テクスチャマッピング処理（サンプリング処理）を行う。ここでテクスチャマッピング処理は、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をマッピング（サンプリング）するための処理である。具体的には、ピクセルのテクスチャ座標等を用いてテクスチャ記憶部１７８からテクスチャ（色、α値などの表面プロパティ）のデータを読み出してマッピングする処理を行う。
【００７１】
ピクセル加工処理部２２は、ピクセルデータに対する種々の加工処理を行う。そしてこの加工処理により、ピクセル（フラグメント）の色が決定される。そして加工処理（ピクセルシェーダ）の後に、例えばシザーテスト、アルファテスティング、深度テスト又はステンシルテストなどを実行して、そのピクセル（フラグメント）が表示されるのか否かを最終的に決定する。なおそのピクセルが表示されることが決まった後に、更にピクセルデータの加工処理（フォグ、半透明合成、アンチエイリアス）が行われて、加工処理後のピクセルデータがフレームバッファに書き込まれることになる。
【００７２】
２．２  頂点処理部、ピクセル処理部への処理の割り振り
本実施形態では、所定処理を行う場合に、頂点処理部１２２、ピクセル処理部１２４への処理の割り振り（分散）をオブジェクト毎（オブジェクトのグループ毎）で変えることで、処理の効率化を図っている。
【００７３】
具体的には、第１のオブジェクトについては、ピクセル処理部１２４に負荷の重い処理を行わせ、第２のオブジェクトについては、頂点処理部１２２に負荷の重い処理を行わせる。
【００７４】
更に具体的には、仮想カメラ（視点）からの距離が遠い第１のオブジェクトについては、頂点処理部１２２に負荷の軽い第１の処理を行わせ、ピクセル処理部１２４に負荷の重い第２の処理を行わせる。そしてこれらの第１、第２の処理により所定処理（ライトスキャッタリング、テクスチャ座標演算、ライティング、色変換等）が実現される。なお第１のオブジェクトは、スクリーン上での面積が第２のオブジェクトよりも小さいオブジェクトであってもよい。
【００７５】
一方、仮想カメラからの距離が第１のオブジェクトよりも近い第２のオブジェクトについては、頂点処理部１２２に負荷の重い第３の処理を行わせ、ピクセル処理部１２４に負荷の軽い第４の処理を行わせる。そしてこれらの第３、第４の処理により上記の所定処理が実現される。なお第２のオブジェクトは、スクリーン上での面積が第１のオブジェクトよりも大きいオブジェクトであってもよい。また第１、第２のオブジェクトは、移動体オブジェクト（車、電車、飛行機、船、キャラクタ等）であってもよいし、固定物オブジェクト（ビル等）であってもよい。或いは、背景オブジェクト（山などの遠景オブジェクトや道路、地面などのマップオブジェクト等）であってもよい。
【００７６】
例えば図３（Ａ）において、仮想カメラＶＣからオブジェクトＯＢ１（代表点）への距離ＤＳ１は遠く、仮想カメラＶＣからオブジェクトＯＢ２（代表点）への距離ＤＳ２は近い。また図３（Ｂ）において、オブジェクトＯＢ１のスクリーン上での面積は小さく、オブジェクトＯＢ２のスクリーン上での面積は大きい。
【００７７】
なおオブジェクトＯＢ１、ＯＢ２のスクリーン上での面積は、いわゆるバウンディングボックスＢＤ１、ＢＤ２（オブジェクトＯＢ１、ＯＢ２を内包する領域）の大きさにより判断できる。
【００７８】
例えばオブジェクトＯＢ１のスクリーン上での頂点のＸ、Ｙ座標の最小値ＸＭＩＮ１、ＹＭＩＮ１、最大値ＸＭＡＸ１、ＹＭＡＸ１を求める。そして頂点ＶＸ１１（ＸＭＩＮ１、ＹＭＩＮ１）、ＶＸ１２（ＸＭＩＮ１、ＹＭＡＸ１）、ＶＸ１３（ＸＭＡＸ１、ＹＭＡＸ１）、ＶＸ１４（ＸＭＡＸ１、ＹＭＩＮ１）により形成される領域をバウンディングボックスＢＤ１とすることができる。なおバウンディングボックスＢＤ１を上下左右方向に若干だけ大きくするようにしてもよい。
【００７９】
またオブジェクトＯＢ２のスクリーン上での頂点のＸ、Ｙ座標の最小値ＸＭＩＮ２、ＹＭＩＮ２、最大値ＸＭＡＸ２、ＹＭＡＸ２を求める。そして頂点ＶＸ２１（ＸＭＩＮ２、ＹＭＩＮ２）、ＶＸ２２（ＸＭＩＮ２、ＹＭＡＸ２）、ＶＸ２３（ＸＭＡＸ２、ＹＭＡＸ２）、ＶＸ２４（ＸＭＡＸ２、ＹＭＩＮ２）により形成される領域をバウンディングボックスＢＤ２とすることができる。なおバウンディングボックスＢＤ２を上下左右方向に若干だけ大きくするようにしてもよい。
【００８０】
そしてこのようにして求められたバウンディングボックスＢＤ１、ＢＤ２の大きさに基づいて、オブジェクトＯＢ１、ＯＢ２のスクリーン上での面積を判断できる。なお、オブジェクトＯＢ１、ＯＢ２のスクリーン上での頂点のＸ、Ｙ座標の最小値、最大値そのものに基づいて、オブジェクトＯＢ１、ＯＢ２のスクリーン上での面積を判断してもよい。
【００８１】
例えば図３（Ａ）（Ｂ）に示すように、仮想カメラＶＣからの距離ＤＳ２が近かったり、スクリーン上での面積が大きいオブジェクトＯＢ２では、図４（Ａ）に示すように、ＯＢ２を構成するポリゴンＰＬ２のスクリーン（画面）上での大きさが大きくなる。例えば図４（Ａ）では、ポリゴンＰＬ２の頂点ＶＥ１〜ＶＥ４の個数は４個であり、ピクセルＰＸ１〜ＰＸ２５の個数は２５個である。従って、所定処理の主要部分をピクセル処理部１２４が行うと、処理回数が多くなり、処理負荷が重くなってしまうおそれがある。
【００８２】
そこで本実施形態では、仮想カメラＶＣからの距離ＤＳ２が近いオブジェクトＯＢ２については、処理負荷が重い主要処理部分（第３の処理）をピクセル処理部１２４ではなく頂点処理部１２２が行う。こうすれば、図４（Ａ）の場合には、主要処理部分の処理回数は４回になり、ピクセル処理部１２４が主要処理部分を処理する場合（処理回数＝２５回）に比べて、処理負荷を大幅に軽減できる。
【００８３】
また図３（Ａ）（Ｂ）に示すように、仮想カメラＶＣからの距離ＤＳ１が遠かったり、スクリーン上での面積が小さいオブジェクトＯＢ１では、図４（Ｂ）（Ｃ）に示すように、ＯＢ１を構成するポリゴンＰＬ１のスクリーン（画面）上での大きさが小さくなる。例えば図４（Ｂ）では、ポリゴンＰＬ１の頂点ＶＥ１〜ＶＥ４の個数は４個であり、ピクセルの個数は２個である。また図４（Ｃ）では、頂点ＶＥ１〜ＶＥ４の個数は４個であり、ピクセルの個数は１個である。従って、所定処理の主要部分を頂点処理部１２２が行うと、処理回数が多くなり、処理負荷が重くなってしまうおそれがある。
【００８４】
そこで本実施形態では、仮想カメラＶＣからの距離ＤＳ１が遠いオブジェクトＯＢ１については、処理負荷が重い主要処理部分（第２の処理）を頂点処理部１２２ではなくピクセル処理部１２４が行う。こうすれば図４（Ｂ）の場合には主要処理部分の処理回数は２回になり、図４（Ｃ）の場合は１回になる。従って、頂点処理部１２２が主要処理部分を処理する場合（処理回数＝４回）に比べて、処理負荷を大幅に軽減できる。この処理負荷の軽減の効果は、オブジェクトの頂点数が多くなるほど大きくなる。
【００８５】
次に頂点処理部１２２、ピクセル処理部１２４への処理の割り振りを実現する具体的な手法について説明する。図５（Ａ）に、仮想カメラからの距離が遠いオブジェクト或いはスクリーン上での面積が小さいオブジェクト（以下、遠距離オブジェクトと呼ぶ）についてのプログラム（ソースプログラム）の記述例を示し、図５（Ｂ）に、仮想カメラからの距離が近いオブジェクト又はスクリーン上での面積が大きいオブジェクト（以下、近距離オブジェクトと呼ぶ）についてのプログラムの記述例を示す。
【００８６】
図５（Ａ）の遠距離オブジェクト用のプログラムは、頂点処理プログラム（頂点シェーダプログラム）とピクセル処理プログラム（ピクセルシェーダプログラム）を含む。図２の頂点処理部１２２の機能は、ベクトル演算ユニットなどのハードウェアと、このハードウェアで実行される頂点処理プログラムにより実現される。ピクセル処理部１２４の機能は、ベクトル演算ユニットなどのハードウェアと、このハードウェアで実行されるピクセル処理プログラムにより実現される。
【００８７】
そして図５（Ａ）の頂点処理プログラムは、所定処理を実現する第１、第２の処理のうちの処理負荷が軽い第１の処理のプログラムを含み、ピクセル処理プログラムは、処理負荷が重い第２の処理のプログラムを含む。図５（Ａ）に示すように第２の処理のプログラムでは、第１の処理のプログラムに比べて多くの関数、変数が記述され、その記述量（ステップ数）が多い。従って、ピクセル処理部１２４による第２の処理のプログラムの実行時の処理負荷は、頂点処理部１２２による第１の処理のプログラムの実行時の処理負荷よりも重くなる。
【００８８】
図５（Ｂ）の近距離オブジェクト用のプログラムも、頂点処理プログラム（頂点シェーダプログラム）とピクセル処理プログラム（ピクセルシェーダプログラム）を含む。
【００８９】
そして図５（Ｂ）の頂点処理プログラムは、所定処理を実現する第３、第４の処理のうちの処理負荷が重い第３の処理のプログラムを含み、ピクセル処理プログラムは、処理負荷が軽い第４の処理のプログラムを含む。図５（Ｂ）に示すように第３の処理のプログラムでは、第４の処理のプログラムに比べて多くの関数、変数が記述され、その記述量が多い。従って、頂点処理部１２２による第３の処理のプログラムの実行時の処理負荷は、ピクセル処理部１２４による第４の処理のプログラムの実行時の処理負荷よりも重くなる。
【００９０】
２．３  ライトスキャッタリング処理
次に第１、第２の処理や第３、第４の処理により実現される所定処理について説明する。まず所定処理がライトスキャッタリング処理（広義にはフォグ処理）である場合について説明する。
【００９１】
ライトスキャッタリング（光散乱）とは、光が、大気の密度の揺らぎや大気中の微粒子等により散乱する現象である。例えば太陽の光は７色の光により構成されるが、小さな微粒子による光の散乱の場合には、７色の光のうち波長が短い色の光は散乱しやすく、波長が長い色の光は散乱しにくいという性質がある。具体的には紫に近い色の光ほど散乱しやすく、赤に近い色の光ほど散乱しにくい。
【００９２】
昼間の空が青く見えるのは、太陽光の青色の光が大気中の微粒子により散乱して空を覆い、観者の目に入ることによる。一方、夕焼けの空が赤く見えるのは、低い位置にある太陽からの光が大気中で長い距離を通るため、大気中の微粒子により散乱しにくい赤の光が観者の目に入ることによる。
【００９３】
本実施形態ではこのライトスキャッタリング現象を、図６（Ａ）に示すようにアウトスキャッタリング(Out-Scattering）とインスキャッタリング(In-Scattering）のモデルで表現している。
【００９４】
ここでアウトスキャッタリングのモデルは、光が大気に吸収されたり、光が微粒子により散乱されて視界（仮想カメラＶＣの視界）から遠ざかることで、光が減衰することを表現するモデルである。一方、インスキャッタリングのモデルは、太陽ＬＳ（広義には光源）からの光が視界に入ってきて、光が加算されることを表現するモデルである。
【００９５】
具体的には本実施形態のライトスキャッタリングのモデルは下式のように表される。
【００９６】
【数１】
2007141078.tif 000003
【００９７】
【数２】
2007141078.tif 000004
【００９８】
【数３】
2007141078.tif 000005
【００９９】
【数４】
2007141078.tif 000006
【０１００】
【数５】
2007141078.tif 000007
【０１０１】
【数６】
2007141078.tif 000008
【０１０２】
【数７】
2007141078.tif 000009
【０１０３】
ここで、Ｌｏｕｔはアウトスキャッタリングによる色（色成分）を表し、Ｌｉｎはインスキャッタリングによる色（色成分）を表す。Ｌ０は入力色であり、具体的には例えば図６（Ａ）に示すように、オブジェクトＯＢ（遠距離オブジェクトＯＢ１、近距離オブジェクトＯＢ２）の頂点ＶＥからの光（反射光）の色である。ｆｅｘは吸光（extinction）を表す関数であり、ＩＮＴはインスキャッタリングによる光の強度を表す関数である。
【０１０４】
Ｓは、仮想カメラＶＣ（視点）と頂点ＶＥとの距離のパラメータである。θは、仮想カメラＶＣの視線方向と光源ＬＳからの光の方向とのなす角度のパラメータである。Ｅは、太陽ＬＳの光の強さのパラメータである。ＢＲは、空気の濃さを表すパラメータであるレイリー（Rayleigh）係数であり、ＢＭは、大気中の塵の濃さのパラメータであるＭＩＥ係数である。ｇは、大気中の塵がどのくらい光を錯乱するかを表すパラメータである。
【０１０５】
なお本実施形態では図６（Ｂ）に示すように、仮想カメラＶＣ（視点）から所定距離ＳＳよりも離れているオブジェクト（頂点）に対しては、ライトスキャッタリング処理を行わないようにしている。例えば天球オブジェクトＯＢＳには、空の絵が描かれている。この空の絵は、ＣＧデザイナが、ライトスキャッタリングを考慮して描いた絵である場合が多い。従って、このような天球オブジェクトＯＢＳの空の部分に、本実施形態のライトスキャッタリング処理が施されると、ライトスキャッタリングの効果が二重に掛かる事態が生じてしまう。
【０１０６】
この点、図６（Ｂ）のように、仮想カメラＶＣから所定距離ＳＳよりも離れているオブジェクトに対してはライトスキャッタリング処理を行わないようにすれば、このような事態の発生を防止でき、生成される画像の品質を向上できる。
【０１０７】
次に図７、図８のフローチャートを用いて本実施形態のライトスキャッタリング処理について説明する。
【０１０８】
図７は、遠距離オブジェクトＯＢ１に対して行われるライトスキャッタリング処理（広義には所定の処理）のフローチャートである。まず頂点処理部１２２による頂点処理が行われる（ステップＳ１）。この頂点処理は、図５（Ａ）に示すように負荷の軽い第１の処理となる。また頂点処理は、遠距離オブジェクトＯＢ１を構成する各頂点について行われる。
【０１０９】
具体的には頂点処理では、まず、ビュー（カメラ）座標系での頂点の位置を求め、求められた頂点位置のデータを出力する（ステップＳ２）。例えば頂点データとして頂点バッファ（出力レジスタ）に出力する。また求められた頂点位置に基づいて、仮想カメラと頂点との距離Ｓを求め、求められた距離のデータを出力する（ステップＳ３）。そして頂点処理を終了する。
【０１１０】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ４）。このラスタライズ処理では頂点位置や頂点色などの補間演算が行われる。またステップＳ３で求められた仮想カメラと頂点との距離の補間演算も行われる。
【０１１１】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ５）。このピクセル処理は、図５（Ａ）に示すように負荷の重い第２の処理となる。またピクセル処理は、画面を構成する各ピクセル（フラグメント）について行われる。
【０１１２】
具体的にはピクセル処理では、仮想カメラの視線方向と太陽の光の方向とのなす角度θを求める（ステップＳ６）。なお、θそのものではなく、ＣＯＳθを直接に求めてもよい。ここで仮想カメラの視線方向は、仮想カメラの位置と、ステップＳ４のラスタライズ処理により頂点位置を補間することで得られた点の位置とに基づき求めることができる。
【０１１３】
次に、ステップＳ６で求められたθ（ＣＯＳθ）に基づいて、上式（６）（７）に示すβＲ（θ）、ＢＭ（θ）を求める（ステップＳ７、Ｓ８）。そして求められたβＲ（θ）、ＢＭ（θ）に基づいて、上式（５）に示すインスキャッタリングによる光の強度ＩＮＴを求める（ステップＳ９）。
【０１１４】
次に、距離Ｓに基づいて、上記（４）に示すｆｅｘを求める（ステップＳ１０）。ここで距離Ｓは、仮想カメラの位置と、ステップＳ４のラスタライズ処理により頂点位置を補間することで得られた点の位置とに基づき求めることができる。
【０１１５】
次に、上式（３）に示すインスキャッタリングによる光の色Ｌｉｎを求める（ステップＳ１１）。また上式（２）に示すアウトスキャッタリングによる光の色Ｌｏｕｔを求める（ステップＳ１２）。そして上式（１）に示すようにＬｏｕｔとＬｉｎの加算処理が行われて、スキャッタリングが施された最終的な光の色Ｌ（ピクセル色）を求める（ステップＳ１３）。
【０１１６】
図８は、近距離オブジェクトＯＢ２に対して行われるライトスキャッタリング処理のフローチャートである。まず頂点処理部１２２による頂点処理が行われる（ステップＳ２１）。この頂点処理は、図５（Ｂ）に示すように負荷の重い第３の処理となる。また頂点処理は、近距離オブジェクトＯＢ２を構成する各頂点について行われる。
【０１１７】
具体的には頂点処理では、まず、ビュー座標系での頂点の位置を求め、求められた頂点位置のデータを出力する（ステップＳ２２）。また求められた頂点位置に基づいて、仮想カメラと頂点の距離Ｓを求め、求められた距離のデータを出力する（ステップＳ２３）。
【０１１８】
次に、ステップＳ２３で求められた距離Ｓに基づいて、上記（４）に示すｆｅｘを求める（ステップＳ２４）。そしてまた上式（２）に示すアウトスキャッタリングによる光の色Ｌｏｕｔ（頂点色）を求める（ステップＳ２５）。
【０１１９】
次に、仮想カメラの視線方向と太陽の光の方向とのなす角度θを求める（ステップＳ２６）。なお、θそのものではなく、ＣＯＳθを直接に求めてもよい。ここで仮想カメラの視線方向は、仮想カメラの位置と、ステップＳ２２で求められた頂点位置とに基づき求めることができる。
【０１２０】
次に、ステップＳ２６で求められたθ（ＣＯＳθ）に基づいて、上式（６）（７）に示すβＲ（θ）、ＢＭ（θ）を求める（ステップＳ２７、Ｓ２８）。そして求められたβＲ（θ）、ＢＭ（θ）に基づいて、上式（５）に示すインスキャッタリングによる光の強度ＩＮＴを求める（ステップＳ２９）。次に、上式（３）に示すインスキャッタリングによる光の色Ｌｉｎ（頂点色）を求める（ステップＳ３０）。そして頂点処理が終了する。
【０１２１】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ３１）。このラスタライズ処理では、ステップＳ２５で求められたＬｏｕｔの補間演算や、ステップＳ３０で求められたＬｉｎの補間演算も行われる。
【０１２２】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ３２）。このピクセル処理は、図５（Ｂ）に示すように負荷の軽い第４の処理となる。またピクセル処理は、画面を構成する各ピクセル（フラグメント）について行われる。
【０１２３】
具体的にはピクセル処理では、アウトスキャッタリングによる光の色Ｌｏｕｔ（ピクセル色）とインスキャッタリングによる光の色Ｌｉｎ（ピクセル色）の加算処理が行われ、スキャッタリングが施された最終的な光の色Ｌ（ピクセル色）を求める（ステップＳ３３）。ここで、Ｌｏｕｔ、ＬｉｎはステップＳ３１のラスタライズ処理で補間演算されたものが使用される。
【０１２４】
図７に示すように、遠距離オブジェクトに対してライトスキャッタリング処理を行う場合には、頂点処理である第１の処理（ステップＳ２、Ｓ３）の負荷は軽く、ピクセル処理である第２の処理（ステップＳ６〜Ｓ１３）の負荷は重い。そして遠距離オブジェクトに対してライトスキャッタリング処理を行う場合には、図４（Ｂ）（Ｃ）に示すように、ピクセル処理の回数の方が頂点処理の回数よりも少なくなる場合が多い。従って図７の手法によれば、全体として処理負荷を軽減できる。
【０１２５】
また図８に示すように、近距離オブジェクトに対してライトスキャッタリング処理を行う場合には、頂点処理である第３の処理（ステップＳ２２〜Ｓ３０）の負荷は重く、ピクセル処理である第４の処理（ステップＳ３３）の負荷は軽い。そして近距離オブジェクトに対してライトスキャッタリング処理を行う場合には、図４（Ａ）に示すように頂点処理の回数の方がピクセル処理の回数よりも少なくなる場合が多い。従って図８の手法によれば、全体として処理負荷を軽減できる。
【０１２６】
２．４  テクスチャ座標演算処理
次に、所定処理がテクスチャ座標の演算（導出）処理である場合について説明する。例えばスフィア環境マッピングなどの環境マッピングでは、テクスチャ座標を演算し、演算されたテクスチャ座標を用いてテクスチャをマッピング（サンプリング）することで、オブジェクトに対する周囲の環境の映り込みを表現する。本実施形態の手法はこのようなテクスチャ座標の演算処理に適用できる。
【０１２７】
具体的には図９において、Ｎ（ＮＸ、ＮＹ、ＮＺ）はオブジェクトＯＢの法線ベクトルである。この場合には、まず、この法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）を座標変換し、座標変換後の法線ベクトルＮＶ（ＮＸＶ、ＮＹＶ、ＮＺＶ）を求める。この場合の座標変換としては、仮想カメラＶＣのビューマトリクスなどを用いたビュー座標系への変換などがある。但し本実施形態の座標変換はビュー座標系への変換に限定されるものではない。
【０１２８】
次に座標変換後の法線ベクトルＮＶの座標ＮＸＶ、ＮＹＶに基づいて、テクスチャ座標ＴＸ、ＴＹ（Ｕ、Ｖ座標）を求める。そして求められたテクスチャ座標ＴＸ、ＴＹにより環境テクスチャを読み出して、オブジェクトＯＢにマッピングする。こうすることで、オブジェクトＯＢに周囲の環境が映り込んだリアルな画像が生成される。なお本実施形態のテクスチャ座標演算手法を適用できる環境マッピングは、スフィア環境マッピングに限定されるものではなく、他の手法の環境マッピングであってもよい。また本実施形態のテクスチャ座標演算手法は、環境マッピング以外に適用することも可能である。
【０１２９】
次に図１０、図１１のフローチャートを用いて本実施形態のテクスチャ座標演算処理について説明する。
【０１３０】
図１０は、遠距離オブジェクトＯＢ１に対して行われるテクスチャ座標演算処理（広義には所定の処理）のフローチャートである。
【０１３１】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ４１）。この頂点処理は、図５（Ａ）に示すように負荷の軽い第１の処理となる。具体的には頂点処理では、頂点の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）のデータを出力する処理が行われる（ステップＳ４２）。
【０１３２】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ４３）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップＳ４２で求められた頂点法線ベクトルの補間演算（線形補間）も行われる。
【０１３３】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ４４）。このピクセル処理は、図５（Ａ）に示すように負荷の重い第２の処理となる。
【０１３４】
具体的にはピクセル処理では、ピクセル（フラグメント）の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）を、マトリクスを用いて座標変換する処理が行われる（ステップＳ４５）。即ち例えばビュー座標系への座標変換が行われ、座標変換後のピクセルの法線ベクトルＮＶ（ＮＸＶ、ＮＹＶ、ＮＺＶ）が求められる。そして法線ベクトルＮＶの座標ＮＸＶ、ＮＹＶに基づいて、ピクセルのテクスチャ座標ＴＸ、ＴＹが求められる（ステップＳ４６）。具体的には下式（８）（９）によりＴＸ、ＴＹを求める。
【０１３５】
ＴＸ＝（ＮＸＶ＋１．０）／２          （８）
ＴＹ＝（ＮＹＶ＋１．０）／２          （９）
上式（８）（９）の演算を行うのは、ＴＸ、ＴＹの変域は０．０〜１．０であるのに対して、ＮＸＶ、ＮＹＶの変域は−１．０〜１．０であるからである。
【０１３６】
次に、求められたピクセルのテクスチャ座標に基づいてテクスチャマッピング（テクスチャサンプリング）を行い、ピクセル色を求める（ステップＳ４７）。具体的には下式（１０）により最終的なピクセル色ＣＯＬＯＵＴを求める。
【０１３７】
ＣＯＬＯＵＴ＝ＣＴＥＸ（ＴＸ、ＴＹ）×ＣＯＬ      （１０）
上式（１０）においてＣＴＥＸ（ＴＸ、ＴＹ）は、テクスチャ座標によりテクスチャ記憶部１７８から読み出される色であり、ＣＯＬは、遠距離オブジェクトＯＢ１の元の色（下地の色）である。
【０１３８】
図１１は、近距離オブジェクトＯＢ２に対して行われるテクスチャ座標演算処理のフローチャートである。
【０１３９】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ５１）。この頂点処理は、図５（Ｂ）に示すように負荷の重い第３の処理となる。
【０１４０】
具体的には頂点処理では、頂点の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）を、マトリクスを用いて座標変換する処理が行われる（ステップＳ５２）。即ち例えばビュー座標系への座標変換が行われ、座標変換後の頂点の法線ベクトルＮＶ（ＮＸＶ、ＮＹＶ、ＮＺＶ）が求められる。そして法線ベクトルＮＶの座標ＮＸＶ、ＮＹＶに基づいて、頂点のテクスチャ座標ＴＸ、ＴＹが求められる（ステップＳ５３）。具体的には上式（８）（９）によりＴＸ、ＴＹが求められる。そして頂点処理が終了する。
【０１４１】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ５４）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップＳ５３で求められた頂点テクスチャ座標の補間演算（線形補間）も行われる。
【０１４２】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ５５）。このピクセル処理は、図５（Ｂ）に示すように負荷の軽い第４の処理となる。即ち、ピクセルのテクスチャ座標に基づいてテクスチャマッピング（テクスチャサンプリング）を行い、上記（１０）のようにしてピクセルの色ＣＬＯＵＴを求める（ステップＳ５６）。
【０１４３】
図１０に示すように、遠距離オブジェクトに対してテクスチャ座標演算処理を行う場合には、頂点処理である第１の処理（ステップＳ４２）の負荷は軽く、ピクセル処理である第２の処理（ステップＳ４５〜Ｓ４７）の負荷は重い。そして遠距離オブジェクトに対してテクスチャ座標演算処理を行う場合には、図４（Ｂ）（Ｃ）に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１４４】
また図１１に示すように、近距離オブジェクトに対してテクスチャ座標演算処理を行う場合には、頂点処理である第３の処理（ステップＳ５２、Ｓ５３）の負荷は重く、ピクセル処理である第４の処理（ステップＳ５６）の負荷は軽い。そして近距離オブジェクトに対してテクスチャ座標演算処理を行う場合には、図４（Ａ）に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１４５】
２．５  ライティング処理
次に、所定処理がライティング（光源計算）処理である場合について説明する。現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。例えば光源が平行光である場合の代表的な照明モデルとして、図１２（Ａ）及び下式（１１）（１２）（１３）に示すようなランバードの照明モデルがある。
【０１４６】
Ｉ１＝Ｋａ×Ｉａ＋Ｋｄ×Ｉｄ×（Ｎ１・Ｌ）        （１１）
Ｉ２＝Ｋａ×Ｉａ＋Ｋｄ×Ｉｄ×（Ｎ２・Ｌ）        （１２）
Ｉ３＝Ｋａ×Ｉａ＋Ｋｄ×Ｉｄ×（Ｎ３・Ｌ）        （１３）
ここで、Ｉ１、Ｉ２、Ｉ３は頂点ＶＥ１、ＶＥ２、ＶＥ３での光強度であり、Ｋａは環境光に対する反射係数であり、Ｉａは環境光の光強度である。またＫｄは光源ＬＳからの光に対する拡散反射係数であり、Ｉｄは光源ＬＳの光強度である。またＮ１、Ｎ２、Ｎ３は頂点ＶＥ１、ＶＥ２、ＶＥ３の法線ベクトルであり、Ｌは光源ＬＳの光の方向ベクトルである。
【０１４７】
また図１２（Ｂ）では、頂点ＶＥ２の法線ベクトルＮ２と頂点ＶＥ３の法線ベクトルＮ３の補間処理（線形補間）が行われて、各ピクセルの法線ベクトルＮＪが求められている。この法線ベクトルの補間処理は図２のラスタライズ処理部１２３により行われる。そして、求められた法線ベクトルＮＪに基づいて下式（１４）のようにして各ピクセルでの光強度がＩＪが求められる。
【０１４８】
ＩＪ＝Ｋａ×Ｉａ＋Ｋｄ×Ｉｄ×（ＮＪ・Ｌ）        （１４）
本実施形態の手法は以上のような照明モデルを用いたライティング処理に適用できる。なお本実施形態の手法が適用できる照明モデルはこのようなランバード照明モデルに限定されず、鏡面反射光を考慮するフォンの照明モデルや、ブリンの照明モデルや、その他の照明モデルであってもよい。
【０１４９】
次に図１３、図１４のフローチャートを用いて本実施形態のライティング処理について説明する。
【０１５０】
図１３は、遠距離オブジェクトＯＢ１に対して行われるライティング処理（広義には所定の処理）のフローチャートである。
【０１５１】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ６１）。この頂点処理は、図５（Ａ）に示すように負荷の軽い第１の処理となる。具体的には頂点処理では、頂点の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）のデータを出力する処理が行われる（ステップＳ６２）。
【０１５２】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ６３）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップＳ６２で求められた頂点法線ベクトルの補間演算（線形補間）も行われる。
【０１５３】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ６４）。このピクセル処理は、図５（Ａ）に示すように負荷の重い第２の処理となる。
【０１５４】
具体的にはピクセル処理では、ピクセル（フラグメント）の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）と、上式（１４）に示すような照明モデルに基づいて、ピクセルの光強度Ｉを求める（ステップＳ６５）。そして求められた光強度Ｉに基づいて、下式（１５）のようにピクセル色ＣＬＯＵＴを求める（ステップＳ６６）。
【０１５５】
ＣＬＯＵＴ＝Ｉ×ＣＯＬ          （１５）
なおＣＯＬは、遠距離オブジェクトＯＢ１の元の色（下地の色）である。
【０１５６】
図１４は、近距離オブジェクトＯＢ２に対して行われるライティング処理のフローチャートである。
【０１５７】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ７１）。この頂点処理は、図５（Ｂ）に示すように負荷の重い第３の処理となる。
【０１５８】
具体的には頂点処理では、頂点の法線ベクトルＮ（ＮＸ、ＮＹ、ＮＺ）と、上式（１１）（１２）（１３）に示すような照明モデルに基づいて、頂点の光強度Ｉを求め、光強度のデータを出力する（ステップＳ７２）。そして頂点処理が終了する。
【０１５９】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ７３）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。またステップＳ７２で求められた光強度の補間演算（線形補間）も行われる。
【０１６０】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ７４）。このピクセル処理は、図５（Ｂ）に示すように負荷の軽い第４の処理となる。即ち、上式（１５）と同様にピクセルの光強度に基づいてピクセル色を求める（ステップＳ７５）。
【０１６１】
図１３に示すように、遠距離オブジェクトに対してライティング処理を行う場合には、頂点処理である第１の処理（ステップＳ６２）の負荷は軽く、ピクセル処理である第２の処理（ステップＳ６５、Ｓ６６）の負荷は重い。そして遠距離オブジェクトに対してライティング処理を行う場合には、図４（Ｂ）（Ｃ）に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１６２】
また図１４に示すように、近距離オブジェクトに対してライティング処理を行う場合には、頂点処理である第３の処理（ステップＳ７２）の負荷は重く、ピクセル処理である第４の処理（ステップＳ７５）の負荷は軽い。そして近距離オブジェクトに対してライティング処理を行う場合には、図４（Ａ）に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１６３】
２．６  色変換処理
次に、所定処理が色の変換処理である場合について説明する。例えばこの種の画像生成システムでは、表示部（モニタ）の非線形特性を補正するために、画像に対してガンマ補正と呼ばれる変換を施すことが望ましい。図１５（Ａ）にこのガンマ補正の変換特性の例を示す。このようなガンマ補正等の色変換処理は、ポストフィルタ処理で実現される場合が多いが、本実施形態では、レンダリング処理の際にガンマ補正等の色変換処理を行う手法を採用している。なお本実施形態の手法が適用される色変換処理は、図１５（Ａ）のようなガンマ補正には限定されず、図１５（Ｂ）（Ｃ）に示すような種々の変換処理に適用できる。例えば図１５（Ｂ）はポスタリゼーション、図１５（Ｃ）はネガポジ反転の変換処理の例である。
【０１６４】
次に図１６、図１７のフローチャートを用いて本実施形態の色変換処理について説明する。
【０１６５】
図１６は、遠距離オブジェクトＯＢ１に対して行われる色変換処理（広義には所定の処理）のフローチャートである。
【０１６６】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ８１）。この頂点処理は、図５（Ａ）に示すように負荷の軽い第１の処理となる。具体的には頂点処理では、頂点位置、頂点色のデータを出力する処理が行われる（ステップＳ８２）。
【０１６７】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ８３）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。
【０１６８】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ８４）。このピクセル処理は、図５（Ａ）に示すように負荷の重い第２の処理となる。
【０１６９】
具体的にはピクセル処理では、色変換処理のための変換テーブル（又は変換関数）を読み出す（ステップＳ８５）。そしてピクセル位置でのピクセル色を、変換テーブル（又は変換関数）を用いて変換し、変換後のピクセル色ＣＬＯＵＴを下式（１６）のように求める（ステップＳ８６）。
【０１７０】
ＣＬＯＵＴ＝ＴＡＢＬＥ（ＣＯＬ）          （１６）
なお、ＣＯＬは変換前の元の色であり、ＴＡＢＬＥ（ＣＯＬ）は、変換テーブルによる変換により得られる色である。
【０１７１】
図１７は、近距離オブジェクトＯＢ２に対して行われる色変換処理のフローチャートである。
【０１７２】
まず頂点処理部１２２による頂点処理が行われる（ステップＳ９１）。この頂点処理は、図５（Ｂ）に示すように負荷の重い第３の処理となる。
【０１７３】
具体的には頂点処理では、色変換処理のための変換テーブル（又は変換関数）を読み出す（ステップＳ９２）。そして頂点位置での頂点色を、変換テーブル（又は変換関数）を用いて変換し、変換後の頂点色ＣＬＯＵＴを上式（１６）のように求める（ステップＳ９３）。そして頂点処理が終了する。
【０１７４】
頂点処理が終了すると、ラスタライズ処理部１２３によるラスタライズ処理が行われる（ステップＳ９４）。このラスタライズ処理では頂点位置、頂点色などの補間演算が行われる。
【０１７５】
ラスタライズ処理が終了すると、ピクセル処理部１２４によるピクセル処理が行われる（ステップＳ９５）。このピクセル処理は、図５（Ｂ）に示すように負荷の軽い第４の処理となる。即ち、頂点色の補間処理により得られたピクセル色を出力する（ステップＳ９６）。
【０１７６】
図１６に示すように、遠距離オブジェクトに対して色変換処理を行う場合には、頂点処理である第１の処理（ステップＳ８２）の負荷は軽く、ピクセル処理である第２の処理（ステップＳ８５、Ｓ８６）の負荷は重い。そして遠距離オブジェクトに対して色変換処理を行う場合には、図４（Ｂ）（Ｃ）に示すように、ピクセル処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１７７】
また図１７に示すように、近距離オブジェクトに対して色変換処理を行う場合には、頂点処理である第３の処理（ステップＳ９２、Ｓ９３）の負荷は重く、ピクセル処理である第４の処理（ステップＳ９６）の負荷は軽い。そして近距離オブジェクトに対して色変換処理を行う場合には、図４（Ａ）に示すように頂点処理の回数の方が少なくなる場合が多いため、全体として処理負荷を軽減できる。
【０１７８】
３．ハードウェア構成
図１８に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１７９】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１８０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１８１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１８２】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１８３】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１８４】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１８５】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（プリミティブ面、所定処理等）と共に記載された用語（ポリゴン、ライトスキャッタリング・テクスチャ座標演算・ライティング・色変換処理等）は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１８６】
また頂点処理部、ピクセル処理部への処理の割り振り手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明の手法が適用される所定処理も、ライトスキャッタリング、テクスチャ座標演算、ライティング、色変換の処理に限定されず、頂点処理部、ピクセル処理部への処理の割り振りを制御することで効率化できる種々の処理に適用できる。
【０１８７】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１８８】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】頂点処理部、ピクセル処理部の構成例。
【図３】頂点処理部、ピクセル処理部への処理の割り振り手法の説明図。
【図４】図４（Ａ）（Ｂ）（Ｃ）は本実施形態の手法による処理の効率化の説明図。
【図５】図５（Ａ）（Ｂ）は遠距離オブジェクト、近距離オブジェクトについてプログラムの記述例。
【図６】図６（Ａ）（Ｂ）はライトスキャッタリング処理の説明図。
【図７】遠距離オブジェクトのライトスキャッタリング処理のフローチャート。
【図８】近距離オブジェクトのライトスキャッタリング処理のフローチャート。
【図９】テクスチャ座標演算処理の説明図。
【図１０】遠距離オブジェクトのテクスチャ座標演算処理のフローチャート。
【図１１】近距離オブジェクトのテクスチャ座標演算処理のフローチャート。
【図１２】図１２（Ａ）（Ｂ）はライティング処理の説明図。
【図１３】遠距離オブジェクトのライティング処理のフローチャート。
【図１４】近距離オブジェクトのライティング処理のフローチャート。
【図１５】図１５（Ａ）（Ｂ）（Ｃ）は色変換処理の説明図。
【図１６】遠距離オブジェクトの色変換処理のフローチャート。
【図１７】近距離オブジェクトの色変換処理のフローチャート。
【図１８】ハードウェア構成例。
【符号の説明】
【０１８９】
１０  座標変換部、１２  ライティング処理部、１４  テクスチャ座標演算部、
２０  テクスチャマッピング部、２２  ピクセル加工処理部
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１２０  描画部、１２２  頂点処理部、
１２３  ラスタライザ処理、１２４  ピクセル処理部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  モデルデータ記憶部、１７８  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2007141078.tif 000010
【図２】
2007141078.tif 000011
【図３】
2007141078.tif 000012
【図４】
2007141078.tif 000013
【図５】
2007141078.tif 000014
【図６】
2007141078.tif 000015
【図７】
2007141078.tif 000016
【図８】
2007141078.tif 000017
【図９】
2007141078.tif 000018
【図１０】
2007141078.tif 000019
【図１１】
2007141078.tif 000020
【図１２】
2007141078.tif 000021
【図１３】
2007141078.tif 000022
【図１４】
2007141078.tif 000023
【図１５】
2007141078.tif 000024
【図１６】
2007141078.tif 000025
【図１７】
2007141078.tif 000026
【図１８】
2007141078.tif 000027