(57)【要約】【課題】  パーティクルを用いて画像を生成する場合に、少ない処理負荷でリアルで見栄えのよい画像を生成可能な画像生成システム、プログラム及び情報記憶媒体を提供することである。【解決手段】  パーティクル負荷軽減処理部１３４は処理負荷に関する情報に基づきパーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する処理行う。またパーティクル集合オブジェクトの基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、パーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用する。またパーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する。【選択図】図２１
2011076620.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行うシステムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とする画像生成システム。
【請求項３】
請求項１乃至２のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項７】
請求項１乃至６のいずれかにおいて、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項８】
画像生成を行うシステムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項９】
画像生成を行うシステムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項１０】
請求項９において、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とする画像生成システム。
【請求項１１】
画像生成を行うシステムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項１２】
画像生成を行うシステムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
を含むことを特徴とする画像生成システム。
【請求項１３】
画像生成を行うシステムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項１４】
請求項１３において、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とする画像生成システム。
【請求項１５】
請求項１３において、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とする画像生成システム。
【請求項１６】
請求項１３乃至１５のいずれかにおいて、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とする画像生成システム。
【請求項１７】
コンピュータが使用可能なプログラムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項１８】
請求項１７において、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とするプログラム。
【請求項１９】
請求項１７乃至１８のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項２０】
請求項１７乃至１９のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項２１】
請求項１７乃至２０のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とするプログラム。
【請求項２２】
請求項１７乃至２１のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項２３】
請求項１７乃至２２のいずれかにおいて、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項２４】
コンピュータが使用可能なプログラムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項２５】
コンピュータが使用可能なプログラムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項２６】
請求項２５において、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とするプログラム。
【請求項２７】
コンピュータが使用可能なプログラムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項２８】
コンピュータが使用可能なプログラムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項２９】
コンピュータが使用可能なプログラムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項３０】
請求項２９において、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とするプログラム。
【請求項３１】
請求項２９において、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とするプログラム。
【請求項３２】
請求項２９乃至３１のいずれかにおいて、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とするプログラム。
【請求項３３】
コンピュータにより使用可能な情報記憶媒体であって、請求項１７乃至３２のいずれかのプログラムを含むことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システムプログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２４２８０７公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さてこのようなゲームシステムでは、プレーヤの仮想現実向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。ここにおいて例えばゲーム空間内で発生する水しぶき等がある場合にはリアルな水しぶきの表現が重要となる。
【０００５】
このような水しぶき等を表現する手法としてパーティクルシステムとよばれる手法が知られている。すなわち自然物の中には１つひとつの識別が困難であるような微粒子の集まりとして表現すると便利なものがある。例えば立ち込める湯気や霧、噴煙、土煙、揺らめく炎、爆発、噴水や滝、泡や水しぶき、花火、飛び散る粉末、降りしきる雨や雪、霞、渦巻きや竜巻、風に舞い散る桜吹雪等がその例としてあげられる。
【０００６】
パーティクルシステムでは、このように形が不安定であるばかりでなく明確な表面が存在しないような物体や現象のモデルとして多数の粒子の動きとして表現し、そのような粒子をパーティクルと呼ぶ。
【０００７】
ここでパーティクルは、色や寿命などの特性を有し、所与の規則（エミッターによって与えられる）や作用する力（フォース）によって、発生、移動、消滅する。また各フレームにおけるパーティクルの位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの３次元空間における位置を決定する演算を行い決定されることになる。
【０００８】
かかるパーティクルを用いて水しぶき等を表現すると、リアルな水しぶき等の画像を生成することができる。
【０００９】
ところがこのようなパーティクルを用いて水しぶき等の画像を生成すると処理負荷が非情に重くなってしまうという欠点がある。
【００１０】
例えばリアルで見栄えのよい水しぶきの画像を生成するためには単位時間に放出されるパーティクルの数がより多いことが好ましい。しかしパーティクル数が増える画像生成に必要な各種処理が増大するという問題点がある。
【００１１】
特に限られたハード資源でリアルタイム画像生成を行う必要があるゲームシステムでは、パーティクルを用いて画像を生成する場合に、いかにして少ない処理負荷でリアルで見栄えのよい画像を生成するかが問題になる。
【００１２】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、パーティクルを用いて画像を生成する場合に、少ない処理負荷でリアルで見栄えのよい画像を生成可能な画像生成システム、プログラム及び情報記憶媒体を提供することである。
【課題を解決するための手段】
【００１３】
（１）本発明は画像生成を行うシステムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
含むことを特徴とする。
【００１４】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００１５】
画像生成時の処理負荷に関する情報とは、例えばリフレッシュレートやグローバルクロックやＣＰＵクロック等のように１フレームあたりの描画速度が判断可能な所与の値で与えられる。ここで画像生成時の処理負荷とは、ＣＰＵで行う演算負荷でもよいし描画チップで発生する演算負荷でもよく、画像生成に必要な各種処理負荷を含む。
【００１６】
パーティクルの寿命は例えばパーティクルの特性情報として与えられるものであり、例えば半透明描画を行う際のα値の形式で与えられる場合でもよい。
【００１７】
本発明によれば、処理負荷が高いと判断した場合には、パーティクル発生地点の数を減らしたり、パーティクル数を減らしたり、パーティクルの寿命を短く設定したりすることにより、処理負荷の低減を図り処理落ち等を防ぐことができる。
【００１８】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とする。
【００１９】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とする。
【００２０】
パーティクルの寿命を短く設定することにより当該パーティクルを速く消滅させることができるため、その分処理負荷の低減をはかることができる。
【００２１】
ここにおいて遠くに位置するパーティクルほど見た目の影響が少ないため、パーティクルの奥行き情報に基づき仮想カメラから遠くに位置するパーティクルから優先して寿命を短くすることが好ましい。
【００２２】
このように本発明によればパーティクルの奥行き情報に基づき、その寿命を短くしても見た目に影響の少ないものを選択することができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【００２３】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とする。
【００２４】
パーティクル発生地点から発生するパーティクル集合を画像生成の対象外とすることによりその分処理負荷の低減をはかることができる。
【００２５】
ここにおいて遠くに位置するパーティクル発生地点から発生するパーティクル集合の画像生成をカットしたほうが見た目の影響が少ないため、パーティクル発生地点の奥行き情報に基づき仮想カメラから遠くに位置するパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることが好ましい。
【００２６】
このように本発明によればパーティクルの奥行き情報に基づき、画像生成の対象外としても見た目に影響の少ないものを選択して画像生成の対象外とすることができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【００２７】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とする。
【００２８】
パーティクル発生地点から発生させるパーティクルの数を削減することによりその分処理負荷を軽減することができる。
【００２９】
ここにおいて遠くに位置するパーティクル発生地点から発生するパーティクルの数を削減したほうが見た目の影響が少ないため、パーティクル発生地点の奥行き情報に基づき仮想カメラから遠くに位置するパーティクル発生地点から優先して発生させるパーティクルの数を削減することが好ましい。
【００３０】
このように本発明によればパーティクル発生地点の奥行き情報に基づき、画像生成の対象外としても見た目に影響の少ないものを選択して発生させるパーティクルの数を削減することができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【００３１】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする。
【００３２】
オブジェクトの精密度を下げるとは、使用するモデルをより簡易なものにする場合等である。本発明によればパーティクルに割り当てるオブジェクトについてパーティクルの奥行き情報に基づきＬＯＤ（レベルオブデテール）を行うことができるため、見た目の効果を最大に保って、処理負荷を軽減することができる。
【００３３】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする。
【００３４】
オブジェクトの精密度を下げるとは、使用するモデルをより簡易なものにする場合等である。本発明によればパーティクルに割り当てるオブジェクトについてパーティクル発生地点の奥行き情報に基づきＬＯＤ（レベルオブデテール）を行うことができるため、見た目の効果を最大に保って、処理負荷を軽減することができる。
【００３５】
（８）本発明は画像生成を行うシステムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【００３６】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００３７】
パーティクル（又はパーティクルに割り当てたオブジェクト）に与えられた透明度がパーティクル発生からの時間経過に応じて変化する場合に有効である。ここにおいて透明度は例えば半透明描画処理を行う際のα値等で与えられる。
【００３８】
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外することにより、例えば画像生成のために行う位置の演算処理や、座標変換処理や、描画処理等のその後に行われる処理等の画像生成に関する各種処理を省略することが可能となり、処理負荷の軽減を図ることができる。
【００３９】
（９）本発明は画像生成を行うシステムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【００４０】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００４１】
本発明によれば例えばパーティクルを用いて生成した水しぶきの高さが水面の高さになった場合や、パーティクルを用いて生成した雪等の高さが地面の高さになった場合等に水しぶきや雪を消滅させることができる。
【００４２】
このようにパーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行うことにより、以降の当該パーティクルに関する処理を省略できるため処理負荷を軽減することができる。
【００４３】
またパーティクルの高さによって消滅処理を行うか否かを判断できるため、判断に要する処理負荷が軽くてすむ。従ってパーティクルの高さによって当該パーティクルが可視範囲外になる状態が発生する場合に有効である。
【００４４】
（１０）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とする。
【００４５】
（１１）本発明は画像生成を行うシステムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【００４６】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００４７】
例えば水しぶきが他のオブジェクトに隠れる場合等、水しぶきの描画処理を省略できるので、処理負荷を削減することができる。
【００４８】
（１２）本発明は画像生成を行うシステムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
を含むことを特徴とする。
【００４９】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００５０】
一般にポリゴンオブジェクトに対してデプスキューイング処理を行う場合には、各頂点ごとにその頂点の奥行き値に応じてその頂点色と背景色の合成を行い、奥行き値に応じてその頂点色を変化させる。このためパーティクル集合オブジェクトを構成する各パーティクルオブジェクトの頂点ごとにデプスキューイング処理が必要となるため、処理負荷が著しく増大することになる。
【００５１】
しかし本発明によれば、同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、これにより得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【００５２】
このため１のパーティクル集合オブジェクトに対してベースカラーを求めるための演算は１回だけでよい。パーティクル集合オブジェクトを構成する各パーティクル又はパーティクルオブジェクトの全ての頂点に対してデプスキューング処理により変化する頂点色を演算する場合に比べて大幅に少ない処理負荷でＦＯＧ効果を出すことができる。
【００５３】
（１３）本発明は画像生成を行うシステムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【００５４】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【００５５】
ここにおいてプリミティブとはポリゴンやスプライト等である。
【００５６】
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数が大きくなるように制御することが好ましい。
【００５７】
一般にメモリ資源に制約のあるハードウエアを用いて画像生成を行う場合には、ＶＲＡＭ（フレームバッファ）の実記憶領域の容量も限られているため大きなプリミティブをＶＲＡＭ（フレームバッファ）に描画しようとするとプリミティブの描画途中でページングが発生し処理負荷や処理時間が増大することになる。
【００５８】
本発明によればパーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にはパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることができるので、プリミティブの描画途中でページングが発生するのを防止することができ処理負荷や処理時間を削減することができる。
【００５９】
（１４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とする。
【００６０】
（１５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とする。
【００６１】
（１６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とする。
【図面の簡単な説明】
【００６２】
【図１】本実施形態の画像生成システム（ゲームシステム）のブロック図の一例を示す。
【図２】本実施の形態の画像生成装置により生成したゲーム画像の一例を表している。
【図３】本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【図４】本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【図５】図５（Ａ）（Ｂ）はパーティクルの発生地点単位で描画順序を判断する様子を説明するための図である。
【図６】図６（Ａ）（Ｂ）（Ｃ）はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【図７】図７（Ａ）（Ｂ）（Ｃ）はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【図８】図８（Ａ）（Ｂ）は、ソーティング区間を設定してソーティング処理の必要性を判断する例について説明するための図である。
【図９】本実施の形態において半透明描画処理を行う際の描画順序決定処理の流れの一例について説明するためのフローチャート図である。
【図１０】図１０（Ａ）（Ｂ）（Ｃ）はプリミティブ単位で描画順序を判断する場合について説明するための図である。
【図１１】図１１（Ａ）（Ｂ）（Ｃ）はプリミティブ単位で描画順序を判断する場合について説明するための図である。
【図１２】図１２（Ａ）（Ｂ）はプリミティブの集合として構成されたオブジェクトの単位で描画順序を判断する場合について説明するための図である。
【図１３】図１３（Ａ）（Ｂ）（Ｃ）はオブジェクトの描画順序の決定について説明するための図である。
【図１４】図１４（Ａ）（Ｂ）（Ｃ）はオブジェクトの描画順序の決定について説明するための図である。
【図１５】本実施の形態の半透明描画処理を行う際の描画順序決定処理の流れの他の例について説明するためのフローチャート図である。
【図１６】図１６（Ａ）（Ｂ）はパーティクルの水増しについて説明するための図である。
【図１７】図１７（Ａ）（Ｂ）は子パーティクルの位置及びサイズの決定例について説明するための図である。
【図１８】図１８（Ａ）（Ｂ）は、生成した子パーティクルにパーティクルオブジェクトを割りあてる例について説明するための図である。
【図１９】図１９（Ａ）（Ｂ）はパーティクルの時間的な連続性について説明するための図である。
【図２０】図２０はパーティクルの水増し処理の流れを説明するためのフローチャート図である。
【図２１】図２１は本実施の形態における処理負荷を軽減するための処理の一例を説明するためのフローチャート図である。
【図２２】図２２（Ａ）（Ｂ）は処理負荷が低い場合と処理負荷が高い場合の画像例である。
【図２３】奥行き情報を加味してパーティクル発生地点の数を制御する例について説明するためのフローチャート図である。
【図２４】図２４（Ａ）（Ｂ）は処理負荷が低い場合と処理負荷が高い場合のパーティクル数について説明するための模式的な図である。
【図２５】奥行き情報を加味してパーティクル発生地点から発生するパーティクル数を制御する例について説明するためのフローチャート図である。
【図２６】奥行き情報を加味してパーティクル発生地点から発生させるパーティクルの調節を行う場合の処理の流れについて説明するためのフローチャート図である。
【図２７】図２７（Ａ）はパーティクルに与えられた透明度が所定値以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図であり、図２７（Ｂ）はパーティクルの高さが一定以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図である。
【図２８】パーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合の処理の流れについて説明するためのフローチャート図である。
【図２９】ＦＯＧ効果の処理削減について説明するための図である。
【図３０】図３０（Ａ）（Ｂ）（Ｃ）は、本実施の形態で行うデプスキューング処理について説明するための図である。
【図３１】本実施の形態のポリゴン分割の一例について説明するためのフローチャート図である。
【図３２】パーティクルオブジェクトを構成するスプライト（板ポリゴン）を分割する様子を表した図である。
【図３３】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図３４】図３４（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【００６３】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００６４】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００６５】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００６６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００６７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００６８】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００６９】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００７０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００７１】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００７２】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００７３】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００７４】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００７５】
処理部１００は、ゲーム処理部１１０、画像生成部１２０、音生成部１５０を含む。
【００７６】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００７７】
画像生成部１２０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する処理を行う。
【００７８】
例えば画像生成部１２０はオブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理を行う。
【００７９】
また例えば画像生成部１２０は、ローカル座標系からワールド座標系への座標変換、ワールド座標系から視点座標系への座標変換、スクリーン座標系への透視変換、クリッピングなどの種々のジオメトリ処理（３次元演算）を行う。そして、ジオメトリ処理により得られた描画データ（２次元のプリミティブ面の定義点の位置座標、テクスチャ座標、色（輝度）データ、或いはα値等）は、記憶部１７０のメインメモリ１７２に格納されて、保存される。
【００８０】
また例えば画像生成部１２０は、ジオメトリ処理により得られ、メインメモリ１７２に保存された描画データに基づいて、テクスチャマッピングや色（輝度）データの補間処理や陰面消去などを行いながら、オブジェクトのプリミティブ面をフレームバッファ１７４に描画する処理を行う。これによりオブジェクトが配置されるオブジェクト空間内の所与の視点（仮想カメラ）での画像が生成されるようになる。
【００８１】
また例えば画像生成部１２０は、パーティクルを時間経過に伴い順次発生させたり、移動させたり、消滅させたりする処理を行う。より具体的には、パーティクル（仮想光源プリミティブ）の発生量、発生位置、移動状態（速度、加速度等）又は寿命をランダムに変化させる処理を行う。これにより、水しぶき等の不定形の表示物もリアルに表現できるようになる。
【００８２】
また画像生成部１２０は描画順序決定処理部１３０、パーティクル水増し処理部１３２、パーティクル負荷軽減処理部１３４の少なくともひとつを含む。
【００８３】
描画順序決定処理部１３０は、所与の条件に基づき複数の半透明プリミティブの描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要である判断された場合には複数の半透明プリミティブのソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブの描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて、半透明プリミティブの描画順序を決定する処理を行うようにしてもよい。
【００８４】
また描画順序決定処理部１３０は、所与の条件に基づき複数の半透明プリミティブ集合の描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要であると判断された場合には複数の半透明プリミティブ集合の代表位置に基づき半透明プリミティブ集合単位でソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブ集合の描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて半透明プリミティブ集合の描画順序を決定する処理を行うようにしてもよい。
【００８５】
また描画順序決定処理部１３０は、所与の条件に基づき複数のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトの描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要であると判断された場合には複数のパーティクル発生地点の奥行き情報に基づきパーティクル集合オブジェクトのソーティング処理を行い当該ソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定する処理を行うようにしてもよい。
【００８６】
また描画順序決定処理部１３０は、仮想カメラの位置及び回転の少なくとも一方に基づき前記所定の条件を満たすか否かを判断することを特徴とする画像生成システム。
【００８７】
また描画順序決定処理部１３０は、キャラクタオブジェクトの位置及び回転の少なくとも一方に基づき前記所定の条件を満たすか否かを判断するようにしてもよい。
【００８８】
また描画順序決定処理部１３０は、あらかじめソーティング処理が必要なエリアを設定しておき、仮想カメラ及びキャラクタオブジェクトの少なくとも一方が前記ソーティングが必要なエリアにいるか否かに基づきいて前記所定の条件を満たすかいなかを判断するようにしてもよい。
【００８９】
なお前記ソーティング処理が必要なエリアは、当該エリア内を仮想カメラ及びキャラクタオブジェクトの少なくとも一方が移動すると前記複数の半透明プリミティブ又半透明プリミティブ集合又はパーティクルの発生地点の仮想カメラに対する前後関係が変化する可能性があるエリアにすることが好ましい。
【００９０】
また前記ソーティング処理が必要なエリアは、当該エリア内に仮想カメラ及びキャラクタオブジェクトの少なくとも一方がある場合には半透明プリミティブ又半透明プリミティブ集合又はパーティクルの発生地点から発生するパーティクルによって表現するオブジェクトが表示されない状態が発生するエリアにしてもよい。
【００９１】
また描画順序決定処理部１３０は、複数の半透明プリミティブ集合の代表点の奥行き情報に基づきソーティングし、半透明プリミティブ集合単位に描画順位を決定するようにしてもよい。
【００９２】
また描画順序決定処理部１３０は、所与の発生地点から発生したパーティクル集合によって表現する複数のパーティクル集合オブジェクトを発生地点の奥行き情報に基づきソーティング処理を行いパーティクル集合オブジェクトの描画順位を決定する処理を行うようにしてもよい。
【００９３】
パーティクル水増し処理部１３２は、３次元空間に与えられたパーティクルを親パーティクルとし、親パーティクルの位置座標に基づき発生させる水増し点の座標を演算する処理と、前記水増し点に子パーティクルを生成する処理を行うようにしてもよい。
【００９４】
またパーティクル水増し処理部１３２は、３次元空間に与えられたパーティクルを親パーティクルとし、スクリーン平面へ透視変換された親パーティクルの位置座標に基づきスクリーン平面に発生させる水増し点の座標を演算する処理と、前記スクリーン平面の水増し点に子パーティクルを生成する処理を行うようにしてもよい。
【００９５】
なお水増しして生成される子パーティクルは、親パーティクルの特性情報を引き継ぐようにしてもよい。
【００９６】
またパーティクル水増し処理部１３２は、親パーティクルの奥行き情報を加味して生成する水増し点の位置を決定するようにしてもよい。
【００９７】
またパーティクル水増し処理部１３２は、時間又はフレームの進行を表す情報を加味して生成する水増し点の位置を決定するようにしてもよい。
【００９８】
またパーティクル水増し処理部１３２は、時間又はフレームの進行を表す情報を加味して水増しして生成する子パーティクルの数を制御するようにしてもよい。
【００９９】
またパーティクル水増し処理部１３２は、親パーティクルの奥行き情報に基づいて子パーティクルに割り当てるオブジェクトの大きさを決定するようにしてもよい。
【０１００】
またパーティクル水増し処理部１３２は、時間又はフレームの経過に従って子パーティクルに割り当てるオブジェクトのサイズを変化させるようにしてもよい。
【０１０１】
またパーティクル水増し処理部１３２は、所与の親パーティクルに対してｎ＋１フレーム目に生成する所与子パーティクルは、同一の親パーティクルに対してｎフレーム目に生成した所与の子パーティクルと連続性を有する位置に生成する処理を行うようにしてもよい。
【０１０２】
またパーティクル水増し処理部１３２は、ｎフレーム目の所与の親パーティクルの位置情報（ｘn、ｙn）に対して関数ｆx1、ｆy1を適用して得られた位置情報（ｘn’、ｙn’）に基づきｎフレーム目の所与の子パーティクルの位置を決定した場合、ｎ＋１フレーム目の同一の親パーティクルの位置情報（ｘn+1、ｙn+1）に対して関数ｆx1、ｆy1を適用して得られた位置情報（ｘn+1’、ｙn+1’）に基づきｎ＋１フレーム目の所与の子パーティクルの位置を決定するようにしてもよい。
【０１０３】
またパーティクル水増し処理部１３２は、所与の親パーティクルに対して第１の子パーティクルと第２の子パーティクルを含む複数の子パーティクルを発生させる場合には、第１の子パーティクルと第２の子パーティクルの生成位置は異なる関数を適用して得られた位置情報に基づき決定するようにしてもよい。
【０１０４】
またパーティクル水増し処理部１３２は、親パーティクルの奥行き情報又はパーティクル発生地点の奥行き情報に応じて水増しして生成する子パーティクルの数を制御するようにしてもよい。
【０１０５】
またパーティクル水増し処理部１３２は、画像生成時の処理負荷に関する情報に基づき、水増しして生成する子パーティクルの数を制御するようにしてもよい。
【０１０６】
パーティクル負荷軽減処理部１３４は、画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する処理を行うようにしてもよい。
【０１０７】
なお前記パーティクル数は、一画面に存在するパーティクル数でもよいし所与の発生地点から発生させるパーティクル数でもよい。
【０１０８】
またパーティクル負荷軽減処理部１３４は、パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減するようにしてもよい。
【０１０９】
またパーティクル負荷軽減処理部１３４は、パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減するようにしてもよい。
【０１１０】
パーティクル負荷軽減処理部１３４は、パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減するようにしてもよい。
【０１１１】
またパーティクル負荷軽減処理部１３４は、パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減するようにしてもよい。
【０１１２】
またパーティクル負荷軽減処理部１３４は、パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減するようにしてもよい。
【０１１３】
パーティクル負荷軽減処理部１３４は、パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する処理を行うようにしてもよい。
【０１１４】
またパーティクル負荷軽減処理部１３４は、パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行うようにしてもよい。
【０１１５】
なお前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むようにすることが好ましい。
【０１１６】
またパーティクル負荷軽減処理部１３４は、パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する処理を行うようにしてもよい。
【０１１７】
またパーティクル負荷軽減処理部１３４は、同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用するようにしてもよい。
【０１１８】
またパーティクル負荷軽減処理部１３４は、パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する処理を行うようにしてもよい。
【０１１９】
またパーティクル負荷軽減処理部１３４は、パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくするようにしてもよい。
【０１２０】
またパーティクル負荷軽減処理部１３４は、パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくするようにしてもよい。
【０１２１】
またパーティクル負荷軽減処理部１３４は、パーティクルに割り当てたプリミティブを再分割することで分割数を大きくするようにしてもよい。
【０１２２】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【０１２３】
なお、ゲーム処理部１１０、画像生成部１２０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１２４】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【０１２５】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【０１２６】
２．本実施形態の特徴
図２は本実施の形態の画像生成装置により生成したゲーム画像の一例を表している。本実施の形態ではパーティクルシステムを用いて同図に示すような水しぶきの画像を生成している。
【０１２７】
以下本実施の形態の画像生成装置でパーティクルシステムを用いて水しぶきの画像を生成する場合を例にとり、本発明の各特長について説明する。
【０１２８】
（１）処理の流れ
図３、図４は本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【０１２９】
図３及び図４の処理は画像生成部（図１の１３０）が行う処理である。ここにおいて画像生成部は例えばＣＰＵと描画ユニット（画像生成用の専用チップ）で構成されているものとする。
【０１３０】
図３のステップＳ１０〜Ｓ３０は主にＣＰＵがパーティクルの発生地点単位で行う処理である。
【０１３１】
まず複数の水しぶきの発生地点の奥行き情報に基づき、発生地点単位で描画順序を決定するための処理を行う（ステップＳ１０）。本実施の形態では水しぶきを構成するパーティクルに半透明オブジェクトを割り当てるため、正確に描画するためには仮想カメラから遠くにある発生地点のものから先にフレームバッファに半透明描画する必要がある。このため本実施の形態では発生地点単位で描画順序を決定するための処理を行う。
【０１３２】
ここにおいて本実施の形態では、各フレーム毎に無条件に複数の発生地点のソーティング処理を行うのではなく、各フレームのキャラクタオブジェクト（仮想カメラ）の位置に基づきソーティング処理の必要性を判断し、必要ない場合にはソーティング処理を省略することにより処理の高速化を図っている。（詳細については（２）描画順序決定処理を参照）。
【０１３３】
次に各種パラメータの設定処理を行う（ステップＳ２０）。
【０１３４】
例えば、発生地点単位で各パーティクル集合オブジェクトのベースカラーを決定する処理（詳細については（５）ＦＯＧ効果の処理削減を参照）や、各発生地点から発生させるパーティクル数を決定する処理や各パーティクルの特性（とくに透明度や寿命に関する情報）を決定する処理（詳細については（４）処理負荷を軽減するための処理を参照）を行う。
【０１３５】
そして決定された描画順序に基づき奥のパーティクル発生地点のデータから描画ユニットに転送する（ステップ３０）。
【０１３６】
図４のステップＳ４０〜Ｓ９０は主にベクトルユニットがパーティクル単位に行う処理である。
【０１３７】
まずフレーム番号に基づきパーティクルの透明度を減少させる。そして透明度が負になった場合には処理を打ち切る。またフレーム番号に基づきパーティクルに割り当てるスプライト（一枚ポリゴン）のサイズを拡大させる（ステップＳ４０）。
【０１３８】
次にフレーム番号に基づき３次元空間を所与の規則に従って移動するパーティクルの移動地点の位置座標を演算する（ステップＳ５０）。
【０１３９】
次に移動後のパーティクル（これを親パーティクルとする）の位置座標について透視変換を行いスクリーン平面に配置する（ステップＳ６０）。
【０１４０】
次に透視変換後の親パーティクルの周囲に子パーティクルを水増生成する処理をおこなう（ステップＳ７０）。
【０１４１】
次に水増しされた子パーティクルにスプライト（一枚ポリゴン）を割り当てる。このとき発生地点と仮想カメラからの距離に応じてポリゴン分割を行う（ステップＳ８０）。
【０１４２】
次に求まったスプライトポリゴンに、色とテクスチャコーディネイト座標を付加してパケットを生成し、描画する（ステップＳ９０）。
【０１４３】
（２）描画順序決定処理
まず本実施の形態において水しぶきの画像を生成する際に行う描画順序の決定処理について説明する。
【０１４４】
一般に半透明描画処理を行う際の描画順序は例えばポリゴンオブジェクトの場合にはポリゴン単位というようにプリミティブ単位に決定するが、本実施の形態では、パーティクルの発生地点ごとに描画順序を決定している。
【０１４５】
図５（Ａ）（Ｂ）はパーティクルの発生地点単位で描画順序を判断する様子を説明するための図である。
【０１４６】
図５（Ａ）は仮想カメラと発生地点Ｈ１〜Ｈ４の位置関係を表している。Ｍ１〜Ｍ４は発生地点Ｈ１〜Ｈ４から発生したパーティクルによって表現される水しぶき（パーティクル集合オブジェクト）を模式的に示したものである。
【０１４７】
本実施の形態ではパーティクルの発生地点単位で半透明描画に必要なソーティング処理を行う。例えば図５（Ａ）の場合には仮想カメラ２１０から見た場合の発生地点Ｈ１〜Ｈ４の前後関係は、奥から順にＨ４、Ｈ３、Ｈ２、Ｈ１となる（図５（Ｂ）参照）。従って各水しぶきＭ１〜Ｍ４をαブレンディング処理を行ってフレームバッファ２２０に半透明描画する際には、Ｍ４、Ｍ３、Ｍ２、Ｍ１の順で発生地点の奥行き情報に基づき水しぶき単位で奥から先に描画する。
【０１４８】
例えば発生地点Ｈ３から発生するパーティクルに割り当てられたオブジェクトＯＰ３は、発生地点Ｈ４から発生するパーティクルに割り当てられたオブジェクトＯＰ４の後に描画される。
【０１４９】
このように本実施の形態では複数のパーティクル発生地点をその奥行き情報に基づきソーティングし、発生地点単位に描画順位を決定する。そして決定された描画順位に従い複数のパーティクル発生地点から発生したパーティクルに割り当てられた半透明プリミティブの半透明描画処理を行う。
【０１５０】
これにより描画順位の高い（より奥に位置する）発生地点から発生したパーティクルに割り当てられた半透明プリミティブは描画順位の低い（より手前に位置する）発生地点から発生したパーティクルに割り当てられた半透明プリミティブより先に半透明描画処理を行うことができる。
【０１５１】
このようにすると各パーティクル単位にソーティングを行い描画順序を決定する場合に比べ、大幅に処理負荷を軽減することができる。
【０１５２】
図６（Ａ）（Ｂ）（Ｃ）及び図７（Ａ）（Ｂ）（Ｃ）はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【０１５３】
図６（Ａ）及び図７（Ａ）は仮想カメラの移動前後における仮想カメラとパーティクルの発生地点との位置関係を表している。Ｍ１〜Ｍ４は発生地点Ｈ１〜Ｈ４から発生したパーティクルによって表現される水しぶき（パーティクル集合オブジェクト）を模式的に示したものである。２１０−１は移動前の仮想カメラであり、２１０−２は移動後の仮想カメラである。
【０１５４】
例えば図６（Ａ）の場合には仮想カメラ２１０−１から見た場合のパーティクルの発生地点Ｈ１〜Ｈ４の前後関係は、奥から順にＨ４、Ｈ３、Ｈ２、Ｈ１となる（図６（Ｂ）参照）。
【０１５５】
また仮想カメラ２１０−２から見た場合の半透明ポリゴンＨ１〜Ｈ４の前後関係は、奥から順にＨ３、Ｈ１、Ｈ２、Ｈ４となる（図６（Ｃ）参照）。
【０１５６】
このように発生地点と仮想カメラの位置関係の変化により仮想カメラに対する発生地点の奥行き関係が変位する場合にはソーティング処理が必要となる。
【０１５７】
ところが例えば図７（Ａ）の場合には仮想カメラ２１０’−１から見た場合のパーティクルの発生地点Ｈ１〜Ｈ４の前後関係は、奥から順にＨ４、Ｈ３、Ｈ２、Ｈ１となり（図７（Ｂ）参照）、仮想カメラ２１０’−２から見た場合のパーティクルの発生地点Ｈ１〜Ｈ４の前後関係も、奥から順にＨ４、Ｈ３、Ｈ２、Ｈ１となる（図７（Ｃ）参照）。従って仮想カメラが図７（Ａ）のように動くような場合には、仮想カメラ２１０’−２から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ２１０’−１から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【０１５８】
従って本実施の形態では、所与の条件に基づき複数のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトの描画順序を決定するためのソーティング処理の必要性を判断し、ソーティング処理が必要であると判断された場合には複数のパーティクル発生地点の奥行き情報に基づきパーティクル集合オブジェクトのソーティング処理を行い当該ソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定する処理を行う。
【０１５９】
図８（Ａ）（Ｂ）は、ソーティング区間を設定してソーティング処理の必要性を判断する例について説明するための図である。
【０１６０】
図８（Ａ）の２３０はプレーヤキャラクタであり、２４０はプレーヤキャラクタの移動ルートとなるゲーム空間に設けられた道である。プレーヤキャラクタ２３０は、予め決められた移動ルート２４０（ゲーム空間に設けられた道）上を進行し、仮想カメラは前記プレーヤキャラクタ２３０に追従するように構成されている。
【０１６１】
Ｈ１〜Ｈ４は水しぶきの発生地点であり、Ｍ１〜Ｍ４は発生地点Ｈ１〜Ｈ４から発生したパーティクルによって表現される水しぶき（パーティクル集合オブジェクト）の範囲を模式的に示したものである。
【０１６２】
また２５０−１は前記移動ルート上に設けられたソーティング区間である。図８（Ａ）に示すように道が大きくカーブしている区間がソーティング区間２５０−１として設定されている。かかる区間を移動する仮想カメラから水しぶきＭ１〜Ｍ４を見る場合には、図６（Ａ）〜（Ｃ）で説明したように仮想カメラに対する水しぶきの奥行き関係が変化する可能性があるからである。
【０１６３】
このように本実施の形態では、仮想カメラが移動すると水しぶき（パーティクル集合オブジェクト）の発生地点の仮想カメラに対する前後関係が変化する可能性があるエリアをソーティング区間として指定しておく。
【０１６４】
そして各フレームにおいてプレーヤキャラクタ２３０の位置が前記ソーティング区間内にある場合にはソーティング処理の必要性ありと判断し、プレーヤキャラクタ２３０の位置が前記ソーティング区間内にない場合には水しぶきの発生地点のソーティング処理の必要性なしと判断する。
【０１６５】
例えばソーティング区間２５０−１はスタート地点からの道のりで指定することができる。また予め決められた移動ルート２４０（ゲーム空間に設けられた道）上を進行するプレーヤキャラクタもスタート地点から道のり値を現在位置として有している。従って例えばソーティング区間２５０−１として（２０００〜２０５０）が設定されている場合には、プレーヤキャラクタの現在位置の道のり値ｘが２０００＜ｘ＜２０５０である場合にはソーティング処理の必要性ありと判断される。
【０１６６】
このようにすることでプレーヤキャラクタがソーティング区間以外に位置する場合にはソーティング処理を省略することができるため処理負荷を軽減することができる。
【０１６７】
図８（Ｂ）のソーティング区間２５０−２は、移動ルート２４０上で岩オブジェクト２６０により視界がさえぎられて水しぶきが見えない区間に設定されている。すなわちソーティング区間２５０−２をプレーヤキャラクタが移動中は、プレーヤキャラクタに追従する仮想カメラが捕らえる映像には岩オブジェクト２６０にさえぎられて水しぶきはＭ１〜Ｍ４は移らない。
【０１６８】
このように本実施の形態では、水しぶきが表示されない状態が発生するエリアをソーティング区間として設定することにより、ソーティング処理に伴い描画順番が入れ替わることによるちらつきを防止することができる。
【０１６９】
図９は本実施の形態において半透明描画処理を行う際の描画順序決定処理の流れの一例について説明するためのフローチャート図である。
【０１７０】
まずキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいるか否かに基づきソーティング処理の必要性を判断する（ステップＳ１１０）。
【０１７１】
そしてキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいる場合には、複数のパーティクル発生地点の奥行き情報に基づき、パーティクル発生地点単位でソーティング処理を行い、パーティクル発生地点単位で描画順序を決定する（ステップＳ１２０）。
【０１７２】
またキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいない場合には、前回のソーティング処理の処理結果に基づき、パーティクル発生地点単位で描画順序を決定する（ステップＳ１３０）。
【０１７３】
次に決定された描画順序に従い、複数のパーティクル発生地点から発生したパーティクル集合オブジェクトの半透明描画処理を行う（ステップＳ１４０）。
【０１７４】
なお図８（Ａ）（Ｂ）及び図９では、ソーティング区間を設定してソーティング処理の必要性を判断する場合を例にとり説明したがこれに限られない。例えば仮想カメラの配置の変化が所定範囲内か否かに基づきソーティング処理の必要性を判断するような場合でもよい。
【０１７５】
また上記実施の形態では、水しぶきを半透明描画する際に水しぶきを表現するためのパーティクルの発生地点単位で描画順序を決定する場合を例にとり説明したがこれに限られない。
【０１７６】
例えば半透明描画処理を行う際にプリミティブ単位で描画順序を決定する場合でもよい。
【０１７７】
図１０（Ａ）（Ｂ）（Ｃ）及び図１１（Ａ）（Ｂ）（Ｃ）はプリミティブ単位で描画順序を判断する場合について説明するための図である。ここにおいてプリミティブとは例えばポリゴンやスプライト等である。
【０１７８】
図１０（Ａ）及び図１１（Ａ）は仮想カメラの移動前後における仮想カメラとプリミティブとの位置関係を表している。Ｐ１〜Ｐ４は例えば半透明ポリゴンであるとする。２１０−１は移動前の仮想カメラであり、２１０−２は移動後の仮想カメラである。
【０１７９】
例えば図１０（Ａ）の場合には仮想カメラ２１０−１から見た場合の半透明ポリゴンＰ１〜Ｐ４の前後関係は、奥から順にＰ４、Ｐ３、Ｐ２、Ｐ１となる（図１０（Ｂ）参照）。
【０１８０】
また仮想カメラ２１０−２から見た場合の半透明ポリゴンＰ１〜Ｐ４の前後関係は、おくから順にＰ３、Ｐ１、Ｐ２、Ｐ４となる（図１０（Ｃ）参照）。
【０１８１】
このように半透明ポリゴンと仮想カメラの位置関係の変化により仮想カメラに対する半透明ポリゴンの奥行き関係が変位する場合にはソーティング処理が必要となる。
【０１８２】
ところが例えば図１１（Ａ）の場合には仮想カメラ２１０’−１から見た場合の半透明ポリゴンのＰ１〜Ｐ４の前後関係は、奥から順にＰ４、Ｐ３、Ｐ２、Ｐ１となり（図１１（Ｂ）参照）、仮想カメラ２１０’−２から見た場合の半透明ポリゴンのＰ１〜Ｐ４の前後関係も、奥から順にＰ４、Ｐ３、Ｐ２、Ｐ１となる（図１１（Ｃ）参照）。従って仮想カメラが図１１（Ａ）のように動くような場合には、仮想カメラ２１０’−２から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ２１０’−１から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【０１８３】
従って所与の条件に基づき複数の半透明プリミティブの描画順序を決定するためのソーティング処理の必要性を判断し、ソーティング処理が必要である判断された場合には複数の半透明プリミティブのソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブの描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて、半透明プリミティブの描画順序を決定するようにしてもよい。
【０１８４】
図１２（Ａ）（Ｂ）はプリミティブの集合として構成されたオブジェクトの単位で描画順序を判断する場合について説明するための図である。
【０１８５】
図１２（Ａ）は仮想カメラと半透明オブジェクトＯ１〜Ｏ４の位置関係を表している。Ｐ３１、Ｐ３２は半透明オブジェクトＯ３に属する半透明ポリゴンであるとする。またＰ４１、Ｐ４２は半透明オブジェクトＯ４に属する半透明ポリゴンであるとする。
【０１８６】
かかる場合に本実施の形態では、オブジェクト単位でソーティング処理を行う。例えば図１２（Ａ）の場合には仮想カメラ２１０−１から見た場合の半透明オブジェクトＯ１〜Ｏ４の前後関係は、奥から順にＯ４、Ｏ３、Ｏ２、Ｏ１となる（図１２（Ｂ）参照）。従って各オブジェクトＯ１〜Ｏ４をαブレンディング処理を行ってフレームバッファ２２０に半透明描画する際には、Ｏ４、Ｏ３、Ｏ２、Ｏ１の順で、オブジェクト単位で奥から先に描画する。
【０１８７】
すなわちオブジェクトＯ３に属するポリゴンＰ３１、Ｐ３２はオブジェクトＯ４に属するポリゴンＰ４１、Ｐ４２の後に描画される。
【０１８８】
図１３（Ａ）（Ｂ）（Ｃ）及び図１４（Ａ）（Ｂ）（Ｃ）はオブジェクトの描画順序の決定について説明するための図である。
【０１８９】
図１３（Ａ）及び図１４（Ａ）は仮想カメラの移動前後におけるオブジェクトとの位置関係を表している。Ｏ１〜Ｏ４は例えば半透明オブジェクトであるとする。２１０−１は移動前の仮想カメラであり、２１０−２は移動後の仮想カメラである。
【０１９０】
例えば図１３（Ａ）の場合には仮想カメラ２１０−１から見た場合の半透明オブジェクトＯ１〜Ｏ４の前後関係は、奥から順にＯ４、Ｏ３、Ｏ２、Ｏ１となる（図１３（Ｂ）参照）。
【０１９１】
また仮想カメラ２１０−２から見た場合の半透明ポリゴンＯ１〜Ｏ４の前後関係は、奥から順にＯ３、Ｏ１、Ｏ２、Ｏ４となる（図１３（Ｃ）参照）。
【０１９２】
このようにオブジェクトと仮想カメラの位置関係の変化により仮想カメラに対するオブジェクトの奥行き関係が変位する場合にはソーティング処理が必要となる。
【０１９３】
ところが例えば図１４（Ａ）の場合には仮想カメラ２１０’−１から見た場合のオブジェクトＯ１〜Ｏ４の前後関係は、奥から順にＯ４、Ｏ３、Ｏ２、Ｏ１となり（図１４（Ｂ）参照）、仮想カメラ２１０’−２から見た場合のオブジェクトのＯ１〜Ｏ４の前後関係も、奥から順にＯ４、Ｏ３、Ｏ２、Ｏ１となる（図１４（Ｃ）参照）。従って仮想カメラが図１４（Ａ）のように動くような場合には、仮想カメラ２１０’−２から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ２１０’−１から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【０１９４】
従って本実施の形態では、所与の条件に基づき複数の半透明プリミティブ集合（オブジェクト）の描画順序を決定するためのソーティング処理の必要性を判断して、ソーティング処理が必要であると判断された場合には複数の半透明プリミティブ集合（オブジェクト）の代表位置に基づき半透明プリミティブ集合単位でソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブ集合（オブジェクト）の描画順序を決定し、ソーティング処理が必要ない判断された場合には前回のソーティング処理結果に基づいて半透明プリミティブ集合（オブジェクト）の描画順序を決定する処理を行う。
【０１９５】
図１５は本実施の形態の半透明描画処理を行う際の描画順序決定処理の流れの他の例について説明するためのフローチャート図である。
【０１９６】
まず仮想カメラの配置の変化が所定範囲内か否かに基づきソーティング処理の必要性を判断する（ステップＳ２１０）。ここにおいて仮想カメラの配置の変化とは例えば仮想カメラの位置や向き（回転）の変化である。
【０１９７】
そして仮想カメラの配置の変化が所定範囲内である場合には、奥行き情報に基づきオブジェクトのソーティング処理を行い、オブジェクト単位で描画順序を決定する（ステップＳ２２０）。
【０１９８】
また仮想カメラの配置の変化が所定範囲内でない場合には、前回のソーティング処理の処理結果に基づき、オブジェクト単位で描画順序を決定する（ステップＳ２３０）。
【０１９９】
次に決定された描画順序に従い、オブジェクトを構成するプリミティブの半透明描画処理を行う（ステップＳ２４０）。
【０２００】
（３）パーティクルの水増し処理
次に本実施の形態において水しぶきの画像を生成する際に行うパーティクルの水増し処理について説明する。
【０２０１】
図１６（Ａ）（Ｂ）はパーティクルの水増しについて説明するための図である。
【０２０２】
図１６（Ａ）のＰＰ１〜ＰＰ４は既存のパーティクルシステムを用いて所与のフレームに発生させたパーティクルである。各パーティクルは、色や寿命などの特性を有し、所与の規則（エミッターによって与えられる）や作用する力（フォース）によって、発生、移動、消滅すもので、各フレームにおけるパーティクルＰＰ１〜ＰＰ４の位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの３次元空間における位置を決定する演算を行い決定されたものである。
【０２０３】
ここにおいてリアルで見栄えのよい水しぶきを作成するためにはより多くのパーティクルを発生させることが好ましい。しかし既存のパーティクルシステムを用いてパーティクルを発生させるためには各パーティクルについて前記演算が必要となるため、発生させるパーティクル数が増えるとその分演算量が増大することになる。
【０２０４】
そこで本実施の形態では、図１６（Ｂ）に示すように、３次元空間に与えられたパーティクルＰＰ１〜ＰＰ４を親パーティクルとし、スクリーン平面へ透視変換された親パーティクルＰＰ１〜ＰＰ４の位置座標に基づきスクリーン平面に発生させた水増し点に子パーティクルＣＰ１１〜ＣＰ４４を生成する。
【０２０５】
子パーティクルＣＰ１１〜ＣＰ１４は親パーティクルＰＰ１から水増しして生成したものであり、子パーティクルＣＰ２１〜ＣＰ２４は親パーティクルＰＰ２から水増しして生成したものであり、子パーティクルＣＰ３１〜ＣＰ３４は親パーティクルＰＰ３から水増しして生成したものであり、子パーティクルＣＰ４１〜ＣＰ４４は親パーティクルＰＰ４から水増しして生成したものである。
【０２０６】
このようにすると、子パーティクルについては既存のパーティクルシステムを用いて３次元空間にその位置を決定するまでの演算処理を省略できるので少ない演算付加でボリュームのある水しぶきの画像を生成することができるようになる。
【０２０７】
図１７（Ａ）（Ｂ）は子パーティクルの位置及びサイズの決定例について説明するための図である。
【０２０８】
図１７（Ａ）のＰＰ１（Ｘ１、Ｙ１）はｎフレーム目にスクリーン平面３１０に透視変換されたパーティクル（これを親パーティクルとする）の位置座標である。
【０２０９】
本実施の形態ではスクリーン平面へ透視変換された親パーティクルＰＰ１の位置座標に基づきスクリーン平面に発生させる水増し点の座標を演算し、当該水増し点に子パーティクルを生成する。
【０２１０】
ここで第１の水増し点Ｍ１１の座標を（ｘ１１、ｙ１１）、第２の水増し点のＭ１２の座標を（ｘ１２、ｙ１２）とすると、ｘ１１、ｙ１１、ｘ１２、ｙ１２は以下のようにして求められる。
【０２１１】
ｘ１１＝Ｘ１＋ｆ（Ｓ、ｔ、乱数１）  …（１）
ｙ１１＝Ｙ１＋ｆ（Ｓ、ｔ、乱数１）  …（２）
ｘ１２＝Ｘ２＋ｆ（Ｓ、ｔ、乱数２）  …（３）
ｙ１２＝Ｙ２＋ｆ（Ｓ、ｔ、乱数２）  …（４）
このようにして求められた第１の水増し点Ｍ１１の座標（ｘ１１、ｙ１１）、第２の水増し点Ｍ１２の座標（ｘ１２、ｙ１２）が子パーティクルＣＰ１１、ＣＰ１２の生成位置となる。すなわち（ｘ１１、ｙ１１）、（ｘ１２、ｙ１２）が子パーティクルＣＰ１１及びＣＰ１２の位置座標となる。
【０２１２】
ここでＳは奥行き値ｚに関連して与えられる倍率等を表す値であり、ｔはフレームナンバーである。親パーティクルＰＰ１から子パーティクルＣＰ１１、ＣＰ１２までの距離を例えばｌ１、ｌ２とすると、（１）〜（４）を使って求めることにより、奥行き値やフレーム番号に応じて親パーティクルから離れた距離ｌ１、ｌ２に子パーティクルＣＰ１１、ＣＰ１２を生成することができる。
【０２１３】
また乱数１、乱数２は使用する乱数の乱数列における位置を表しており、連続する複数のフレームにおいて、第１の子パーティクルには常に乱数１、第２の子パーティクルには常に乱数２を使用することにより、連続する複数のフレームにおいて子パーティクルの軌跡に連続性を持たせることができる。
【０２１４】
また図１７（Ｂ）は透視変換時に親パーティクルの奥行き値がｚ＝１００である場合の子パーティクルの生成例について説明するための図である。
【０２１５】
ここでＣＰ’１１（ｘ１１’、ｙ１１’）、ＣＰ’１２（ｘ’１２、ｙ’１２）を、親パーティクルの奥行き値がｚ＝１００である場合の前記親パーティクルの位置座標ＰＰ１（Ｘ１、Ｙ１）に基づきスクリーン平面３１０に生成した子パーティクルＣＰ’１１、ＣＰ’１２の位置座標であるとする。このときは図１７（Ｂ）に示すように、図１７（Ａ）の場合に比べて、子パーティクルが位置が親パーティクルに近い位置に生成される。
【０２１６】
すなわち親パーティクルＰＰ１から子パーティクルＣＰ’１１、ＣＰ’１２までの距離を例えばｌ’１、ｌ’２とすると、ｌ’１＜ｌ１、ｌ’２＜ｌ２となる。
【０２１７】
このように本実施の形態では親パーティクルの奥行き値（ｚ値）が大きい場合（親パーティクルが仮想カメラから離れた位置にある場合）には近い位置に子パーティクルを生成し、親パーティクルの奥行き値（ｚ値）が小さい場合（親パーティクルが仮想カメラから近い位置にある場合）には離れた位置に子パーティクルを生成する。従って親パーティクルの奥行き値（ｚ値）に応じて自然な遠近関係を有する位置に子パーティクルを生成することができる。
【０２１８】
また本実施の形態ではフレームナンバーが大きくなるにつれ（パーティクルが発生してからの時間が長くなるにつれ）、親パーティクルから離れた位置に子パーティクルを生成する。このようにすることで時間が経過するにつれ水しぶきが広がっていく様子を表現することができる。
【０２１９】
図１８（Ａ）（Ｂ）は、生成した子パーティクルにパーティクルオブジェクトを割りあてる例について説明するための図である。
【０２２０】
図１８（Ａ）は子パーティクルＣＰにパーティクルオブジェクトとしてスプライト３５０を割り当てる様子を表している。スプライトは２頂点ＳＶ１、ＳＶ２を与えることにより生成することができるので、親パーティクルの奥行き値に応じて決定されるスプライト３５０のサイズに基づき、子パーティクルＣＰの周囲に２頂点ＳＶ１、ＳＶ２の位置を決定する。
【０２２１】
ここにおいて子パーティクルＣＰからスプライトの２頂点ＳＶ１、ＳＶ２までの移動距離をｒ１とすると、以下の式で与えられる。
【０２２２】
ｒ１  ＝  ローカルパーティクルサイズ  ×  Ｓ
ここにおいてローカルパーティクルサイズとはローカル座標系においてパーティクルに割り当てるパーティクルオブジェクトのサイズを表すものである。このようにして移動距離をｒ１を求めることにより、親パーティクルの奥行き値（ｚ値）が大きくなるにつれ（親パーティクルが仮想カメラから離れるにつれ）、子パーティクルに割り当てるスプライトのサイズを小さくすることができる。従って親パーティクルの奥行き値（ｚ値）に応じて自然な遠近関係を有する大きさのスプライトを子パーティクルに割り当てることができる。
【０２２３】
なお子パーティクルＣＰにパーティクルオブジェクトとしてスプライト３５０を与える場合に、子パーティクルＣＰの位置をスプライト３５０の１の頂点ＳＶ１として、子パーティクルＣＰの周囲に他の頂点ＳＶ２の位置を決定するようにしてもよい。このようにするとスプライト３５０の１の頂点ＳＶ１の位置を決定する演算が省略できるので処理負荷を削減することができる。
【０２２４】
図１８（Ｂ）は子パーティクルＣＰにパーティクルオブジェクトとしてポリゴンオブジェクト３６０を割り当てる様子を表している。当該ポリゴンオブジェクト３６０はＰＶ１〜ＰＶ８の８頂点を与えることにより生成することができるので、親パーティクルの奥行き値に応じて決定されるポリゴンオブジェクトのサイズに基づき子パーティクルＣＰの周囲に８頂点ＰＶ１〜ＰＶ８の位置を決定する。
【０２２５】
ここにおいて子パーティクルからポリゴンオブジェクトの８頂点ＰＶ１〜ＰＶ８までの移動距離をｒ２とすると、以下の式で与えられる。
【０２２６】
ｒ２  ＝  ローカルパーティクルサイズ  ×  Ｓ
ここにおいてローカルパーティクルサイズとはローカル座標系においてパーティクルに割り当てるパーティクルオブジェクトのサイズを表すものである。このようにして移動距離をｒ２を求めることにより、親パーティクルの奥行き値（ｚ値）が大きくなるにつれ（親パーティクルが仮想カメラから離れるにつれ）、子パーティクルに割り当てるポリゴンオブジェクトのサイズを小さくすることができる。従って親パーティクルの奥行き値（ｚ値）に応じて自然な遠近関係を有する大きさのポリゴンオブジェクトを子パーティクルに割り当てることができる。
【０２２７】
図１９（Ａ）（Ｂ）はパーティクルの時間的な連続性について説明するための図である。図１９（Ａ）はｔ＝１〜ｔ＝６における親パーティクルと子パーティクルの様子を模式的に表したものである。ここでｔは時間の経過を表すパラメータであり、例えばフレーム番号等である。
【０２２８】
ここでｔ＝１，２…におけるスクリーン平面３１０−１、３１０−１…の親パーティクルの位置をＰＰｔ１、ＰＰｔ２…とし、第１の子パーティクルの位置をＣＰ１ｔ１、ＣＰ１ｔ２…、第２の子パーティクルの位置をＣＰ２ｔ１、ＣＰ２ｔ２…とする。
【０２２９】
同図に示すように本実施の形態では所与の親パーティクルに対してｎ＋１フレーム目に生成する子パーティクルは、同一の親パーティクルに対してｎフレーム目に生成した所与の子パーティクルと連続性を有する位置に生成される。
【０２３０】
本実施の形態では、例えば第１の子パーティクルのｔ＝１，２…における位置をｈ＝ｆ１（ｔ）からなる第１の軌跡関数３７０（図１９（Ｂ）参照）を用いて生成し、第２の子パーティクルのｔ＝１，２…における位置をｈ＝ｆ２（ｔ）からなる第２の軌跡関数３８０（図１９（Ｂ）参照）を用いて生成する。このようにすることにより、第１の子パーティクル及び第２の子パーティクルに前後のフレームで連続した軌跡を描かせることができる。
【０２３１】
図２０はパーティクルの水増し処理の流れを説明するためのフローチャート図である。
【０２３２】
まず所与のパーティクルシステムを用いて３次元空間に当該フレームのパーティクルを生成する（ステップＳ３１０）。各パーティクルは、所与のパーティクルシステムによって与えられた色や寿命などの特性を有し、所与の規則（エミッターによって与えられる）や作用する力（フォース）に基づき３次元空間における位置を決定する演算を行い生成されたものである。
【０２３３】
次に３次元空間のパーティクルをスクリーン平面に透視変換する（ステップＳ３２０）。
【０２３４】
次にスクリーン平面のパーティクルを親パーティクルとして、親パーティクルの位置に基づき水増し点の座標を演算する（ステップＳ３３０）。例えば図１７（Ａ）（Ｂ）で説明した手法で水増し点の位置座標を演算するようにしてもよい。
【０２３５】
次に水増し点に子パーティクルを生成する（ステップＳ３４０）。ここで子パーティクルは親パーティクルの色や寿命などの特性情報を引き継ぐようする。
【０２３６】
次に子パーティクルにパーティクルオブジェクトを割り当てる（ステップＳ３５０）。図１８（Ａ）（Ｂ）で説明したようにパーティクルオブジェクトとしてスプライトやポリゴンオブジェクトを割り当てることができる。例えば半透明テクスチャを張ったスプライトポリゴンを使用することによりリアルな水しぶきの画像を生成することができる。
【０２３７】
なお上記実施の形態では子パーティクルにパーティクルオブジェクトとしてスプライトやポリゴンオブジェクトを割り当てる場合を例にとり説明したがこれに限られない。例えば自由曲面の制御点や他のプリミティブを割り当てる場合でもよい。
【０２３８】
（４）処理負荷を軽減するための処理
図２１は本実施の形態における処理負荷を軽減するための処理の一例を説明するためのフローチャート図である。
【０２３９】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する（ステップ４１０）。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやＣＰＵクロック等により与えられる１フレームあたりの描画速度等で与えられる。
【０２４０】
そして処理負荷が高い場合には、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを制御するパラメータを調節する（ステップＳ４２０、Ｓ４３０）。処理負荷が高いか否かは、処理負荷情報に基づき判断される。
【０２４１】
次に奥行き情報を加味してパーティクル発生地点の数を制御する例について説明する。
【０２４２】
図２２（Ａ）（Ｂ）は処理負荷が低い場合と処理負荷が高い場合の画像例である。本実施の形態では、処理負荷が低い場合には岩等にあたって発生する多数の水しぶきを生成する（図２２（Ａ）参照）。しかし処理負荷情報により処理負荷が高いと判断した場合には遠くにある水しぶきを画像生成の対象外とする。すなわち図２２（Ｂ）において×印のつけられた水しぶきの画像を生成しないか又はパラメータの値を調整して処理負荷を軽減する。遠いか否かは水しぶき発生地点の奥行き情報に基づき判断する。このようにすることにより×印のついた水しぶきについては、画像生成に必要なパーティクル発生処理から描画処理に至る一連の画像生成処理を全て省略できるので、処理負荷の軽減を図ることができる。
【０２４３】
図２３は奥行き情報を加味してパーティクル発生地点の数を制御する例について説明するためのフローチャート図である。
【０２４４】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する（ステップＳ５１０）。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやＣＰＵクロック等により与えられる１フレームあたりの描画速度等で与えられる。
【０２４５】
そして処理負荷が高い場合には、パーティクル発生地点の奥行き情報を取得して、パーティクル発生地点の奥行き情報に基づき、仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合によって表現するパーティクル集合オブジェクトを優先して画像生成の対象とする。（ステップＳ５２０、５３０、５４０）。
【０２４６】
次に奥行き情報を加味してパーティクル発生地点から発生させるパーティクル数の調節を行う例について説明する。
【０２４７】
図２４（Ａ）（Ｂ）は処理負荷が低い場合と処理負荷が高い場合のパーティクル数について説明するための模式的な図である。図２４（Ａ）の４１０は水しぶきを表現するパーティクル集合オブジェクトであり、４１２はパーティクル集合オブジェクトを構成するパーティクルオブジェクトである。
【０２４８】
本実施の形態では、処理負荷が低い場合にはパーティクル発生地点から多数のパーティクルが生成され、その結果多数のパーティクルオブジェクトの画像が生成される（図２４（Ａ）参照）。
【０２４９】
しかし処理負荷情報により処理負荷が高いと判断した場合には遠くにあるパーティクル発生地点から発生させるパーティクル数を削減する。
【０２５０】
図２４（Ｂ）の４１０’は処理負荷が高い場合の遠くにある発生地点から発生させたパーティクルによって表現された水しぶきを表現するパーティクル集合オブジェクトである。遠いか否かは水しぶき発生地点の奥行き情報に基づき判断する。４１０’は発生させるパーティクル数が４１０の場合に比べて削減されているので、４１０に比べて少ないパーティクルオブジェクトの画像が生成される（図２４（Ｂ）参照）。
【０２５１】
図２５は奥行き情報を加味してパーティクル発生地点から発生するパーティクル数を制御する例について説明するためのフローチャート図である。
【０２５２】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する（ステップ６１０）。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやＣＰＵクロック等により与えられる１フレームあたりの描画速度等で与えられる。
【０２５３】
そして処理負荷が高い場合には、パーティクル発生地点の奥行き情報を取得して、パーティクル発生地点の奥行き情報に基づき、仮想カメラから離れたパーティクル発生地点から優先して発生するパーティクル数を削減する処理を行う（ステップＳ６２０、６３０、６４０）。パーティクル数を削減する処理とは例えば発生させるパーティクル数を制御するためのパラメータの値を変更する処理等である。
【０２５４】
図２６は奥行き情報を加味してパーティクル発生地点から発生させるパーティクルの調節を行う場合の処理の流れについて説明するためのフローチャート図である。
【０２５５】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する（ステップ７１０）。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやＣＰＵクロック等により与えられる１フレームあたりの描画速度等で与えられる。
【０２５６】
そして処理負荷が高い場合には、パーティクルの奥行き情報を取得して、パーティクルの奥行き情報に基づき、仮想カメラから離れたパーティクルから優先して寿命を短くする処理を行う（ステップＳ７２０、７３０、７４０）。例えば奥行き情報に基づきパーティクルのソーティング処理を行い遠いほうから所定個数だけパーティクルの寿命を短く設定するようにしてもよい。
【０２５７】
次にパーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合について説明する。
【０２５８】
図２７（Ａ）はパーティクルに与えられた透明度が所定値以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図であり、図２７（Ｂ）はパーティクルの高さが一定以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図である。
【０２５９】
図２７（Ａ）のＰｔ１、Ｐｔ２、Ｐｔ３は所与のパーティクル発生地点から発生したパーティクルの時間的な変化を表した図である。ここでパーティクルは特性情報として透明度情報（α値）を有しており、当該透明度情報（α値）は時間とともに減少するように制御される。例えばＰｔ１ではα＝１２８であり、Ｐｔ２ではα＝５２であり、Ｐｔ３ではα＝０である。
【０２６０】
当該透明度情報（α値）はパーティクル又はパーティクルに割り当てたパーティクルオブジェクトをαブレンディング処理等を行い半透明描画する際に用いられるものである。ここにおいて例えばα値が０である場合にはパーティクル又はパーティクルに割り当てたパーティクルオブジェクトを半透明描画しても透明で表示されない。
【０２６１】
そこで本実施の形態では、パーティクルの特性情報として与えられた透明度情報（α値）が０以下になった場合には、当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するようにしている。
【０２６２】
なお上記実施の形態では、パーティクルの特性情報として与えられた透明度情報（α値）が０以下になった場合に当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略する場合を例にとり説明したがこれに限られない。例えばパーティクルの特性情報として与えられた透明度情報（α値）が所定値になった場合に当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するような場合でもよい。
【０２６３】
図２７（Ｂ）のＰ’ｔ１、Ｐ’ｔ２、Ｐ’ｔ３は所与のパーティクル発生地点から発生したパーティクルの時間的な高さの変化を表した図である。５１０は基準面の高さである。ここで基準面とは例えば水面や地面等である。本実施の形態では海面の高さを基準面の高さとして、発生したパーティクルの高さが基準面の高さ以下になった場合には、当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するようにしている。
【０２６４】
図２８はパーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合の処理の流れについて説明するためのフローチャート図である。
【０２６５】
ステップＳ８１０〜Ｓ８６０は、所与のパーティクルが発生してから消滅するまでに各フレーム毎に行う処理であり、Ｓ８７０のパーティクルの終了処理はパーティクルの消滅に際して行う処理である。
【０２６６】
まず当該フレームのパーティクルの透明度を演算する（ステップ８１０）。
【０２６７】
次にパーティクルの透明度が０以下である場合には、当該パーティクルを消滅させるためのパーティクルの終了処理を行う（ステップＳ８２０、Ｓ８７０）。
【０２６８】
またパーティクルの透明度が０以下でない場合には、パーティクルの移動計算を行い当該フレームにおけるパーティクル位置を求める（ステップＳ８２０、Ｓ８３０）。パーティクルの移動演算は、例えば各フレームにおけるパーティクルの位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの３次元空間における位置を決定する演算を行い決定されることになる。
【０２６９】
次に求めた位置の高さに関する値が所定の値になった場合には、当該パーティクルを消滅させるためのパーティクルの終了処理を行う（ステップＳ８４０、Ｓ８７０）。
【０２７０】
また求めた位置の高さに関する値が所定の値になっていない場合には、パーティクルを用いた描画処理を行う（ステップＳ８４０、Ｓ８５０）。
【０２７１】
そして次フレームの処理を行う場合には再びステップＳ８１０〜Ｓ８６０の処理を繰り返す（ステップＳ８６０）。
【０２７２】
（５）ＦＯＧ効果の処理削減
例えば水しぶき等のオブジェクトが仮想カメラからの距離に応じて背景に溶け込んでいく様子をリアルに表現する場合等のようにＦＯＧ効果を出す場合には、デプスキューイング処理を行う。例えばポリゴンオブジェクトに対してデプスキューイング処理を行う場合には、各頂点ごとにその頂点の奥行き値に応じてその頂点色と背景色の合成を行い、奥行き値に応じてその頂点色を変化させる。
【０２７３】
本実施の形態では水しぶき等を１のパーティクル発生地点から発生する多数のパーティクルにパーティクルオブジェクトを割り当て、これらパーティクルオブジェクトの集合（パーティクル集合オブジェクト）として生成する。
【０２７４】
従って水しぶきに対してＦＯＧ効果を出すためには、パーティクル集合オブジェクトを構成する各パーティクルオブジェクトの頂点ごとにデプスキューイング処理が必要となるため、処理負荷が著しく増大することになる。
【０２７５】
そこで本実施の形態では、少ない処理負荷でＦＯＧ効果を出すために以下のような処理を行っている。
【０２７６】
図２９はＦＯＧ効果の処理削減について説明するための図である。
【０２７７】
６１０は水しぶきを表現するための第１のパーティクル集合オブジェクトであり、第１のパーティクル発生地点から発生したパーティクルにパーティクルオブジェクトを割り当てこれらパーティクルオブジェクトの集合として構成されている。ここで６１２及び６１４は第１のパーティクル集合オブジェクトに属する第１及び第２のパーティクルである。
【０２７８】
また６２０は水しぶきを表現するための第２のパーティクル集合オブジェクトであり、第２のパーティクル発生地点から発生したパーティクルにパーティクルオブジェクトを割り当てこれらパーティクルオブジェクトの集合として構成されている。ここで６２２及び６２４は第２のパーティクル集合オブジェクトに属する第３及び第４のパーティクルである。
【０２７９】
ここで本実施の形態では第１のパーティクル集合オブジェクト及び第２のパーティクル集合オブジェクトに水しぶきを表現するための基準色を設定する。この基準色は第１のパーティクル集合オブジェクトと第２のパーティクル集合オブジェクトで同じ色にしてもよいし、異なる色にしてもよい。
【０２８０】
そして当該基準色と各パーティクル集合オブジェクトのパーティクル発生地点の奥行き値に基づきデプスキューング処理を行い、前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【０２８１】
すなわち第１のパーティクル集合オブジェクト６１０に属する第１のパーティクル６１２及び第２のパーティクル６１４に対しては、第１のパーティクル集合オブジェクト６１０のベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【０２８２】
また第２のパーティクル集合オブジェクト６１０に属する第３のパーティクル６２２及び第４のパーティクル６２４に対しては、第２のパーティクル集合オブジェクト６２０のベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【０２８３】
従って第１のパーティクル集合オブジェクト及び第２のパーティクル集合オブジェクトを構成する各パーティクルに対してそれぞれにデプスキューング処理を行う場合に比べ大幅に処理を削減することができる。
【０２８４】
なおここでは説明を簡単にするために６１２、６１４、６２２、６２４をパーティクルとして話を進めたが、パーティクルに割り当てられたパーティクルオブジェクトの頂点であってもよい。
【０２８５】
図３０（Ａ）（Ｂ）（Ｃ）は、本実施の形態で行うデプスキューング処理について説明するための図である。
【０２８６】
図３０（Ａ）はＲ（赤）についてのデプスキューング処理を説明するための図である。縦軸はＲ（赤）の値であり横軸はパーティクル発生地点の奥行き値（Ｚ）である。また６３０はパーティクル集合オブジェクトに設定された基準色のＲの値であり、６４０は背景色のＲの値である。そして６３５は奥行き値に基づきベースカラーのＲの値を求めるための関数曲線である。
【０２８７】
例えばパーティクル発生地点の奥行き値がＺ１である場合にはベースカラーのＲの値のＲ１となり、パーティクル発生地点の奥行き値がＺ２である場合にはベースカラーのＲの値のＲ２となる。
【０２８８】
図３０（Ｂ）はＧ（緑）についてのデプスキューング処理を説明するための図である。縦軸はＧ（緑）の値であり横軸はパーティクル発生地点の奥行き値（Ｚ）である。また６５０はパーティクル集合オブジェクトに設定された基準色のＲの値であり、６６０は背景色のＧの値である。そして６５５は奥行き値に基づきベースカラーのＧの値を求めるための関数曲線である。
【０２８９】
例えばパーティクル発生地点の奥行き値がＺ１である場合にはベースカラーのＧの値のＧ１となり、パーティクル発生地点の奥行き値がＺ２である場合にはベースカラーのＧの値のＧ２となる。
【０２９０】
図３０（Ｃ）はＢ（青）についてのデプスキューング処理を説明するための図である。縦軸は  Ｂ（青）の値であり横軸はパーティクル発生地点の奥行き値（Ｚ）である。また６７０はパーティクル集合オブジェクトに設定された基準色のＢの値であり、６８０は背景色のＢの値である。そして６７５は奥行き値に基づきベースカラーのＢの値を求めるための関数曲線である。
【０２９１】
例えばパーティクル発生地点の奥行き値がＺ１である場合にはベースカラーのＢの値のＢ１となり、パーティクル発生地点の奥行き値がＺ２である場合にはベースカラーのＢの値のＢ２となる。
【０２９２】
（６）ポリゴン分割によるページング発生防止
例えばメモリ資源に制約のあるハードウエアを用いて画像生成を行う場合、ＶＲＡＭ（フレームバッファ）の実記憶領域の容量も限られている。このため大きなポリゴンをＶＲＡＭ（フレームバッファ）に描画しようとするとページングが発生し処理時間が増大することになる。
【０２９３】
そこで本実施の形態では、パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルに割り当てるオブジェクトを構成するポリゴンの分割数を大きくすることでかかるページングの発生を防止している。
【０２９４】
図３１は本実施の形態のポリゴン分割の一例について説明するためのフローチャート図である。
【０２９５】
まず処理対象パーティクルの奥行き情報を取得する（ステップＳ９１０）。
【０２９６】
次に奥行き値に基づき分割数を変更するか否か判断し、変更する場合にはパーティクルオブジェクトを構成するポリゴンやスプライトを分割する処理を行う（ステップＳ９２０、Ｓ９３０）。
【０２９７】
図３２はパーティクルオブジェクトを構成するスプライト（板ポリゴン）を分割する様子を表した図である。７１０は分割前のスプライト（板ポリゴン）であり、７２０は分割後のスプライト（板ポリゴン）である。
【０２９８】
分割数を変更するかいなかは、例えば奥行き情報が所定の値になったかいなかによって決めてもよいし、例えば奥行き情報に基づきパーティクルのソーティング処理を行い、手前から所定個数に属するパーティクルに割り当てられたオブジェクトに当該ポリゴンやスプライトが属するか否かによって決めてもよい。
【０２９９】
３．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図３３を用いて説明する。
【０３００】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０３０１】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０３０２】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０３０３】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０３０４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０３０５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０３０６】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０３０７】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０３０８】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０３０９】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０３１０】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０３１１】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０３１２】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０３１３】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０３１４】
図３４（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０３１５】
図３４（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０３１６】
図３４（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０３１７】
なお、図３４（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０３１８】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０３１９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０３２０】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０３２１】
また、本発明の手法により表現できる表示物は水しぶきには限定されず、例えば、花火、爆発、稲光、光るアメーバ等、形が不定形に変形しながら光を照射する種々の表示物を表現できる。
【０３２２】
また、パーティクルの制御手法も本実施の形態で説明した手法に限定されるものではない。
【０３２３】
また、本実施形態では、オブジェクトがポリゴンで構成される場合について主に説明したが、自由曲面などの他の形態のプリミティブ面でオブジェクトが構成される場合も本発明の範囲に含まれる。
【０３２４】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０３２５】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【符号の説明】
【０３２６】
１００  処理部
１１０  ゲーム処理部
１２０  画像生成部
１３０  描画順序決定処理部
１３２  パーティクル水増し処理部
１３４  パーティクル負荷軽減処理部
１４０  描画部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
2011076620.tif 000003
【図２】
2011076620.tif 000004
【図４】
2011076620.tif 000005
【図６】
2011076620.tif 000006
【図７】
2011076620.tif 000007
【図８】
2011076620.tif 000008
【図９】
2011076620.tif 000009
【図１０】
2011076620.tif 000010
【図１１】
2011076620.tif 000011
【図１３】
2011076620.tif 000012
【図１４】
2011076620.tif 000013
【図１５】
2011076620.tif 000014
【図１６】
2011076620.tif 000015
【図１７】
2011076620.tif 000016
【図１９】
2011076620.tif 000017
【図２２】
2011076620.tif 000018
【図２４】
2011076620.tif 000019
【図２７】
2011076620.tif 000020
【図２８】
2011076620.tif 000021
【図２９】
2011076620.tif 000022
【図３０】
2011076620.tif 000023
【図３１】
2011076620.tif 000024
【図３２】
2011076620.tif 000025
【図３３】
2011076620.tif 000026
【図３４】
2011076620.tif 000027
【図３】
2011076620.tif 000028
【図５】
2011076620.tif 000029
【図１２】
2011076620.tif 000030
【図１８】
2011076620.tif 000031
【図２０】
2011076620.tif 000032
【図２１】
2011076620.tif 000033
【図２３】
2011076620.tif 000034
【図２５】
2011076620.tif 000035
【図２６】
2011076620.tif 000036
【手続補正書】
【提出日】平成22年12月20日(2010.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像生成を行うシステムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクルの寿命を変更する寿命変更手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、を含み、
前記寿命変更手段は、
処理付加が高いと判断した場合には、パーティクルの寿命を短く設定することを特徴とする画像生成システム。
【請求項２】
画像生成を行うためのプログラムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクルの寿命を変更する寿命変更手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、してコンピュータを機能させ、
前記寿命変更手段は、
処理付加が高いと判断した場合には、パーティクルの寿命を短く設定することを特徴とするプログラム。
【請求項３】
請求項２において、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項４】
請求項２又は３において、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項５】
請求項２乃至４のいずれかにおいて、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外することを特徴とするプログラム。
【請求項６】
請求項２乃至５のいずれかにおいて、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とするプログラム。
【請求項８】
請求項２乃至７のいずれかにおいて、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外することを特徴とするプログラム。
【請求項９】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項２乃至８のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。