説明

画像生成システム、プログラム及び情報記憶媒体

【課題】 パーティクルを用いて画像を生成する場合に、少ない処理負荷でリアルで見栄えのよい画像を生成可能な画像生成システム、プログラム及び情報記憶媒体を提供することである。
【解決手段】 パーティクル負荷軽減処理部134は処理負荷に関する情報に基づきパーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する処理行う。またパーティクル集合オブジェクトの基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、パーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用する。またパーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成システムプログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−242807公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さてこのようなゲームシステムでは、プレーヤの仮想現実向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。ここにおいて例えばゲーム空間内で発生する水しぶき等がある場合にはリアルな水しぶきの表現が重要となる。
【0005】
このような水しぶき等を表現する手法としてパーティクルシステムとよばれる手法が知られている。すなわち自然物の中には1つひとつの識別が困難であるような微粒子の集まりとして表現すると便利なものがある。例えば立ち込める湯気や霧、噴煙、土煙、揺らめく炎、爆発、噴水や滝、泡や水しぶき、花火、飛び散る粉末、降りしきる雨や雪、霞、渦巻きや竜巻、風に舞い散る桜吹雪等がその例としてあげられる。
【0006】
パーティクルシステムでは、このように形が不安定であるばかりでなく明確な表面が存在しないような物体や現象のモデルとして多数の粒子の動きとして表現し、そのような粒子をパーティクルと呼ぶ。
【0007】
ここでパーティクルは、色や寿命などの特性を有し、所与の規則(エミッターによって与えられる)や作用する力(フォース)によって、発生、移動、消滅する。また各フレームにおけるパーティクルの位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの3次元空間における位置を決定する演算を行い決定されることになる。
【0008】
かかるパーティクルを用いて水しぶき等を表現すると、リアルな水しぶき等の画像を生成することができる。
【0009】
ところがこのようなパーティクルを用いて水しぶき等の画像を生成すると処理負荷が非情に重くなってしまうという欠点がある。
【0010】
例えばリアルで見栄えのよい水しぶきの画像を生成するためには単位時間に放出されるパーティクルの数がより多いことが好ましい。しかしパーティクル数が増える画像生成に必要な各種処理が増大するという問題点がある。
【0011】
特に限られたハード資源でリアルタイム画像生成を行う必要があるゲームシステムでは、パーティクルを用いて画像を生成する場合に、いかにして少ない処理負荷でリアルで見栄えのよい画像を生成するかが問題になる。
【0012】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、パーティクルを用いて画像を生成する場合に、少ない処理負荷でリアルで見栄えのよい画像を生成可能な画像生成システム、プログラム及び情報記憶媒体を提供することである。
【課題を解決するための手段】
【0013】
(1)本発明は画像生成を行うシステムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
含むことを特徴とする。
【0014】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0015】
画像生成時の処理負荷に関する情報とは、例えばリフレッシュレートやグローバルクロックやCPUクロック等のように1フレームあたりの描画速度が判断可能な所与の値で与えられる。ここで画像生成時の処理負荷とは、CPUで行う演算負荷でもよいし描画チップで発生する演算負荷でもよく、画像生成に必要な各種処理負荷を含む。
【0016】
パーティクルの寿命は例えばパーティクルの特性情報として与えられるものであり、例えば半透明描画を行う際のα値の形式で与えられる場合でもよい。
【0017】
本発明によれば、処理負荷が高いと判断した場合には、パーティクル発生地点の数を減らしたり、パーティクル数を減らしたり、パーティクルの寿命を短く設定したりすることにより、処理負荷の低減を図り処理落ち等を防ぐことができる。
【0018】
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とする。
【0019】
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とする。
【0020】
パーティクルの寿命を短く設定することにより当該パーティクルを速く消滅させることができるため、その分処理負荷の低減をはかることができる。
【0021】
ここにおいて遠くに位置するパーティクルほど見た目の影響が少ないため、パーティクルの奥行き情報に基づき仮想カメラから遠くに位置するパーティクルから優先して寿命を短くすることが好ましい。
【0022】
このように本発明によればパーティクルの奥行き情報に基づき、その寿命を短くしても見た目に影響の少ないものを選択することができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【0023】
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とする。
【0024】
パーティクル発生地点から発生するパーティクル集合を画像生成の対象外とすることによりその分処理負荷の低減をはかることができる。
【0025】
ここにおいて遠くに位置するパーティクル発生地点から発生するパーティクル集合の画像生成をカットしたほうが見た目の影響が少ないため、パーティクル発生地点の奥行き情報に基づき仮想カメラから遠くに位置するパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることが好ましい。
【0026】
このように本発明によればパーティクルの奥行き情報に基づき、画像生成の対象外としても見た目に影響の少ないものを選択して画像生成の対象外とすることができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【0027】
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とする。
【0028】
パーティクル発生地点から発生させるパーティクルの数を削減することによりその分処理負荷を軽減することができる。
【0029】
ここにおいて遠くに位置するパーティクル発生地点から発生するパーティクルの数を削減したほうが見た目の影響が少ないため、パーティクル発生地点の奥行き情報に基づき仮想カメラから遠くに位置するパーティクル発生地点から優先して発生させるパーティクルの数を削減することが好ましい。
【0030】
このように本発明によればパーティクル発生地点の奥行き情報に基づき、画像生成の対象外としても見た目に影響の少ないものを選択して発生させるパーティクルの数を削減することができるので、見た目の効果を最大に保って、処理負荷を軽減することができる。
【0031】
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする。
【0032】
オブジェクトの精密度を下げるとは、使用するモデルをより簡易なものにする場合等である。本発明によればパーティクルに割り当てるオブジェクトについてパーティクルの奥行き情報に基づきLOD(レベルオブデテール)を行うことができるため、見た目の効果を最大に保って、処理負荷を軽減することができる。
【0033】
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする。
【0034】
オブジェクトの精密度を下げるとは、使用するモデルをより簡易なものにする場合等である。本発明によればパーティクルに割り当てるオブジェクトについてパーティクル発生地点の奥行き情報に基づきLOD(レベルオブデテール)を行うことができるため、見た目の効果を最大に保って、処理負荷を軽減することができる。
【0035】
(8)本発明は画像生成を行うシステムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【0036】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0037】
パーティクル(又はパーティクルに割り当てたオブジェクト)に与えられた透明度がパーティクル発生からの時間経過に応じて変化する場合に有効である。ここにおいて透明度は例えば半透明描画処理を行う際のα値等で与えられる。
【0038】
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外することにより、例えば画像生成のために行う位置の演算処理や、座標変換処理や、描画処理等のその後に行われる処理等の画像生成に関する各種処理を省略することが可能となり、処理負荷の軽減を図ることができる。
【0039】
(9)本発明は画像生成を行うシステムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【0040】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0041】
本発明によれば例えばパーティクルを用いて生成した水しぶきの高さが水面の高さになった場合や、パーティクルを用いて生成した雪等の高さが地面の高さになった場合等に水しぶきや雪を消滅させることができる。
【0042】
このようにパーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行うことにより、以降の当該パーティクルに関する処理を省略できるため処理負荷を軽減することができる。
【0043】
またパーティクルの高さによって消滅処理を行うか否かを判断できるため、判断に要する処理負荷が軽くてすむ。従ってパーティクルの高さによって当該パーティクルが可視範囲外になる状態が発生する場合に有効である。
【0044】
(10)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とする。
【0045】
(11)本発明は画像生成を行うシステムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【0046】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0047】
例えば水しぶきが他のオブジェクトに隠れる場合等、水しぶきの描画処理を省略できるので、処理負荷を削減することができる。
【0048】
(12)本発明は画像生成を行うシステムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
を含むことを特徴とする。
【0049】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0050】
一般にポリゴンオブジェクトに対してデプスキューイング処理を行う場合には、各頂点ごとにその頂点の奥行き値に応じてその頂点色と背景色の合成を行い、奥行き値に応じてその頂点色を変化させる。このためパーティクル集合オブジェクトを構成する各パーティクルオブジェクトの頂点ごとにデプスキューイング処理が必要となるため、処理負荷が著しく増大することになる。
【0051】
しかし本発明によれば、同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、これにより得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【0052】
このため1のパーティクル集合オブジェクトに対してベースカラーを求めるための演算は1回だけでよい。パーティクル集合オブジェクトを構成する各パーティクル又はパーティクルオブジェクトの全ての頂点に対してデプスキューング処理により変化する頂点色を演算する場合に比べて大幅に少ない処理負荷でFOG効果を出すことができる。
【0053】
(13)本発明は画像生成を行うシステムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする。
【0054】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0055】
ここにおいてプリミティブとはポリゴンやスプライト等である。
【0056】
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数が大きくなるように制御することが好ましい。
【0057】
一般にメモリ資源に制約のあるハードウエアを用いて画像生成を行う場合には、VRAM(フレームバッファ)の実記憶領域の容量も限られているため大きなプリミティブをVRAM(フレームバッファ)に描画しようとするとプリミティブの描画途中でページングが発生し処理負荷や処理時間が増大することになる。
【0058】
本発明によればパーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にはパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることができるので、プリミティブの描画途中でページングが発生するのを防止することができ処理負荷や処理時間を削減することができる。
【0059】
(14)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とする。
【0060】
(15)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とする。
【0061】
(16)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とする。
【図面の簡単な説明】
【0062】
【図1】本実施形態の画像生成システム(ゲームシステム)のブロック図の一例を示す。
【図2】本実施の形態の画像生成装置により生成したゲーム画像の一例を表している。
【図3】本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【図4】本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【図5】図5(A)(B)はパーティクルの発生地点単位で描画順序を判断する様子を説明するための図である。
【図6】図6(A)(B)(C)はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【図7】図7(A)(B)(C)はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【図8】図8(A)(B)は、ソーティング区間を設定してソーティング処理の必要性を判断する例について説明するための図である。
【図9】本実施の形態において半透明描画処理を行う際の描画順序決定処理の流れの一例について説明するためのフローチャート図である。
【図10】図10(A)(B)(C)はプリミティブ単位で描画順序を判断する場合について説明するための図である。
【図11】図11(A)(B)(C)はプリミティブ単位で描画順序を判断する場合について説明するための図である。
【図12】図12(A)(B)はプリミティブの集合として構成されたオブジェクトの単位で描画順序を判断する場合について説明するための図である。
【図13】図13(A)(B)(C)はオブジェクトの描画順序の決定について説明するための図である。
【図14】図14(A)(B)(C)はオブジェクトの描画順序の決定について説明するための図である。
【図15】本実施の形態の半透明描画処理を行う際の描画順序決定処理の流れの他の例について説明するためのフローチャート図である。
【図16】図16(A)(B)はパーティクルの水増しについて説明するための図である。
【図17】図17(A)(B)は子パーティクルの位置及びサイズの決定例について説明するための図である。
【図18】図18(A)(B)は、生成した子パーティクルにパーティクルオブジェクトを割りあてる例について説明するための図である。
【図19】図19(A)(B)はパーティクルの時間的な連続性について説明するための図である。
【図20】図20はパーティクルの水増し処理の流れを説明するためのフローチャート図である。
【図21】図21は本実施の形態における処理負荷を軽減するための処理の一例を説明するためのフローチャート図である。
【図22】図22(A)(B)は処理負荷が低い場合と処理負荷が高い場合の画像例である。
【図23】奥行き情報を加味してパーティクル発生地点の数を制御する例について説明するためのフローチャート図である。
【図24】図24(A)(B)は処理負荷が低い場合と処理負荷が高い場合のパーティクル数について説明するための模式的な図である。
【図25】奥行き情報を加味してパーティクル発生地点から発生するパーティクル数を制御する例について説明するためのフローチャート図である。
【図26】奥行き情報を加味してパーティクル発生地点から発生させるパーティクルの調節を行う場合の処理の流れについて説明するためのフローチャート図である。
【図27】図27(A)はパーティクルに与えられた透明度が所定値以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図であり、図27(B)はパーティクルの高さが一定以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図である。
【図28】パーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合の処理の流れについて説明するためのフローチャート図である。
【図29】FOG効果の処理削減について説明するための図である。
【図30】図30(A)(B)(C)は、本実施の形態で行うデプスキューング処理について説明するための図である。
【図31】本実施の形態のポリゴン分割の一例について説明するためのフローチャート図である。
【図32】パーティクルオブジェクトを構成するスプライト(板ポリゴン)を分割する様子を表した図である。
【図33】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図34】図34(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【0063】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0064】
1.構成
図1に、本実施形態の画像生成システム(ゲームシステム)のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170、或いは処理部100と記憶部170と情報記憶媒体180を含めばよく)、それ以外のブロック(例えば操作部160、表示部190、音出力部192、携帯型情報記憶装置194、通信部196)については、任意の構成要素とすることができる。
【0065】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0066】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【0067】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0068】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0069】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0070】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0071】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0072】
携帯型情報記憶装置194は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0073】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0074】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0075】
処理部100は、ゲーム処理部110、画像生成部120、音生成部150を含む。
【0076】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部160からの操作データや、携帯型情報記憶装置194からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【0077】
画像生成部120は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する処理を行う。
【0078】
例えば画像生成部120はオブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理を行う。
【0079】
また例えば画像生成部120は、ローカル座標系からワールド座標系への座標変換、ワールド座標系から視点座標系への座標変換、スクリーン座標系への透視変換、クリッピングなどの種々のジオメトリ処理(3次元演算)を行う。そして、ジオメトリ処理により得られた描画データ(2次元のプリミティブ面の定義点の位置座標、テクスチャ座標、色(輝度)データ、或いはα値等)は、記憶部170のメインメモリ172に格納されて、保存される。
【0080】
また例えば画像生成部120は、ジオメトリ処理により得られ、メインメモリ172に保存された描画データに基づいて、テクスチャマッピングや色(輝度)データの補間処理や陰面消去などを行いながら、オブジェクトのプリミティブ面をフレームバッファ174に描画する処理を行う。これによりオブジェクトが配置されるオブジェクト空間内の所与の視点(仮想カメラ)での画像が生成されるようになる。
【0081】
また例えば画像生成部120は、パーティクルを時間経過に伴い順次発生させたり、移動させたり、消滅させたりする処理を行う。より具体的には、パーティクル(仮想光源プリミティブ)の発生量、発生位置、移動状態(速度、加速度等)又は寿命をランダムに変化させる処理を行う。これにより、水しぶき等の不定形の表示物もリアルに表現できるようになる。
【0082】
また画像生成部120は描画順序決定処理部130、パーティクル水増し処理部132、パーティクル負荷軽減処理部134の少なくともひとつを含む。
【0083】
描画順序決定処理部130は、所与の条件に基づき複数の半透明プリミティブの描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要である判断された場合には複数の半透明プリミティブのソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブの描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて、半透明プリミティブの描画順序を決定する処理を行うようにしてもよい。
【0084】
また描画順序決定処理部130は、所与の条件に基づき複数の半透明プリミティブ集合の描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要であると判断された場合には複数の半透明プリミティブ集合の代表位置に基づき半透明プリミティブ集合単位でソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブ集合の描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて半透明プリミティブ集合の描画順序を決定する処理を行うようにしてもよい。
【0085】
また描画順序決定処理部130は、所与の条件に基づき複数のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトの描画順序を決定するためのソーティング処理の必要性を判断する処理と、ソーティング処理が必要であると判断された場合には複数のパーティクル発生地点の奥行き情報に基づきパーティクル集合オブジェクトのソーティング処理を行い当該ソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定する処理を行うようにしてもよい。
【0086】
また描画順序決定処理部130は、仮想カメラの位置及び回転の少なくとも一方に基づき前記所定の条件を満たすか否かを判断することを特徴とする画像生成システム。
【0087】
また描画順序決定処理部130は、キャラクタオブジェクトの位置及び回転の少なくとも一方に基づき前記所定の条件を満たすか否かを判断するようにしてもよい。
【0088】
また描画順序決定処理部130は、あらかじめソーティング処理が必要なエリアを設定しておき、仮想カメラ及びキャラクタオブジェクトの少なくとも一方が前記ソーティングが必要なエリアにいるか否かに基づきいて前記所定の条件を満たすかいなかを判断するようにしてもよい。
【0089】
なお前記ソーティング処理が必要なエリアは、当該エリア内を仮想カメラ及びキャラクタオブジェクトの少なくとも一方が移動すると前記複数の半透明プリミティブ又半透明プリミティブ集合又はパーティクルの発生地点の仮想カメラに対する前後関係が変化する可能性があるエリアにすることが好ましい。
【0090】
また前記ソーティング処理が必要なエリアは、当該エリア内に仮想カメラ及びキャラクタオブジェクトの少なくとも一方がある場合には半透明プリミティブ又半透明プリミティブ集合又はパーティクルの発生地点から発生するパーティクルによって表現するオブジェクトが表示されない状態が発生するエリアにしてもよい。
【0091】
また描画順序決定処理部130は、複数の半透明プリミティブ集合の代表点の奥行き情報に基づきソーティングし、半透明プリミティブ集合単位に描画順位を決定するようにしてもよい。
【0092】
また描画順序決定処理部130は、所与の発生地点から発生したパーティクル集合によって表現する複数のパーティクル集合オブジェクトを発生地点の奥行き情報に基づきソーティング処理を行いパーティクル集合オブジェクトの描画順位を決定する処理を行うようにしてもよい。
【0093】
パーティクル水増し処理部132は、3次元空間に与えられたパーティクルを親パーティクルとし、親パーティクルの位置座標に基づき発生させる水増し点の座標を演算する処理と、前記水増し点に子パーティクルを生成する処理を行うようにしてもよい。
【0094】
またパーティクル水増し処理部132は、3次元空間に与えられたパーティクルを親パーティクルとし、スクリーン平面へ透視変換された親パーティクルの位置座標に基づきスクリーン平面に発生させる水増し点の座標を演算する処理と、前記スクリーン平面の水増し点に子パーティクルを生成する処理を行うようにしてもよい。
【0095】
なお水増しして生成される子パーティクルは、親パーティクルの特性情報を引き継ぐようにしてもよい。
【0096】
またパーティクル水増し処理部132は、親パーティクルの奥行き情報を加味して生成する水増し点の位置を決定するようにしてもよい。
【0097】
またパーティクル水増し処理部132は、時間又はフレームの進行を表す情報を加味して生成する水増し点の位置を決定するようにしてもよい。
【0098】
またパーティクル水増し処理部132は、時間又はフレームの進行を表す情報を加味して水増しして生成する子パーティクルの数を制御するようにしてもよい。
【0099】
またパーティクル水増し処理部132は、親パーティクルの奥行き情報に基づいて子パーティクルに割り当てるオブジェクトの大きさを決定するようにしてもよい。
【0100】
またパーティクル水増し処理部132は、時間又はフレームの経過に従って子パーティクルに割り当てるオブジェクトのサイズを変化させるようにしてもよい。
【0101】
またパーティクル水増し処理部132は、所与の親パーティクルに対してn+1フレーム目に生成する所与子パーティクルは、同一の親パーティクルに対してnフレーム目に生成した所与の子パーティクルと連続性を有する位置に生成する処理を行うようにしてもよい。
【0102】
またパーティクル水増し処理部132は、nフレーム目の所与の親パーティクルの位置情報(xn、yn)に対して関数fx1、fy1を適用して得られた位置情報(xn’、yn’)に基づきnフレーム目の所与の子パーティクルの位置を決定した場合、n+1フレーム目の同一の親パーティクルの位置情報(xn+1、yn+1)に対して関数fx1、fy1を適用して得られた位置情報(xn+1’、yn+1’)に基づきn+1フレーム目の所与の子パーティクルの位置を決定するようにしてもよい。
【0103】
またパーティクル水増し処理部132は、所与の親パーティクルに対して第1の子パーティクルと第2の子パーティクルを含む複数の子パーティクルを発生させる場合には、第1の子パーティクルと第2の子パーティクルの生成位置は異なる関数を適用して得られた位置情報に基づき決定するようにしてもよい。
【0104】
またパーティクル水増し処理部132は、親パーティクルの奥行き情報又はパーティクル発生地点の奥行き情報に応じて水増しして生成する子パーティクルの数を制御するようにしてもよい。
【0105】
またパーティクル水増し処理部132は、画像生成時の処理負荷に関する情報に基づき、水増しして生成する子パーティクルの数を制御するようにしてもよい。
【0106】
パーティクル負荷軽減処理部134は、画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する処理を行うようにしてもよい。
【0107】
なお前記パーティクル数は、一画面に存在するパーティクル数でもよいし所与の発生地点から発生させるパーティクル数でもよい。
【0108】
またパーティクル負荷軽減処理部134は、パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減するようにしてもよい。
【0109】
またパーティクル負荷軽減処理部134は、パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減するようにしてもよい。
【0110】
パーティクル負荷軽減処理部134は、パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減するようにしてもよい。
【0111】
またパーティクル負荷軽減処理部134は、パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減するようにしてもよい。
【0112】
またパーティクル負荷軽減処理部134は、パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減するようにしてもよい。
【0113】
パーティクル負荷軽減処理部134は、パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する処理を行うようにしてもよい。
【0114】
またパーティクル負荷軽減処理部134は、パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行うようにしてもよい。
【0115】
なお前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むようにすることが好ましい。
【0116】
またパーティクル負荷軽減処理部134は、パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する処理を行うようにしてもよい。
【0117】
またパーティクル負荷軽減処理部134は、同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行い、前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用するようにしてもよい。
【0118】
またパーティクル負荷軽減処理部134は、パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する処理を行うようにしてもよい。
【0119】
またパーティクル負荷軽減処理部134は、パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくするようにしてもよい。
【0120】
またパーティクル負荷軽減処理部134は、パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくするようにしてもよい。
【0121】
またパーティクル負荷軽減処理部134は、パーティクルに割り当てたプリミティブを再分割することで分割数を大きくするようにしてもよい。
【0122】
音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、又は音声などの音を生成し、音出力部192に出力する。
【0123】
なお、ゲーム処理部110、画像生成部120、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0124】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0125】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0126】
2.本実施形態の特徴
図2は本実施の形態の画像生成装置により生成したゲーム画像の一例を表している。本実施の形態ではパーティクルシステムを用いて同図に示すような水しぶきの画像を生成している。
【0127】
以下本実施の形態の画像生成装置でパーティクルシステムを用いて水しぶきの画像を生成する場合を例にとり、本発明の各特長について説明する。
【0128】
(1)処理の流れ
図3、図4は本実施の形態の画像生成装置で水しぶきの画像を生成する際の全体的な処理の流れについて説明するためのフローチャート図である。
【0129】
図3及び図4の処理は画像生成部(図1の130)が行う処理である。ここにおいて画像生成部は例えばCPUと描画ユニット(画像生成用の専用チップ)で構成されているものとする。
【0130】
図3のステップS10〜S30は主にCPUがパーティクルの発生地点単位で行う処理である。
【0131】
まず複数の水しぶきの発生地点の奥行き情報に基づき、発生地点単位で描画順序を決定するための処理を行う(ステップS10)。本実施の形態では水しぶきを構成するパーティクルに半透明オブジェクトを割り当てるため、正確に描画するためには仮想カメラから遠くにある発生地点のものから先にフレームバッファに半透明描画する必要がある。このため本実施の形態では発生地点単位で描画順序を決定するための処理を行う。
【0132】
ここにおいて本実施の形態では、各フレーム毎に無条件に複数の発生地点のソーティング処理を行うのではなく、各フレームのキャラクタオブジェクト(仮想カメラ)の位置に基づきソーティング処理の必要性を判断し、必要ない場合にはソーティング処理を省略することにより処理の高速化を図っている。(詳細については(2)描画順序決定処理を参照)。
【0133】
次に各種パラメータの設定処理を行う(ステップS20)。
【0134】
例えば、発生地点単位で各パーティクル集合オブジェクトのベースカラーを決定する処理(詳細については(5)FOG効果の処理削減を参照)や、各発生地点から発生させるパーティクル数を決定する処理や各パーティクルの特性(とくに透明度や寿命に関する情報)を決定する処理(詳細については(4)処理負荷を軽減するための処理を参照)を行う。
【0135】
そして決定された描画順序に基づき奥のパーティクル発生地点のデータから描画ユニットに転送する(ステップ30)。
【0136】
図4のステップS40〜S90は主にベクトルユニットがパーティクル単位に行う処理である。
【0137】
まずフレーム番号に基づきパーティクルの透明度を減少させる。そして透明度が負になった場合には処理を打ち切る。またフレーム番号に基づきパーティクルに割り当てるスプライト(一枚ポリゴン)のサイズを拡大させる(ステップS40)。
【0138】
次にフレーム番号に基づき3次元空間を所与の規則に従って移動するパーティクルの移動地点の位置座標を演算する(ステップS50)。
【0139】
次に移動後のパーティクル(これを親パーティクルとする)の位置座標について透視変換を行いスクリーン平面に配置する(ステップS60)。
【0140】
次に透視変換後の親パーティクルの周囲に子パーティクルを水増生成する処理をおこなう(ステップS70)。
【0141】
次に水増しされた子パーティクルにスプライト(一枚ポリゴン)を割り当てる。このとき発生地点と仮想カメラからの距離に応じてポリゴン分割を行う(ステップS80)。
【0142】
次に求まったスプライトポリゴンに、色とテクスチャコーディネイト座標を付加してパケットを生成し、描画する(ステップS90)。
【0143】
(2)描画順序決定処理
まず本実施の形態において水しぶきの画像を生成する際に行う描画順序の決定処理について説明する。
【0144】
一般に半透明描画処理を行う際の描画順序は例えばポリゴンオブジェクトの場合にはポリゴン単位というようにプリミティブ単位に決定するが、本実施の形態では、パーティクルの発生地点ごとに描画順序を決定している。
【0145】
図5(A)(B)はパーティクルの発生地点単位で描画順序を判断する様子を説明するための図である。
【0146】
図5(A)は仮想カメラと発生地点H1〜H4の位置関係を表している。M1〜M4は発生地点H1〜H4から発生したパーティクルによって表現される水しぶき(パーティクル集合オブジェクト)を模式的に示したものである。
【0147】
本実施の形態ではパーティクルの発生地点単位で半透明描画に必要なソーティング処理を行う。例えば図5(A)の場合には仮想カメラ210から見た場合の発生地点H1〜H4の前後関係は、奥から順にH4、H3、H2、H1となる(図5(B)参照)。従って各水しぶきM1〜M4をαブレンディング処理を行ってフレームバッファ220に半透明描画する際には、M4、M3、M2、M1の順で発生地点の奥行き情報に基づき水しぶき単位で奥から先に描画する。
【0148】
例えば発生地点H3から発生するパーティクルに割り当てられたオブジェクトOP3は、発生地点H4から発生するパーティクルに割り当てられたオブジェクトOP4の後に描画される。
【0149】
このように本実施の形態では複数のパーティクル発生地点をその奥行き情報に基づきソーティングし、発生地点単位に描画順位を決定する。そして決定された描画順位に従い複数のパーティクル発生地点から発生したパーティクルに割り当てられた半透明プリミティブの半透明描画処理を行う。
【0150】
これにより描画順位の高い(より奥に位置する)発生地点から発生したパーティクルに割り当てられた半透明プリミティブは描画順位の低い(より手前に位置する)発生地点から発生したパーティクルに割り当てられた半透明プリミティブより先に半透明描画処理を行うことができる。
【0151】
このようにすると各パーティクル単位にソーティングを行い描画順序を決定する場合に比べ、大幅に処理負荷を軽減することができる。
【0152】
図6(A)(B)(C)及び図7(A)(B)(C)はパーティクルの発生地点に基づく描画順序の決定処理について説明するための図である。
【0153】
図6(A)及び図7(A)は仮想カメラの移動前後における仮想カメラとパーティクルの発生地点との位置関係を表している。M1〜M4は発生地点H1〜H4から発生したパーティクルによって表現される水しぶき(パーティクル集合オブジェクト)を模式的に示したものである。210−1は移動前の仮想カメラであり、210−2は移動後の仮想カメラである。
【0154】
例えば図6(A)の場合には仮想カメラ210−1から見た場合のパーティクルの発生地点H1〜H4の前後関係は、奥から順にH4、H3、H2、H1となる(図6(B)参照)。
【0155】
また仮想カメラ210−2から見た場合の半透明ポリゴンH1〜H4の前後関係は、奥から順にH3、H1、H2、H4となる(図6(C)参照)。
【0156】
このように発生地点と仮想カメラの位置関係の変化により仮想カメラに対する発生地点の奥行き関係が変位する場合にはソーティング処理が必要となる。
【0157】
ところが例えば図7(A)の場合には仮想カメラ210’−1から見た場合のパーティクルの発生地点H1〜H4の前後関係は、奥から順にH4、H3、H2、H1となり(図7(B)参照)、仮想カメラ210’−2から見た場合のパーティクルの発生地点H1〜H4の前後関係も、奥から順にH4、H3、H2、H1となる(図7(C)参照)。従って仮想カメラが図7(A)のように動くような場合には、仮想カメラ210’−2から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ210’−1から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【0158】
従って本実施の形態では、所与の条件に基づき複数のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトの描画順序を決定するためのソーティング処理の必要性を判断し、ソーティング処理が必要であると判断された場合には複数のパーティクル発生地点の奥行き情報に基づきパーティクル集合オブジェクトのソーティング処理を行い当該ソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理の処理結果に基づきパーティクル集合オブジェクトの描画順位を決定する処理を行う。
【0159】
図8(A)(B)は、ソーティング区間を設定してソーティング処理の必要性を判断する例について説明するための図である。
【0160】
図8(A)の230はプレーヤキャラクタであり、240はプレーヤキャラクタの移動ルートとなるゲーム空間に設けられた道である。プレーヤキャラクタ230は、予め決められた移動ルート240(ゲーム空間に設けられた道)上を進行し、仮想カメラは前記プレーヤキャラクタ230に追従するように構成されている。
【0161】
H1〜H4は水しぶきの発生地点であり、M1〜M4は発生地点H1〜H4から発生したパーティクルによって表現される水しぶき(パーティクル集合オブジェクト)の範囲を模式的に示したものである。
【0162】
また250−1は前記移動ルート上に設けられたソーティング区間である。図8(A)に示すように道が大きくカーブしている区間がソーティング区間250−1として設定されている。かかる区間を移動する仮想カメラから水しぶきM1〜M4を見る場合には、図6(A)〜(C)で説明したように仮想カメラに対する水しぶきの奥行き関係が変化する可能性があるからである。
【0163】
このように本実施の形態では、仮想カメラが移動すると水しぶき(パーティクル集合オブジェクト)の発生地点の仮想カメラに対する前後関係が変化する可能性があるエリアをソーティング区間として指定しておく。
【0164】
そして各フレームにおいてプレーヤキャラクタ230の位置が前記ソーティング区間内にある場合にはソーティング処理の必要性ありと判断し、プレーヤキャラクタ230の位置が前記ソーティング区間内にない場合には水しぶきの発生地点のソーティング処理の必要性なしと判断する。
【0165】
例えばソーティング区間250−1はスタート地点からの道のりで指定することができる。また予め決められた移動ルート240(ゲーム空間に設けられた道)上を進行するプレーヤキャラクタもスタート地点から道のり値を現在位置として有している。従って例えばソーティング区間250−1として(2000〜2050)が設定されている場合には、プレーヤキャラクタの現在位置の道のり値xが2000<x<2050である場合にはソーティング処理の必要性ありと判断される。
【0166】
このようにすることでプレーヤキャラクタがソーティング区間以外に位置する場合にはソーティング処理を省略することができるため処理負荷を軽減することができる。
【0167】
図8(B)のソーティング区間250−2は、移動ルート240上で岩オブジェクト260により視界がさえぎられて水しぶきが見えない区間に設定されている。すなわちソーティング区間250−2をプレーヤキャラクタが移動中は、プレーヤキャラクタに追従する仮想カメラが捕らえる映像には岩オブジェクト260にさえぎられて水しぶきはM1〜M4は移らない。
【0168】
このように本実施の形態では、水しぶきが表示されない状態が発生するエリアをソーティング区間として設定することにより、ソーティング処理に伴い描画順番が入れ替わることによるちらつきを防止することができる。
【0169】
図9は本実施の形態において半透明描画処理を行う際の描画順序決定処理の流れの一例について説明するためのフローチャート図である。
【0170】
まずキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいるか否かに基づきソーティング処理の必要性を判断する(ステップS110)。
【0171】
そしてキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいる場合には、複数のパーティクル発生地点の奥行き情報に基づき、パーティクル発生地点単位でソーティング処理を行い、パーティクル発生地点単位で描画順序を決定する(ステップS120)。
【0172】
またキャラクタオブジェクト又は仮想カメラがソーティングが必要なエリアにいない場合には、前回のソーティング処理の処理結果に基づき、パーティクル発生地点単位で描画順序を決定する(ステップS130)。
【0173】
次に決定された描画順序に従い、複数のパーティクル発生地点から発生したパーティクル集合オブジェクトの半透明描画処理を行う(ステップS140)。
【0174】
なお図8(A)(B)及び図9では、ソーティング区間を設定してソーティング処理の必要性を判断する場合を例にとり説明したがこれに限られない。例えば仮想カメラの配置の変化が所定範囲内か否かに基づきソーティング処理の必要性を判断するような場合でもよい。
【0175】
また上記実施の形態では、水しぶきを半透明描画する際に水しぶきを表現するためのパーティクルの発生地点単位で描画順序を決定する場合を例にとり説明したがこれに限られない。
【0176】
例えば半透明描画処理を行う際にプリミティブ単位で描画順序を決定する場合でもよい。
【0177】
図10(A)(B)(C)及び図11(A)(B)(C)はプリミティブ単位で描画順序を判断する場合について説明するための図である。ここにおいてプリミティブとは例えばポリゴンやスプライト等である。
【0178】
図10(A)及び図11(A)は仮想カメラの移動前後における仮想カメラとプリミティブとの位置関係を表している。P1〜P4は例えば半透明ポリゴンであるとする。210−1は移動前の仮想カメラであり、210−2は移動後の仮想カメラである。
【0179】
例えば図10(A)の場合には仮想カメラ210−1から見た場合の半透明ポリゴンP1〜P4の前後関係は、奥から順にP4、P3、P2、P1となる(図10(B)参照)。
【0180】
また仮想カメラ210−2から見た場合の半透明ポリゴンP1〜P4の前後関係は、おくから順にP3、P1、P2、P4となる(図10(C)参照)。
【0181】
このように半透明ポリゴンと仮想カメラの位置関係の変化により仮想カメラに対する半透明ポリゴンの奥行き関係が変位する場合にはソーティング処理が必要となる。
【0182】
ところが例えば図11(A)の場合には仮想カメラ210’−1から見た場合の半透明ポリゴンのP1〜P4の前後関係は、奥から順にP4、P3、P2、P1となり(図11(B)参照)、仮想カメラ210’−2から見た場合の半透明ポリゴンのP1〜P4の前後関係も、奥から順にP4、P3、P2、P1となる(図11(C)参照)。従って仮想カメラが図11(A)のように動くような場合には、仮想カメラ210’−2から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ210’−1から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【0183】
従って所与の条件に基づき複数の半透明プリミティブの描画順序を決定するためのソーティング処理の必要性を判断し、ソーティング処理が必要である判断された場合には複数の半透明プリミティブのソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブの描画順序を決定し、ソーティング処理が必要ないと判断された場合には前回のソーティング処理結果に基づいて、半透明プリミティブの描画順序を決定するようにしてもよい。
【0184】
図12(A)(B)はプリミティブの集合として構成されたオブジェクトの単位で描画順序を判断する場合について説明するための図である。
【0185】
図12(A)は仮想カメラと半透明オブジェクトO1〜O4の位置関係を表している。P31、P32は半透明オブジェクトO3に属する半透明ポリゴンであるとする。またP41、P42は半透明オブジェクトO4に属する半透明ポリゴンであるとする。
【0186】
かかる場合に本実施の形態では、オブジェクト単位でソーティング処理を行う。例えば図12(A)の場合には仮想カメラ210−1から見た場合の半透明オブジェクトO1〜O4の前後関係は、奥から順にO4、O3、O2、O1となる(図12(B)参照)。従って各オブジェクトO1〜O4をαブレンディング処理を行ってフレームバッファ220に半透明描画する際には、O4、O3、O2、O1の順で、オブジェクト単位で奥から先に描画する。
【0187】
すなわちオブジェクトO3に属するポリゴンP31、P32はオブジェクトO4に属するポリゴンP41、P42の後に描画される。
【0188】
図13(A)(B)(C)及び図14(A)(B)(C)はオブジェクトの描画順序の決定について説明するための図である。
【0189】
図13(A)及び図14(A)は仮想カメラの移動前後におけるオブジェクトとの位置関係を表している。O1〜O4は例えば半透明オブジェクトであるとする。210−1は移動前の仮想カメラであり、210−2は移動後の仮想カメラである。
【0190】
例えば図13(A)の場合には仮想カメラ210−1から見た場合の半透明オブジェクトO1〜O4の前後関係は、奥から順にO4、O3、O2、O1となる(図13(B)参照)。
【0191】
また仮想カメラ210−2から見た場合の半透明ポリゴンO1〜O4の前後関係は、奥から順にO3、O1、O2、O4となる(図13(C)参照)。
【0192】
このようにオブジェクトと仮想カメラの位置関係の変化により仮想カメラに対するオブジェクトの奥行き関係が変位する場合にはソーティング処理が必要となる。
【0193】
ところが例えば図14(A)の場合には仮想カメラ210’−1から見た場合のオブジェクトO1〜O4の前後関係は、奥から順にO4、O3、O2、O1となり(図14(B)参照)、仮想カメラ210’−2から見た場合のオブジェクトのO1〜O4の前後関係も、奥から順にO4、O3、O2、O1となる(図14(C)参照)。従って仮想カメラが図14(A)のように動くような場合には、仮想カメラ210’−2から見た画像を描画する場合には、改めてソーティング処理を行わなくても仮想カメラ210’−1から見た画像を描画する場合に行ったソーティング結果を用いることができる。
【0194】
従って本実施の形態では、所与の条件に基づき複数の半透明プリミティブ集合(オブジェクト)の描画順序を決定するためのソーティング処理の必要性を判断して、ソーティング処理が必要であると判断された場合には複数の半透明プリミティブ集合(オブジェクト)の代表位置に基づき半透明プリミティブ集合単位でソーティング処理を行い当該ソーティング処理の処理結果に基づき複数の半透明プリミティブ集合(オブジェクト)の描画順序を決定し、ソーティング処理が必要ない判断された場合には前回のソーティング処理結果に基づいて半透明プリミティブ集合(オブジェクト)の描画順序を決定する処理を行う。
【0195】
図15は本実施の形態の半透明描画処理を行う際の描画順序決定処理の流れの他の例について説明するためのフローチャート図である。
【0196】
まず仮想カメラの配置の変化が所定範囲内か否かに基づきソーティング処理の必要性を判断する(ステップS210)。ここにおいて仮想カメラの配置の変化とは例えば仮想カメラの位置や向き(回転)の変化である。
【0197】
そして仮想カメラの配置の変化が所定範囲内である場合には、奥行き情報に基づきオブジェクトのソーティング処理を行い、オブジェクト単位で描画順序を決定する(ステップS220)。
【0198】
また仮想カメラの配置の変化が所定範囲内でない場合には、前回のソーティング処理の処理結果に基づき、オブジェクト単位で描画順序を決定する(ステップS230)。
【0199】
次に決定された描画順序に従い、オブジェクトを構成するプリミティブの半透明描画処理を行う(ステップS240)。
【0200】
(3)パーティクルの水増し処理
次に本実施の形態において水しぶきの画像を生成する際に行うパーティクルの水増し処理について説明する。
【0201】
図16(A)(B)はパーティクルの水増しについて説明するための図である。
【0202】
図16(A)のPP1〜PP4は既存のパーティクルシステムを用いて所与のフレームに発生させたパーティクルである。各パーティクルは、色や寿命などの特性を有し、所与の規則(エミッターによって与えられる)や作用する力(フォース)によって、発生、移動、消滅すもので、各フレームにおけるパーティクルPP1〜PP4の位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの3次元空間における位置を決定する演算を行い決定されたものである。
【0203】
ここにおいてリアルで見栄えのよい水しぶきを作成するためにはより多くのパーティクルを発生させることが好ましい。しかし既存のパーティクルシステムを用いてパーティクルを発生させるためには各パーティクルについて前記演算が必要となるため、発生させるパーティクル数が増えるとその分演算量が増大することになる。
【0204】
そこで本実施の形態では、図16(B)に示すように、3次元空間に与えられたパーティクルPP1〜PP4を親パーティクルとし、スクリーン平面へ透視変換された親パーティクルPP1〜PP4の位置座標に基づきスクリーン平面に発生させた水増し点に子パーティクルCP11〜CP44を生成する。
【0205】
子パーティクルCP11〜CP14は親パーティクルPP1から水増しして生成したものであり、子パーティクルCP21〜CP24は親パーティクルPP2から水増しして生成したものであり、子パーティクルCP31〜CP34は親パーティクルPP3から水増しして生成したものであり、子パーティクルCP41〜CP44は親パーティクルPP4から水増しして生成したものである。
【0206】
このようにすると、子パーティクルについては既存のパーティクルシステムを用いて3次元空間にその位置を決定するまでの演算処理を省略できるので少ない演算付加でボリュームのある水しぶきの画像を生成することができるようになる。
【0207】
図17(A)(B)は子パーティクルの位置及びサイズの決定例について説明するための図である。
【0208】
図17(A)のPP1(X1、Y1)はnフレーム目にスクリーン平面310に透視変換されたパーティクル(これを親パーティクルとする)の位置座標である。
【0209】
本実施の形態ではスクリーン平面へ透視変換された親パーティクルPP1の位置座標に基づきスクリーン平面に発生させる水増し点の座標を演算し、当該水増し点に子パーティクルを生成する。
【0210】
ここで第1の水増し点M11の座標を(x11、y11)、第2の水増し点のM12の座標を(x12、y12)とすると、x11、y11、x12、y12は以下のようにして求められる。
【0211】
x11=X1+f(S、t、乱数1) …(1)
y11=Y1+f(S、t、乱数1) …(2)
x12=X2+f(S、t、乱数2) …(3)
y12=Y2+f(S、t、乱数2) …(4)
このようにして求められた第1の水増し点M11の座標(x11、y11)、第2の水増し点M12の座標(x12、y12)が子パーティクルCP11、CP12の生成位置となる。すなわち(x11、y11)、(x12、y12)が子パーティクルCP11及びCP12の位置座標となる。
【0212】
ここでSは奥行き値zに関連して与えられる倍率等を表す値であり、tはフレームナンバーである。親パーティクルPP1から子パーティクルCP11、CP12までの距離を例えばl1、l2とすると、(1)〜(4)を使って求めることにより、奥行き値やフレーム番号に応じて親パーティクルから離れた距離l1、l2に子パーティクルCP11、CP12を生成することができる。
【0213】
また乱数1、乱数2は使用する乱数の乱数列における位置を表しており、連続する複数のフレームにおいて、第1の子パーティクルには常に乱数1、第2の子パーティクルには常に乱数2を使用することにより、連続する複数のフレームにおいて子パーティクルの軌跡に連続性を持たせることができる。
【0214】
また図17(B)は透視変換時に親パーティクルの奥行き値がz=100である場合の子パーティクルの生成例について説明するための図である。
【0215】
ここでCP’11(x11’、y11’)、CP’12(x’12、y’12)を、親パーティクルの奥行き値がz=100である場合の前記親パーティクルの位置座標PP1(X1、Y1)に基づきスクリーン平面310に生成した子パーティクルCP’11、CP’12の位置座標であるとする。このときは図17(B)に示すように、図17(A)の場合に比べて、子パーティクルが位置が親パーティクルに近い位置に生成される。
【0216】
すなわち親パーティクルPP1から子パーティクルCP’11、CP’12までの距離を例えばl’1、l’2とすると、l’1<l1、l’2<l2となる。
【0217】
このように本実施の形態では親パーティクルの奥行き値(z値)が大きい場合(親パーティクルが仮想カメラから離れた位置にある場合)には近い位置に子パーティクルを生成し、親パーティクルの奥行き値(z値)が小さい場合(親パーティクルが仮想カメラから近い位置にある場合)には離れた位置に子パーティクルを生成する。従って親パーティクルの奥行き値(z値)に応じて自然な遠近関係を有する位置に子パーティクルを生成することができる。
【0218】
また本実施の形態ではフレームナンバーが大きくなるにつれ(パーティクルが発生してからの時間が長くなるにつれ)、親パーティクルから離れた位置に子パーティクルを生成する。このようにすることで時間が経過するにつれ水しぶきが広がっていく様子を表現することができる。
【0219】
図18(A)(B)は、生成した子パーティクルにパーティクルオブジェクトを割りあてる例について説明するための図である。
【0220】
図18(A)は子パーティクルCPにパーティクルオブジェクトとしてスプライト350を割り当てる様子を表している。スプライトは2頂点SV1、SV2を与えることにより生成することができるので、親パーティクルの奥行き値に応じて決定されるスプライト350のサイズに基づき、子パーティクルCPの周囲に2頂点SV1、SV2の位置を決定する。
【0221】
ここにおいて子パーティクルCPからスプライトの2頂点SV1、SV2までの移動距離をr1とすると、以下の式で与えられる。
【0222】
r1 = ローカルパーティクルサイズ × S
ここにおいてローカルパーティクルサイズとはローカル座標系においてパーティクルに割り当てるパーティクルオブジェクトのサイズを表すものである。このようにして移動距離をr1を求めることにより、親パーティクルの奥行き値(z値)が大きくなるにつれ(親パーティクルが仮想カメラから離れるにつれ)、子パーティクルに割り当てるスプライトのサイズを小さくすることができる。従って親パーティクルの奥行き値(z値)に応じて自然な遠近関係を有する大きさのスプライトを子パーティクルに割り当てることができる。
【0223】
なお子パーティクルCPにパーティクルオブジェクトとしてスプライト350を与える場合に、子パーティクルCPの位置をスプライト350の1の頂点SV1として、子パーティクルCPの周囲に他の頂点SV2の位置を決定するようにしてもよい。このようにするとスプライト350の1の頂点SV1の位置を決定する演算が省略できるので処理負荷を削減することができる。
【0224】
図18(B)は子パーティクルCPにパーティクルオブジェクトとしてポリゴンオブジェクト360を割り当てる様子を表している。当該ポリゴンオブジェクト360はPV1〜PV8の8頂点を与えることにより生成することができるので、親パーティクルの奥行き値に応じて決定されるポリゴンオブジェクトのサイズに基づき子パーティクルCPの周囲に8頂点PV1〜PV8の位置を決定する。
【0225】
ここにおいて子パーティクルからポリゴンオブジェクトの8頂点PV1〜PV8までの移動距離をr2とすると、以下の式で与えられる。
【0226】
r2 = ローカルパーティクルサイズ × S
ここにおいてローカルパーティクルサイズとはローカル座標系においてパーティクルに割り当てるパーティクルオブジェクトのサイズを表すものである。このようにして移動距離をr2を求めることにより、親パーティクルの奥行き値(z値)が大きくなるにつれ(親パーティクルが仮想カメラから離れるにつれ)、子パーティクルに割り当てるポリゴンオブジェクトのサイズを小さくすることができる。従って親パーティクルの奥行き値(z値)に応じて自然な遠近関係を有する大きさのポリゴンオブジェクトを子パーティクルに割り当てることができる。
【0227】
図19(A)(B)はパーティクルの時間的な連続性について説明するための図である。図19(A)はt=1〜t=6における親パーティクルと子パーティクルの様子を模式的に表したものである。ここでtは時間の経過を表すパラメータであり、例えばフレーム番号等である。
【0228】
ここでt=1,2…におけるスクリーン平面310−1、310−1…の親パーティクルの位置をPPt1、PPt2…とし、第1の子パーティクルの位置をCP1t1、CP1t2…、第2の子パーティクルの位置をCP2t1、CP2t2…とする。
【0229】
同図に示すように本実施の形態では所与の親パーティクルに対してn+1フレーム目に生成する子パーティクルは、同一の親パーティクルに対してnフレーム目に生成した所与の子パーティクルと連続性を有する位置に生成される。
【0230】
本実施の形態では、例えば第1の子パーティクルのt=1,2…における位置をh=f1(t)からなる第1の軌跡関数370(図19(B)参照)を用いて生成し、第2の子パーティクルのt=1,2…における位置をh=f2(t)からなる第2の軌跡関数380(図19(B)参照)を用いて生成する。このようにすることにより、第1の子パーティクル及び第2の子パーティクルに前後のフレームで連続した軌跡を描かせることができる。
【0231】
図20はパーティクルの水増し処理の流れを説明するためのフローチャート図である。
【0232】
まず所与のパーティクルシステムを用いて3次元空間に当該フレームのパーティクルを生成する(ステップS310)。各パーティクルは、所与のパーティクルシステムによって与えられた色や寿命などの特性を有し、所与の規則(エミッターによって与えられる)や作用する力(フォース)に基づき3次元空間における位置を決定する演算を行い生成されたものである。
【0233】
次に3次元空間のパーティクルをスクリーン平面に透視変換する(ステップS320)。
【0234】
次にスクリーン平面のパーティクルを親パーティクルとして、親パーティクルの位置に基づき水増し点の座標を演算する(ステップS330)。例えば図17(A)(B)で説明した手法で水増し点の位置座標を演算するようにしてもよい。
【0235】
次に水増し点に子パーティクルを生成する(ステップS340)。ここで子パーティクルは親パーティクルの色や寿命などの特性情報を引き継ぐようする。
【0236】
次に子パーティクルにパーティクルオブジェクトを割り当てる(ステップS350)。図18(A)(B)で説明したようにパーティクルオブジェクトとしてスプライトやポリゴンオブジェクトを割り当てることができる。例えば半透明テクスチャを張ったスプライトポリゴンを使用することによりリアルな水しぶきの画像を生成することができる。
【0237】
なお上記実施の形態では子パーティクルにパーティクルオブジェクトとしてスプライトやポリゴンオブジェクトを割り当てる場合を例にとり説明したがこれに限られない。例えば自由曲面の制御点や他のプリミティブを割り当てる場合でもよい。
【0238】
(4)処理負荷を軽減するための処理
図21は本実施の形態における処理負荷を軽減するための処理の一例を説明するためのフローチャート図である。
【0239】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する(ステップ410)。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやCPUクロック等により与えられる1フレームあたりの描画速度等で与えられる。
【0240】
そして処理負荷が高い場合には、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを制御するパラメータを調節する(ステップS420、S430)。処理負荷が高いか否かは、処理負荷情報に基づき判断される。
【0241】
次に奥行き情報を加味してパーティクル発生地点の数を制御する例について説明する。
【0242】
図22(A)(B)は処理負荷が低い場合と処理負荷が高い場合の画像例である。本実施の形態では、処理負荷が低い場合には岩等にあたって発生する多数の水しぶきを生成する(図22(A)参照)。しかし処理負荷情報により処理負荷が高いと判断した場合には遠くにある水しぶきを画像生成の対象外とする。すなわち図22(B)において×印のつけられた水しぶきの画像を生成しないか又はパラメータの値を調整して処理負荷を軽減する。遠いか否かは水しぶき発生地点の奥行き情報に基づき判断する。このようにすることにより×印のついた水しぶきについては、画像生成に必要なパーティクル発生処理から描画処理に至る一連の画像生成処理を全て省略できるので、処理負荷の軽減を図ることができる。
【0243】
図23は奥行き情報を加味してパーティクル発生地点の数を制御する例について説明するためのフローチャート図である。
【0244】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する(ステップS510)。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやCPUクロック等により与えられる1フレームあたりの描画速度等で与えられる。
【0245】
そして処理負荷が高い場合には、パーティクル発生地点の奥行き情報を取得して、パーティクル発生地点の奥行き情報に基づき、仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合によって表現するパーティクル集合オブジェクトを優先して画像生成の対象とする。(ステップS520、530、540)。
【0246】
次に奥行き情報を加味してパーティクル発生地点から発生させるパーティクル数の調節を行う例について説明する。
【0247】
図24(A)(B)は処理負荷が低い場合と処理負荷が高い場合のパーティクル数について説明するための模式的な図である。図24(A)の410は水しぶきを表現するパーティクル集合オブジェクトであり、412はパーティクル集合オブジェクトを構成するパーティクルオブジェクトである。
【0248】
本実施の形態では、処理負荷が低い場合にはパーティクル発生地点から多数のパーティクルが生成され、その結果多数のパーティクルオブジェクトの画像が生成される(図24(A)参照)。
【0249】
しかし処理負荷情報により処理負荷が高いと判断した場合には遠くにあるパーティクル発生地点から発生させるパーティクル数を削減する。
【0250】
図24(B)の410’は処理負荷が高い場合の遠くにある発生地点から発生させたパーティクルによって表現された水しぶきを表現するパーティクル集合オブジェクトである。遠いか否かは水しぶき発生地点の奥行き情報に基づき判断する。410’は発生させるパーティクル数が410の場合に比べて削減されているので、410に比べて少ないパーティクルオブジェクトの画像が生成される(図24(B)参照)。
【0251】
図25は奥行き情報を加味してパーティクル発生地点から発生するパーティクル数を制御する例について説明するためのフローチャート図である。
【0252】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する(ステップ610)。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやCPUクロック等により与えられる1フレームあたりの描画速度等で与えられる。
【0253】
そして処理負荷が高い場合には、パーティクル発生地点の奥行き情報を取得して、パーティクル発生地点の奥行き情報に基づき、仮想カメラから離れたパーティクル発生地点から優先して発生するパーティクル数を削減する処理を行う(ステップS620、630、640)。パーティクル数を削減する処理とは例えば発生させるパーティクル数を制御するためのパラメータの値を変更する処理等である。
【0254】
図26は奥行き情報を加味してパーティクル発生地点から発生させるパーティクルの調節を行う場合の処理の流れについて説明するためのフローチャート図である。
【0255】
まず画像生成時の処理負荷を監視し、処理負荷情報を取得する(ステップ710)。ここで処理負荷情報とは、例えばリフレッシュレートやグローバルクロックやCPUクロック等により与えられる1フレームあたりの描画速度等で与えられる。
【0256】
そして処理負荷が高い場合には、パーティクルの奥行き情報を取得して、パーティクルの奥行き情報に基づき、仮想カメラから離れたパーティクルから優先して寿命を短くする処理を行う(ステップS720、730、740)。例えば奥行き情報に基づきパーティクルのソーティング処理を行い遠いほうから所定個数だけパーティクルの寿命を短く設定するようにしてもよい。
【0257】
次にパーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合について説明する。
【0258】
図27(A)はパーティクルに与えられた透明度が所定値以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図であり、図27(B)はパーティクルの高さが一定以下になった場合にパーティクルの描画処理を省略する様子を模式的に表した図である。
【0259】
図27(A)のPt1、Pt2、Pt3は所与のパーティクル発生地点から発生したパーティクルの時間的な変化を表した図である。ここでパーティクルは特性情報として透明度情報(α値)を有しており、当該透明度情報(α値)は時間とともに減少するように制御される。例えばPt1ではα=128であり、Pt2ではα=52であり、Pt3ではα=0である。
【0260】
当該透明度情報(α値)はパーティクル又はパーティクルに割り当てたパーティクルオブジェクトをαブレンディング処理等を行い半透明描画する際に用いられるものである。ここにおいて例えばα値が0である場合にはパーティクル又はパーティクルに割り当てたパーティクルオブジェクトを半透明描画しても透明で表示されない。
【0261】
そこで本実施の形態では、パーティクルの特性情報として与えられた透明度情報(α値)が0以下になった場合には、当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するようにしている。
【0262】
なお上記実施の形態では、パーティクルの特性情報として与えられた透明度情報(α値)が0以下になった場合に当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略する場合を例にとり説明したがこれに限られない。例えばパーティクルの特性情報として与えられた透明度情報(α値)が所定値になった場合に当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するような場合でもよい。
【0263】
図27(B)のP’t1、P’t2、P’t3は所与のパーティクル発生地点から発生したパーティクルの時間的な高さの変化を表した図である。510は基準面の高さである。ここで基準面とは例えば水面や地面等である。本実施の形態では海面の高さを基準面の高さとして、発生したパーティクルの高さが基準面の高さ以下になった場合には、当該パーティクルを画像生成の対象から除外し、以降の当該パーティクルに関する画像生成処理を省略するようにしている。
【0264】
図28はパーティクルに与えられた透明度やパーティクルの高さに基づきパーティクルの描画処理を省略する場合の処理の流れについて説明するためのフローチャート図である。
【0265】
ステップS810〜S860は、所与のパーティクルが発生してから消滅するまでに各フレーム毎に行う処理であり、S870のパーティクルの終了処理はパーティクルの消滅に際して行う処理である。
【0266】
まず当該フレームのパーティクルの透明度を演算する(ステップ810)。
【0267】
次にパーティクルの透明度が0以下である場合には、当該パーティクルを消滅させるためのパーティクルの終了処理を行う(ステップS820、S870)。
【0268】
またパーティクルの透明度が0以下でない場合には、パーティクルの移動計算を行い当該フレームにおけるパーティクル位置を求める(ステップS820、S830)。パーティクルの移動演算は、例えば各フレームにおけるパーティクルの位置はエミッターやフォースに基づき流体計算、衝突計算、運動計算等のパーティクルの3次元空間における位置を決定する演算を行い決定されることになる。
【0269】
次に求めた位置の高さに関する値が所定の値になった場合には、当該パーティクルを消滅させるためのパーティクルの終了処理を行う(ステップS840、S870)。
【0270】
また求めた位置の高さに関する値が所定の値になっていない場合には、パーティクルを用いた描画処理を行う(ステップS840、S850)。
【0271】
そして次フレームの処理を行う場合には再びステップS810〜S860の処理を繰り返す(ステップS860)。
【0272】
(5)FOG効果の処理削減
例えば水しぶき等のオブジェクトが仮想カメラからの距離に応じて背景に溶け込んでいく様子をリアルに表現する場合等のようにFOG効果を出す場合には、デプスキューイング処理を行う。例えばポリゴンオブジェクトに対してデプスキューイング処理を行う場合には、各頂点ごとにその頂点の奥行き値に応じてその頂点色と背景色の合成を行い、奥行き値に応じてその頂点色を変化させる。
【0273】
本実施の形態では水しぶき等を1のパーティクル発生地点から発生する多数のパーティクルにパーティクルオブジェクトを割り当て、これらパーティクルオブジェクトの集合(パーティクル集合オブジェクト)として生成する。
【0274】
従って水しぶきに対してFOG効果を出すためには、パーティクル集合オブジェクトを構成する各パーティクルオブジェクトの頂点ごとにデプスキューイング処理が必要となるため、処理負荷が著しく増大することになる。
【0275】
そこで本実施の形態では、少ない処理負荷でFOG効果を出すために以下のような処理を行っている。
【0276】
図29はFOG効果の処理削減について説明するための図である。
【0277】
610は水しぶきを表現するための第1のパーティクル集合オブジェクトであり、第1のパーティクル発生地点から発生したパーティクルにパーティクルオブジェクトを割り当てこれらパーティクルオブジェクトの集合として構成されている。ここで612及び614は第1のパーティクル集合オブジェクトに属する第1及び第2のパーティクルである。
【0278】
また620は水しぶきを表現するための第2のパーティクル集合オブジェクトであり、第2のパーティクル発生地点から発生したパーティクルにパーティクルオブジェクトを割り当てこれらパーティクルオブジェクトの集合として構成されている。ここで622及び624は第2のパーティクル集合オブジェクトに属する第3及び第4のパーティクルである。
【0279】
ここで本実施の形態では第1のパーティクル集合オブジェクト及び第2のパーティクル集合オブジェクトに水しぶきを表現するための基準色を設定する。この基準色は第1のパーティクル集合オブジェクトと第2のパーティクル集合オブジェクトで同じ色にしてもよいし、異なる色にしてもよい。
【0280】
そして当該基準色と各パーティクル集合オブジェクトのパーティクル発生地点の奥行き値に基づきデプスキューング処理を行い、前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【0281】
すなわち第1のパーティクル集合オブジェクト610に属する第1のパーティクル612及び第2のパーティクル614に対しては、第1のパーティクル集合オブジェクト610のベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【0282】
また第2のパーティクル集合オブジェクト610に属する第3のパーティクル622及び第4のパーティクル624に対しては、第2のパーティクル集合オブジェクト620のベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う。
【0283】
従って第1のパーティクル集合オブジェクト及び第2のパーティクル集合オブジェクトを構成する各パーティクルに対してそれぞれにデプスキューング処理を行う場合に比べ大幅に処理を削減することができる。
【0284】
なおここでは説明を簡単にするために612、614、622、624をパーティクルとして話を進めたが、パーティクルに割り当てられたパーティクルオブジェクトの頂点であってもよい。
【0285】
図30(A)(B)(C)は、本実施の形態で行うデプスキューング処理について説明するための図である。
【0286】
図30(A)はR(赤)についてのデプスキューング処理を説明するための図である。縦軸はR(赤)の値であり横軸はパーティクル発生地点の奥行き値(Z)である。また630はパーティクル集合オブジェクトに設定された基準色のRの値であり、640は背景色のRの値である。そして635は奥行き値に基づきベースカラーのRの値を求めるための関数曲線である。
【0287】
例えばパーティクル発生地点の奥行き値がZ1である場合にはベースカラーのRの値のR1となり、パーティクル発生地点の奥行き値がZ2である場合にはベースカラーのRの値のR2となる。
【0288】
図30(B)はG(緑)についてのデプスキューング処理を説明するための図である。縦軸はG(緑)の値であり横軸はパーティクル発生地点の奥行き値(Z)である。また650はパーティクル集合オブジェクトに設定された基準色のRの値であり、660は背景色のGの値である。そして655は奥行き値に基づきベースカラーのGの値を求めるための関数曲線である。
【0289】
例えばパーティクル発生地点の奥行き値がZ1である場合にはベースカラーのGの値のG1となり、パーティクル発生地点の奥行き値がZ2である場合にはベースカラーのGの値のG2となる。
【0290】
図30(C)はB(青)についてのデプスキューング処理を説明するための図である。縦軸は B(青)の値であり横軸はパーティクル発生地点の奥行き値(Z)である。また670はパーティクル集合オブジェクトに設定された基準色のBの値であり、680は背景色のBの値である。そして675は奥行き値に基づきベースカラーのBの値を求めるための関数曲線である。
【0291】
例えばパーティクル発生地点の奥行き値がZ1である場合にはベースカラーのBの値のB1となり、パーティクル発生地点の奥行き値がZ2である場合にはベースカラーのBの値のB2となる。
【0292】
(6)ポリゴン分割によるページング発生防止
例えばメモリ資源に制約のあるハードウエアを用いて画像生成を行う場合、VRAM(フレームバッファ)の実記憶領域の容量も限られている。このため大きなポリゴンをVRAM(フレームバッファ)に描画しようとするとページングが発生し処理時間が増大することになる。
【0293】
そこで本実施の形態では、パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルに割り当てるオブジェクトを構成するポリゴンの分割数を大きくすることでかかるページングの発生を防止している。
【0294】
図31は本実施の形態のポリゴン分割の一例について説明するためのフローチャート図である。
【0295】
まず処理対象パーティクルの奥行き情報を取得する(ステップS910)。
【0296】
次に奥行き値に基づき分割数を変更するか否か判断し、変更する場合にはパーティクルオブジェクトを構成するポリゴンやスプライトを分割する処理を行う(ステップS920、S930)。
【0297】
図32はパーティクルオブジェクトを構成するスプライト(板ポリゴン)を分割する様子を表した図である。710は分割前のスプライト(板ポリゴン)であり、720は分割後のスプライト(板ポリゴン)である。
【0298】
分割数を変更するかいなかは、例えば奥行き情報が所定の値になったかいなかによって決めてもよいし、例えば奥行き情報に基づきパーティクルのソーティング処理を行い、手前から所定個数に属するパーティクルに割り当てられたオブジェクトに当該ポリゴンやスプライトが属するか否かによって決めてもよい。
【0299】
3.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図33を用いて説明する。
【0300】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0301】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0302】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0303】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0304】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0305】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0306】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0307】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0308】
RAM960は、各種プロセッサの作業領域として用いられる。
【0309】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0310】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0311】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0312】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0313】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0314】
図34(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム或いはデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0315】
図34(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0316】
図34(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0317】
なお、図34(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0318】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0319】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0320】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0321】
また、本発明の手法により表現できる表示物は水しぶきには限定されず、例えば、花火、爆発、稲光、光るアメーバ等、形が不定形に変形しながら光を照射する種々の表示物を表現できる。
【0322】
また、パーティクルの制御手法も本実施の形態で説明した手法に限定されるものではない。
【0323】
また、本実施形態では、オブジェクトがポリゴンで構成される場合について主に説明したが、自由曲面などの他の形態のプリミティブ面でオブジェクトが構成される場合も本発明の範囲に含まれる。
【0324】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0325】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【符号の説明】
【0326】
100 処理部
110 ゲーム処理部
120 画像生成部
130 描画順序決定処理部
132 パーティクル水増し処理部
134 パーティクル負荷軽減処理部
140 描画部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ
174 フレームバッファ
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
画像生成を行うシステムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
含むことを特徴とする画像生成システム。
【請求項2】
請求項1において、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とする画像生成システム。
【請求項3】
請求項1乃至2のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項4】
請求項1乃至3のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項5】
請求項1乃至4のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項7】
請求項1乃至6のいずれかにおいて、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とする画像生成システム。
【請求項8】
画像生成を行うシステムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項9】
画像生成を行うシステムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項10】
請求項9において、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とする画像生成システム。
【請求項11】
画像生成を行うシステムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項12】
画像生成を行うシステムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
を含むことを特徴とする画像生成システム。
【請求項13】
画像生成を行うシステムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項14】
請求項13において、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とする画像生成システム。
【請求項15】
請求項13において、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とする画像生成システム。
【請求項16】
請求項13乃至15のいずれかにおいて、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とする画像生成システム。
【請求項17】
コンピュータが使用可能なプログラムであって、
画像生成時の処理負荷に関する情報に基づき、パーティクル発生地点の数、パーティクル数及びパーティクルの寿命の少なくともひとつを変更する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項18】
請求項17において、
前記パーティクル数は、一画面に存在するパーティクル数又は所与の発生地点から発生させるパーティクル数であることを特徴とするプログラム。
【請求項19】
請求項17乃至18のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルから優先して寿命を短くすることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項20】
請求項17乃至19のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生するパーティクル集合から優先して画像生成の対象外とすることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項21】
請求項17乃至20のいずれかにおいて、
パーティクルの発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から優先して発生させるパーティクルの数を削減することにより、処理負荷を軽減することを特徴とするプログラム。
【請求項22】
請求項17乃至21のいずれかにおいて、
パーティクルの奥行き情報に基づき仮想カメラから離れたパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項23】
請求項17乃至22のいずれかにおいて、
パーティクル発生地点の奥行き情報に基づき仮想カメラから離れたパーティクル発生地点から発生したパーティクルに割り当てるオブジェクトから優先してオブジェクトの精密度を下げることにより、処理負荷を軽減することを特徴とするプログラム。
【請求項24】
コンピュータが使用可能なプログラムであって、
パーティクル又はパーティクルに割り当てたオブジェクトに与えられた透明度が所定値より小さくなった場合には、当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項25】
コンピュータが使用可能なプログラムであって、
パーティクルの高さが所定の値になったらパーティクル又はパーティクルに割り当てたオブジェクトの消滅処理を行う手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項26】
請求項25において、
前記消滅処理には、所定時間経過後にパーティクル又はパーティクルに割り当てたオブジェクトが消滅する場合も含むことを特徴とするプログラム。
【請求項27】
コンピュータが使用可能なプログラムであって、
パーティクルの奥行き情報に基づきその前に視界をさえぎるオブジェクトがあるか否か判断し、視界をさえぎるオブジェクトがある場合には当該パーティクル又はパーティクルに割り当てたオブジェクトを画像生成の対象から除外する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項28】
コンピュータが使用可能なプログラムであって、
同一のパーティクル発生地点から発生したパーティクル集合によって表現するパーティクル集合オブジェクトに対して設定された基準色に対してパーティクル発生地点の奥行き情報に基づきデプスキューング処理を行う手段と、
前記デプスキューング処理で得られた色をパーティクル集合オブジェクトのベースカラーとし、同一のパーティクル発生地点から発生したパーティクル集合に属する各パーティクルに対して前記ベースカラーを用いてデプスキューング効果を適用して画像生成処理を行う手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項29】
コンピュータが使用可能なプログラムであって、
パーティクルオブジェクトの奥行き情報、仮想カメラに対する位置関係及びパーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合の少なくともひとつに基づきパーティクルオブジェクトを構成するプリミティブの分割数を制御する手段と、
パーティクルを用いてオブジェクト空間の所与の視点から見える画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項30】
請求項29において、
パーティクルオブジェクトの奥行き情報又は仮想カメラからの距離が大きくなった場合にパーティクルオブジェクトを構成するプリミティブの分割数を大きくすることを特徴とするプログラム。
【請求項31】
請求項29において、
パーティクルオブジェクトを構成するプリミティブの画面に占める描画面積の割合が大きくなった場合にはパーティクルを構成するプリミティブの分割数を大きくすることを特徴とするプログラム。
【請求項32】
請求項29乃至31のいずれかにおいて、
パーティクルに割り当てたプリミティブを再分割することで分割数を大きくすることを特徴とするプログラム。
【請求項33】
コンピュータにより使用可能な情報記憶媒体であって、請求項17乃至32のいずれかのプログラムを含むことを特徴とする情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図19】
image rotate

【図22】
image rotate

【図24】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図3】
image rotate

【図5】
image rotate

【図12】
image rotate

【図18】
image rotate

【図20】
image rotate

【図21】
image rotate

【図23】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2011−76620(P2011−76620A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2010−258979(P2010−258979)
【出願日】平成22年11月19日(2010.11.19)
【分割の表示】特願2001−5781(P2001−5781)の分割
【原出願日】平成13年1月12日(2001.1.12)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】