(57)【要約】【課題】少ない演算負荷で質感の高い画像表現を可能とすること。【解決手段】記憶手段と演算手段を備えた画像処理装置によって実行されるプログラムであって、演算手段に、(a)仮想空間内に設定された仮想光源からオブジェクトに入射する光がオブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを記憶手段から読み出すステップ、(b)光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求めるステップ、(c)オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求めるステップ、(d)拡散環境マップとシャドウ成分とを乗算することによって拡散項を求めるステップ、(e)反射環境マップとシャドウ成分の反転値とを乗算することによって反射項を求めるステップ、(f)拡散項と反射項を加算するステップ、を実行させる。【選択図】図４
2007328460.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と演算手段を備えた画像処理装置によって実行され、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成するためのプログラムであって、
前記演算手段に、
（ａ）前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出すステップ、
（ｂ）光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求めるステップ、
（ｃ）前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求めるステップ、
（ｄ）前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求めるステップ、
（ｅ）前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求めるステップ、
（ｆ）前記拡散項と前記反射項を加算するステップ、
を実行させることを特徴とするプログラム。
【請求項２】
前記反射環境マップは、反射マップを球面変形して生成される、請求項１に記載のプログラム。
【請求項３】
前記第１のシャドウマップは、投影物と被投影物との間の距離に基づき、当該距離が小さいほど輝度が高くなるように設定される、請求項３に記載のプログラム。
【請求項４】
前記ステップ（ｂ）は、前記仮想三次元空間における前記オブジェクトの周辺からの影成分をレンダリングすることによって第２のシャドウマップを生成し、当該第２のシャドウマップと前記第１のシャドウマップとを乗算することによって前記シャドウ成分を算出する、請求項１に記載のプログラム。
【請求項５】
（ｇ）前記ステップ（ｆ）の演算結果に対してフレネル項を加算するステップ、
を更に含む、請求項１に記載のプログラム。
【請求項６】
前記ステップ（ｅ）は、前記反射環境マップと前記シャドウ成分の反転値の乗算結果に対して、更に１より大きい係数を乗算して前記反射項を算出する、請求項１に記載のプログラム。
【請求項７】
請求項１乃至６のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
記憶手段と演算手段を備え、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成する画像処理装置であって、
前記演算手段が、
（ａ）前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出し、
（ｂ）光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求め、
（ｃ）前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求め、
（ｄ）前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求め、
（ｅ）前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求め、
（ｆ）前記拡散項と前記反射項を加算する、
ことを特徴とする画像処理装置。
【請求項９】
記憶手段と演算手段を備え、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成する画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出すステップと、
（ｂ）前記演算手段が、光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求めるステップと、
（ｃ）前記演算手段が、前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求めるステップと、
（ｄ）前記演算手段が、前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求めるステップと、
（ｅ）前記演算手段が、前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求めるステップと、
（ｆ）前記演算手段が、前記拡散項と前記反射項を加算するステップ、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想三次元空間に設定される事象を透視投影変換して二次元画像を生成する技術に関する。
【背景技術】
【０００２】
近年のコンピュータ技術の発展に伴い、ビデオゲーム装置、シミュレータ（擬似体験装置）などに関する画像処理技術が広く一般に普及するようになっている。このようなシステムにおいては、表示される画像をより表現力豊かにすることが商品価値を高めるうえで重要となっている（例えば、特許文献１参照）。例えば、仮想空間内を表す二次元画像に対して、拡散項、反射項などを考慮した照明効果を与えることにより、高い表現力（質感等）を実現する手法が種々検討されている。その一方で、ＴＶゲーム機等における画像生成にはリアルタイム処理が求められるため、画像生成に要する演算負荷をなるべく低減したいという要望もある。
【０００３】
【特許文献１】特開２００４−３８３９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
そこで、本発明は、少ない演算負荷で質感の高い画像表現を可能とする画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、記憶手段と演算手段を備えた画像処理装置によって実行され、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成するためのプログラムであって、
前記演算手段に、
（ａ）前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出すステップ、
（ｂ）光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求めるステップ、
（ｃ）前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求めるステップ、
（ｄ）前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求めるステップ、
（ｅ）前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求めるステップ、
（ｆ）前記拡散項と前記反射項を加算するステップ、
を実行させることを特徴とする。このプログラムは、コンピュータ読み取り可能な記録媒体（例えば、コンパクトディスク、デジタルバーサタイルディスク等の各種ディスク）に記録されていてもよい。
【０００６】
好ましくは、前記反射環境マップは、反射マップを球面変形して生成される。
【０００７】
好ましくは、前記第１のシャドウマップは、投影物と被投影物との間の距離に基づき、当該距離が小さいほど輝度が高くなるように設定される。
【０００８】
好ましくは、前記ステップ（ｂ）は、前記仮想三次元空間における前記オブジェクトの周辺からの影成分をレンダリングすることによって第２のシャドウマップを生成し、当該第２のシャドウマップと前記第１のシャドウマップとを乗算することによって前記シャドウ成分を算出する。
【０００９】
好ましくは、上記プログラムは、
（ｇ）前記ステップ（ｆ）の演算結果に対してフレネル項を加算するステップ、
を更に含む。
【００１０】
好ましくは、前記ステップ（ｅ）は、前記反射環境マップと前記シャドウ成分の反転値の乗算結果に対して、更に１より大きい係数を乗算して前記反射項を算出する。
【００１１】
また、本発明は、記憶手段と演算手段を備え、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成する画像処理装置であって、
前記演算手段が、
（ａ）前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出し、
（ｂ）光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求め、
（ｃ）前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求め、
（ｄ）前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求め、
（ｅ）前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求め、
（ｆ）前記拡散項と前記反射項を加算する、
ことを特徴とする。
【００１２】
また、本発明は、記憶手段と演算手段を備え、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成する画像処理装置における画像処理方法であって、
（ａ）前記演算手段が、前記仮想三次元空間内に設定された仮想光源から前記オブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定する拡散環境マップを前記記憶手段から読み出すステップと、
（ｂ）前記演算手段が、光源から前記オブジェクトへ向かって深度値をレンダリングすることによって得られる第１のシャドウマップを含むシャドウ成分を求めるステップと、
（ｃ）前記演算手段が、前記オブジェクトに映り込む発光物及び周囲の光景を規定する反射環境マップを求めるステップと、
（ｄ）前記演算手段が、前記拡散環境マップと前記シャドウ成分とを乗算することによって拡散項を求めるステップと、
（ｅ）前記演算手段が、前記反射環境マップと前記シャドウ成分の反転値とを乗算することによって反射項を求めるステップと、
（ｆ）前記演算手段が、前記拡散項と前記反射項を加算するステップ、
を含むことを特徴とする。
【発明の効果】
【００１３】
上記の本発明によれば、拡散項や反射項が加味された質感の高い画像表現を少ない演算負荷で実現することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、画像処理装置の一例としてゲーム装置を採り上げて、本発明の実施の形態について説明する。
【００１５】
図１は、一実施形態のゲーム装置の構成を示すブロック図である。図１に示す本実施形態のゲーム装置１は、ＣＰＵ（Central Processing Unit）１０、システムメモリ１１、記憶媒体１２、ブートロム（BOOT ROM）１３、バスアービタ１４、ＧＰＵ（Graphics Processing Unit）１６、グラフィックメモリ１７、オーディオプロセッサ１８、オーディオメモリ１９、通信インタフェース（Ｉ／Ｆ）２０、ペリフェラルインターフェース２１、を含んで構成されている。すなわち、本実施形態のゲーム装置１は、演算手段（演算部）としてのＣＰＵ１０及びＧＰＵ１６、記憶手段（記憶部）としてのシステムメモリ１１、グラフィックメモリ１７及びオーディオメモリ１９等を含んで構成されるコンピュータ（コンピュータシステム）を備え、当該コンピュータに所定のプログラムを実行させることによってゲーム装置として機能するものである。具体的には、ゲーム装置１は、ゲーム演出を行うために、仮想三次元空間（ゲーム空間）内を仮想カメラから見た二次元画像を順次生成するとともに、効果音などの音声を生成する。
【００１６】
ＣＰＵ（Central Processing Unit）１０は、所定のプログラムを実行することによりゲーム装置１全体を制御する。
【００１７】
システムメモリ１１は、ＣＰＵ１０が使用するプログラムやデータを格納する。このシステムメモリ１１は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００１８】
記憶媒体１２は、ゲームプログラムや出力する画像や音声などのデータが記録されている。このプログラムデータ用ＲＯＭとしての記憶媒体１２は、マスクロムやフラッシュロムなどの電気的にデータを読み出せるＩＣメモリや、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの光学的にデータを読み出せる装置と光ディスクまたは磁気ディスク等であっても良い。
【００１９】
ブートロム１３は、ゲーム装置１を起動させた際に各ブロックを初期化するためのプログラムを格納する。
【００２０】
バスアービタ１４は、各ブロック間でプログラムやデータのやり取りを行うバスを制御する。
【００２１】
ＧＰＵ１６は、ディスプレイに表示するオブジェクトの仮想三次元空間（ゲーム空間）での位置座標や向きの演算（ジオメトリ演算）と、このオブジェクトの向きや位置座標等に基づいてディスプレイに出力する画像を生成（描画）する処理（レンダリング）を行う。
【００２２】
グラフィックメモリ１７は、ＧＰＵ１６に接続されており、画像を生成するためのデータやコマンドなど格納する。このグラフィックメモリ１７は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００２３】
オーディオプロセッサ１８は、スピーカから音声出力を行うためのデータを生成する。このオーディオプロセッサ１８によって生成された音声データが図示しないデジタル／アナログ変換器によってアナログ信号に変換され、スピーカに入力されることにより、スピーカから音声出力がなされる。
【００２４】
オーディオメモリ１９は、オーディオプロセッサ１８に構成されており、音声を生成するためのデータやコマンドなど格納する。このオーディオメモリ１９は、例えばＤＲＡＭ（dynamic random access memory）、ＳＲＡＭ（static random access memory）等の半導体メモリを用いて構成される。
【００２５】
通信インタフェース（Ｉ／Ｆ）２０は、ゲーム装置１が他のゲーム装置やサーバ装置等との間でデータ通信の必要がある場合における通信処理を行う。
【００２６】
ペリフェラルインターフェース（Ｉ／Ｆ）２１は、外部からのデータ入出力を行うインターフェースが組み込まれており、ここに周辺装置としてのペリフェラルが接続される。ここで、ペリフェラルには、マウス（ポインティングデバイス）やキーボード、ゲーム用コントローラ等のキー操作のためのスイッチ、及びタッチペンの他、プログラムの途中経過や生成したデータを保存するバックアップメモリ、表示装置、撮影装置等、画像処理装置本体あるいは他のペリフェラルに接続可能なものが含まれる。
【００２７】
なお、システムメモリ１１、グラフィックメモリ１７、サウンドメモリ１９は、１つの
メモリをバスアービタ１４に接続して各機能で共通に使用するようにしてもよい。また各
機能ブロックも機能として画像処理部２内に存在すればよく、機能ブロック同士が統合
されていても、また、機能ブロック内部の各構成要素が他のブロックとして分離されてい
ても良い。
【００２８】
本実施形態のゲーム装置は以上のような構成を備えており、次に本実施形態の画像生成処理の内容についてフローチャート等を参照しながら説明する。本実施形態ではカーレースを模擬したゲームにおいて、仮想三次元空間に配置されるオブジェクトに周囲の風景を映し込む環境マッピングを伴う３次元画像を生成する際の処理について説明する。
【００２９】
図２及び図３は、画像生成処理の全体的な手順を示すフローチャートである。図２及び図３に示す一連の処理は各フレーム毎に実行される。また、図４は、画像生成処理の内容を可視化して模式的に示した概念図である。
【００３０】
ＣＰＵ１０は、ゲーム用コントローラ等の入力手段からの入力に基づき、あるいは、リプレイ時／アドバタイズ時はメモリに記憶されたオブジェクトの軌跡情報に基づき、オブジェクトの挙動（座標）を演算し、オブジェクトを仮想三次元空間内のコース上に配置する（ステップＳ１０）。併せて、ＣＰＵ１０は、光源位置（固定、あるいは時間経過と共に移動する）を設定するとともに、視点位置（カメラ位置）を設定する。カメラ位置は、例えばオブジェクトの後方、一定距離の位置に設定される。ここでオブジェクトは、複数のポリゴン（例えば、三角形状ポリゴン）を組み合わせて構成されるモデル（ポリゴンモデル）である。本実施形態ではカーレースを模擬したゲームを考えているので、本ステップでは、例えばレース用のスポーツカー（車体）、このスポーツカーが走行するコース、このコース上やコース周辺に存在する障害物等を表すためのポリゴンモデルが仮想三次元空間内に適宜配置される。
【００３１】
次にＧＰＵ１６は、反射マップを生成する（ステップＳ１１）。具体的には、ＧＰＵ１６は、まず仮想三次元空間内のオブジェクト（本例では車体）の位置に視点を設定し、そこからカメラ位置に向かう方向を視線方向として反射マップ（反射用背景モデル）をレンダリングする。この反射マップは反射特性を加味した色合いに調整される。その後ＧＰＵ１６は、レンダリングした反射マップを変位マップに基づいて球面変形する。より詳細には、まず、変位マップ上の各ピクセルについて、反射マップにちょうど収まる大きさの球を想定した場合の該当ピクセルの法線の向きが求められ、該当ピクセルの元のＵＶ値から上記の法線分だけオフセットした地点のＵＶ値が求められる。この処理はプログラム起動時に行われてもよく、またプログラム実行中に適宜行われてもよく、更には、予め変位マップを作成し、そのデータを記憶媒体に格納しておいたものを読み出して用いてもよい。こうして生成された変位後のＵＶマップに反射マップを貼ることで、反射マップが球面変形される。これにより、魚眼レンズを通した写真に類似の反射マップが得られる。
【００３２】
次にＧＰＵ１６は、セルフシャドウマップ及び投影シャドウマップを生成する（ステップＳ１２）。具体的には、まず主光源から車体へ見た深度値をレンダリングすることによりパースペクティブ（perspective：遠近）シャドウマップが生成される。これが車体自身のセルフシャドウマップ（第１のシャドウマップ）として用いられる。また、セルフシャドウマップの空きチャンネルに、路面などコース周辺からの影成分をレンダリングすることにより投影シャドウマップ（第２のシャドウマップ）が生成される。なお、画像生成に用いられるオブジェクトとは別に用意されたコリジョン判定用の簡易モデルを用いて深度値をレンダリングしても良い。
【００３３】
また上記処理と並行し、あるいは前後して、ＧＰＵ１６は、予め用意された拡散キューブマップ、カラーマップ及びグロスマップを記憶媒体１２から読み込み、システムメモリ１１に格納する（ステップＳ１３）。ここで「拡散キューブマップ」とは、仮想三次元空間内に設定された仮想光源からオブジェクトに入射する光が当該オブジェクト表面で拡散することによって生じる拡散光を規定するテクスチャであり、本例では周辺環境や車体の塗装状態等によって定まる固有の拡散光を表すテクスチャである。この拡散キューブマップは、一般には６つのテクスチャを含んで構成される。また「カラーマップ」は物体表面の色情報を収めたテクスチャ（一般的なテクスチャ）であり、「グロスマップ」は物体表面の鏡面反射係数を収めたテクスチャである。
【００３４】
次にＧＰＵ１６は、各ピクセルにおける法線の向き及び視線の向きを算出し、各ピクセルにおける法線の向き及び視線の向きをそれぞれ取り出す（ステップＳ１４）。次にＧＰＵ１６は、ステップＳ１４で算出し、取り出した法線の向きに基づいて、反射マップから反射色（反射環境マップ）を求める（ステップＳ１５）。この反射環境マップは、オブジェクトに映り込む発光物及び周囲の光景を規定するテクスチャである。またＧＰＵ１６は、ステップＳ１４で取り出した法線の向きに基づいて、拡散キューブマップから拡散色（拡散環境マップ）を求める（ステップＳ１６）。
【００３５】
次にＧＰＵ１６は、セルフシャドウマップと投影シャドウマップを乗算し（図４：calc.A参照）、この乗算結果（シャドウマップ）と、投影物と被投影物との間の距離に応じて、影の強さ（シャドウ成分）を求める（ステップＳ１７）。そして、ＧＰＵ１６は、このシャドウ成分にシャドウカラーを加算することにより（図４：Calc.B参照）、各ピクセルにおける影の色（陰影）を算出する（ステップＳ１８）。この算出結果は、主光源に照らされている部分が白、影になっている部分が影の色、という陰影を表す。投影物と被投影物との距離を考慮することにより、距離が小さい場合に影の色がより薄くなる、すなわち輝度が高くなる。
【００３６】
次にＧＰＵ１６は、カラーマップとマテリアルカラーとを乗算することにより（図４：calc.H参照）、基本カラーを算出する（ステップＳ１９）。ここで「マテリアルカラー」とは、車体の各パーツ等のカラーを規定するものである。
【００３７】
次にＧＰＵ１６は、ディフューズ強度に応じて、拡散環境マップを灰色（０．５，０．５，０．５）に収束させることにより、拡散項を算出する（ステップＳ２０）。具体的には、本ステップの処理は以下の計算式を用いて行われる（図４：calc.C参照）。ここで「ディフューズ強度」とは、光がどの程度反射されるかを示す尺度であり、例えば０〜２．０の値が設定される。
拡散項＝（拡散環境マップ×影の色−０．５）×ディフューズ強度＋０．５
【００３８】
またＧＰＵ１６は、基本カラーの色を、拡散環境マップを被合成色としてオーバーレイ合成する（ステップＳ２１）。ここで「オーバーレイ合成」とは、基本色に応じて乗算合成とスクリーン合成とを使い分ける方式をいい、基本色のハイライトやシャドウを維持しながら既存のピクセルの上にパターンやカラーを重ねる。基本色は置き換えられるのではなく、合成色とミックスされて基本色の明るさや暗さが表現される。具体的には、被合成色の輝度が所定値（例えば０．５）より大きければレンジを広げてスクリーン加算（スクリーン合成とも言い、被合成色と合成色をそれぞれ反転した値を掛け合わせる合成方法）が行われ、輝度が所定値（例えば０．５）以下であればレンジを広げて乗算（被合成色と合成色の値を掛け合わせる）が行われる。これと、上記ステップＳ１９の処理との組み合わせにより、車体にフルカラーレンジで着色しつつ、拡散キューブマップもフルカラーレンジで陰影を付けることができ、なおかつ、ディフューズ強度が低くなるにつれて基本カラーに収束する、というライティングモデルが得られる。
【００３９】
次にＧＰＵ１６は、シャドウ成分（図４：calc.A参照）を反転し、これにスペキュラシャドウの値を加算することにより（図４：calc.E参照）、影の中の反射光を強調するために用いられる１より大きい係数（以後「反射光強調係数」と呼ぶ）を算出する（ステップＳ２２）。ここで「スペキュラシャドウ」とは、人間の眼の特性、具体的には暗い所にある僅かな光を強調して受け取るという特性を表現すべく、暗部の反射の強調度を補正するための係数である。例えば、白色系（相対的に明度の高い色）のボディカラーを有するレースカーが太陽直下に配置されている場合には、白い塗料が拡散光を強く発するので、眼は主にこれを捕らえ、相対的に車体に映り込んだ周囲の景色（反射成分）があまり目立たなくなる。しかし、このレースカーが影の中に入ると、拡散光が抑えられて車体は灰色に見え、相対的に車体には鏡のように周囲の景色が映り込む。このような特性を表現するために、白色系のボディカラーを有するレースカーの材質設定として、スペキュラシャドウの値を相対的に大きな値に設定する。また、黒色系（相対的に明度の低い色）のボディカラーを有するレースカーが太陽直下に配置されている場合には、光吸収率が高く、拡散光があまり発生しないため、相対的に周囲の景色がよく車体に映り込む。このレースカーが影の中に入った場合でも、見かけのボディカラーにはあまり変化がなく、周辺の景色がよく映り込む状態となる。つまり、太陽直下でも、影に入っても、反射光の見える強さにはあまり違いが生じない。このような特性を表現するために、黒色系のボディカラーを有するレースカーの材質設定として、スペキュラシャドウの値を相対的に小さな値に設定する。
【００４０】
その後ＧＰＵ１６は、反射環境マップに対してシャドウ成分（反転）を影響させて（図４：calc.F参照）、反射項を算出する（ステップＳ２３）。具体的には、上記ステップの処理は以下の計算式を用いて行われる。
反射項＝反射環境マップ×（１−シャドウ成分（反転）×反射光強調係数）
【００４１】
次にＧＰＵ１６は、拡散項（オーバーレイ合成が行われた後のもの）と反射項を加算し（図４：calc.G参照）、これに頂点カラー（自己遮蔽成分）を乗算し（図４：calc.I参照）、更にフレネル項を加算することにより（図４：calc.K参照）、最終的な各ピクセルの色を算出する（ステップＳ２４）。ここで「フレネル項」とは、物理現象であるフレネル反射をシミュレートした係数である（図４：calc.J参照）。この係数を求める際には、より厳密にはフレネルの公式に基づいた演算をするとよいが、Schlickによる近似等の近似式を用いて演算負荷を軽減するのも好ましい。
【００４２】
以上のように本実施形態によれば、拡散項や反射項が加味された質感の高い画像表現を少ない演算負荷で実現することが可能となる。
【００４３】
なお、本発明は上述した各実施形態の内容に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では一例としてカーレースを模擬したゲーム装置における画像を生成する場合について説明していたが、本発明の適用範囲はこれに限定されるものではない。
【００４４】
また、上述した実施形態では、ＣＰＵ等のハードウェアを含むコンピュータに所定のプログラムを実行させることによってゲーム装置が実現されていたが、ゲーム装置に備わっていた各機能ブロックはそれぞれ専用のハードウェア等を用いて実現されていてもよい。
【００４５】
また、上述した実施形態では一例としてゲーム装置を採り上げていたが、本発明の適用範囲はゲーム装置に限定されるものではない。例えば、現実世界の各種体験（例えば、運転操作等）を擬似的に再現するシミュレータ装置等に対しても本発明を適用することが可能である。
【図面の簡単な説明】
【００４６】
【図１】一実施形態のゲーム装置の構成を示すブロック図である。
【図２】ゲーム装置の画像生成処理の全体的な手順を示すフローチャートである。
【図３】ゲーム装置の画像生成処理の全体的な手順を示すフローチャートである。
【図４】画像生成処理の内容を可視化して模式的に示した概念図である。
【符号の説明】
【００４７】
１０…ＣＰＵ
１１…システムメモリ
１２…記憶媒体
１３…ブートロム
１４…バスアービタ
１６…ＧＰＵ
１７…グラフィックメモリ
１８…オーディオプロセッサ
１９…オーディオメモリ
２０…通信インタフェース（Ｉ／Ｆ）
２１…ペリフェラルインターフェース
【図１】
2007328460.tif 000003
【図２】
2007328460.tif 000004
【図３】
2007328460.tif 000005
【図４】
2007328460.tif 000006