(57)【要約】【課題】  少ない処理負荷でジャギーの見えにくい画像を生成することができるプログラム、情報記憶媒体、モデルデータ構造及び画像生成システムを提供する。【解決手段】  オブジェクト面Ｓ１とオブジェクト面Ｓ２とで構成されるエッジを面取りするためのオブジェクト面Ｓ３を含むようにモデルオブジェクトを定義する。モデルデータでは、オブジェクト面Ｓ１を構成する頂点Ｖ１〜Ｖ４に対して、オブジェクト面Ｓ１に垂直な法線ベクトルＮｖ１〜Ｎｖ４が設定され、かつオブジェクト面Ｓ２を構成する頂点Ｖ５〜Ｖ８に対して、オブジェクト面Ｓ２に垂直な法線ベクトルＮｖ５〜Ｎｖ８が設定されている。そして、オブジェクト面Ｓ１とオブジェクト面Ｓ３との境界上の頂点Ｖ３，Ｖ４に設定される法線ベクトルＮｖ３，Ｎｖ４と、オブジェクト面Ｓ２とオブジェクト面Ｓ３との境界上の頂点Ｖ５，Ｖ６に設定される法線ベクトルＮｖ５，Ｎｖ６とに基づいて、オブジェクト面Ｓ３についてのシェーディング処理を行う。【選択図】      図１０
2006268103.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間における所与の視点から見える画像を生成するためのプログラムであって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、
前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された法線ベクトルに基づいて、前記モデルオブジェクトについてのシェーディング処理を行うシェーディング処理部を含む描画部として、
コンピュータを機能させ、
前記モデルデータでは、前記第１の面を構成する頂点に対して、該第１の面の法線ベクトルが設定され、かつ前記第２の面を構成する頂点に対して、該第２の面の法線ベクトルが設定され、
前記シェーディング処理部が、
前記第１の面と前記第３の面との境界上の頂点に設定される前記第１の面の法線ベクトルと、前記第２の面と前記第３の面との境界上の頂点に設定される前記第２の面の法線ベクトルとに基づいて、前記第３の面についてのシェーディング処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記モデルデータ記憶部が、
多角形ストリップによって分割されたプリミティブによって前記モデルオブジェクトを定義する前記モデルデータを記憶することを特徴とするプログラム。
【請求項３】
請求項１または２において、
前記シェーディング処理部が、
前記第１の面と前記第３の面との境界上の頂点に設定された法線ベクトルに基づき求められる輝度と、前記第２の面と前記第３の面との境界上の頂点に設定された法線ベクトルとに基づき求められる輝度とを補間することによって、前記第３の面の描画ピクセルの輝度を決定するシェーディング処理を行うことを特徴とするプログラム。
【請求項４】
請求項１または２において、
前記シェーディング処理部が、
前記第１の面と前記第３の面との境界上の頂点に設定された法線ベクトルと、前記第２の面と前記第３の面との境界上の頂点に設定された法線ベクトルとに基づく補間処理によって、前記第３の面の描画ピクセルの法線ベクトルを求め、求められた法線ベクトルに基づき該第３の面の描画ピクセルの輝度を決定するシェーディング処理を行うことを特徴とするプログラム。
【請求項５】
オブジェクト空間における所与の視点から見える画像を生成するためのプログラムであって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、
前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された輝度に基づいて、シェーディング処理が施されたモデルオブジェクトを描画する描画部として、
コンピュータを機能させ、
前記第１の面を構成する頂点に対して設定される第１の面の法線ベクトルと、前記第２の面を構成する頂点に対して設定される第２の面の法線ベクトルとに基づく光源計算により予め求められた各頂点の輝度が前記モデルデータに設定されており、
前記描画部が、
前記第１の面と前記第３の面との境界上の頂点に設定された輝度と、前記第２の面と前記第３の面との境界上の頂点に設定された輝度とを補間することによって、前記第３の面の描画ピクセルの輝度を決定することを特徴とするプログラム。
【請求項６】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜５のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体
【請求項７】
コンピュータがモデルオブジェクトに対して行うシェーディング処理に用いられるモデルデータ構造であって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、
前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルが設定され、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルが設定された法線ベクトルデータと、
を含み、
前記位置座標データ及び前記法線ベクトルデータは、
前記コンピュータが、前記モデルオブジェクトを構成する頂点の輝度を求める光源計算と、該光源計算により求められた頂点間の輝度を補間して描画ピクセルの輝度を求める補間処理とを含む前記モデルオブジェクトのシェーディング処理に利用されることを特徴とするモデルデータ構造。
【請求項８】
コンピュータがモデルオブジェクトに対して行うシェーディング処理に用いられるモデルデータ構造であって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、
前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルが設定され、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルが設定された法線ベクトルデータと、
を含み、
前記位置座標データ及び前記法線ベクトルデータは、
前記コンピュータが、前記モデルオブジェクトを構成する頂点間の法線ベクトルを補間して描画ピクセルの法線ベクトルを求める補間処理と、前記補間処理により求められた前記描画ピクセルの法線ベクトルに基づいて該描画ピクセルの輝度を求める光源計算とを含む前記モデルオブジェクトのシェーディング処理に利用されることを特徴とするモデルデータ構造。
【請求項９】
コンピュータがモデルオブジェクトを描画する処理に用いられるモデルデータ構造であって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、
前記モデルオブジェクトを構成する頂点の輝度を設定した輝度データと、
を含み、
前記輝度データは、
前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルを設定し、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルを設定した場合に、該各頂点に設定される法線ベクトルに基づく光源計算によって予め求められており、
前記位置座標データ及び前記輝度データは、
前記コンピュータが、前記モデルオブジェクトを構成する頂点間の輝度を補間して描画ピクセルの輝度を求める補間処理を含む前記モデルオブジェクトの描画処理に利用されることを特徴とするモデルデータ構造。
【請求項１０】
オブジェクト空間における所与の視点から見える画像を生成するための画像生成システムであって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、
前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された法線ベクトルに基づいて、前記モデルオブジェクトについてのシェーディング処理を行うシェーディング処理部を含む描画部と、
を含み、
前記モデルデータでは、前記第１の面を構成する頂点に対して、該第１の面の法線ベクトルが設定され、かつ前記第２の面を構成する頂点に対して、該第２の面の法線ベクトルが設定され、
前記シェーディング処理部が、
前記第１の面と前記第３の面との境界上の頂点に設定される前記第１の面の法線ベクトルと、前記第２の面と前記第３の面との境界上の頂点に設定される前記第２の面の法線ベクトルとに基づいて、前記第３の面についてのシェーディング処理を行うことを特徴とする画像生成システム。
【請求項１１】
オブジェクト空間における所与の視点から見える画像を生成するための画像生成システムであって、
第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、
前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された輝度情報に基づいて、シェーディングされたモデルオブジェクトを描画する描画部と、
を含み、
前記第１の面を構成する頂点に対して設定される第１の面の法線ベクトルと、前記第２の面を構成する頂点に対して設定される第２の面の法線ベクトルとに基づく光源計算により予め求められた各頂点の輝度情報が前記モデルデータに設定されており、
前記描画部が、
前記第１の面と前記第３の面との境界上の頂点に設定された輝度情報と、前記第２の面と前記第３の面との境界上の頂点に設定された輝度情報とを補間することによって、前記モデルオブジェクトの前記第３の面の描画ピクセルの輝度を決定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、モデルデータ構造及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実感を体験できるものとして人気が高い。格闘ゲーム（対戦アクションゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（コントローラ、レバー、ボタン等）を用いてプレーヤキャラクタ（プレーヤオブジェクト）を操作して、コンピュータや相手プレーヤが操作する敵キャラクタ（敵オブジェクト）と格闘対戦することでゲームを楽しむ。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感を向上するために、高品質な画像を生成することが望まれている。ところが、何ら工夫を行わずにレンダリングを行うと、画像に表されたオブジェクト面（例えばポリゴン、プリミティブ）の縁にジャギーが発生してしまうという問題がある。特に、角柱や階段などの面間に鋭い角（ハードエッジ）を有するモデルでは、各面をくっきりと色分けして表現するフラットシェーディングが行われるが、フラットシェーディングされたモデルは、各面の境界における色差のために、ジャギーが非常に目立ってしまい、高品質な画像を生成することが難しい。
【０００４】
この場合、ジャギーを除去する手法として、アンチエイリアス処理やデフリッカ処理などを行う手法もあるが、これらの手法は、専用のハードウェアを必要としたり、処理負荷が大きくなるなどの問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記事情を鑑みてなされたものであり、その目的は、少ない処理負荷でジャギーの見えにくい画像を生成することができるプログラム、情報記憶媒体、モデルデータ構造及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、オブジェクト空間における所与の視点から見える画像を生成するための画像生成システムであって、第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された法線ベクトルに基づいて、前記モデルオブジェクトについてのシェーディング処理を行うシェーディング処理部を含む描画部と、を含み、前記モデルデータでは、前記第１の面を構成する頂点に対して、該第１の面の法線ベクトルが設定され、かつ前記第２の面を構成する頂点に対して、該第２の面の法線ベクトルが設定され、前記シェーディング処理部が、前記第１の面と前記第３の面との境界上の頂点に設定される前記第１の面の法線ベクトルと、前記第２の面と前記第３の面との境界上の頂点に設定される前記第２の面の法線ベクトルとに基づいて、前記第３の面についてのシェーディング処理を行う画像生成システムに関係する。また、本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
コンピュータとは、プロセッサ（処理部：ＣＰＵあるいはＧＰＵなど）、メモリ（記憶部）、入力装置、及び出力装置を基本的な構成要素とする物理的装置をいう。以下においても同様である。
【０００８】
本発明によれば、第１の面を構成する頂点については、第１の面に垂直なベクトルが法線ベクトルとして設定されており、第２の面を構成する頂点については、第２の面に垂直なベクトルが法線ベクトルが設定されているため、これらの頂点法線ベクトルに基づくシェーディング処理では、フラットシェーディングと同様に面ごとにくっきりとした色が設定される。そして、第１の面と第２の面とのエッジを面取りするための第３の面については、第１の面との境界上の頂点に設定された法線ベクトルと第２の面との境界上の頂点に設定された法線ベクトルを用いてシェーディング処理が行われるため、第１の面の描画ピクセルの色と第２の面の描画ピクセルの色とを補間するように描画ピクセルの色が決定される。従って、第１の面と第２の面との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくい画像を生成することができる。
【０００９】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記モデルデータ記憶部が、多角形ストリップによって分割されたプリミティブによって前記モデルオブジェクトを定義する前記モデルデータを記憶するようにしてもよい。このようにすれば、頂点演算数をエッジの面取りをしていないモデルオブジェクトに対してフラットシェーディングを行う場合と同じあるいはフラットシェーディングを行う場合よりも少なくすることができる。すなわち、第３の面を設けておくことによりモデルオブジェクトの構成頂点数が増加しても演算負荷を従来の手法と同程度あるいは従来の手法以下に抑えることができる。多角形ストリップとしては、例えば、ポリゴンから３つの頂点で構成されるプリミティブを、頂点を共有するように生成するトライアングルストリップがある。なお、ポリゴンを四角形のプリミティブ（クワッドメッシュ）に分割するようにしてもよい。
【００１０】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング処理部が、前記第１の面と前記第３の面との境界上の頂点に設定された法線ベクトルに基づき求められる輝度と、前記第２の面と前記第３の面との境界上の頂点に設定された法線ベクトルとに基づき求められる輝度とを補間することによって、前記第３の面の描画ピクセルの輝度を決定するシェーディング処理を行うようにしてもよい。このようにすれば、第３の面に対してグローシェーディングが施された画像を生成することができ、第１の面と第２の面の境界付近における色差を低減することができる。
【００１１】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記シェーディング処理部が、前記第１の面と前記第３の面との境界上の頂点に設定された法線ベクトルと、前記第２の面と前記第３の面との境界上の頂点に設定された法線ベクトルとに基づく補間処理によって、前記第３の面の描画ピクセルの法線ベクトルを求め、求められた法線ベクトルに基づき該第３の面の描画ピクセルの輝度を決定するシェーディング処理を行うようにしてもよい。このようにすれば、第３の面に対してフォンシェーディングが施された画像を生成することができ、第１の面と第２の面の境界付近における色差を低減することができる。
【００１２】
また本発明は、オブジェクト空間における所与の視点から見える画像を生成するため画像生成システムであって、第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを定義するモデルデータを記憶するモデルデータ記憶部と、前記モデルデータの前記モデルオブジェクトを構成する各頂点に設定された輝度に基づいて、シェーディング処理が施されたモデルオブジェクトを描画する描画部と、を含み、前記第１の面を構成する頂点に対して設定される第１の面の法線ベクトルと、前記第２の面を構成する頂点に対して設定される第２の面の法線ベクトルとに基づく光源計算により予め求められた各頂点の輝度が前記モデルデータに設定されており、前記描画部が、前記第１の面と前記第３の面との境界上の頂点に設定された輝度と、前記第２の面と前記第３の面との境界上の頂点に設定された輝度とを補間することによって、前記第３の面の描画ピクセルの輝度を決定する画像生成システムに関係する。また、本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１３】
本発明によれば、第１の面と第２の面との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくいシェーディング処理が施された画像を生成することができる。
【００１４】
また本発明は、コンピュータがモデルオブジェクトに対して行うシェーディング処理に用いられるモデルデータ構造であって、第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルが設定され、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルが設定された法線ベクトルデータと、を含み、前記位置座標データ及び前記法線ベクトルデータは、前記コンピュータが、前記モデルオブジェクトを構成する頂点の輝度を求める光源計算と、該光源計算により求められた頂点間の輝度を補間して描画ピクセルの輝度を求める補間処理とを含む前記モデルオブジェクトのシェーディング処理に利用されるモデルデータ構造に関係する。
【００１５】
本発明のモデルデータ構造を用いてシェーディング処理を行えば、第１の面と第２の面との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくい画像を生成することができる。
【００１６】
また本発明は、コンピュータがモデルオブジェクトに対して行うシェーディング処理に用いられるモデルデータ構造であって、第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルが設定され、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルが設定された法線ベクトルデータと、を含み、前記位置座標データ及び前記法線ベクトルデータは、前記コンピュータが、前記モデルオブジェクトを構成する頂点間の法線ベクトルを補間して描画ピクセルの法線ベクトルを求める補間処理と、前記補間処理により求められた前記描画ピクセルの法線ベクトルに基づいて該描画ピクセルの輝度を求める光源計算とを含む前記モデルオブジェクトのシェーディング処理に利用されるモデルデータ構造に関係する。
【００１７】
本発明のモデルデータ構造を用いてシェーディング処理を行えば、第１の面と第２の面との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくい画像を生成することができる。
【００１８】
また本発明は、コンピュータがモデルオブジェクトを描画する処理に用いられるモデルデータ構造であって、第１の面と第２の面とで構成されるエッジを面取りするための第３の面を含むモデルオブジェクトを構成する頂点の位置座標データと、前記モデルオブジェクトを構成する頂点の輝度を設定した輝度データと、を含み、前記輝度データは、前記第１の面と前記第３の面との境界上の頂点に対して、前記第１の面の法線ベクトルを設定し、かつ前記第２の面と前記第３の面との境界上の頂点に対して、前記第２の面の法線ベクトルを設定した場合に、該各頂点に設定される法線ベクトルに基づく光源計算によって予め求められており、前記位置座標データ及び前記輝度データは、前記コンピュータが、前記モデルオブジェクトを構成する頂点間の輝度を補間して描画ピクセルの輝度を求める補間処理を含む前記モデルオブジェクトの描画処理に利用されるモデルデータ構造に関係する。
【００１９】
本発明のモデルデータ構造を用いて描画処理を行えば、第１の面と第２の面との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくい画像を生成することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２１】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２２】
操作部１６０は、プレーヤがプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２８】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２９】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種モデルオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でモデルオブジェクトを配置する。モデルオブジェクトを定義するモデルデータは、モデルデータ記憶部１７６に記憶されている。
【００３０】
移動・動作処理部１１２は、モデルオブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、モデルオブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、モデルオブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、モデルオブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３１】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３２】
例えば仮想カメラによりモデルオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３３】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（モデルデータ）に基づいて、透視変換後（ジオメトリ処理後）のモデルオブジェクト（１又は複数のプリミティブ）を描画バッファ１７４（フレームバッファや中間バッファ（ワークバッファ）などのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように描画処理を行う。
【００３４】
描画部１２０は、ジオメトリ処理部１２２、シェーディング処理部１２４、αブレンディング部１２６、陰面消去部１２８を含む。
【００３５】
ジオメトリ処理部１２２は、モデルオブジェクトに対してジオメトリ処理を行う。具体的には、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理を行う。そして、ジオメトリ処理後（透視変換後）のモデルデータ（モデルオブジェクトの頂点の位置座標、テクスチャ座標、輝度データ（色データ；ディフューズ、スペキュラー）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００３６】
シェーディング処理部１２４は、モデルオブジェクトに対して陰影付けをするシェーディング処理を行う。具体的には、ジオメトリ処理部１２２で行われた光源計算の結果（陰影情報）に基づき、モデルオブジェクトの描画ピクセルの輝度を調整する。必要に応じて、ジオメトリ処理部１２２で光源計算を行わずに、シェーディング処理部１２４で光源計算を行わせてもよい。輝度は、頂点に設定される輝度を線形補間したり、頂点に設定された法線ベクトルを補間して、その補間された法線ベクトルに基づき光源計算を行って求めることができる。このようなシェーディング処理として、例えば、グローシェーディング（Gourand Shading）やフォンシェーディング（Phong Shading）などのスムーズシェーディングをオブジェクトに対して行うことができる。
【００３７】
例えば、グローシェーディングを行う場合には、頂点の輝度を所与の照明モデル（例えば、フォンの照明モデル）に基づく光源計算により求め、ラスタライズ（走査変換）されたプリミティブ（あるいはポリゴン）の描画ピクセル（画素）の輝度をその周囲の頂点の輝度から線形補間することにより求める。
【００３８】
また例えば、フォンシェーディングを行う場合には、ラスタライズ（走査変換）されたプリミティブ（あるいはポリゴン）の描画ピクセルの法線ベクトルを周囲の頂点の法線ベクトルから線形補間することにより求め、求められた法線ベクトルに基づき、その描画ピクセルの輝度を所与の照明モデル（例えば、フォンの照明モデル）に基づく光源計算により求める。
【００３９】
ここで光源計算を、例えばフォンの照明モデルに基づいて行う場合には、図２に示すような表示モデル上の任意の点Ｐおける視線に対する反射光の輝度Ｉｐを求めることになる。図２において、Ｌは光源、Ｉｉは光源ベクトル、Ｉａは環境光ベクトル、Ｎｖは点Ｐの法線ベクトル、ＶＣは仮想カメラ（視点）であるとすると、輝度Ｉｐは、下式（Ａ１）に従って求められる。なおこのような輝度計算は、各色成分（ＲＧＢ成分）について行われる。
【００４０】
Ｉｐ＝（ｋｄ・ｃｏｓθ＋ｋｓ・ｃｏｓｎγ）Ｉｉ＋ｋａ・Ｉａ        （Ａ１）
（ｋｄ：拡散反射率、ｋｓ：鏡面反射率、ｎ：ハイライト特性係数、ｋａ：環境反射率）
αブレンディング部１２６は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００４１】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。
【００４２】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。
【００４３】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７４に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７４に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４４】
隠面消去部１２８は、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７８（奥行きバッファ）を用いて、Ｚバッファ法（奥行き比較法、Ｚテスト）により隠面消去処理を行う。すなわちモデルオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７８に格納されるＺ値を参照する。そして参照されたＺバッファ１７８のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７８のＺ値を新たなＺ値に更新する。
【００４５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４７】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお本実施形態の手法は、以下において説明するモデルのみならず、種々のモデルの表現に適用できる。
【００４８】
本実施形態では、ハードエッジ（鋭い角）で表現されることを所望する複数のオブジェクト面からなる表示モデルについて、各オブジェクト面で形成されるエッジを面取りするためのオブジェクト面を含むようにモデルデータを構築してモデルオブジェクトを定義し、このモデルオブジェクトに対していわゆるスムーズシェーディングにより陰影付けを行う手法を採用する。
【００４９】
例えば、図３（Ａ）に示すようなオブジェクト面Ｓ１（第１の面）とオブジェクト面Ｓ２（第２の面）とにより形成されるエッジがハードエッジで表現されることが望まれる場合、図３（Ｂ）に示すように、オブジェクト面Ｓ１とオブジェクト面Ｓ２とのエッジを面取りしたオブジェクト面Ｓ３（第３の面）を含むようにモデルデータを構築する。また例えば、図４（Ａ）に示すような、オブジェクト面Ｓ１〜Ｓ６（第１の面あるいは第２の面）による階段状の表示モデルについては、凹部と凸部が混在するが、このような場合においても同様であって、図４（Ｂ）に示すように、各オブジェクト面の間に形成されるエッジを面取りするオブジェクト面Ｓ７〜Ｓ１１（第３の面）を含むようにモデルデータを構築する。
【００５０】
ところで従来、ハードエッジを表現しようとする場合には、フラットシェーディングが用いられてきた。フラットシェーディングでは、図５（Ａ）に示すオブジェクト面Ｓ１，Ｓ２の向きを表す法線ベクトルＮｓ１，Ｎｓ２に従った光源計算によりオブジェクト面ごとの色を決めていくシェーディング手法である。フラットシェーディングを使うシーンというのは、オブジェクト面Ｓ１，Ｓ２で形成されるエッジがある程度明確になるように表現したい場合などである。しかしながら、何ら工夫を施さずにフラットシェーディングを用いると、生成された画像にはジャギーが見えるようになる。これは、フラットシェーディングによりエッジを形成するオブジェクト面の間に大きな色差が生じてしまい、その色境界の線がピクセルの配列に沿っていない場合に、ジャギーとなって表示（描画）されてしまうからである。
【００５１】
このため、ジャギー対策としては、このようなエッジを形成するオブジェクト面Ｓ１，Ｓ２の境界におけるフラットシェーディングで発生した色差を減らせばよいと考えられる。色差をなだらかにする方法としては、シェーディング方法を変更して、グローシェーディングやフォンシェーディングなどのスムーズシェーディングを用いることが考えられる。しかしながら、スムーズシェーディングを用いる場合、図５（Ｂ）に示すように、オブジェクト面Ｓ１，Ｓ２（第１の面，第２の面）を構成する頂点Ｖａ〜Ｖｃに設定される法線ベクトルＮｖａ〜Ｎｖｃは、周囲の頂点の法線ベクトルを補間して求められる。すると、図５（Ｂ）に示す例では、ピクセルの描画色がオブジェクト面Ｓ１，Ｓ２の全体にわたってなだらかに変化するように補間される陰影付けが行われる。その結果、ハードエッジで表現したいにもかかわらず、モデルオブジェクトが全体として丸みを帯びているように表現されてしまう。
【００５２】
このような現象は、エッジを面取りするようにモデルオブジェクトを定義した場合においても、同様に起こりうる。例えば、図６（Ａ）に示すように、オブジェクト面Ｓ１，Ｓ２（第１の面，第２の面）によって形成されるエッジを面取りするためのオブジェクト面Ｓ３（第３の面）を含むようにモデルオブジェクトを定義した場合には、シェーディング時にオブジェクト面Ｓ３の法線も考慮する必要がでてくる。この場合に、何ら工夫せずにスムーズシェーディングを行ってしまうと、オブジェクト面Ｓ１とオブジェクト面Ｓ３の境界上の頂点Ｖｂ１には、オブジェクト面Ｓ１の面法線Ｎｓ１とオブジェクト面Ｓ３の面法線Ｎｓ３を補間した向きの法線ベクトルＮｖｂ１が設定され、またオブジェクト面Ｓ２とオブジェクト面Ｓ３の境界上の頂点Ｖｂ２には、オブジェクト面Ｓ２の面法線Ｎｓ２とオブジェクト面Ｓ３の面法線Ｎｓ３を補間した向きの法線ベクトルＮｖｂ２が設定されることによりオブジェクト面Ｓ１とオブジェクト面Ｓ２にまでスムーズシェーディングの効果が波及してしまい、モデルオブジェクトが全体として丸みを帯びているように表現されてしまう。
【００５３】
そこで、本実施形態では、図６（Ｃ）に示すように、オブジェクト面Ｓ１を構成する頂点Ｖ１，Ｖ２については、オブジェクト面Ｓ１の面法線Ｎｓ１と同じ向きのベクトルを法線ベクトルＮｖａ，Ｎｖｂ１として設定し、オブジェクト面Ｓ２を構成する頂点Ｖｂ２，Ｖｃについては、オブジェクト面Ｓ２の面法線Ｎｓ２と同じ向きのベクトルを法線ベクトルＮｖｂ２，Ｎｖｃとして設定したモデルデータによってモデルオブジェクトを定義する。このようにすると、オブジェクト面Ｓ３について考えると、オブジェクト面Ｓ１との境界上の頂点Ｖｂ１（オブジェクト面Ｓ１とオブジェクト面Ｓ３とが共有する頂点）にオブジェクト面Ｓ１の面法線Ｎｓ１と同じ向きの法線ベクトルＮｖｂ１が設定され、オブジェクト面Ｓ２との境界上の頂点Ｖｂ２（オブジェクト面Ｓ２とオブジェクト面Ｓ３とが共有する頂点）については、オブジェクト面Ｓ２の面法線Ｎｓ２と同じ向きの法線ベクトルＮｖｂ２が設定されることになる。このようにモデルデータを構築して、グローシェーディングやフォンシェーディングなどのスムーズシェーディングを用いて陰影付けを行うと、オブジェクト面Ｓ１，Ｓ２については、フラットシェーディングを行った場合のようにくっきりとした面で表現されるようになり、オブジェクト面Ｓ３については、オブジェクト面Ｓ１の描画ピクセルの色とオブジェクト面Ｓ２の描画ピクセルの色を補間するように色差が少なく色がなだらかに変化した面で表現される。
【００５４】
例えば、本実施形態の手法に基づいて定義されたモデルオブジェクトに対してグローシェーディングを行う場合には、まず、各頂点に設定された法線ベクトルに基づき光源計算を行い、各頂点の輝度（色成分毎（ＲＧＢ成分）の輝度、いわゆる頂点色）を求める。そして、ラスタサイズ（走査変換）により特定された各オブジェクト面Ｓ１〜Ｓ３の描画ピクセルの輝度（色成分毎の輝度、すなわちピクセルの描画色）を線形補間により求める。例えば、図７（Ａ）に示すように、頂点Ｖｗ〜Ｖｚで構成されるオブジェクト面Ｓ３（第３の面）に対応する描画ピクセルＰ３の輝度Ｐ３は、オブジェクト面Ｓ１（第１の面）とオブジェクト面Ｓ３との境界上の描画ピクセルＰ１の輝度Ｉ１と、オブジェクト面Ｓ２（第２の面）とオブジェクト面Ｓ３との境界上の描画ピクセルＰ２の輝度Ｉ２とを線形補間したものとなる。なお、描画ピクセルＰ１の輝度Ｉ１は、頂点Ｖｗの輝度Ｉｗと頂点Ｖｘの輝度Ｉｘとを線形補間したものとなるが、本実施形態の手法では、頂点Ｖｗと頂点Ｖｘには、オブジェクト面Ｓ１の面法線と同じ向きのベクトルが法線ベクトルとして設定されているため、Ｉ１＝Ｉｗ＝Ｉｘの関係が成立する。また描画ピクセルＰ２の輝度Ｉ２は、頂点Ｖｙの輝度Ｉｙと頂点Ｖｚの輝度Ｉｚとを線形補間したものとなるが、本実施形態の手法では、頂点Ｖｙと頂点Ｖｚには、オブジェクト面Ｓ２の面法線と同じ向きのベクトルが法線ベクトルとして設定されているため、Ｉ２＝Ｉｙ＝Ｉｚの関係が成立する。また上記の描画ピクセルＰ３の輝度Ｉ３を求める線形補間は、実際には、オブジェクト面Ｓ３をプリミティブに分割した状態で、分割されたプリミティブと走査線との交点に存在する描画ピクセルの輝度を線形補間することによって行われる。
【００５５】
また例えば、本実施形態の手法に基づいて定義されたモデルオブジェクトに対してフォンシェーディングを行う場合には、まず、ラスタサイズ（走査変換）により特定された各オブジェクト面Ｓ１〜Ｓ３の描画ピクセルの法線ベクトルを線形補間して求める。例えば、図７（Ｂ）に示すように、頂点Ｖｗ〜Ｖｚで構成されるポリゴンＳ３（第３の面）に対応する描画ピクセルＰ３の法線ベクトルＮｖ３は、オブジェクト面Ｓ１（第１の面）とオブジェクト面Ｓ３の境界上の描画ピクセルＰ１の法線ベクトルＮｖ１と、オブジェクト面Ｓ２（第２の面）とオブジェクト面Ｓ３との境界上の描画ピクセルＰ２の法線ベクトルＮｖ２とを線形補間したものとなる。なお、描画ピクセルＰ１の法線ベクトルＮｖ１は、頂点Ｖｗの法線ベクトルＮｖｗと頂点Ｖｘの法線ベクトルＮｖｘとを線形補間したものとなるが、本実施形態の手法では、頂点Ｖｗと頂点Ｖｘには、オブジェクト面Ｓ１の面法線と同じ向きのベクトルが法線ベクトルとして設定されているため、実質的にＮｖ１＝Ｎｖｗ＝Ｎｖｘの関係が成立する。また描画ピクセルＰ２の法線ベクトルＮｖ２は、頂点Ｖｙの法線ベクトルＮｖｙと頂点Ｖｚの法線ベクトルＮｖｚとを線形補間したものとなるが、本実施形態の手法では、頂点Ｖｙと頂点Ｖｚには、オブジェクト面Ｓ２の面法線と同じ向きのベクトルが法線ベクトルとして設定されているため、実質的にＮｖ２＝Ｎｖｙ＝Ｎｖｚの関係が成立する。また上記の描画ピクセルＰ３の法線ベクトルＮｖ３を求める線形補間は、実際には、オブジェクト面Ｓ３をプリミティブに分割した状態で、分割されたプリミティブと走査線との交点に存在する描画ピクセルの法線ベクトルを線形補間することによって行われる。
【００５６】
以上に述べた本実施形態の手法によれば、オブジェクト面Ｓ１およびオブジェクト面Ｓ２については、スムーズシェーディングを行っても、フラットシェーディングを行った場合と同様に面ごとにくっきりと区別された色で描画される。そして、オブジェクト面Ｓ１とオブジェクト面Ｓ２とで形成されるエッジを面取りするオブジェクト面Ｓ３については、オブジェクト面Ｓ１との境界上の頂点Ｖｗ，Ｖｘに設定された法線ベクトルと、オブジェクト面Ｓ２との境界上の頂点Ｖｙ，Ｖｚに設定された法線ベクトルとを用いてシェーディング処理が行われるため、オブジェクト面Ｓ１の描画ピクセルの色とオブジェクト面Ｓ２の描画ピクセルの色とを補間するようにオブジェクト面Ｓ３の描画ピクセルの色が決定される。従って、オブジェクト面Ｓ１とオブジェクト面Ｓ２との境界における色差をなだらかにした画像を生成することができ、ハードエッジで表現されるモデルオブジェクトについてジャギーが見えにくい画像を生成することができる。
【００５７】
ところで、以上に述べたような手法でモデルオブジェクトを定義すると、モデルオブジェクトの構成頂点数が面取り用のオブジェクト面の分だけ増加することになる。しかしながら、モデルデータ構造とオブジェクト面をプリミティブに分割する方法を工夫することで、モデルオブジェクトについての演算頂点数を増やすことなくシェーディング処理を行わせることができる。
【００５８】
例えば、モデルオブジェクトを構成するオブジェクト面（ポリゴン）を演算処理の単位であるプリミティブ（プリミティブ面）に分割する方法としては、図８に示すように、独立した頂点のプリミティブに分割するトライアングルリストと、頂点を共有したプリミティブに分割するトライアングルストリップという方法がある。フラットシェーディングでは、プリミティブ毎に面の向きに従った法線ベクトルが必要であるため、オブジェクト面内で頂点の設定情報を共有することができない。このため、フラットシェーディングでは、トライアングルリストによりオブジェクト面をプリミティブに分割する必要がある。一方、本実施形態の手法のようにスムーズシェーディングを用いる場合には、補間処理を行うために、頂点の設定情報を共有することができるため、トライアングルストリップのような多角形ストリップによって、オブジェクト面がプリミティブ面に分割されるようにすることができる。このトライアングルストリップなどの多角形ストリップでは、頂点を共有することによりトライアングルリストによりプリミティブを生成する場合に比べて、演算頂点数を減らすことができる。具体的には、図９（Ａ）に示すような表示モデルの場合、図９（Ｂ）に示すように、トライアングルストリップでプリミティブに分割すると、演算頂点数は、８頂点（Ｖ１〜Ｖ８）であるが、図９（Ｃ）に示すように、トライアングルリストでプリミティブに分割すると、演算頂点数は、１２頂点（Ｖ１〜Ｖ１２）となってしまう。このように、エッジの面取り用のオブジェクト面を設けておくことによりモデルオブジェクトの構成頂点数が増加しても、演算負荷を従来の手法と同程度あるいは従来の手法以下に抑えることができる。
【００５９】
以上に述べたモデルオブジェクトの構築手法とシェーディング手法に適したモデルデータ構造を図１０に示す。このモデルデータ構造では、オブジェクト面Ｓ１〜Ｓ３（第１〜第３の面）が、トライアングルストリップによりプリミティブに分割されるように頂点の順列が設定されている。なおトライアングルリストによってオブジェクト面Ｓ１〜Ｓ３がプリミティブに分割されるように設定しておいてもよい。すなわち、頂点Ｖ１〜Ｖ３によりプリミティブＰ１が生成され、頂点Ｖ２〜Ｖ４によりプリミティブＰ２が生成され、・・・というように頂点の順列が設定されている。またこのモデルデータ構造は、頂点Ｖ１〜Ｖ８の頂点データとして、モデル毎に設定された代表点を原点とするモデル座標系における位置座標データ（Ｘ１，Ｙ１，Ｚ１）〜（Ｘ８，Ｙ８，Ｚ８）と、法線ベクトルデータＮｖ１〜Ｎｖ８とを含む。位置座標データは、オブジェクト空間におけるモデルオブジェクトの配置設定情報に基づいて、モデル座標系からワールド座標系へ座標変換され、光源計算などに用いられる。また法線ベクトルデータは、上記手法に従って、頂点Ｖ１〜Ｖ４については、オブジェクト面Ｓ１の面法線と同じ向きのベクトルが法線ベクトルＮｖ１〜Ｎｖ４として設定されており、頂点Ｖ５〜Ｖ８については、オブジェクト面Ｓ２の面法線の向きと同じ向きのベクトルが法線ベクトルＮｖ５〜Ｎｖ８として設定されている。法線ベクトルデータは、グローシェーディングにおける頂点の輝度を求める光源計算や、フォンシェーディングにおける描画ピクセルの法線ベクトルを求める補間計算に用いられる。なお図１０に示すモデルデータ構造には、モデルオブジェクトの各頂点に基本色（ディフューズ）を設定する頂点色データが含まれていてもよい。
【００６０】
また以上では、リアルタイムに光源計算を行うシェーディング手法を説明してきたが、予め光源計算を行って求めた色情報（輝度）をモデルデータ構造中に設定しておくようにしてもよい。その場合のモデルデータ構造を図１１に示す。このモデルデータ構造は、法線ベクトルデータの代わりに、頂点Ｖ１〜Ｖ８についての頂点色データＣ１〜Ｃ８（色成分毎の輝度データ）を含む。頂点色データは、例えば、ディフューズやスペキュラーなどの色成分データ（ＲＧＢ成分データあるいはＲＧＢＡ成分データ（Ａはα値））で設定することができる。このモデルデータ構造を用いた場合には、頂点色データに基づいて、描画ピクセルの色情報（色成分毎の輝度）が線形補間により求められてオブジェクト面Ｓ１〜Ｓ３（第１〜第３の面）にシェーディングが施された画像が生成される。なお図１０に示すモデルデータ構造には、モデルオブジェクトの各頂点に法線ベクトルを設定する法線ベクトルデータが含まれていてもよい。
【００６１】
なおモデルデータ構造は、図１０および図１１に示したデータ以外のデータを含むように構築してもよい。例えば、頂点毎のテクスチャ座標やα値（Ａ値）についてのデータを含んでいてもよい。
【００６２】
次に、本実施形態の手法を用いて描画された画像を従来の手法を用いて描画された画像と比較しながら示す。
【００６３】
図１２（Ａ）は、本実施形態の手法で構築されたモデルデータ構造を用いてグローシェーディングを施した角柱モデルの生成画像である。図１２（Ｂ）は、面取りをしていない角柱モデルに対してフラットシェーディングを施した場合の生成画像である。また、図１３（Ａ）及び図１２（Ｂ）に図１２（Ａ）及び図１２（Ｂ）に示す画像の拡大画像を示す。これらの画像によれば、本実施形態の手法を用いた場合には、オブジェクト面が明確に色分けされてハードエッジが表現されており、かつジャギーが軽減されていることが分かる。
【００６４】
また本実施形態の手法は、曲面を持つモデルの縁においてハードエッジが存在する場合にも適用でき、アーチ形のモデルに対して本実施形態の手法を適用した生成画像の例を図１４（Ａ）及び図１５（Ａ）に示す。また図１４（Ｂ）及び図１５（Ｂ）に面取りをしないでフラットシェーディングを施した場合の生成画像の例を示す。図１５（Ａ）及び図１５（Ｂ）は、図１４（Ａ）及び図１４（Ｂ）に対応する拡大画像である。これらの画像によっても、本実施形態の手法を用いた場合には、オブジェクト面が明確に色分けされてハードエッジが表現されており、かつジャギーが軽減されていることが分かる。
【００６５】
３．本実施形態の処理
以下、本実施形態の詳細な処理例について図１６のフローチャートを用いて説明する。
【００６６】
まず、モデルデータ記憶部からモデルデータを読み込む（ステップＳ１０）。次にプレーヤの操作部の操作に応じたゲーム演算を行う（ステップＳ１１）。例えば、モデルオブジェクトの配置、オブジェクトの移動・動作演算、仮想カメラの制御などを行う。次に、ゲーム演算の結果得られた描画データを描画部へ転送して（ステップＳ１２）、描画データに基づいて、モデルオブジェクトに対してグローシェーディングやフォンシェーディングなどのスムーズシェーディングを行って、シェーディング後のモデルオブジェクトを描画バッファに描画する（ステップＳ１３）。例えば、光源計算や法線ベクトルあるいは輝度の補間処理をして描画ピクセルの色を決定し、シェーディングが施された画像を生成する。
【００６７】
４．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００６８】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００６９】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明合成処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアス処理、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像（フレーム画像）はディスプレイ９１２に表示される。
【００７０】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００７１】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００７２】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００７３】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００７４】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（オブジェクト面、プリミティブ、頂点色データなど）として引用された用語（第１〜第３の面、ポリゴン、輝度データなど）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【００７５】
またモデルデータの構築手法やシェーディング手法等についても、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【００７６】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【００７７】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】フォンの照明モデルの説明図。
【図３】図３（Ａ）及び図３（Ｂ）は、モデルオブジェクトの例。
【図４】図４（Ａ）及び図４（Ｂ）は、モデルオブジェクトの例。
【図５】図５（Ａ）及び図５（Ｂ）は、従来の手法の説明図。
【図６】図６（Ａ）〜図６（Ｃ）は、本実施形態の手法の説明図。
【図７】図７（Ａ）は、グローシェーディングの説明図。図７（Ｂ）は、フォンシェーディングの説明図。
【図８】プリミティブの生成手法の説明図。
【図９】図９（Ａ）及び図９（Ｂ）は、プリミティブの生成手法の説明図。
【図１０】図１０は、本実施形態のモデルデータ構造の説明図。
【図１１】図１１は、本実施形態のモデルデータ構造の説明図。
【図１２】図１２（Ａ）は、本実施形態の手法を用いた生成画像の例。図１２（Ｂ）は、従来の手法を用いた生成画像の例。
【図１３】図１３（Ａ）は、本実施形態の手法を用いた生成画像の例。図１３（Ｂ）は、従来の手法を用いた生成画像の例。
【図１４】図１４（Ａ）は、本実施形態の手法を用いた生成画像の例。図１４（Ｂ）は、従来の手法を用いた生成画像の例。
【図１５】図１５（Ａ）は、本実施形態の手法を用いた生成画像の例。図１５（Ｂ）は、従来の手法を用いた生成画像の例。
【図１６】本実施形態の処理例を示すフローチャート。
【図１７】ハードウェア構成例。
【符号の説明】
【００７８】
１００  処理部、
１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、
１２０  画像生成部、
１２２  ジオメトリ処理部、１２４  シェーディング処理部、
１２６  αブレンディング部、１２８  隠面消去部、
１３０  音生成部、１６０  操作部、
１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  モデルデータ記憶部、１７８  Ｚバッファ、
１８０  情報記憶媒体、１９４  携帯型情報記憶装置、
１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2006268103.tif 000003
【図２】
2006268103.tif 000004
【図３】
2006268103.tif 000005
【図４】
2006268103.tif 000006
【図５】
2006268103.tif 000007
【図６】
2006268103.tif 000008
【図７】
2006268103.tif 000009
【図８】
2006268103.tif 000010
【図９】
2006268103.tif 000011
【図１０】
2006268103.tif 000012
【図１１】
2006268103.tif 000013
【図１６】
2006268103.tif 000014
【図１７】
2006268103.tif 000015
【図１２】
2006268103.tif 000016
【図１３】
2006268103.tif 000017
【図１４】
2006268103.tif 000018
【図１５】
2006268103.tif 000019