(57)【要約】【課題】自然界の様々な要因によって変化する虹等の見え方を少ない処理付加で効果的に表現すること。【解決手段】オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、光源位置または光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変化させる光効果表現オブジェクト設定部１１６と、光効果表現オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を描画する描画部１２０と、してコンピュータを機能させるプログラムである。【選択図】        図９
2007164736.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
光源位置または光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変化させる光効果表現オブジェクト設定部と、
光効果表現オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を描画する描画部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
ゲーム時刻の変化に従って光源位置または光線ベクトルの方向を変化させる光源制御部を含むことを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記光効果表現オブジェクト設定部は、
視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、
前記光線ベクトルの方向に対して所定角度だけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度だけずらして第２の方向ベクトルＶ２を設定し、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２を視点位置を始点として前記仮想投影面にむけてのばし、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２の延長線と前記仮想投影面の交点に基づいて光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを設定することを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記光効果表現オブジェクト設定部は、
視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、
前記光線ベクトルの方向に対して所定角度だけずらして得られる方向ベクトルＶを視点位置から前記仮想投影面にむけてのばし、方向ベクトルＶの延長線と前記仮想投影面の交点である第１の交点と、光線ベクトルを視点位置から前記仮想投影面にむけてのばし光線ベクトルの延長線と前記仮想投影面の交点である第２の交点を求め、第１の交点と第２の交点に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ設定することを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトとして、円環状のオブジェクトを設定することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトを、所与のタイミングで所定時間配置するように設定することを特徴とするプログラム。
【請求項７】
請求項６において、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトを、配置開始から所定期間に光効果表現オブジェクトをフェードイン表示させるための設定処理、及び配置終了前の所定期間に光効果表現オブジェクトをフェードアウト表示させるための設定処理の少なくとも１つを行うことを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトの表示範囲を制御するための表示範囲制御情報を設定し、表示範囲制御情報に基づき表示範囲外に当たる部分については光効果表現オブジェクトが表示されないように設定する処理を行うことを特徴とするプログラム。
【請求項９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至８のいずれかのプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１０】
オブジェクト空間において仮想カメラから見える画像を生成する画像生成システムであって、
光源位置または光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変化させる光効果表現オブジェクト設定部と、
光効果表現オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を描画する描画部と、
含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
さてこのようなゲームシステムでは、プレーヤの仮想現実向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。
【特許文献１】特開平１１−３０６３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば虹は空気中の水滴に光が反射するときに、色（光の波長）によって光の屈折率が異なることによって発生するものであり、光源からの光線の角度や空気の状態等の自然界の様々な要因によりその現れ方は変化する。
【０００５】
ところがゲーム空間にかかる虹を表現する場合、通常は予め用意された虹オブジェクトを配置して描画するという単純な構成で実現するため、いつも同じ虹が表示されていた。従って自然描写としては単調であり、自然描写を楽しむという要素が強いゲームには、物足りないものであった。
【０００６】
しかし自然界の様々な要因が絡みあって変化する虹の見え方を厳密にシミュレーションすると演算付加が増大し、限られたハードウエア資源でリアルタイムに画像生成を行うことが必要なゲーム装置等では処理が困難であるという問題点があった。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、自然界の様々な要因によって変化する虹の見え方を少ない処理付加で効果的に表現することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成装置であって、
光源位置または光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変化させる光効果表現オブジェクト設定部と、
光効果表現オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を描画する描画部と、
とを含む画像生成システムに関係する。
【０００９】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１０】
光効果表現物オブジェクトとは、例えば虹でもよいし、光の反射、屈折、発光等によって引き起こされる様々な現象を表現するためのオブジェクトでも良いし、その他オーロラ、雲、蜃気楼等でもよい。
【００１１】
また現実世界には存在しない光の現象を表現する場合も本発明の範囲内である。
【００１２】
光線ベクトルとは並行光源の光線ベクトルでもよい。また点光源でもオブジェクト空間から遠く離れた場所に設定される場合には光線ベクトルはほぼ並行になるため、点光源の光線ベクトルでもよい。
【００１３】
光源位置又は光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを含む光効果表現オブジェクト設定情報を決定するとは、例えば光源位置又は光線ベクトルの方向（例えば光線ベクトルの入射角や地平円とのなす角度や反射角等）と光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つの対応付けを予めテーブルデータ等として設定しておき、当該テーブルデータに基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを決定する構成でもよい。
【００１４】
また光源位置又は光線ベクトルの方向を変数として光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを求める関数を設定しておき、当該関数に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを決定する構成でもよい。
【００１５】
また光源位置又は光線ベクトルの方向にもとづき視点位置に所定のベクトルＶを設定して、所定のベクトルＶで所定の仮想投影面に円弧を描いた時の円弧に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを求めるアルゴリズムを設定しておき、当該アルゴリズムに基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを決定する構成でもよい。
【００１６】
光効果表現オブジェクトは空気中の水滴に太陽光線が反射する事によっておこるため、太陽の位置がことなると光効果表現オブジェクトのできる位置や大きさも異なってくる。
【００１７】
本発明によれば、光源位置や光線ベクトルの方向に基づき形状、大きさ及び出現位置の少なくとも１つが異なる光効果表現オブジェクトの画像を生成することができる。従って太陽の位置によって変化する虹等の光効果表現物の見え方を厳密にシミュレーション演算を行うことなしに、少ない演算負荷で効果的な光効果表現物の表現を行うことができる。
【００１８】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
ゲーム時刻の変化に従って光源位置または光線ベクトルの方向を変化させる光源制御部を含むことを特徴とする。
【００１９】
現実世界の時刻に応じて太陽の位置が変化する様子（例えば朝東から上り昼間に南の空に登り夕刻に西に沈む）をモデルにしてゲーム時刻に応じて光源位置または光線ベクトルの方向を変化させるようにしてもよい。
【００２０】
本発明によれば、光効果表現オブジェクトが出現するゲーム時刻がことなれば、形状、大きさ及び出現位置の少なくとも１つの異なる光効果表現オブジェクトの画像を生成することができる。
【００２１】
従ってゲーム時刻によって異なる形状、大きさ及び出現位置の少なくとも１つの異なる光効果表現オブジェクトの画像が生成されるので、単調でない深みのある虹の表現を行うことができるとともに、ゲーム空間の時間の流れも感じさせることができる。
【００２２】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、
前記光線ベクトルの方向に対して所定角度だけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度だけずらして第２の方向ベクトルＶ２を設定し、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２を視点位置を始点として前記仮想投影面にむけてのばし、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２の延長線と前記仮想投影面の交点に基づいて光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを設定することを特徴とする。
【００２３】
仮想投影面は視点から遠方に設定すればよいので、所定の距離は視点から遠方であれば、適宜設定可能である。
【００２４】
第１の方向ベクトルＶ１と第２の方向ベクトルＶ２は微少角度だけずれたベクトルである。微少角度は、光の波長による屈折率の違いを反映させるように設定することができる。例えば赤の反射光と紫の反射光のなす角に基づき設定してもよい。
【００２５】
このようにすると光線ベクトルの方向に基づき光効果表現オブジェクトの、形状、大きさ及び出現位置の少なくとも１つを決定することができるので、リアルな虹の画像を生成することができる。
【００２６】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、
前記光線ベクトルの方向に対して所定角度だけずらして得られる方向ベクトルＶを視点位置から前記仮想投影面にむけてのばし、方向ベクトルＶの延長線と前記仮想投影面の交点である第１の交点と、光線ベクトルを視点位置から前記仮想投影面にむけてのばし光線ベクトルの延長線と前記仮想投影面の交点である第２の交点を求め、第１の交点と第２の交点に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ設定することを特徴とする。
【００２７】
仮想投影面は視点から遠方に設定すればよいので、所定の距離は視点から遠方であれば、適宜設定可能である。
【００２８】
第１の交点と第２の交点に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ設定することとは、例えば第１の交点と第２の交点に基づき、円の半径を特定し、特定された半径を有する円に基づき光効果表現オブジェクトの形状を設定する場合でもよい。
【００２９】
また第２の交点に基づき、光効果表現オブジェクトの位置を決定する場合（例えば、第２の交点に光効果表現オブジェクトの設定位置とする）でもよい。
【００３０】
本発明によれば光線ベクトルの方向に応じて光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変更することができる。
【００３１】
例えば光線ベクトルの方向が垂直に近いほど、又は光源の位置が高いほど半径の大きな円に基づいて光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを決定することができる。
【００３２】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトとして、円環状のオブジェクトを設定することを特徴とする。
【００３３】
円環状の光効果表現オブジェクトの上半分を用いるようにしてもよい。
【００３４】
前記円環状の光効果表現オブジェクトに対し、光効果表現オブジェクトの模様の虹テクスチャ（例えば七色の光の帯の模様）をマッピングして虹の画像を生成するようにしてもよい。
【００３５】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトを、所与のタイミングで所定時間配置するように設定することを特徴とする。
【００３６】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトを、配置開始から所定期間に光効果表現オブジェクトをフェードイン表示させるための設定処理、及び配置終了前の所定期間に光効果表現オブジェクトをフェードアウト表示させるための設定処理の少なくとも１つを行うことを特徴とする。
【００３７】
フェードイン処理とは光効果表現オブジェクトが見えない状態（透明の状態）から徐徐に濃くなって（だんだん透明度が低くなってくる）はっきり見える状態に、時間の経過に従って光効果表現オブジェクトの表示状態を変化させる処理である。
【００３８】
フェードアウト処理とは光効果表現オブジェクトがはっきり見える状態から徐徐に薄くなって（だんだん透明度が高くなる）見えない状態（透明度０の状態）に、時間の経過に従って光効果表現オブジェクトの表示状態を変化させる処理である。
【００３９】
光効果表現オブジェクト画像をフェードイン表示させるための表示制御や光効果表現オブジェクト画像をフェードアウト表示させるための表示制御は、光効果表現オブジェクトのα値を変化させ、光効果表現オブジェクトを加算半透明で描画させることにより実現してもよい。
【００４０】
例えば光効果表現オブジェクトの基準値または光効果表現オブジェクトに設定されていた値をα、あるゲーム時刻における値をα’として、光効果表現オブジェクト配置開始からの経過時間ｔに応じた制御パラメータｋを求め、α’＝ｋαとなるα’を求めるようにしてもよい。
【００４１】
α値はオブジェクト単位に設定されていてもよいし、ポリゴンの頂点単位に設定されていてもよいし、画素単位に設定されていてもよい。
【００４２】
上記透明度の制御は描画部が行うピクセル処理（シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現してもよい。
【００４３】
またテクスチャマッピングにより実現してもよい。この場合には、光効果表現オブジェクトに対してマッピングするテクスチャの色分布やα値の分布（テクセルパターン）をフェードイン、フェードアウトに合わせて動的に変化させるようにしてもよい。
【００４４】
この場合において、色分布やα値の分布が異なるテクスチャを動的に生成してもよいし、色分布やα値の分布が異なる複数のテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよいし、オブジェクト単位でテクスチャの色分布を変化させるようにしてもよい。
【００４５】
本発明によれば、光効果表現オブジェクトの見え始めはうすく、だんだんはっきり見えてきて、また次第に薄くなって消えていく光効果表現オブジェクトの出現から消滅の様子を画像で表現することができる。
【００４６】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記光効果表現オブジェクト設定部は、
光効果表現オブジェクトの表示範囲を制御するための表示範囲制御情報を設定し、表示範囲制御情報に基づき表示範囲外に当たる部分については光効果表現オブジェクトが表示されないように設定することを特徴とする。
【００４７】
表示範囲制御情報として例えば表示範囲となる領域を規定し、当該表示範囲となる領域に属するか否か判定し、光効果表現オブジェクトの当該表示範囲となる領域に属しない部分については表示されないようにしてもよい。
【００４８】
例えば仮想投影面上に光効果表現オブジェクトを設定すると仮定して、仮想平面上で光効果表現オブジェクトの現れるエリアを設定するようにしてもよいし、光効果表現オブジェクトの現れない非表示領域を設定する場合も本発明の範囲内である。仮想投影面は例えば始点座標系においてＺ軸と直交するＹＸ平面として設定することができる。
【００４９】
そして仮想投影面上のＸ、Ｙの値で光効果表現オブジェクト表示領域を定義するようにしてもよい。
【００５０】
なお表示／非表示領域の設定はランダムに行っても良いし、例えばオブジェクト空間の大気の状態（水蒸気の状態）等に応じて設定するようにしてもよい。
【００５１】
表示／非表示の制御は、例えばオブジェクト自体は存在して、オブジェクトの表示領域に属する部分についてのみ表示し、非表示領域に属する部分については表示しないように制御する場合でもよい。この場合、非表示領域の透明度（例えばα値）を高くして透明にすることで表示されないように制御してもよい。
【００５２】
また表示領域については光効果表現オブジェクトを切り取るようにしてもよいし、表示領域に対応する部分のみ光効果表現オブジェクトを生成するようにしてもよい。
【００５３】
本発明によれば、大気の状態等を反映して多様な見え方をする虹等の光効果表現物の画像表現を行うことができる。
【発明を実施するための最良の形態】
【００５４】
以下、本実施形態について説明する。
【００５５】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００５６】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図１の構成要素（各部）の一部を省略した構成としてもよい。
【００５７】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００５８】
記憶部１７０は、描画バッファ１７２やＺバッファ１７４やテクスチャ記憶部１７６を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどにより実現できる。
【００５９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶（記録、格納）される。
【００６０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００６１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００６２】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６３】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００６４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。また処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）やＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００６５】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、光効果表現オブジェクト設定部１１６、光源制御部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略してもよい。
【００６６】
オブジェクト空間設定部１１０は、キャラクタ、樹木、車、柱、壁、建物、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００６７】
移動・動作処理部１１２は、オブジェクト（車、飛行機、又はキャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち、操作部１６０によりプレーヤが入力した操作データ、プログラム（移動・動作アルゴリズム）、或いは各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。ここでフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００６８】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点での画像を生成するための仮想カメラを制御する処理を行う。即ち、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００６９】
例えば仮想カメラによりオブジェクトを後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。この場合には、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００７０】
光効果表現オブジェクト設定部１１６は、光源位置または光線ベクトルの方向に基づき、光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ変化させる処理を行う。
【００７１】
光効果表現オブジェクト設定部１１６は、視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、前記光線ベクトルの方向に対して所定角度だけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度だけずらして第２の方向ベクトルＶ２を設定し、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２を視点位置を始点として前記仮想投影面にむけてのばし、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２の延長線と前記仮想投影面の交点に基づいて光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つを設定するようにしてもよい。
【００７２】
前記光効果表現オブジェクト設定部１１６は、視点位置から光源とは逆方向に所定の距離だけ離れた地点に仮想投影面を設定し、前記光線ベクトルの方向に対して所定角度だけずらして得られる方向ベクトルＶを視点位置から前記仮想投影面にむけてのばし、方向ベクトルＶの延長線と前記仮想投影面の交点である第１の交点と、光線ベクトルを視点位置から前記仮想投影面にむけてのばし光線ベクトルの延長線と前記仮想投影面の交点である第２の交点を求め、第１の交点と第２の交点に基づき光効果表現オブジェクトの形状、大きさ及び出現位置の少なくとも１つ設定するようにしてもよい。
【００７３】
前記光効果表現オブジェクト設定部１１６は、光効果表現オブジェクトとして、円環状のオブジェクトを設定するようにしてもよい。
【００７４】
前記光効果表現オブジェクト設定部１１６は、光効果表現オブジェクトを、所与のタイミングで所定時間配置するように設定するようにしてもよい。
【００７５】
前記光効果表現オブジェクト設定部１１６は、光効果表現オブジェクトを、配置開始から所定期間に光効果表現オブジェクトをフェードイン表示させるための設定処理、及び配置終了前の所定期間に光効果表現オブジェクトをフェードアウト表示させるための設定処理の少なくとも１つを行うようにしてもよい。
【００７６】
前記光効果表現オブジェクト設定部１１６は、光効果表現オブジェクトの表示範囲を制御するための表示範囲制御情報を設定し、表示範囲制御情報に基づき表示範囲外に当たる部分については光効果表現オブジェクトが表示されないように設定するようにしてもよい。
【００７７】
光源制御部１１８は、ゲーム時刻の変化に従って光源位置または光線ベクトルの方向を変化させる処理を行う。
【００７８】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００７９】
描画部１２０は、光効果表現オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を描画する。
【００８０】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００８１】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００８２】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００８３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００８４】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００８５】
特に本実施形態では、光効果表現オブジェクトを描画する際に、例えば虹等を表現するための光効果表現用のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、光効果表現オブジェクトに対してマッピングされるテクスチャの色分布（テクセルパターン）を動的に変化させるようにしてもよい。  この場合において、色分布が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよいし、オブジェクト単位でテクスチャの色分布を変化させるようにしてもよい。
【００８６】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００８７】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００８８】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また合成処理が加算αブレンディングである場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００８９】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また合成処理がα乗算である場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００９０】
ＲＱ＝α×Ｒ１                      （７）
ＧＱ＝α×Ｇ１                      （８）
ＢＱ＝α×Ｂ１                      （９）
また合成処理がα乗加算である場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００９１】
ＲＱ＝α×Ｒ１＋Ｒ２                      （７）
ＧＱ＝α×Ｇ１＋Ｇ２                      （８）
ＢＱ＝α×Ｂ１＋Ｂ２                      （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７２に既に描画されている画像（背景画像）の色（輝度）のＲ、Ｇ、Ｂ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７２に描画するオブジェクト（プリミティブ）の色のＲ、Ｇ、Ｂ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像の色のＲ、Ｇ、Ｂ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９２】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００９４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００９５】
２．虹オブジェクトの設定制御
以下、光効果表現オブジェクトの一例である虹オブジェクトを用いて虹の画像を生成する場合の虹オブジェクトの設定処理について説明する
図２は光線ベクトルに基づき設定される第１の方向ベクトルＶ１、第２の方向ベクトルＶ２について説明するための図である。
【００９６】
同図はオブジェクト空間をＸ軸方向に見た図（ＹＺ平面）である。
【００９７】
ここで２１０は平行光源であり、ＬＶは光線ベクトルである。平行光源を用いる場合にはオブジェクト空間内の光線ベクトルＬＶはどの地点でも同方向となる
２３０は、オブジェクト空間内に仮想的に想定した仮想投影面である。本実施の形態では、この仮想投影面に虹が写っているか仮定して虹の画像を生成する。虹は視点（仮想カメラの位置）に対して光源と反対側にできるので、仮想投影面２３０は、視点２５０に対して仮想投影面と反対側の視点から離れた地点に水平面２６０に対して垂直に仮想的におかれた面として設定される。
【００９８】
前記光線ベクトルＬＶの方向に対して所定角度だけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度だけずらして第２の方向ベクトルＶ２を設定する。
【００９９】
光線ベクトルの方向に対して所定角度θだけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度Δθだけずらして第２の方向ベクトルＶ２を設定する。
【０１００】
図３は、第１の方向ベクトルＶ１と第２の方向ベクトルＶ２に基づき虹オブジェクトの設定を行う手法について説明するための図である。
【０１０１】
視点位置２５０から光源２１０とは逆方向に仮想投影面２３０を設定し、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２を視点位置を始点として仮想投影面２３０にむけてのばし、第１の方向ベクトルＶ１、第２の方向ベクトルＶ２の延長線と前記仮想投影面２３０の交点Ｐ１、Ｐ２に基づいて虹オブジェクト３００の位置と大きさを決定する。
【０１０２】
図４は虹オブジェクトの円環オブジェクトの形状設定手法について説明するための図である。
【０１０３】
視点位置２５０から光源２１０とは逆方向に仮想投影面２３０を設定する。
【０１０４】
光線ベクトルＬＶの方向に対して所定角度だけずらして得られる方向ベクトルＶを視点位置から前記仮想投影面にむけてのばし、方向ベクトルＶの延長線と前記仮想投影面の交点である第１の交点Ｐを求める。
【０１０５】
また光線ベクトルＬＶを視点位置２５０から仮想投影面にむけてのばし光線ベクトルの延長線と前記仮想投影面の交点である第２の交点Ｑを求める。
【０１０６】
交点Ｑを光効果表現オブジェクトである円環オブジェクトの円の中心として設定するようにしてもよい。
【０１０７】
そして第１の交点Ｐと第２の交点Ｑに基づき光効果表現オブジェクトである円環オブジェクトの半径ｒを決定するようにしてもよい。
【０１０８】
Ｑを中心として半径ｒの円を仮想的に設定し、かかる円の円周３２０にそって虹オブジェクトを設定するようにしてもよい。例えば、円に沿って虹オブジェクトの位置を決定する場合（この場合円の位置と虹オブジェクトの位置が重なるように虹オブジェクトを設定している。虹オブジェクトの最高点と円の最高点が重なるように虹オブジェクトの位置を決定している）や、円の大きさに応じて虹オブジェクトの大きさを決定する場合（例えば虹オブジェクトの円弧の半
径を決定する場合）を含む。
【０１０９】
図５は、光源位置（光源の高さ）と設定される虹オブジェクトの大きさや位置の関係について説明するための図である。
【０１１０】
例えば２１０−１に光源がある場合には、光線ベクトルＬＶ−１に対して第１の方向ベクトルＶ１−１、第２の方向ベクトルＶ２−１が設定され、視点位置２５０を始点として、第１の方向ベクトルＶ１−１、第２の方向ベクトルＶ２−１を仮想投影面の方向にのばしたときの仮想投影面との交点Ｐ１−１、Ｐ２−１によって、虹オブジェクト４００−１が設定される。
【０１１１】
また例えば２１０−２に光源がある場合には、光線ベクトルＬＶ−２に対して第１の方向ベクトルＶ１−２、第２の方向ベクトルＶ２−２が設定され、視点位置２５０を始点として、第１の方向ベクトルＶ１−２、第２の方向ベクトルＶ２−２を仮想投影面の方向にのばしたときの仮想投影面との交点Ｐ１−２、Ｐ２−２によって、虹オブジェクト４００−２が設定される。
【０１１２】
本実施の形態では、ゲーム時刻の変化に従って光源位置または平行光源の光線ベクトルの向きを変化させるので、光源位置や光線ベクトルの向きを反映して、大きさやかかる位置の異なる虹画像が生成される。
【０１１３】
図６は（Ａ）（Ｂ）は、本実施の形態の虹オブジェクトの表示範囲の制御について説明するための図である。
【０１１４】
本実施の形態では仮想投影面上に虹オブジェクトが設定されるが、このとき虹オブジェクトの現れるエリアを設定することができる。仮想投影面は例えば視点座標系においてＺ軸と直交するＹＸ平面として設定することができる。
【０１１５】
図６（Ａ）は、仮想投影面上のＸ＞ａの領域を虹オブジェクトの表示領域として設定した場合である。この場合、仮想投影面の５５０−１が表示領域、５６０−１が非表示領域となる。そして虹オブジェクト５１０のなかで、表示領域に属する部分５１０−２が表示され、非表領域に属する部分５１０−１、５１０−３は表示されない。
【０１１６】
図６（Ｂ）は、仮想投影面上のＸ＞ｂかつＹ＞ｃの領域を虹オブジェクトの表示領域として設定した場合である。この場合、仮想投影面の５５０−２が表示領域、５６０−２が非表示領域となる。そして虹オブジェクト５１０のなかで、表示領域に属する部分５１０−２’が表示され、非表領域に属する部分５１０−１’、５１０−３’は表示されない。
【０１１７】
なお表示／非表示領域の設定はランダムに行っても良いし、例えばオブジェクト空間の大気の状態（水蒸気の状態）等に応じて設定するようにしておよい。
【０１１８】
表示／非表示の制御は、例えばオブジェクト自体は存在して、オブジェクトの表示領域に属する部分についてのみ表示し、非表示領域に属する部分については表示しないように制御する場合でもよい。この場合、非表示領域の透明度（例えばα値）を高くして透明にすることで表示されないように制御してもよい。
【０１１９】
また表示領域については虹オブジェクトを切り取るようにしてもよいし、表示領域に対応する部分のみ虹オブジェクトを生成するようにしてもよい。
【０１２０】
図７は本実施の形態の虹のフェードイン／フェードアウト処理について説明するための図である。
【０１２１】
本実施の形態では、所与のタイミングで所定時間の間、虹オブジェクトを配置する。すなわち虹が出現してから消滅するまでの間（ｔ０〜ｔ３）虹オブジェクトが設定される。
【０１２２】
例えば所与のタイミングｔ０で虹オブジェクトが出現する場合、配置開始ｔ０から所定期間（ｔ０〜ｔ１の間）の間はフェードイン期間６１０となりフェードイン処理が行われる。
【０１２３】
フェードイン処理とは虹オブジェクトが見えない状態（透明の状態）から徐徐に濃くなって（だんだん透明度が低くなってくる）はっきり見える状態になるように、時間の経過に従って虹オブジェクトの表示状態を変化させる処理である。
【０１２４】
ｔ１の状態で虹オブジェクトははっきり見える状態となり、配置終了前の所定期間（ｔ２〜ｔ３）はフェードアウト期間６２０となり、フェードアウト処理が行われる。
【０１２５】
フェードアウト処理とは虹オブジェクトがはっきり見える状態から徐徐に薄くなって（だんだん透明度が高くなる）見えない状態（透明度０の状態）になるように、時間の経過に従って虹オブジェクトの表示状態を変化させる処理である。
【０１２６】
図８は経過時間とα値の関係について示した図である。
【０１２７】
横軸は虹オブジェクトの出現からの経過時間ｔ、縦軸は虹オブジェクトを加算半透明で描画する場合の透明度情報（α値）である。本実施の形態は虹オブジェクトの出現ｔ０から虹オブジェクトの消滅ｔ３までの所定時間の間、虹オブジェクトの設定を行う。
【０１２８】
虹オブジェクトを加算半透明で描画する場合、α値が０の時に虹オブジェクトは透明となり、α値が１の時に虹オブジェクトははっきり見える状態になる。
【０１２９】
虹オブジェクトが出現した時点（ｔ０の時点）で、α値を０にして、その後フェードイン期間６１０の間α値が徐徐に高くなりｔ１の時点でα値を１になるように制御する。
【０１３０】
そしてｔ２のあとフェードアウト期間６２０の間α値が徐徐に低くなりｔ３の時点でα値を０になるように制御する。
【０１３１】
このようにすると、ｔ０の時点から徐徐に虹オブジェクトが見え始め、ｔ１の時点ではっきり見えるようになり、ｔ３の時点から再び薄くなってｔ４の時点で虹オブジェクトが見えなくなる様子を画像で表現することができる。
【０１３２】
なお虹オブジェクトのα値を変化させ、虹オブジェクトを加算半透明で描画させることにより虹のフェードイン／フェードアウトを実現する場合、例えば基準値または設定値をα、虹オブジェクトの出現からの経過時間ｔとして、経過時間ｔに基づき所定の関数ｆ（ｔ）＝αに基づき直接αを制御する場合でもよい。
【０１３３】
また経過時間ｔにおけるα値をα’として、経過時間ｔに基づき所定の関数ｆ’（ｔ）＝ｋでα’＝ｋαとなるｋの値を求めるようにしてもよい。
【０１３４】
なおα値はオブジェクト単位に設定されていてもよいし、ポリゴンの頂点単位に設定されていてもよいし、画素単位に設定されていてもよい。
【０１３５】
３．本実施形態の処理
図９は、本実施の形態の虹オブジェクトの画像生成処理の流れを示すフローチャート図である。
【０１３６】
虹オブジェクト表示イベントの発生を検出すると以下の処理を行う（ステップＳ１０）。
【０１３７】
まず、視点位置に対し光源と反対方向に仮想投影面を設定する（ステップＳ２０）。
【０１３８】
光線ベクトルの方向に対して所定角度だけずらして第１の方向ベクトルＶ１を設定し、第１の方向ベクトルＶ１に対し微少角度だけずらして第２の方向ベクトルＶ２を設定し、Ｖ１ベクトル、Ｖ２ベクトルを視点位置を始点として前記仮想投影面にむけてのばし、Ｖ１ベクトル、Ｖ２ベクトルの延長線と前記前記仮想投影面の交点Ｐ１、Ｐ２を取得する（ステップＳ３０）。
【０１３９】
次に光線ベクトルを視点位置から前記仮想投影面にむけてのばし光線ベクトルの延長線と前記仮想投影面の交点を求めて円の中心Ｏとし、中心Ｏと交点Ｐ１、Ｐ２に基づき円の半径を決定し、決定された円に基づき虹オブジェクトの位置と大きさを決定して虹オブジェクトを設定する（ステップＳ４０）。
【０１４０】
次に虹オブジェクトの仮想投影面に設定された表示領域以外の部分を透明にするようにα値の制御情報を生成する（ステップＳ５０）。
【０１４１】
次に虹オブジェクト表示開始からの経過時間ｔに基づきフェードイン期間内又はフェードアウト期間内か否か判定する（ステップＳ６０）
そしてフェードイン期間内であれば、経過時間ｔに基づき虹オブジェクトがフェードアウトするようにα値の制御情報を生成する（ステップＳ７０、Ｓ８０）。
【０１４２】
またフェードアウト期間内であれば、経過時間ｔに基づき虹オブジェクトがフェードアウトするようにα値の制御情報を生成する（ステップＳ９０、Ｓ１００）。
【０１４３】
次に設定された虹オブジェクトを透視変換する（ステップＳ１１０）。
【０１４４】
そして、透視変換された虹オブジェクトに虹テクスチャをマッピングして、設定されたα値の制御情報に基づきα値を設定して、虹オブジェクトを加算半透明で描画する（ステップＳ１２０）
４．ハードウェア構成
図１０に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４５】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１４６】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１４７】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１４８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１４９】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１５０】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１５１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１５２】
例えば、明細書又は図面中の記載において広義や同義な用語（テクセル値、テクセル値パターン、プリミティブ面等）として引用された用語（α値・輝度、グラディエーションパターン、ポリゴン等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１５３】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１５４】
またテクスチャのマッピング処理も、本実施形態で説明したものに限定されず、これらと均等な変換処理も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１５５】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】図２は光線ベクトルに基づき設定される第１の方向ベクトルＶ１、第２の方向ベクトルＶ２について説明するための図。
【図３】第１の方向ベクトルＶ１と第２の方向ベクトルＶ２に基づき虹オブジェクトの設定を行う手法について説明するための図。
【図４】虹オブジェクトの円環オブジェクトの形状設定手法について説明するための図。
【図５】光源位置（光源の高さ）と設定される虹オブジェクトの大きさや位置の関係について説明するための図である。光源位置（光源の高さ）と設定される虹オブジェクトの大きさや位置の関係について説明するための図。
【図６】図６は（Ａ）（Ｂ）は、本実施の形態の虹オブジェクトの表示範囲の制御について説明するための図。
【図７】本実施の形態の虹オブジェクトのフェードイン／フェードアウト処理について説明するための図。
【図８】経過時間とα値の関係について示した図である。
【図９】本実施の形態の虹オブジェクトの画像生成処理の流れを示すフローチャート図。
【図１０】ハードウェア構成例である。
【符号の説明】
【０１５６】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、１１４  仮想カメラ制御部、１１６  虹オブジェクト設定部、１１８  光源制御部、１２０  描画部、１２２  隠面消去部、１２４  テクスチャマッピング部、１２６  α合成部、１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、１７４  Ｚバッファ、１７６  テクスチャ記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2007164736.tif 000003
【図２】
2007164736.tif 000004
【図３】
2007164736.tif 000005
【図４】
2007164736.tif 000006
【図５】
2007164736.tif 000007
【図６】
2007164736.tif 000008
【図７】
2007164736.tif 000009
【図８】
2007164736.tif 000010
【図９】
2007164736.tif 000011
【図１０】
2007164736.tif 000012