JP2003091740A - 画像生成システム、プログラム及び情報記憶媒体 - Google Patents
画像生成システム、プログラム及び情報記憶媒体Info
- Publication number
- JP2003091740A JP2003091740A JP2001282148A JP2001282148A JP2003091740A JP 2003091740 A JP2003091740 A JP 2003091740A JP 2001282148 A JP2001282148 A JP 2001282148A JP 2001282148 A JP2001282148 A JP 2001282148A JP 2003091740 A JP2003091740 A JP 2003091740A
- Authority
- JP
- Japan
- Prior art keywords
- field
- flow field
- information
- setting
- primitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
(57)【要約】
【課題】 シミュレーション演算により求められた場を
反映させた画像の生成をリアルタイムに処理可能な画像
生成システム、プログラム及び情報記憶媒体を提供す
る。 【解決手段】 1の流れ場のサイズ又は分割数が変更さ
れた場又は場の影響が、オブジェクト空間に設定され
る。オブジェクトWOBJXが流れ場又は流れ場の影響
が反映される位置に配置された場合、流れ場の各格子点
の情報に基づいて、オブジェクトWOBJXの構成点の
位置や、構成点に関連付けられる情報(色情報、透明度
情報)が変化する。サイズ又は分割数が異なる流れ場H
FX1〜HFX3の各格子点の流れ場情報(例えば速度
ベクトル)に基づいてそれぞれオブジェクトの構成点の
位置を変化させた場合、オブジェクトWOBJは、オブ
ジェクトOBJX1〜OBJX3のように変形する。流
れ場のサイズ等は、イベントの発生状況や処理負荷に応
じて変更するようにしてもよい。
反映させた画像の生成をリアルタイムに処理可能な画像
生成システム、プログラム及び情報記憶媒体を提供す
る。 【解決手段】 1の流れ場のサイズ又は分割数が変更さ
れた場又は場の影響が、オブジェクト空間に設定され
る。オブジェクトWOBJXが流れ場又は流れ場の影響
が反映される位置に配置された場合、流れ場の各格子点
の情報に基づいて、オブジェクトWOBJXの構成点の
位置や、構成点に関連付けられる情報(色情報、透明度
情報)が変化する。サイズ又は分割数が異なる流れ場H
FX1〜HFX3の各格子点の流れ場情報(例えば速度
ベクトル)に基づいてそれぞれオブジェクトの構成点の
位置を変化させた場合、オブジェクトWOBJは、オブ
ジェクトOBJX1〜OBJX3のように変形する。流
れ場のサイズ等は、イベントの発生状況や処理負荷に応
じて変更するようにしてもよい。
Description
【0001】
【発明の属する技術分野】本発明は、画像生成システ
ム、プログラム及び情報記憶媒体に関する。
ム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】従来よ
り、テクスチャ・アニメーション等の技法を用いて水の
動き等の自然現象を擬似的に表現することが可能であっ
た。しかしながら、表現が単調になってしまったり、よ
りリアルな表現をすることができなかった。
り、テクスチャ・アニメーション等の技法を用いて水の
動き等の自然現象を擬似的に表現することが可能であっ
た。しかしながら、表現が単調になってしまったり、よ
りリアルな表現をすることができなかった。
【0003】このような自然現象をリアルに表現するも
のとして、流体シミュレーションにより流れ場を求め、
オブジェクトの動作にこの流れ場を反映させる手法があ
る。
のとして、流体シミュレーションにより流れ場を求め、
オブジェクトの動作にこの流れ場を反映させる手法があ
る。
【0004】しかしながら、従来の流体シミュレーショ
ンは処理負荷が重く、最終的には流れ場の動作を可視化
することを目的とするため、リアルタイム処理が行われ
ることはなかった。そのため、インタラクティブに発生
する外因に基づき、流体シミュレーションにより求めら
れた流れ場の影響を、オブジェクト画像に反映させて表
現することができなかった。
ンは処理負荷が重く、最終的には流れ場の動作を可視化
することを目的とするため、リアルタイム処理が行われ
ることはなかった。そのため、インタラクティブに発生
する外因に基づき、流体シミュレーションにより求めら
れた流れ場の影響を、オブジェクト画像に反映させて表
現することができなかった。
【0005】本発明は、以上のような課題に鑑みてなさ
れたものであり、その目的とするところは、シミュレー
ション演算により求められた場を反映させた画像の生成
をリアルタイムに処理可能な画像生成システム、プログ
ラム及び情報記憶媒体を提供することにある。
れたものであり、その目的とするところは、シミュレー
ション演算により求められた場を反映させた画像の生成
をリアルタイムに処理可能な画像生成システム、プログ
ラム及び情報記憶媒体を提供することにある。
【0006】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、画像生成を行う画像生成システムであっ
て、シミュレーション空間を分割した各点での物理量に
基づいて形成される場について、サイズ、分割数、設定
位置、設定数及び形状のうち少なくとも1つを変更して
設定する場設定手段と、前記物理量の変化をシミュレー
ション演算により求め、前記場を求めるシミュレーショ
ン演算手段と、前記場の各点での物理量を用いて、プリ
ミティブの位置又はプリミティブに関連付けられる情報
を変化させる手段と、前記プリミティブが配置されるオ
ブジェクト空間の所与の視点から見た画像を生成する手
段とを含むことを特徴とする。また本発明に係るプログ
ラムは、上記手段としてコンピュータを機能させること
を特徴とする。また本発明に係る情報記憶媒体は、コン
ピュータにより読み取り可能な情報記憶媒体であって、
上記手段としてコンピュータを機能させるプログラムを
記憶することを特徴とする。
に、本発明は、画像生成を行う画像生成システムであっ
て、シミュレーション空間を分割した各点での物理量に
基づいて形成される場について、サイズ、分割数、設定
位置、設定数及び形状のうち少なくとも1つを変更して
設定する場設定手段と、前記物理量の変化をシミュレー
ション演算により求め、前記場を求めるシミュレーショ
ン演算手段と、前記場の各点での物理量を用いて、プリ
ミティブの位置又はプリミティブに関連付けられる情報
を変化させる手段と、前記プリミティブが配置されるオ
ブジェクト空間の所与の視点から見た画像を生成する手
段とを含むことを特徴とする。また本発明に係るプログ
ラムは、上記手段としてコンピュータを機能させること
を特徴とする。また本発明に係る情報記憶媒体は、コン
ピュータにより読み取り可能な情報記憶媒体であって、
上記手段としてコンピュータを機能させるプログラムを
記憶することを特徴とする。
【0007】ここで、オブジェクト空間とは、例えば定
義点(ポリゴンの頂点或いは自由曲面の制御点など)に
より形状が特定されるオブジェクト(プリミティブ)が
配置される仮想的な3次元空間をいう。
義点(ポリゴンの頂点或いは自由曲面の制御点など)に
より形状が特定されるオブジェクト(プリミティブ)が
配置される仮想的な3次元空間をいう。
【0008】また、場とは、物理量が空間的に分布して
いる領域をいう。
いる領域をいう。
【0009】なお、シミュレーション演算によって求め
られた場の物理量のみならず、該場の流れ場の情報に基
づいて変化する情報(対象物に適用するために、上記物
理量についての流れ場の情報に基づいて演算した結果)
を用いて、プリミティブの位置等を変化させる場合も本
発明に含むことができる。
られた場の物理量のみならず、該場の流れ場の情報に基
づいて変化する情報(対象物に適用するために、上記物
理量についての流れ場の情報に基づいて演算した結果)
を用いて、プリミティブの位置等を変化させる場合も本
発明に含むことができる。
【0010】さらに、プリミティブに関連付けられる情
報とは、プリミティブごとに付与される色(輝度)情報
や、透明度情報などをいう。
報とは、プリミティブごとに付与される色(輝度)情報
や、透明度情報などをいう。
【0011】本発明によれば、場のサイズ、分割数、設
定位置、設定数及び形状のうち少なくとも1つを変更し
て、シミュレーション演算により求めた場の情報に基づ
いて、プリミティブの位置又はプリミティブに関連付け
られる情報を変化させて、オブジェクト空間における画
像を生成するようにしたので、シミュレーションの処理
負荷を可変にすることができる。したがって、リアルさ
が必要とされる場合には、分割数を細かくする等してシ
ミュレーションの処理負荷を犠牲にしたり、リアルさが
必要とされない場合には、分割数を粗くする等してシミ
ュレーションの処理負荷を軽減することができる。
定位置、設定数及び形状のうち少なくとも1つを変更し
て、シミュレーション演算により求めた場の情報に基づ
いて、プリミティブの位置又はプリミティブに関連付け
られる情報を変化させて、オブジェクト空間における画
像を生成するようにしたので、シミュレーションの処理
負荷を可変にすることができる。したがって、リアルさ
が必要とされる場合には、分割数を細かくする等してシ
ミュレーションの処理負荷を犠牲にしたり、リアルさが
必要とされない場合には、分割数を粗くする等してシミ
ュレーションの処理負荷を軽減することができる。
【0012】これにより、シミュレーション演算の処理
負荷と、シミュレーション演算に基づく位置や状態を変
化させたリアルな画像の生成とのバランスを考慮して、
画像生成処理の最適化を図ることができる。
負荷と、シミュレーション演算に基づく位置や状態を変
化させたリアルな画像の生成とのバランスを考慮して、
画像生成処理の最適化を図ることができる。
【0013】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、前記場の各点での物理量を
用いて、パーティクルの位置又はパーティクルに関連付
けられる情報を変化させる手段を含むことを特徴とす
る。
グラム及び情報記憶媒体は、前記場の各点での物理量を
用いて、パーティクルの位置又はパーティクルに関連付
けられる情報を変化させる手段を含むことを特徴とす
る。
【0014】ここで、パーティクルに関連付けられる情
報とは、例えばパーティクルの寿命、サイズ、色情報や
透明度情報をいう。
報とは、例えばパーティクルの寿命、サイズ、色情報や
透明度情報をいう。
【0015】本発明によれば、シミュレーション空間に
おけるシミュレーション演算によって求められた場の情
報を用いて、パーティクルの位置や状態を変化させるよ
うにしたので、オブジェクト空間において、インタラク
ティブに発生する外因の影響を反映させた自然現象を表
すリアルな画像を生成することができるようになる。
おけるシミュレーション演算によって求められた場の情
報を用いて、パーティクルの位置や状態を変化させるよ
うにしたので、オブジェクト空間において、インタラク
ティブに発生する外因の影響を反映させた自然現象を表
すリアルな画像を生成することができるようになる。
【0016】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、処理負荷を監視する手段を
含み(該手段としてコンピュータを機能させ、或いは該
手段をコンピュータに機能させるプログラムを記憶
し)、前記場設定手段は、処理負荷に応じて、前記場の
サイズ、分割数、設定位置、設定数及び形状のうち少な
くとも1つを変更して設定することを特徴とする。
グラム及び情報記憶媒体は、処理負荷を監視する手段を
含み(該手段としてコンピュータを機能させ、或いは該
手段をコンピュータに機能させるプログラムを記憶
し)、前記場設定手段は、処理負荷に応じて、前記場の
サイズ、分割数、設定位置、設定数及び形状のうち少な
くとも1つを変更して設定することを特徴とする。
【0017】本発明においては、例えば処理負荷が高い
と判別されたときに、場のサイズを小さくしたり、又は
分割数を粗く設定することにより、表現のリアルさをあ
る程度犠牲にして処理負荷を軽減させることができる。
一方、処理負荷が低いと判別されたときは、場のサイズ
を大きくしたり、又は分割数を細かく設定することによ
り、場の状態が参照される位置のプリミティブの位置若
しくは状態の変化について、よりリアルに表現させるこ
とができる。
と判別されたときに、場のサイズを小さくしたり、又は
分割数を粗く設定することにより、表現のリアルさをあ
る程度犠牲にして処理負荷を軽減させることができる。
一方、処理負荷が低いと判別されたときは、場のサイズ
を大きくしたり、又は分割数を細かく設定することによ
り、場の状態が参照される位置のプリミティブの位置若
しくは状態の変化について、よりリアルに表現させるこ
とができる。
【0018】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、所与のイベントを検出する
手段を含み(該手段としてコンピュータを機能させ、或
いは該手段をコンピュータに機能させるプログラムを記
憶し)、前記場設定手段は、前記イベントの検出結果に
基づいて、前記場のサイズ、分割数、設定位置、設定数
及び形状のうち少なくとも1つを変更して設定すること
を特徴とする。
グラム及び情報記憶媒体は、所与のイベントを検出する
手段を含み(該手段としてコンピュータを機能させ、或
いは該手段をコンピュータに機能させるプログラムを記
憶し)、前記場設定手段は、前記イベントの検出結果に
基づいて、前記場のサイズ、分割数、設定位置、設定数
及び形状のうち少なくとも1つを変更して設定すること
を特徴とする。
【0019】本発明によれば、所与のイベントの発生を
契機として、適宜場のサイズ等を変化させることで、シ
ミュレーションの処理負荷を増加させることなく、イン
タラクティブに発生する外因を反映させたリアルな画像
をリアルタイムで生成することができるようになる。
契機として、適宜場のサイズ等を変化させることで、シ
ミュレーションの処理負荷を増加させることなく、イン
タラクティブに発生する外因を反映させたリアルな画像
をリアルタイムで生成することができるようになる。
【0020】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、前記イベントに関連付けら
れた位置に、前記場又は該場の影響を受けた仮想場が設
定されることを特徴とする。
グラム及び情報記憶媒体は、前記イベントに関連付けら
れた位置に、前記場又は該場の影響を受けた仮想場が設
定されることを特徴とする。
【0021】ここで、イベントに関連付けられた位置と
は、検出されたイベントごとに対応して決められる位置
をいい、例えばイベント要因の発生位置がある。
は、検出されたイベントごとに対応して決められる位置
をいい、例えばイベント要因の発生位置がある。
【0022】また、場又は場の影響とは、シミュレーシ
ョンにより直接的に求められた物理量についての場だけ
ではなく、シミュレーションにより直接的に求められた
上記物理量に基づいて変化する情報についての空間的な
領域を含むことを意味する。
ョンにより直接的に求められた物理量についての場だけ
ではなく、シミュレーションにより直接的に求められた
上記物理量に基づいて変化する情報についての空間的な
領域を含むことを意味する。
【0023】本発明によれば、発生したイベントに応じ
て、場のサイズ等を最適化することができるので、より
効率的に、処理負荷とリアルな画像生成との最適化を図
ることができる。
て、場のサイズ等を最適化することができるので、より
効率的に、処理負荷とリアルな画像生成との最適化を図
ることができる。
【0024】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、前記イベントの発生位置
と、前記場又は該場の影響を受けた仮想場を設定する位
置とは異なることを特徴とする。
グラム及び情報記憶媒体は、前記イベントの発生位置
と、前記場又は該場の影響を受けた仮想場を設定する位
置とは異なることを特徴とする。
【0025】本発明によれば、場又は該場の影響を受け
た仮想場の状態が参照される位置と、その適用される位
置とが同一である必要がなくなるため、様々なシチュエ
ーションにおいて種々のエフェクトに適用することがで
きるようになる。
た仮想場の状態が参照される位置と、その適用される位
置とが同一である必要がなくなるため、様々なシチュエ
ーションにおいて種々のエフェクトに適用することがで
きるようになる。
【0026】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、前記シミュレーション演算
が行われる1の場の情報が、オブジェクト空間内の複数
の位置に設定された場の情報又は該場の影響を受けた情
報として用いられることを特徴とする。
グラム及び情報記憶媒体は、前記シミュレーション演算
が行われる1の場の情報が、オブジェクト空間内の複数
の位置に設定された場の情報又は該場の影響を受けた情
報として用いられることを特徴とする。
【0027】本発明によれば、1の場におけるシミュレ
ーションにより求められた結果を、各位置に配置された
プリミティブに反映させることができるので、これまで
にないリアルで複雑な表現を、より少ない処理負荷で実
現することができる。
ーションにより求められた結果を、各位置に配置された
プリミティブに反映させることができるので、これまで
にないリアルで複雑な表現を、より少ない処理負荷で実
現することができる。
【0028】また本発明に係る画像生成システム、プロ
グラム及び情報記憶媒体は、前記場又は該場の影響を受
けた仮想場は、オブジェクト空間内を移動するプリミテ
ィブに追従する位置に設定されることを特徴とする。
グラム及び情報記憶媒体は、前記場又は該場の影響を受
けた仮想場は、オブジェクト空間内を移動するプリミテ
ィブに追従する位置に設定されることを特徴とする。
【0029】本発明によれば、プリミティブに追従させ
ることで、広い空間を設定して計算を行う必要がなくな
る。また、オブジェクト空間におけるプリミティブ若し
くはオブジェトの移動によるエフェクトの表現を単調化
することなく、例えば移動プリミティブ(オブジェク
ト)の移動の仕方や、移動速度を反映させたリアルな画
像をリアルタイムで生成することができる。
ることで、広い空間を設定して計算を行う必要がなくな
る。また、オブジェクト空間におけるプリミティブ若し
くはオブジェトの移動によるエフェクトの表現を単調化
することなく、例えば移動プリミティブ(オブジェク
ト)の移動の仕方や、移動速度を反映させたリアルな画
像をリアルタイムで生成することができる。
【0030】
【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて説明する。
ついて図面を用いて説明する。
【0031】なお、以下に説明する本実施形態は、特許
請求の範囲に記載された本発明の内容を何ら限定するも
のではない。また本実施形態で説明される構成の全てが
本発明の解決手段として必須であるとは限らない。
請求の範囲に記載された本発明の内容を何ら限定するも
のではない。また本実施形態で説明される構成の全てが
本発明の解決手段として必須であるとは限らない。
【0032】1. 構成
図1に、本実施形態の画像生成システム(ゲームシステ
ム)の機能ブロック図の一例を示す。
ム)の機能ブロック図の一例を示す。
【0033】なお同図において本実施形態は、少なくと
も処理部100を含めばよく(或いは処理部100と記
憶部170、或いは処理部100と記憶部170と情報
記憶媒体180を含めばよく)、それ以外のブロック
(例えば、操作部160、表示部190、音出力部19
2、携帯型情報記憶装置194、通信部196)につい
ては、任意の構成要素とすることができる。
も処理部100を含めばよく(或いは処理部100と記
憶部170、或いは処理部100と記憶部170と情報
記憶媒体180を含めばよく)、それ以外のブロック
(例えば、操作部160、表示部190、音出力部19
2、携帯型情報記憶装置194、通信部196)につい
ては、任意の構成要素とすることができる。
【0034】ここで処理部100は、システム全体の制
御、システム内の各ブロックへの命令の指示、ゲーム処
理、画像処理、又は音処理などの各種の処理を行うもの
であり、その機能は、各種プロセッサ(CPU、DSP
等)、或いはASIC(ゲートアレイ等)などのハード
ウェアや、所与のプログラム(ゲームプログラム)によ
り実現できる。
御、システム内の各ブロックへの命令の指示、ゲーム処
理、画像処理、又は音処理などの各種の処理を行うもの
であり、その機能は、各種プロセッサ(CPU、DSP
等)、或いはASIC(ゲートアレイ等)などのハード
ウェアや、所与のプログラム(ゲームプログラム)によ
り実現できる。
【0035】操作部160は、プレーヤが操作データを
入力するためのものであり、その機能は、レバー、ボタ
ン、マイク、或いは筐体などのハードウェアにより実現
できる。
入力するためのものであり、その機能は、レバー、ボタ
ン、マイク、或いは筐体などのハードウェアにより実現
できる。
【0036】記憶部170は、処理部100や通信部1
96などのワーク領域となるもので、その機能はRAM
などのハードウェアにより実現できる。
96などのワーク領域となるもので、その機能はRAM
などのハードウェアにより実現できる。
【0037】情報記憶媒体(コンピュータにより使用可
能な記憶媒体)180は、プログラムやデータなどの情
報を格納するものであり、その機能は、光ディスク(C
D、DVD)、光磁気ディスク(MO)、磁気ディス
ク、ハードディスク、磁気テープ、或いはメモリ(RO
M)などのハードウェアにより実現できる。処理部10
0は、この情報記憶媒体180に格納されるプログラム
(データ)に基づいて本発明(本実施形態)の種々の処
理を行う。即ち情報記憶媒体180には、本発明(本実
施形態)の手段(特に処理部100に含まれるブロッ
ク)をコンピュータに実現(実行、機能)させるための
プログラムが格納され、このプログラムは、例えば1又
は複数のモジュール(オブジェクト指向におけるオブジ
ェクトも含む)を含む。
能な記憶媒体)180は、プログラムやデータなどの情
報を格納するものであり、その機能は、光ディスク(C
D、DVD)、光磁気ディスク(MO)、磁気ディス
ク、ハードディスク、磁気テープ、或いはメモリ(RO
M)などのハードウェアにより実現できる。処理部10
0は、この情報記憶媒体180に格納されるプログラム
(データ)に基づいて本発明(本実施形態)の種々の処
理を行う。即ち情報記憶媒体180には、本発明(本実
施形態)の手段(特に処理部100に含まれるブロッ
ク)をコンピュータに実現(実行、機能)させるための
プログラムが格納され、このプログラムは、例えば1又
は複数のモジュール(オブジェクト指向におけるオブジ
ェクトも含む)を含む。
【0038】なお、情報記憶媒体180に格納される情
報の一部又は全部は、システムへの電源投入時等に記憶
部170に転送されることになる。また情報記憶媒体1
80には、本発明の処理を行うためのプログラム、画像
データ、音データ、表示物の形状データ、本発明の処理
を指示するための情報、或いはその指示に従って処理を
行うための情報などを含ませることができる。
報の一部又は全部は、システムへの電源投入時等に記憶
部170に転送されることになる。また情報記憶媒体1
80には、本発明の処理を行うためのプログラム、画像
データ、音データ、表示物の形状データ、本発明の処理
を指示するための情報、或いはその指示に従って処理を
行うための情報などを含ませることができる。
【0039】表示部190は、本実施形態により生成さ
れた画像を出力するものであり、その機能は、CRT、
LCD、或いはHMD(ヘッドマウントディスプレイ)
などのハードウェアにより実現できる。
れた画像を出力するものであり、その機能は、CRT、
LCD、或いはHMD(ヘッドマウントディスプレイ)
などのハードウェアにより実現できる。
【0040】音出力部192は、本実施形態により生成
された音を出力するものであり、その機能は、スピーカ
などのハードウェアにより実現できる。
された音を出力するものであり、その機能は、スピーカ
などのハードウェアにより実現できる。
【0041】携帯型情報記憶装置194は、プレーヤの
個人データやゲームのセーブデータなどが記憶されるも
のであり、この携帯型情報記憶装置194としては、メ
モリカードや携帯型ゲーム装置などを考えることができ
る。
個人データやゲームのセーブデータなどが記憶されるも
のであり、この携帯型情報記憶装置194としては、メ
モリカードや携帯型ゲーム装置などを考えることができ
る。
【0042】通信部196は、外部(例えばホスト装置
や他の画像生成システム)との間で通信を行うための各
種の制御を行うものであり、その機能は、各種プロセッ
サ、或いは通信用ASICなどのハードウェアや、プロ
グラムなどにより実現できる。
や他の画像生成システム)との間で通信を行うための各
種の制御を行うものであり、その機能は、各種プロセッ
サ、或いは通信用ASICなどのハードウェアや、プロ
グラムなどにより実現できる。
【0043】なお本発明(本実施形態)の各手段を実現
(実行、機能)するためのプログラム(情報)は、ホス
ト装置(サーバ)が有する情報記憶媒体からネットワー
ク及び通信部196を介して情報記憶媒体180に配信
するようにしてもよい。このようなホスト装置(サー
バ)の情報記憶媒体の使用も本発明の範囲内に含まれ
る。
(実行、機能)するためのプログラム(情報)は、ホス
ト装置(サーバ)が有する情報記憶媒体からネットワー
ク及び通信部196を介して情報記憶媒体180に配信
するようにしてもよい。このようなホスト装置(サー
バ)の情報記憶媒体の使用も本発明の範囲内に含まれ
る。
【0044】処理部(プロセッサ)100は、操作部1
60からの操作データやプログラムなどに基づいて、ゲ
ーム処理、画像生成処理、或いは音生成処理などの各種
の処理を行う。この場合、処理部100は、記憶部17
0内の主記憶部をワーク領域として使用して、各種の処
理を行う。
60からの操作データやプログラムなどに基づいて、ゲ
ーム処理、画像生成処理、或いは音生成処理などの各種
の処理を行う。この場合、処理部100は、記憶部17
0内の主記憶部をワーク領域として使用して、各種の処
理を行う。
【0045】ここで、処理部100が行う処理として
は、コイン(代価)の受け付け処理、各種モードの設定
処理、ゲームの進行処理、選択画面の設定処理、オブジ
ェクト(1又は複数のプリミティブ。以下の説明でも同
様)の位置や回転角度(X、Y又はZ軸回りの回転角
度)を求める処理、オブジェクトを動作させる処理(モ
ーション処理)、視点の位置(仮想カメラの位置)や視
線角度(仮想カメラの回転角度)を求める処理、マップ
オブジェクトなどのオブジェクトをオブジェクト空間へ
配置する処理、ヒットチェック処理、ゲーム結果(成
果、成績)を演算する処理、複数のプレーヤが共通のゲ
ーム空間でプレイするための処理、或いはゲームオーバ
処理などを考えることができる。
は、コイン(代価)の受け付け処理、各種モードの設定
処理、ゲームの進行処理、選択画面の設定処理、オブジ
ェクト(1又は複数のプリミティブ。以下の説明でも同
様)の位置や回転角度(X、Y又はZ軸回りの回転角
度)を求める処理、オブジェクトを動作させる処理(モ
ーション処理)、視点の位置(仮想カメラの位置)や視
線角度(仮想カメラの回転角度)を求める処理、マップ
オブジェクトなどのオブジェクトをオブジェクト空間へ
配置する処理、ヒットチェック処理、ゲーム結果(成
果、成績)を演算する処理、複数のプレーヤが共通のゲ
ーム空間でプレイするための処理、或いはゲームオーバ
処理などを考えることができる。
【0046】処理部100は、シミュレーション演算部
110、場設定部115、プリミティブ処理部120、
処理監視部125、画像生成部140、音生成部150
を含む。なお、処理部100に、これら全ての機能ブロ
ック110〜150を含ませる必要はなく、一部の機能
ブロックを省略する構成にしてもよい。
110、場設定部115、プリミティブ処理部120、
処理監視部125、画像生成部140、音生成部150
を含む。なお、処理部100に、これら全ての機能ブロ
ック110〜150を含ませる必要はなく、一部の機能
ブロックを省略する構成にしてもよい。
【0047】ここでシミュレーション演算部110は、
2次元又は3次元のシミュレーション空間(ゲーム空
間、仮想空間)の各点(狭義には格子点)での時間経過
(仮想時間の経過、実時間の経過又はフレーム進行等)
に伴う物理量(例えば速度、加速度、力、位置、温度、
電気又は磁気等)の変化をシミュレーション演算により
求め、その物理量についての流れ場(流体場、速度場、
加速度場、ベクトル場)又は該流れ場の影響を受けた仮
想場を求める。より具体的には、シミュレーション演算
部110は、流体シミュレーション演算により、2次元
又は3次元のシミュレーション空間における流れ場の変
化を示す流れ場情報(例えば速度ベクトル、加速度ベク
トル、温度変化)を求める。或いはシミュレーション演
算部110は、求められた各点での物理量(例えば速度
ベクトル)についての流れ場の情報に基づいて変化する
情報(対象物に適用するために、上記物理量についての
流れ場の情報に基づいて演算した結果であって、例えば
位置情報、速度情報、温度情報、物理量など)について
の場を、上記物理量についての場の影響を受けた仮想場
として求める。
2次元又は3次元のシミュレーション空間(ゲーム空
間、仮想空間)の各点(狭義には格子点)での時間経過
(仮想時間の経過、実時間の経過又はフレーム進行等)
に伴う物理量(例えば速度、加速度、力、位置、温度、
電気又は磁気等)の変化をシミュレーション演算により
求め、その物理量についての流れ場(流体場、速度場、
加速度場、ベクトル場)又は該流れ場の影響を受けた仮
想場を求める。より具体的には、シミュレーション演算
部110は、流体シミュレーション演算により、2次元
又は3次元のシミュレーション空間における流れ場の変
化を示す流れ場情報(例えば速度ベクトル、加速度ベク
トル、温度変化)を求める。或いはシミュレーション演
算部110は、求められた各点での物理量(例えば速度
ベクトル)についての流れ場の情報に基づいて変化する
情報(対象物に適用するために、上記物理量についての
流れ場の情報に基づいて演算した結果であって、例えば
位置情報、速度情報、温度情報、物理量など)について
の場を、上記物理量についての場の影響を受けた仮想場
として求める。
【0048】なお、ここで、流体シミュレーションと
は、例えば外力に対して形状を変化させて流動する液体
や気体等の流体の静止状態や運動状態を、数値的にモデ
ル化して表現することをいう。
は、例えば外力に対して形状を変化させて流動する液体
や気体等の流体の静止状態や運動状態を、数値的にモデ
ル化して表現することをいう。
【0049】また流れ場(広義には、場)とは、上述し
た流体の静止状態や動作状態を示す物理量が空間的に分
布している領域をいう。例えば、流体シミュレーション
のシミュレーション空間を格子状に分割し、各格子点に
おける物理量を求めることで、流れ場の状態を表すこと
ができる。そして、時間経過(フレーム進行)にしたが
った流体シミュレーション演算を行うことによって、各
格子点にその位置及び時間に応じた物理量を与えること
ができ、流れ場の状態の変化を表すことができる。した
がって、流れ場の影響を受けた仮想場は、流れ場の各格
子点での物理量に基づいて演算した、同一格子点若しく
は他の格子点における情報を求めることで、表すことが
できる。
た流体の静止状態や動作状態を示す物理量が空間的に分
布している領域をいう。例えば、流体シミュレーション
のシミュレーション空間を格子状に分割し、各格子点に
おける物理量を求めることで、流れ場の状態を表すこと
ができる。そして、時間経過(フレーム進行)にしたが
った流体シミュレーション演算を行うことによって、各
格子点にその位置及び時間に応じた物理量を与えること
ができ、流れ場の状態の変化を表すことができる。した
がって、流れ場の影響を受けた仮想場は、流れ場の各格
子点での物理量に基づいて演算した、同一格子点若しく
は他の格子点における情報を求めることで、表すことが
できる。
【0050】場設定部115は、シミュレーション演算
部110によって求められた流れ場又は該流れ場の影響
を受けた仮想場を、オブジェクト空間に設定する処理を
行う。
部110によって求められた流れ場又は該流れ場の影響
を受けた仮想場を、オブジェクト空間に設定する処理を
行う。
【0051】ここで、オブジェクト空間とは、例えば定
義点(ポリゴンの頂点或いは自由曲面の制御点など)に
より形状が特定されるプリミティブが配置される仮想的
な3次元空間をいう。
義点(ポリゴンの頂点或いは自由曲面の制御点など)に
より形状が特定されるプリミティブが配置される仮想的
な3次元空間をいう。
【0052】より具体的には、場設定部115は、求め
られた流れ場又は該流れ場の影響を受けた仮想場をオブ
ジェクト空間の任意の位置に設定したり、オブジェクト
空間に配置されるオブジェクト(広義には、プリミティ
ブ)にマッピングする。その際、場設定部115は、流
れ場のサイズ、格子状に行われる分割数、設定位置、設
定数及び形状(場若しくはグリッドの形状)のうち少な
くとも1つを変更することができるようになっている。
場設定部115は、複数の場(流れ場)又は該場の影響
を受けた仮想場をオブジェクト空間の複数の位置に設定
することができるとともに、1の場(流れ場)又は該場
の影響を受けた仮想場をオブジェクト空間の複数の位置
に設定することができる。場設定部115が設定する流
れ場又は該流れ場の影響を受けた仮想場は、2次元であ
ってもよいし、3次元であってもよい。
られた流れ場又は該流れ場の影響を受けた仮想場をオブ
ジェクト空間の任意の位置に設定したり、オブジェクト
空間に配置されるオブジェクト(広義には、プリミティ
ブ)にマッピングする。その際、場設定部115は、流
れ場のサイズ、格子状に行われる分割数、設定位置、設
定数及び形状(場若しくはグリッドの形状)のうち少な
くとも1つを変更することができるようになっている。
場設定部115は、複数の場(流れ場)又は該場の影響
を受けた仮想場をオブジェクト空間の複数の位置に設定
することができるとともに、1の場(流れ場)又は該場
の影響を受けた仮想場をオブジェクト空間の複数の位置
に設定することができる。場設定部115が設定する流
れ場又は該流れ場の影響を受けた仮想場は、2次元であ
ってもよいし、3次元であってもよい。
【0053】また、場設定部115は、一連のオブジェ
クト画像生成の処理の開始から流れ場又は該流れ場の影
響を受けた仮想場を設定するようにしてもよいし、例え
ば所与のイベントが検出されたときのみ一時的に場を設
定するようにしてもよい。
クト画像生成の処理の開始から流れ場又は該流れ場の影
響を受けた仮想場を設定するようにしてもよいし、例え
ば所与のイベントが検出されたときのみ一時的に場を設
定するようにしてもよい。
【0054】プリミティブ処理部120は、シミュレー
ション演算部110によって求められた2次元の流れ場
又は該流れ場の影響を受けた仮想場を、3次元のオブジ
ェクト空間に配置されるプリミティブ(プリミティブに
より構成されるオブジェクトや、パーティクル・プリミ
ティブを含む)に反映させる処理を行う。プリミティブ
処理部120が反映させるプリミティブは、2次元のも
のであってもよいし、3次元のものであってもよい。
ション演算部110によって求められた2次元の流れ場
又は該流れ場の影響を受けた仮想場を、3次元のオブジ
ェクト空間に配置されるプリミティブ(プリミティブに
より構成されるオブジェクトや、パーティクル・プリミ
ティブを含む)に反映させる処理を行う。プリミティブ
処理部120が反映させるプリミティブは、2次元のも
のであってもよいし、3次元のものであってもよい。
【0055】より具体的には、プリミティブ処理部12
0は、シミュレーション前のプリミティブに対し、シミ
ュレーション演算部110により求められた場の情報又
は該場の影響を受けた情報を用いて、プリミティブの位
置やプリミティブに関連付けられた情報(色情報、透明
度情報など)、パーティクル(パーティクル・プリミテ
ィブ)の位置やパーティクルに関連付けられた情報(寿
命、サイズ、色情報や透明度情報、密度など)を更新す
る処理を行う。これにより、プリミティブ処理部120
は、例えば、流れ場の情報としての速度ベクトルにした
がってパーティクルの位置を変化させたり、流れ場の情
報として求められた温度情報にしたがってパーティクル
の寿命や色情報等を変化させたりすることもできる。
0は、シミュレーション前のプリミティブに対し、シミ
ュレーション演算部110により求められた場の情報又
は該場の影響を受けた情報を用いて、プリミティブの位
置やプリミティブに関連付けられた情報(色情報、透明
度情報など)、パーティクル(パーティクル・プリミテ
ィブ)の位置やパーティクルに関連付けられた情報(寿
命、サイズ、色情報や透明度情報、密度など)を更新す
る処理を行う。これにより、プリミティブ処理部120
は、例えば、流れ場の情報としての速度ベクトルにした
がってパーティクルの位置を変化させたり、流れ場の情
報として求められた温度情報にしたがってパーティクル
の寿命や色情報等を変化させたりすることもできる。
【0056】また、プリミティブ処理部120は、流れ
場の情報を用いて、その動作若しくは状態が更新された
プリミティブに対して、ビルボード処理を行う。より具
体的には、プリミティブ処理部120は、更新されたプ
リミティブのプリミティブ面が、例えば仮想カメラ(視
線の向き、視線ベクトル)に対してほぼ垂直になるよう
に設定し、エフェクト等を表すテクスチャをマッピング
する処理を行う。
場の情報を用いて、その動作若しくは状態が更新された
プリミティブに対して、ビルボード処理を行う。より具
体的には、プリミティブ処理部120は、更新されたプ
リミティブのプリミティブ面が、例えば仮想カメラ(視
線の向き、視線ベクトル)に対してほぼ垂直になるよう
に設定し、エフェクト等を表すテクスチャをマッピング
する処理を行う。
【0057】したがって、エフェクト等を表すテクスチ
ャを、更新された流れ場の流れ場情報に応じて変更する
ことによって、流体シミュレーションにより求められた
2次元の流れ場の動作若しくは状態の変化を、3次元の
オブジェクト空間における仮想カメラ(所与の視点)か
ら見たオブジェクト画像として表現することができる。
ャを、更新された流れ場の流れ場情報に応じて変更する
ことによって、流体シミュレーションにより求められた
2次元の流れ場の動作若しくは状態の変化を、3次元の
オブジェクト空間における仮想カメラ(所与の視点)か
ら見たオブジェクト画像として表現することができる。
【0058】処理監視部125は、所与のイベントの発
生の有無の検出、又は処理部100において行われてい
る各種処理の負荷を監視する処理を行う。例えば、処理
監視部125によって検出されたイベントに基づき、場
設定部115により、設定される場のサイズ等の変更が
行われる。また、処理監視部125は、例えば処理部1
00において行われる処理単位で負荷を計算し、所与の
閾値以上になったときに処理負荷が高いと判別する。そ
して、例えば、処理監視部125によって処理負荷が高
いと判別されたときに、場設定部115により、設定さ
れる場のサイズ等の変更が行われる。
生の有無の検出、又は処理部100において行われてい
る各種処理の負荷を監視する処理を行う。例えば、処理
監視部125によって検出されたイベントに基づき、場
設定部115により、設定される場のサイズ等の変更が
行われる。また、処理監視部125は、例えば処理部1
00において行われる処理単位で負荷を計算し、所与の
閾値以上になったときに処理負荷が高いと判別する。そ
して、例えば、処理監視部125によって処理負荷が高
いと判別されたときに、場設定部115により、設定さ
れる場のサイズ等の変更が行われる。
【0059】画像生成部140は、処理部100で行わ
れる種々の処理の結果に基づいて画像処理を行い、ゲー
ム画像を生成し、表示部190に出力する。例えば、い
わゆる3次元のゲーム画像を生成する場合には、まず座
標変換、クリッピング処理、透視変換、或いは光源計算
等のジオメトリ処理が行われ、その処理結果に基づい
て、プリミティブデータ(プリミティブの構成点(頂
点)又は制御点の位置座標、テクスチャ座標、色(輝
度)データ、法線ベクトル或いはα値等)が作成され
る。そして、このプリミティブデータ(ポリゴン、自由
曲面又はサブディビジョンサーフェス等のプリミティブ
のデータ)に基づいて、ジオメトリ処理後のオブジェク
ト(1又は複数のプリミティブ)の画像が、記憶部17
0の描画バッファ(フレームバッファ、ワークバッファ
等のピクセル単位で画像情報を記憶できるバッファ)に
描画される。これにより、オブジェクト空間内において
仮想カメラ(所与の視点)から見える画像が生成される
ようになる。
れる種々の処理の結果に基づいて画像処理を行い、ゲー
ム画像を生成し、表示部190に出力する。例えば、い
わゆる3次元のゲーム画像を生成する場合には、まず座
標変換、クリッピング処理、透視変換、或いは光源計算
等のジオメトリ処理が行われ、その処理結果に基づい
て、プリミティブデータ(プリミティブの構成点(頂
点)又は制御点の位置座標、テクスチャ座標、色(輝
度)データ、法線ベクトル或いはα値等)が作成され
る。そして、このプリミティブデータ(ポリゴン、自由
曲面又はサブディビジョンサーフェス等のプリミティブ
のデータ)に基づいて、ジオメトリ処理後のオブジェク
ト(1又は複数のプリミティブ)の画像が、記憶部17
0の描画バッファ(フレームバッファ、ワークバッファ
等のピクセル単位で画像情報を記憶できるバッファ)に
描画される。これにより、オブジェクト空間内において
仮想カメラ(所与の視点)から見える画像が生成される
ようになる。
【0060】そして本実施形態では画像生成部140
が、シミュレーション演算部110により得られた流れ
場又は該流れ場の影響を受けた仮想場に基づいて画像生
成処理を行う。より具体的には、シミュレーション演算
部110によって求められた流れ場又は該流れ場の情報
は、まず場設定部115によってサイズ等が適宜変更さ
れてオブジェクト空間内に設定される。このとき、処理
監視部125の監視結果に基づいて、流れ場のサイズや
位置等を決めるようにしてもよい。そして、プリミティ
ブ処理部120により流れ場又は該流れ場の影響を受け
た仮想場を反映させたプリミティブ(テクスチャをマッ
ピングされたプリミティブを含む)を用いて、画像生成
部140が不定形物(水、雲、霧、煙、気流、電磁波又
は炎等)の画像を生成する処理を行う。例えば、求めら
れた流れ場の各点(格子点)を起点とした速度ベクトル
の方向にパーティクルを発生させたり、求められた流れ
場の各点の温度分布の変化に対応したテクスチャがマッ
ピングされたプリミティブの画像を生成する。また、例
えば、オブジェクト空間に配置されたオブジェクトにマ
ッピングされた場の各点(格子点)の状態を反映させた
オブジェクトの画像を生成する。
が、シミュレーション演算部110により得られた流れ
場又は該流れ場の影響を受けた仮想場に基づいて画像生
成処理を行う。より具体的には、シミュレーション演算
部110によって求められた流れ場又は該流れ場の情報
は、まず場設定部115によってサイズ等が適宜変更さ
れてオブジェクト空間内に設定される。このとき、処理
監視部125の監視結果に基づいて、流れ場のサイズや
位置等を決めるようにしてもよい。そして、プリミティ
ブ処理部120により流れ場又は該流れ場の影響を受け
た仮想場を反映させたプリミティブ(テクスチャをマッ
ピングされたプリミティブを含む)を用いて、画像生成
部140が不定形物(水、雲、霧、煙、気流、電磁波又
は炎等)の画像を生成する処理を行う。例えば、求めら
れた流れ場の各点(格子点)を起点とした速度ベクトル
の方向にパーティクルを発生させたり、求められた流れ
場の各点の温度分布の変化に対応したテクスチャがマッ
ピングされたプリミティブの画像を生成する。また、例
えば、オブジェクト空間に配置されたオブジェクトにマ
ッピングされた場の各点(格子点)の状態を反映させた
オブジェクトの画像を生成する。
【0061】音生成部150は、ゲーム処理の結果にし
たがって各種の音処理を行い、BGM、効果音、又は音
声などの音を生成し、音出力部192に出力する。
たがって各種の音処理を行い、BGM、効果音、又は音
声などの音を生成し、音出力部192に出力する。
【0062】なお、シミュレーション演算部110、場
設定部115、プリミティブ処理部120、処理監視部
125、画像生成部140、音生成部150の機能は、
その全てをハードウェアにより実現してもよいし、その
全てをプログラムにより実現してもよい。或いは、ハー
ドウェアとプログラムの両方により実現してもよい。
設定部115、プリミティブ処理部120、処理監視部
125、画像生成部140、音生成部150の機能は、
その全てをハードウェアにより実現してもよいし、その
全てをプログラムにより実現してもよい。或いは、ハー
ドウェアとプログラムの両方により実現してもよい。
【0063】なお、本実施形態の画像生成システムは、
1人のプレーヤのみがプレイできるシングルプレーヤモ
ード専用のシステムにしてもよいし、このようなシング
ルプレーヤモードのみならず、複数のプレーヤがプレイ
できるマルチプレーヤモードも備えるシステムにしても
よい。
1人のプレーヤのみがプレイできるシングルプレーヤモ
ード専用のシステムにしてもよいし、このようなシング
ルプレーヤモードのみならず、複数のプレーヤがプレイ
できるマルチプレーヤモードも備えるシステムにしても
よい。
【0064】また複数のプレーヤがプレイする場合に、
これらの複数のプレーヤに提供するゲーム画像やゲーム
音を、1つの端末を用いて生成してもよいし、ネットワ
ーク(伝送ライン、通信回線)などで接続された複数の
端末(ゲーム機、携帯電話)を用いて生成してもよい。
これらの複数のプレーヤに提供するゲーム画像やゲーム
音を、1つの端末を用いて生成してもよいし、ネットワ
ーク(伝送ライン、通信回線)などで接続された複数の
端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0065】2. 本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。
なお、以下では流れ場(流速場、速度場、流体場、ベク
トル場)を用いて流体シミュレーション演算を行う場合
について主に例にとり説明する。しかしながら、流れ場
に限定されることなく、流体表現以外の種々の場を反映
させた画像表現に適用することができる。
なお、以下では流れ場(流速場、速度場、流体場、ベク
トル場)を用いて流体シミュレーション演算を行う場合
について主に例にとり説明する。しかしながら、流れ場
に限定されることなく、流体表現以外の種々の場を反映
させた画像表現に適用することができる。
【0066】2.1 流れ場
本実施形態では、例えばオブジェクト空間に配置された
プリミティブ(パーティクル・プリミティブを含む)の
動作に流体シミュレーションの演算結果を反映させた画
像を生成する。
プリミティブ(パーティクル・プリミティブを含む)の
動作に流体シミュレーションの演算結果を反映させた画
像を生成する。
【0067】流体シミュレーションは、3次元空間で計
算を行った場合、計算量が膨大となるため、インタラク
ティブに発生する外因を反映させた画像の生成をリアル
タイム処理することは困難である。ここで、リアルタイ
ム処理とは、例えばゲーム処理、画像生成処理、音生成
処理などの全ての処理を、1フレーム(1/60秒、1
/30秒)以内に完了させることをいう。
算を行った場合、計算量が膨大となるため、インタラク
ティブに発生する外因を反映させた画像の生成をリアル
タイム処理することは困難である。ここで、リアルタイ
ム処理とは、例えばゲーム処理、画像生成処理、音生成
処理などの全ての処理を、1フレーム(1/60秒、1
/30秒)以内に完了させることをいう。
【0068】そこで本実施形態では、奥行きを考慮しな
い2次元平面において流体シミュレーションを行って流
れ場を求め又は該流れ場の影響を受けた仮想場(流れ場
の情報又は該流れ場の影響を受けた情報を求め)、この
流れ場の情報又は該流れ場の影響を受けた情報を3次元
のオブジェクト空間に適用することで処理負荷を軽減
し、リアルタイム処理を可能としている。
い2次元平面において流体シミュレーションを行って流
れ場を求め又は該流れ場の影響を受けた仮想場(流れ場
の情報又は該流れ場の影響を受けた情報を求め)、この
流れ場の情報又は該流れ場の影響を受けた情報を3次元
のオブジェクト空間に適用することで処理負荷を軽減
し、リアルタイム処理を可能としている。
【0069】また、この流れ場又は該流れ場の影響を受
けた仮想場を、オブジェクト空間の全てを網羅するよう
に設定すると、シミュレーション空間が大きくなって、
リアルタイム処理が不可能となる。
けた仮想場を、オブジェクト空間の全てを網羅するよう
に設定すると、シミュレーション空間が大きくなって、
リアルタイム処理が不可能となる。
【0070】そこで、本実施形態では、流体シミュレー
ションによる不定形の画像の表現が必要な場所にのみ流
れ場又は該流れ場の影響を受けた仮想場をマッピング
(流れ場の情報又は該流れ場の影響を受けた情報をマッ
ピング)して、流体シミュレーションによる処理負荷を
軽減する。なお、流れ場又は該流れ場の影響を受けた仮
想場をマッピングするとは、流れ場の情報又は該流れ場
の影響を受けた情報をマッピングすることと同義とする
ことができる。
ションによる不定形の画像の表現が必要な場所にのみ流
れ場又は該流れ場の影響を受けた仮想場をマッピング
(流れ場の情報又は該流れ場の影響を受けた情報をマッ
ピング)して、流体シミュレーションによる処理負荷を
軽減する。なお、流れ場又は該流れ場の影響を受けた仮
想場をマッピングするとは、流れ場の情報又は該流れ場
の影響を受けた情報をマッピングすることと同義とする
ことができる。
【0071】さらにまた、上述したような流れ場を反映
させた画像を生成する必要がない場合にも、各フレーム
において流体シミュレーションを行うのは効率的ではな
い。流れ場を反映させた画像を生成する必要がない場合
に、その分の処理負荷を他の処理に割り当てられること
が望ましい。
させた画像を生成する必要がない場合にも、各フレーム
において流体シミュレーションを行うのは効率的ではな
い。流れ場を反映させた画像を生成する必要がない場合
に、その分の処理負荷を他の処理に割り当てられること
が望ましい。
【0072】そこで、本実施形態では、オブジェクト空
間に設定される流れ場のサイズ、分割数、設定位置、設
定数及び形状のうち少なくとも1つが可変となるように
している。
間に設定される流れ場のサイズ、分割数、設定位置、設
定数及び形状のうち少なくとも1つが可変となるように
している。
【0073】これにより、流れ場に基づいて生成される
リアルな画像の表現性を損なうことなくインタラクティ
ブに発生する外因を反映させて、流れ場中のオブジェク
トの構成点、自由曲面の構成点又は制御点、又はパーテ
ィクル等の位置や状態を変化させることができるので、
これまでにないオブジェクトの移動、状態変化(変形を
含む)等を表現することができるようになる。
リアルな画像の表現性を損なうことなくインタラクティ
ブに発生する外因を反映させて、流れ場中のオブジェク
トの構成点、自由曲面の構成点又は制御点、又はパーテ
ィクル等の位置や状態を変化させることができるので、
これまでにないオブジェクトの移動、状態変化(変形を
含む)等を表現することができるようになる。
【0074】流れ場(広義には、場。以下の説明でも同
様)は、シミュレーション空間(ゲーム空間、仮想空
間)を格子状に適当な数に分割して生成される。流体シ
ミュレーション演算(広義には、シミュレーション演
算。以下の説明でも同様)によって時間経過(フレーム
進行)に伴って変化する各格子点(広義には、各点。以
下の説明でも同様)における流れ場情報(例えば速度ベ
クトル)を求め、場の情報を更新する。
様)は、シミュレーション空間(ゲーム空間、仮想空
間)を格子状に適当な数に分割して生成される。流体シ
ミュレーション演算(広義には、シミュレーション演
算。以下の説明でも同様)によって時間経過(フレーム
進行)に伴って変化する各格子点(広義には、各点。以
下の説明でも同様)における流れ場情報(例えば速度ベ
クトル)を求め、場の情報を更新する。
【0075】流体シミュレーションは、所与の境界条件
のもと、求める物理量が時間的、空間的に連続性を有
し、与えられた外力(外因)の影響を直接的、間接的に
流れ場の全格子点に及ぼすことができるような所与の計
算式によって行われる。例えば水や空気のように連続体
の運動をシミュレーションする際には、非圧縮性のNavi
er-Stokes方程式等を用いて流れ場の演算を行うことが
できる。
のもと、求める物理量が時間的、空間的に連続性を有
し、与えられた外力(外因)の影響を直接的、間接的に
流れ場の全格子点に及ぼすことができるような所与の計
算式によって行われる。例えば水や空気のように連続体
の運動をシミュレーションする際には、非圧縮性のNavi
er-Stokes方程式等を用いて流れ場の演算を行うことが
できる。
【0076】次に、流体シミュレーション(流体力学計
算)を行う際の手順について説明する。
算)を行う際の手順について説明する。
【0077】流体をシミュレートする空間(流れ場)
の、ある瞬間(例えばあるフレーム)における状態を設
定した後、Navier-Stokes方程式等を解くことで、次の
瞬間(次のフレーム)における流れ場の状態が求まる。
の、ある瞬間(例えばあるフレーム)における状態を設
定した後、Navier-Stokes方程式等を解くことで、次の
瞬間(次のフレーム)における流れ場の状態が求まる。
【0078】図2に、流体演算を行う際の手順について
説明するための模式的な図を示す。また、図3に、流体
シミュレーション計算を行う際の手順について説明する
ためのフローチャートを示す。
説明するための模式的な図を示す。また、図3に、流体
シミュレーション計算を行う際の手順について説明する
ためのフローチャートを示す。
【0079】図2のA1は、ある瞬間における流れ場H
Fの状態を模式的に表したものであり、図2のA2は、
次の瞬間における流れ場HFの状態を模式的に表したも
のである。図2において、流れ場HFの状態は、ある時
点での各格子点(GP1,GP2,GP3・・・)に設
定された速度ベクトル(FV1,FV2,FV3・・
・)で表すことができる。
Fの状態を模式的に表したものであり、図2のA2は、
次の瞬間における流れ場HFの状態を模式的に表したも
のである。図2において、流れ場HFの状態は、ある時
点での各格子点(GP1,GP2,GP3・・・)に設
定された速度ベクトル(FV1,FV2,FV3・・
・)で表すことができる。
【0080】なお、図2では見た目をわかり易くするた
めに、流れ場HFを2次元的に表しているが、流れ場は
3次元であってもよい。また図2では、各格子点(GP
1,GP2,GP3・・・)と速度ベクトル(FV1,
FV2,FV3・・・)の始点をずらしているが、これ
らは一致していてもよい。
めに、流れ場HFを2次元的に表しているが、流れ場は
3次元であってもよい。また図2では、各格子点(GP
1,GP2,GP3・・・)と速度ベクトル(FV1,
FV2,FV3・・・)の始点をずらしているが、これ
らは一致していてもよい。
【0081】図2のA1の状態からA2の状態を求める
場合、図3に示すような手順で流体演算(流体力学計
算)を行う。
場合、図3に示すような手順で流体演算(流体力学計
算)を行う。
【0082】まず、シミュレーション空間の各格子点
(グリッド点)に対して、ある瞬間(フレーム「N−
1」)における流れ場情報(例えば速度ベクトル)を設
定する(ステップS1。図2のA1参照。)。即ち、流
体シミュレーションの初期条件を設定する。
(グリッド点)に対して、ある瞬間(フレーム「N−
1」)における流れ場情報(例えば速度ベクトル)を設
定する(ステップS1。図2のA1参照。)。即ち、流
体シミュレーションの初期条件を設定する。
【0083】次に、各格子点に設定された流れ場情報に
基づき、流体演算を行う(ステップS2)。
基づき、流体演算を行う(ステップS2)。
【0084】そして、流体演算により求まった各格子点
の流れ場情報が、次の瞬間(フレーム「N」)の流れ場
を表す流れ場情報(各格子点の情報)になる(ステップ
S3。図2のA2参照)。
の流れ場情報が、次の瞬間(フレーム「N」)の流れ場
を表す流れ場情報(各格子点の情報)になる(ステップ
S3。図2のA2参照)。
【0085】それ以降は、ステップS3で得られた各格
子点の流れ場情報を、ステップS1での各格子点の流れ
場情報(流体シミュレーションの初期条件)に設定し
て、再びステップS2の流体演算を再帰的に行うこと
で、流れ場を状態変化させることができる。
子点の流れ場情報を、ステップS1での各格子点の流れ
場情報(流体シミュレーションの初期条件)に設定し
て、再びステップS2の流体演算を再帰的に行うこと
で、流れ場を状態変化させることができる。
【0086】なお、初期条件(ステップS1)は基本的
に自由に設定できるため、任意の時間に任意の点に対し
て外力(例えば速度ベクトル)を加えることも可能であ
る。
に自由に設定できるため、任意の時間に任意の点に対し
て外力(例えば速度ベクトル)を加えることも可能であ
る。
【0087】外力を流れ場に反映させるためには、対応
する格子点(例えば外力が加わった位置に近い格子点)
に対して、外力に対応した流れ場情報(例えば外力が速
度ベクトルの場合は、外力に対応した大きさ及び方向を
もつ速度ベクトル)を与えればよい。
する格子点(例えば外力が加わった位置に近い格子点)
に対して、外力に対応した流れ場情報(例えば外力が速
度ベクトルの場合は、外力に対応した大きさ及び方向を
もつ速度ベクトル)を与えればよい。
【0088】図4(A)、(B)、(C)に、流れ場H
Fに対して、外力に対応した速度ベクトルEFVを与え
た場合の場の状態変化を模式的に表した図を示す。
Fに対して、外力に対応した速度ベクトルEFVを与え
た場合の場の状態変化を模式的に表した図を示す。
【0089】なお、図4(A)、(B)、(C)では見
た目をわかり易くするために、格子点と速度ベクトルの
始点をずらしているが、これらが一致していてもよい。
た目をわかり易くするために、格子点と速度ベクトルの
始点をずらしているが、これらが一致していてもよい。
【0090】例えば、図4(A)のような流れ場HFに
対して、図4(B)のように外力に対応した速度ベクト
ルEFVを与えれば、流体演算の後、図4(C)のよう
な流れ場HFを得ることができる。
対して、図4(B)のように外力に対応した速度ベクト
ルEFVを与えれば、流体演算の後、図4(C)のよう
な流れ場HFを得ることができる。
【0091】ここで、外力を流体シミュレーションに反
映させる手法としては、例えば外力の方向及び大きさに
応じて得られる速度ベクトルEFVを、外力の加わった
位置の最寄りの格子点に初期条件として与える手法を考
えることができる。或いは、外力の大きさ及び方向に得
られる速度ベクトルEFVを、外力の加わった位置の周
囲の格子点GP13、GP14、GP18、GP19に
対して分散して初期条件として与えてもよい。
映させる手法としては、例えば外力の方向及び大きさに
応じて得られる速度ベクトルEFVを、外力の加わった
位置の最寄りの格子点に初期条件として与える手法を考
えることができる。或いは、外力の大きさ及び方向に得
られる速度ベクトルEFVを、外力の加わった位置の周
囲の格子点GP13、GP14、GP18、GP19に
対して分散して初期条件として与えてもよい。
【0092】このように外力を流れ場に与えることによ
って、流体演算が行われるシミュレーション空間にイン
タラクティブ性を持たせることが可能となる。
って、流体演算が行われるシミュレーション空間にイン
タラクティブ性を持たせることが可能となる。
【0093】次に流れ場を設定する際の境界条件につい
て説明する。ここで、シミュレーションする空間の境界
での流れ場情報(例えば速度ベクトル)の与え方を境界
条件と呼ぶ。
て説明する。ここで、シミュレーションする空間の境界
での流れ場情報(例えば速度ベクトル)の与え方を境界
条件と呼ぶ。
【0094】境界条件は、流体シミュレーションを行う
上で非常に重要な要素であり、この値の与え方を変える
だけで、仮想的に流体の様々な振る舞いを再現できる。
上で非常に重要な要素であり、この値の与え方を変える
だけで、仮想的に流体の様々な振る舞いを再現できる。
【0095】例えば、下端の境界における速度ベクトル
の方向を下向きに設定すれば、上から下へ流れる川の水
のような動きになる流体を仮想的に表現することができ
る。
の方向を下向きに設定すれば、上から下へ流れる川の水
のような動きになる流体を仮想的に表現することができ
る。
【0096】また、境界での値を全て0に設定すれば、
風呂場の湯船の水面のように閉じた空間での流体の動き
を仮想的に表現でき、流体が渦を巻く様子を表現でき
る。
風呂場の湯船の水面のように閉じた空間での流体の動き
を仮想的に表現でき、流体が渦を巻く様子を表現でき
る。
【0097】例えば図5に示すように、下端での境界条
件として、上向に吹き出すような速度ベクトルを設定す
れば、常に下から上へと気体が流れる状態の場を生成す
ることができる。
件として、上向に吹き出すような速度ベクトルを設定す
れば、常に下から上へと気体が流れる状態の場を生成す
ることができる。
【0098】この状態で放置しておけば、しばらくする
と定常的な流れとなり、流体シミュレーションを行うメ
リットは薄れる。しかしながら、流体シミュレーション
を利用すれば、「風を送る」といったような外因が加わ
った流れ場の影響を手軽に表現することができる。
と定常的な流れとなり、流体シミュレーションを行うメ
リットは薄れる。しかしながら、流体シミュレーション
を利用すれば、「風を送る」といったような外因が加わ
った流れ場の影響を手軽に表現することができる。
【0099】2.2 Navier-Stokes方程式を用いた流
体シミュレーション 水や空気のような連続体の運動を支配する方程式はNavi
er-Stokes方程式と呼ばれる。流体の流れが音速に比べ
て十分小さい場合は非圧縮性を仮定してよく、この場合
のNavier-Stokes方程式は以下のようになる。
体シミュレーション 水や空気のような連続体の運動を支配する方程式はNavi
er-Stokes方程式と呼ばれる。流体の流れが音速に比べ
て十分小さい場合は非圧縮性を仮定してよく、この場合
のNavier-Stokes方程式は以下のようになる。
【0100】
【数1】
【0101】ここで、Vは流速、pは圧力、ρは密度、
μは流体の粘性率である。また、∇は勾配演算子、Δは
ラプラシアンを表す。
μは流体の粘性率である。また、∇は勾配演算子、Δは
ラプラシアンを表す。
【0102】これらの方程式を差分化することで各格子
点における解を数値的に得ることができる。差分化によ
って解析を行う空間を流れ場(流体場、ベクトル場)と
して格子状に分割し、各格子点にそれぞれ流れ場情報
(例えば速度ベクトル)を持たせて計算を行う。
点における解を数値的に得ることができる。差分化によ
って解析を行う空間を流れ場(流体場、ベクトル場)と
して格子状に分割し、各格子点にそれぞれ流れ場情報
(例えば速度ベクトル)を持たせて計算を行う。
【0103】以下、差分化する手法の一例について具体
的に説明する。
的に説明する。
【0104】(E1)は質量保存則を表す偏微分方程式
であり、「連続の式」と呼ばれる。また、(E2)は運
動量保存則を表し、(狭義の)Navier-Stokes方程式と
呼ばれる。
であり、「連続の式」と呼ばれる。また、(E2)は運
動量保存則を表し、(狭義の)Navier-Stokes方程式と
呼ばれる。
【0105】この式において、流れの代表的な長さを
L、代表的な速度をUとして以下のようにおく。
L、代表的な速度をUとして以下のようにおく。
【0106】
【数2】
【0107】これらを(E1)、(E2)に代入すると
以下の式が導かれる。
以下の式が導かれる。
【0108】
【数3】
【0109】またReはReynolds数と呼ばれ以下の式で
定義される無次元のパラメータである。
定義される無次元のパラメータである。
【0110】
【数4】
【0111】この方程式に現れるパラメータはただひと
つであり、外力が働かない場合、流れはReynolds数に応
じて変化する。
つであり、外力が働かない場合、流れはReynolds数に応
じて変化する。
【0112】その定義から、流速が小さいこと、流れの
スケールが小さいこと、粘性が大きいことは、すべてRe
ynolds数を小さくするという意味で同じ効果をもつ。
スケールが小さいこと、粘性が大きいことは、すべてRe
ynolds数を小さくするという意味で同じ効果をもつ。
【0113】Reynolds数は、物理的には慣性力と粘性力
の比を表し、Reynolds数が小さいことは、粘性力が慣性
力より卓越することを意味する。すなわち、直感的には
粘い流体の流れとなる。
の比を表し、Reynolds数が小さいことは、粘性力が慣性
力より卓越することを意味する。すなわち、直感的には
粘い流体の流れとなる。
【0114】(E1)´、(E2)´の変数をあらため
てx、V、t、pと置きなおすことにより以下の式が得
られる。
てx、V、t、pと置きなおすことにより以下の式が得
られる。
【0115】
【数5】
【0116】(E3)、(E4)の式は、以下の(1)
〜(3)のような特徴を表している。 (1)式(E4)の左辺第2項が非線形であること。 (2)最高階の微係数は式(E4)の右辺第2項の2階
でありさらにパラメータを含んでいること。 (3)速度Vについては時間発展型になっているが圧力
pについては時間発展型になっていないこと。
〜(3)のような特徴を表している。 (1)式(E4)の左辺第2項が非線形であること。 (2)最高階の微係数は式(E4)の右辺第2項の2階
でありさらにパラメータを含んでいること。 (3)速度Vについては時間発展型になっているが圧力
pについては時間発展型になっていないこと。
【0117】特に、(3)は非圧縮性特有の問題であ
り、Navier-Stokes方程式の数値解法を困難にしている
要因である。つまり、速度Vを時間発展的に求める場
合、各時間ステップで連続の式(E3)を満たすよう
に、圧力pを決める必要がある。
り、Navier-Stokes方程式の数値解法を困難にしている
要因である。つまり、速度Vを時間発展的に求める場
合、各時間ステップで連続の式(E3)を満たすよう
に、圧力pを決める必要がある。
【0118】非圧縮性Navier-Stokes方程式を数値的に
解く方法として、圧力を独立に求める方法を採用すると
以下のようになる。
解く方法として、圧力を独立に求める方法を採用すると
以下のようになる。
【0119】式(E4)において、両辺の発散をとる
と、
と、
【0120】
【数6】
【0121】D=∇・Vとおくと以下のようになる。
【0122】
【数7】
【0123】連続の式(E3)によれば、D=0となる
はずであるが、(E5)を差分化して解く際、離散化誤
差が集積してDが大きな値となることがあるので、わざ
と残してある。さて、(E5)において、D=0として
求めた圧力分布は以下の式を満たす。
はずであるが、(E5)を差分化して解く際、離散化誤
差が集積してDが大きな値となることがあるので、わざ
と残してある。さて、(E5)において、D=0として
求めた圧力分布は以下の式を満たす。
【0124】
【数8】
【0125】ただし、(E6)は必ずしもD=0を意味
しない。それは、D=定数(≠0)が(E6)を満たす
ことからもわかる。境界上で常にD=0が満足され、さ
らに領域内すべてでD=0を満足するように初期条件が
与えられれば式(E6)はD=0を意味するが、これら
の条件を満たすのは困難である。
しない。それは、D=定数(≠0)が(E6)を満たす
ことからもわかる。境界上で常にD=0が満足され、さ
らに領域内すべてでD=0を満足するように初期条件が
与えられれば式(E6)はD=0を意味するが、これら
の条件を満たすのは困難である。
【0126】そこで、まず式(E5)をtについて離散
化する。
化する。
【0127】
【数9】
【0128】ここでDn+1=0とおくと、(E5)は以
下のようになる。
下のようになる。
【0129】
【数10】
【0130】このようにして求まるpはDn≠0であっ
ても、Dn+1=0となるように決めているため、境界条
件の不正確さや時間進行による誤差集積に対して常にD
を小さな値にとどめておくことができる。
ても、Dn+1=0となるように決めているため、境界条
件の不正確さや時間進行による誤差集積に対して常にD
を小さな値にとどめておくことができる。
【0131】式(E7)から圧力が決まれば、式(E
4)に圧力を代入することにより、Vを時間発展的に求
めることが可能になる。この方法は一般に、MAC法と
呼ばれる。
4)に圧力を代入することにより、Vを時間発展的に求
めることが可能になる。この方法は一般に、MAC法と
呼ばれる。
【0132】また、(E7)において、Δtは十分小さ
いため、α=0と、みなすことができる。
いため、α=0と、みなすことができる。
【0133】従って、非圧縮性Navier-Stokes方程式を
解くためには、以下の2式を解くことになる。
解くためには、以下の2式を解くことになる。
【0134】
【数11】
【0135】2次元のデカルト座標系として、(E
8)、(E9)を成分表示すると以下のようになる。
8)、(E9)を成分表示すると以下のようになる。
【0136】
【数12】
【0137】式(E10)は圧力に関するPoisson方程
式である。
式である。
【0138】また、式(E11)、(E12)に関して
は、それぞれの非線型項uux+vuy,uvx+vvyに
対し以下の式を用いることができる。
は、それぞれの非線型項uux+vuy,uvx+vvyに
対し以下の式を用いることができる。
【0139】
【数13】
【0140】以下、計算の一例としてキャビティ問題を
とりあげる。
とりあげる。
【0141】図6(A)、(B)、(C)は具体的な計
算例について説明する際に用いる図である。
算例について説明する際に用いる図である。
【0142】ここでいうキャビティ問題とは、図6
(A)のような正方形領域を満たしている流体を考え、
DC上を速度1で右方向に移動させた際の、内部の流体
の動きを数値的に求めることである。
(A)のような正方形領域を満たしている流体を考え、
DC上を速度1で右方向に移動させた際の、内部の流体
の動きを数値的に求めることである。
【0143】まず、速度の境界条件を考えると、AD、
AB、BC上において、u=v=0であり、CD上にお
いて、u=1,v=0である。
AB、BC上において、u=v=0であり、CD上にお
いて、u=1,v=0である。
【0144】次に、圧力の境界条件を考える。
【0145】式(E9)において、粘性項を除いてV=
0を代入すると以下の式が成り立つ。
0を代入すると以下の式が成り立つ。
【0146】
【数14】
【0147】この式は、AD、BC上ではy方向に沿っ
てu=0であるから以下の式が成り立つ。
てu=0であるから以下の式が成り立つ。
【0148】
【数15】
【0149】また、AB、CD上ではx方向に沿ってv
=0であるから以下の式が成り立つ。
=0であるから以下の式が成り立つ。
【0150】
【数16】
【0151】ここで差分化に際して、スタガード格子と
呼ばれる格子を用いている。これは、図6(B)に示す
ように、個々の物理量の定義が同一でないもので、これ
とは逆に、全ての物理量が同一の点で定義される格子は
レギュラー格子と呼ばれる。
呼ばれる格子を用いている。これは、図6(B)に示す
ように、個々の物理量の定義が同一でないもので、これ
とは逆に、全ての物理量が同一の点で定義される格子は
レギュラー格子と呼ばれる。
【0152】図6(B)からわかるように、スタガード
格子の利点として、1つの格子セルで連続の式が自然に
表現でき、「各方向の圧力勾配がその方向の速度を決め
る」というNavier-Stokes方程式の性質が自然に表現で
きる、といった点が挙げられる。
格子の利点として、1つの格子セルで連続の式が自然に
表現でき、「各方向の圧力勾配がその方向の速度を決め
る」というNavier-Stokes方程式の性質が自然に表現で
きる、といった点が挙げられる。
【0153】具体的に図6(B)のセルにおいて連続の
式を近似すると以下の式が成り立つ。
式を近似すると以下の式が成り立つ。
【0154】
【数17】
【0155】スタガード格子を用いてNavier-Stokes方
程式を解く場合の注意点として、例えばuに対する方程
式を考えると、方程式中に以下の項が現れる。
程式を解く場合の注意点として、例えばuに対する方程
式を考えると、方程式中に以下の項が現れる。
【0156】
【数18】
【0157】この項中のvは本来であればuの定義点に
おける値をとるべきであるが、スタガード格子を用いた
場合、その点ではvの値が定義されていない。従って、
vの定義点から何らかの方法で値を決定する必要があ
る。ここでは、まわりの点の平均値によって定めた。
おける値をとるべきであるが、スタガード格子を用いた
場合、その点ではvの値が定義されていない。従って、
vの定義点から何らかの方法で値を決定する必要があ
る。ここでは、まわりの点の平均値によって定めた。
【0158】すなわち、先の例の場合以下のようにな
る。
る。
【0159】
【数19】
【0160】vに関する方程式についても同様である。
【0161】また、圧力に関するPoisson方程式(E1
0)の右辺に関しても同様の処理を行うものとする。
0)の右辺に関しても同様の処理を行うものとする。
【0162】これでNavier-Stokes方程式を解くために
必要な条件が揃ったことになるので、後は(E10)、
(E11)、(E12)を差分化して計算すれば良い。
必要な条件が揃ったことになるので、後は(E10)、
(E11)、(E12)を差分化して計算すれば良い。
【0163】念のため、以下に差分化した結果を示して
おく。
おく。
【0164】
【数20】
【0165】なお、いずれの式も上添え字のnは省略し
てある。
てある。
【0166】方程式を解く際の手順であるが、速度の初
期条件あるいは、前の時間ステップにおける速度から
(F1)のPoisson方程式を解いて圧力を求め、その圧
力と速度を用いることで(F2)、(F3)を解き、次
の時間ステップでの速度を求める。この手順を繰り返す
ことで、解を時間発展的に求めることが可能になる。
期条件あるいは、前の時間ステップにおける速度から
(F1)のPoisson方程式を解いて圧力を求め、その圧
力と速度を用いることで(F2)、(F3)を解き、次
の時間ステップでの速度を求める。この手順を繰り返す
ことで、解を時間発展的に求めることが可能になる。
【0167】本実施形態では流れ場(流体場、ベクトル
場)を構成する各格子点ごとに、(F1)〜(F3)を
解いて、各格子点に与える速度ベクトルを求める。
場)を構成する各格子点ごとに、(F1)〜(F3)を
解いて、各格子点に与える速度ベクトルを求める。
【0168】ここで(F1)は圧力を求める方程式であ
り、(F2)はx方向の速度を求める方程式であり、
(F3)はy方向の速度を求める方程式である。また
i、jはそれそれ2次元流れ場(流体場、ベクトル場)
における各格子点のx、y座標を表す添え字である。ま
たuの上添え字のn+1は、次の瞬間のuの値を意味し
ている。
り、(F2)はx方向の速度を求める方程式であり、
(F3)はy方向の速度を求める方程式である。また
i、jはそれそれ2次元流れ場(流体場、ベクトル場)
における各格子点のx、y座標を表す添え字である。ま
たuの上添え字のn+1は、次の瞬間のuの値を意味し
ている。
【0169】本実施形態では、外因に基づき流れ場に対
して与えられる速度ベクトルを流体シミュレーション演
算に反映させる場合には、(F2)式のuijとして前記
速度ベクトルのx成分を用い、(F3)式のvijして前
記速度ベクトルのy成分を用いるとよい。
して与えられる速度ベクトルを流体シミュレーション演
算に反映させる場合には、(F2)式のuijとして前記
速度ベクトルのx成分を用い、(F3)式のvijして前
記速度ベクトルのy成分を用いるとよい。
【0170】最後に、境界条件について述べる。
【0171】速度の境界条件については、壁面を図6
(C)に示すような位置にとると、u W=0となる。
(C)に示すような位置にとると、u W=0となる。
【0172】圧力の境界条件については、例えば仮想点
Pエにおける圧力をp´とすると、式(E14)から、
以下のようになる。
Pエにおける圧力をp´とすると、式(E14)から、
以下のようになる。
【0173】
【数21】
【0174】また、速度の2階微分は図の点Wにおいて
評価する必要があるが、1次精度の片側差分で近似する
と以下のようになる。
評価する必要があるが、1次精度の片側差分で近似する
と以下のようになる。
【0175】
【数22】
【0176】中心差分で近似するときは仮想点Aにおけ
るuの値が必要となるが、この場合はuA=uBととる。
また、vに関して仮想点での値が必要な時はvD=−vE
ととる。(このとき、vWをまわりの4点の平均とする
と、vW=0が成り立つ。) 2.3 2次元の流れ場の3次元への適用 上述したように、本実施形態では、流体シミュレーショ
ンにより求められた2次元の流れ場の情報に基づいて、
位置や状態(色(輝度)、透明度などのプリミティブに
付随(関連)する情報)が制御されたプリミティブ(パ
ーティクルシステムを構成するパーティクル・プリミテ
ィブを含む)を、3次元のオブジェクト空間に配置す
る。
るuの値が必要となるが、この場合はuA=uBととる。
また、vに関して仮想点での値が必要な時はvD=−vE
ととる。(このとき、vWをまわりの4点の平均とする
と、vW=0が成り立つ。) 2.3 2次元の流れ場の3次元への適用 上述したように、本実施形態では、流体シミュレーショ
ンにより求められた2次元の流れ場の情報に基づいて、
位置や状態(色(輝度)、透明度などのプリミティブに
付随(関連)する情報)が制御されたプリミティブ(パ
ーティクルシステムを構成するパーティクル・プリミテ
ィブを含む)を、3次元のオブジェクト空間に配置す
る。
【0177】図7に、本実施形態における2次元の流れ
場と3次元のオブジェクト空間との関係を模式的に示
す。
場と3次元のオブジェクト空間との関係を模式的に示
す。
【0178】すなわち、本実施形態では、Navier-Stoke
s方程式を用いた流体シミュレーションにより得られた
2次元の流れ場HFの情報として各格子点について求め
られた流れ場情報(例えば速度ベクトル)又は該流れ場
の影響を受けた情報を用いて、プリミティブ(オブジェ
クトの構成点及び制御点を含む)の位置や、プリミティ
ブに関連付けられる情報(例えば、色(輝度)、α値
等)を求めて、該プリミティブに反映させる。そして、
このように求められたプリミティブを、3次元のオブジ
ェクト空間に配置して、所与の視点(仮想カメラ)VC
から見えるオブジェクト画像を生成する。
s方程式を用いた流体シミュレーションにより得られた
2次元の流れ場HFの情報として各格子点について求め
られた流れ場情報(例えば速度ベクトル)又は該流れ場
の影響を受けた情報を用いて、プリミティブ(オブジェ
クトの構成点及び制御点を含む)の位置や、プリミティ
ブに関連付けられる情報(例えば、色(輝度)、α値
等)を求めて、該プリミティブに反映させる。そして、
このように求められたプリミティブを、3次元のオブジ
ェクト空間に配置して、所与の視点(仮想カメラ)VC
から見えるオブジェクト画像を生成する。
【0179】より具体的には、流れ場の情報又は該流れ
の影響を受けた情報を用いて、例えば流れ場HFの中の
オブジェクトの構成点の位置、色、又は透明度を変化さ
せたり、オブジェクトの制御点(例えば、NURBSの
制御点)に関連付けられた情報である重みを変化させた
りする。
の影響を受けた情報を用いて、例えば流れ場HFの中の
オブジェクトの構成点の位置、色、又は透明度を変化さ
せたり、オブジェクトの制御点(例えば、NURBSの
制御点)に関連付けられた情報である重みを変化させた
りする。
【0180】これにより、炎等の自然現象をリアルに表
現するための流体計算の負荷を軽減し、インタラクティ
ブに発生する外因(例えば、外力に対応した速度ベクト
ルEFV)を反映させた画像をリアルタイムで生成する
ことができるようになる。
現するための流体計算の負荷を軽減し、インタラクティ
ブに発生する外因(例えば、外力に対応した速度ベクト
ルEFV)を反映させた画像をリアルタイムで生成する
ことができるようになる。
【0181】なお、実際の流れ場は、図2、図4、図5
で説明したように格子状に分割され、各格子点ごとに流
れ場情報(速度ベクトル)を有しているが、説明の都合
上特に問題のない場合には見やすくするために流れ場に
生じた流れのみを模式的に図示することにとどめてい
る。
で説明したように格子状に分割され、各格子点ごとに流
れ場情報(速度ベクトル)を有しているが、説明の都合
上特に問題のない場合には見やすくするために流れ場に
生じた流れのみを模式的に図示することにとどめてい
る。
【0182】図8に、上述した2次元の流れ場を、焚き
火の炎の表現に適用した場合のオブジェクト画像の一例
を示す。
火の炎の表現に適用した場合のオブジェクト画像の一例
を示す。
【0183】ここでは、パーティクルシステムにより焚
き火の炎を表現する場合について示している。このよう
に、焚き火の中心から発生させたパーティクルPTを、
2次元の流れ場HFの中で位置や状態を更新し、このパ
ーティクルPTに炎の画像をテクスチャとしてマッピン
グして表示させることで、炎がめらめらと燃える様子を
表現することが可能となる。
き火の炎を表現する場合について示している。このよう
に、焚き火の中心から発生させたパーティクルPTを、
2次元の流れ場HFの中で位置や状態を更新し、このパ
ーティクルPTに炎の画像をテクスチャとしてマッピン
グして表示させることで、炎がめらめらと燃える様子を
表現することが可能となる。
【0184】この場合、インタラクティブに発生する外
因の発生位置を焚き火の火の中心とし、外因としての外
力に対応した速度ベクトルの向きを上向きとすること
で、外因の発生位置から発生したパーティクルの位置が
流れ場の状態を参照して次第に拡散し、パーティクルに
付随する情報(色やα値)が流れ場の状態を参照して次
第に変化して、よりリアルな炎を表現する。
因の発生位置を焚き火の火の中心とし、外因としての外
力に対応した速度ベクトルの向きを上向きとすること
で、外因の発生位置から発生したパーティクルの位置が
流れ場の状態を参照して次第に拡散し、パーティクルに
付随する情報(色やα値)が流れ場の状態を参照して次
第に変化して、よりリアルな炎を表現する。
【0185】また、このような流れ場又は該流れ場の影
響を受けた仮想場を、プリミティブの構成点又は制御点
の位置に反映させることによって、プリミティブを変形
させることも可能となる。さらに、流れ場又は該流れ場
の影響を受けた仮想場を、プリミティブの構成点に関連
付けられる情報(例えば、色情報、透明度情報など)や
プリミティブの制御点に関連付けられる情報(例えば、
重み付けなど)に反映させることで、流体シミュレーシ
ョンにしたがった色変化や透明度変化を表現し、これま
で表現できなかった画像変化が可能となる。
響を受けた仮想場を、プリミティブの構成点又は制御点
の位置に反映させることによって、プリミティブを変形
させることも可能となる。さらに、流れ場又は該流れ場
の影響を受けた仮想場を、プリミティブの構成点に関連
付けられる情報(例えば、色情報、透明度情報など)や
プリミティブの制御点に関連付けられる情報(例えば、
重み付けなど)に反映させることで、流体シミュレーシ
ョンにしたがった色変化や透明度変化を表現し、これま
で表現できなかった画像変化が可能となる。
【0186】さらに、インタラクティブに発生した外因
の影響を受けた流れ場HFの情報又は該流れ場の影響を
受けた情報に基づいて、プリミティブの法線ベクトルの
向きや大きさを変化させたプリミティブに関連付けられ
た法線ベクトルを得るようにしてもよい。このようなプ
リミティブに関連付けられた法線ベクトルを用いてオブ
ジェクトのシェーディングを行う場合、外因に応じてシ
ェーディングが変化する画像を生成することができる。
の影響を受けた流れ場HFの情報又は該流れ場の影響を
受けた情報に基づいて、プリミティブの法線ベクトルの
向きや大きさを変化させたプリミティブに関連付けられ
た法線ベクトルを得るようにしてもよい。このようなプ
リミティブに関連付けられた法線ベクトルを用いてオブ
ジェクトのシェーディングを行う場合、外因に応じてシ
ェーディングが変化する画像を生成することができる。
【0187】さらにまた、流れ場をプリミティブの位置
及び状態の変化を3次元のオブジェクト空間に反映させ
るために、2次元の流れ場を反映させるプリミティブ
(パーティクル・プリミティブ)の位置にスプライトポ
リゴン(広義には、プリミティブ面)を配置するように
してもよい。
及び状態の変化を3次元のオブジェクト空間に反映させ
るために、2次元の流れ場を反映させるプリミティブ
(パーティクル・プリミティブ)の位置にスプライトポ
リゴン(広義には、プリミティブ面)を配置するように
してもよい。
【0188】ここで、スプライトポリゴンは、ビルボー
ド処理されたポリゴンである。また、ビルボード処理と
は、常に仮想カメラの向きに正対するように処理するこ
とをいう。
ド処理されたポリゴンである。また、ビルボード処理と
は、常に仮想カメラの向きに正対するように処理するこ
とをいう。
【0189】これにより、仮想カメラの位置を変えても
常に仮想カメラの向きに正対する2次元平面(流れ場)
上を、プリミティブが移動し、このプリミティブの位置
にビルボード処理されたスプライトポリゴンが配置され
る。したがって、ポリゴン数の削減と、テクスチャマッ
ピングとにより、描画処理の負荷の軽減を図ることがで
きる。
常に仮想カメラの向きに正対する2次元平面(流れ場)
上を、プリミティブが移動し、このプリミティブの位置
にビルボード処理されたスプライトポリゴンが配置され
る。したがって、ポリゴン数の削減と、テクスチャマッ
ピングとにより、描画処理の負荷の軽減を図ることがで
きる。
【0190】2.4 2次元の流れ場の3次元オブジェ
クトへのマッピング また本実施形態では、流体シミュレーションにより求め
られた流れ場又は該流れ場の影響を受けた仮想場がマッ
ピングされたオブジェクトに関連付けられた位置(例え
ば、オブジェクトの周囲や表面等であって、流れ場の影
響を受ける位置)で、流れ場内のプリミティブ(パーテ
ィクルシステムを構成するパーティクル・プリミティブ
を含む)(広義には、別プリミティブ)に流体動作を反
映させた画像を生成する。
クトへのマッピング また本実施形態では、流体シミュレーションにより求め
られた流れ場又は該流れ場の影響を受けた仮想場がマッ
ピングされたオブジェクトに関連付けられた位置(例え
ば、オブジェクトの周囲や表面等であって、流れ場の影
響を受ける位置)で、流れ場内のプリミティブ(パーテ
ィクルシステムを構成するパーティクル・プリミティブ
を含む)(広義には、別プリミティブ)に流体動作を反
映させた画像を生成する。
【0191】なお、マッピングする流れ場又は該流れ場
の影響を受けた仮想場は、2次元のものでも3次元のも
のでもよいが、2次元の場合には、上述したようにその
分処理負荷を軽減することができる。また、流れ場又は
該流れ場の影響を受けた仮想場がマッピングされるオブ
ジェクトは、2次元のものであってもよいし、3次元の
ものであってもよい。
の影響を受けた仮想場は、2次元のものでも3次元のも
のでもよいが、2次元の場合には、上述したようにその
分処理負荷を軽減することができる。また、流れ場又は
該流れ場の影響を受けた仮想場がマッピングされるオブ
ジェクトは、2次元のものであってもよいし、3次元の
ものであってもよい。
【0192】図9に、本実施形態において、オブジェク
トにマッピングされる場を模式的に示す。
トにマッピングされる場を模式的に示す。
【0193】ここでは、2次元の流れ場HFを、3次元
のオブジェクトにマッピングする場合について示してい
る。
のオブジェクトにマッピングする場合について示してい
る。
【0194】本実施形態では、上述したNavier-Stokes
方程式を用いた流体シミュレーションにより求められた
流れ場HFを、オブジェクト空間に配置されたオブジェ
クトOBJにマッピングする。
方程式を用いた流体シミュレーションにより求められた
流れ場HFを、オブジェクト空間に配置されたオブジェ
クトOBJにマッピングする。
【0195】流れ場HFは、例えば格子状に分割された
各格子点の位置における流れ場情報(例えば速度ベクト
ル)を、Navier-Stokes方程式を用いた流体シミュレー
ション演算により求めることで、得ることができる。
各格子点の位置における流れ場情報(例えば速度ベクト
ル)を、Navier-Stokes方程式を用いた流体シミュレー
ション演算により求めることで、得ることができる。
【0196】したがって、このようにして得られた流れ
場HFを、例えばオブジェクトOBJの表面にマッピン
グすることで、流れ場HF内のプリミティブの位置の変
化や、プリミティブに関連付けられる情報としての色情
報、透明度情報などによるプリミティブの状態の変化
に、流体の動作を反映させることができる。すなわち、
流れ場HF内のプリミティブの位置及び状態を、流体シ
ミュレーションにしたがって制御することができる。
場HFを、例えばオブジェクトOBJの表面にマッピン
グすることで、流れ場HF内のプリミティブの位置の変
化や、プリミティブに関連付けられる情報としての色情
報、透明度情報などによるプリミティブの状態の変化
に、流体の動作を反映させることができる。すなわち、
流れ場HF内のプリミティブの位置及び状態を、流体シ
ミュレーションにしたがって制御することができる。
【0197】例えば人間の腕を流れ落ちる汗を表現する
場合、腕オブジェクトの表面に流れ場HFをマッピング
し、腕オブジェクトの表面の汗オブジェクトの位置及び
状態を流体シミュレーションにしたがって制御すること
により、リアルに表現することができる。また、例えば
車のフロントガラスを流れ落ちる水滴を表現する場合、
フロントガラスオブジェクトの表面に流れ場HFをマッ
ピングし、フロントガラスオブジェクトの表面の水滴オ
ブジェクトの位置及び状態を流体シミュレーションにし
たがって制御することで、リアルに表現することができ
る。
場合、腕オブジェクトの表面に流れ場HFをマッピング
し、腕オブジェクトの表面の汗オブジェクトの位置及び
状態を流体シミュレーションにしたがって制御すること
により、リアルに表現することができる。また、例えば
車のフロントガラスを流れ落ちる水滴を表現する場合、
フロントガラスオブジェクトの表面に流れ場HFをマッ
ピングし、フロントガラスオブジェクトの表面の水滴オ
ブジェクトの位置及び状態を流体シミュレーションにし
たがって制御することで、リアルに表現することができ
る。
【0198】なお、流れ場の影響を受けた仮想場につい
ても同様にマッピングすることで、オブジェクトに反映
させることができる。
ても同様にマッピングすることで、オブジェクトに反映
させることができる。
【0199】また、例えば、流れ場HFをUVマッピン
グによりオブジェクトOBJの表面にマッピングした場
合、オブジェクトOBJの形状が変化した場合にもその
表面に流れ場HFをマッピングすることができるので、
オブジェクトOBJの表面の形状にかかわらず、プリミ
ティブの位置又は状態を、流体シミュレーションにした
がって制御することができる。
グによりオブジェクトOBJの表面にマッピングした場
合、オブジェクトOBJの形状が変化した場合にもその
表面に流れ場HFをマッピングすることができるので、
オブジェクトOBJの表面の形状にかかわらず、プリミ
ティブの位置又は状態を、流体シミュレーションにした
がって制御することができる。
【0200】図10に、本実施形態において、オブジェ
クトOBJ1に対して行われる2次元の流れ場HFのU
Vマッピングについて説明するための図を示す。
クトOBJ1に対して行われる2次元の流れ場HFのU
Vマッピングについて説明するための図を示す。
【0201】ここで、オブジェクトOBJ1の頂点座標
が(X,Y)=(0,0),(Xmax,0),(0,
Ymax),(Xmax,Ymax)であるものとす
る。このようなオブジェクトOBJ1に対して、UVマ
ッピングする流れ場HFの頂点座標を(U,V)=
(0,0),(1,0),(0,1),(1,1)とす
る。
が(X,Y)=(0,0),(Xmax,0),(0,
Ymax),(Xmax,Ymax)であるものとす
る。このようなオブジェクトOBJ1に対して、UVマ
ッピングする流れ場HFの頂点座標を(U,V)=
(0,0),(1,0),(0,1),(1,1)とす
る。
【0202】UVマッピングでは、例えばオブジェクト
OBJ1の各頂点に、流れ場HFの各頂点が対応付けら
れる。すなわち、オブジェクトOBJ1の頂点座標
(X,Y)=(0,0)に流れ場HFの頂点座標(U,
V)=(0,0)を、オブジェクトOBJ1の頂点座標
(X,Y)=(Xmax,0)に流れ場HFの頂点座標
(U,V)=(1,0)を、オブジェクトOBJ1の頂
点座標(X,Y)=(0,Ymax)に流れ場HFの頂
点座標(U,V)=(0,1)を、オブジェクトOBJ
1の頂点座標(X,Y)=(Xmax,Ymax)に流
れ場HFの頂点座標(U,V)=(1,1)を、それぞ
れコーディネートする。
OBJ1の各頂点に、流れ場HFの各頂点が対応付けら
れる。すなわち、オブジェクトOBJ1の頂点座標
(X,Y)=(0,0)に流れ場HFの頂点座標(U,
V)=(0,0)を、オブジェクトOBJ1の頂点座標
(X,Y)=(Xmax,0)に流れ場HFの頂点座標
(U,V)=(1,0)を、オブジェクトOBJ1の頂
点座標(X,Y)=(0,Ymax)に流れ場HFの頂
点座標(U,V)=(0,1)を、オブジェクトOBJ
1の頂点座標(X,Y)=(Xmax,Ymax)に流
れ場HFの頂点座標(U,V)=(1,1)を、それぞ
れコーディネートする。
【0203】こうすることで、オブジェクトOBJ1を
描画する際、オブジェクトOBJ1の各点が流れ場HF
のどの位置を参照しているかを求めることができるの
で、各点の流れ場情報として速度ベクトルが求められて
いる場合には、流れ場HFの格子点GPの速度ベクトル
を、オブジェクトOBJ1表面の対応位置GP´の速度
ベクトルとすることができる。これにより、オブジェク
トOBJ1表面上のプリミティブの位置又は状態を変化
させることができる。
描画する際、オブジェクトOBJ1の各点が流れ場HF
のどの位置を参照しているかを求めることができるの
で、各点の流れ場情報として速度ベクトルが求められて
いる場合には、流れ場HFの格子点GPの速度ベクトル
を、オブジェクトOBJ1表面の対応位置GP´の速度
ベクトルとすることができる。これにより、オブジェク
トOBJ1表面上のプリミティブの位置又は状態を変化
させることができる。
【0204】図11に、オブジェクト表面に流れ場HF
がマッピングされたオブジェクト画像の一例を示す。
がマッピングされたオブジェクト画像の一例を示す。
【0205】ここでは、オブジェクト空間にオブジェク
トOBJ2、OBJ3が配置され、それぞれ表面に流れ
場HFがUVマッピングによりマッピングされている。
図11では、流れ場の格子点ごとに求められた速度ベク
トルを矢印で示している。
トOBJ2、OBJ3が配置され、それぞれ表面に流れ
場HFがUVマッピングによりマッピングされている。
図11では、流れ場の格子点ごとに求められた速度ベク
トルを矢印で示している。
【0206】このように、マッピング対象のオブジェク
トの表面に流れ場HFをマッピングすることができるの
で、オブジェクト表面上のプリミティブの位置及び状態
を、Navier-Stokes方程式にしたがって求められた流れ
場情報に基づいて変化させて表現することができる。
トの表面に流れ場HFをマッピングすることができるの
で、オブジェクト表面上のプリミティブの位置及び状態
を、Navier-Stokes方程式にしたがって求められた流れ
場情報に基づいて変化させて表現することができる。
【0207】以上のように、オブジェクト空間に配置さ
れるオブジェクトの任意の位置に流れ場HF又は該流れ
場の影響を受けた仮想場を配置することができる。した
がって、流体シミュレーションによる不定形の画像の表
現が必要な場所にのみ、マッピングすればよいので、流
体シミュレーションによる処理負荷を軽減することがで
きる。また、オブジェクトの表面において、流体動作を
反映させたプリミティブの位置若しくは状態を変化させ
ることができ、これまでにないリアルな画像を生成する
ことができるようになる。
れるオブジェクトの任意の位置に流れ場HF又は該流れ
場の影響を受けた仮想場を配置することができる。した
がって、流体シミュレーションによる不定形の画像の表
現が必要な場所にのみ、マッピングすればよいので、流
体シミュレーションによる処理負荷を軽減することがで
きる。また、オブジェクトの表面において、流体動作を
反映させたプリミティブの位置若しくは状態を変化させ
ることができ、これまでにないリアルな画像を生成する
ことができるようになる。
【0208】2.4.1 マッピングされた流れ場にお
ける動作 本実施形態において、オブジェクトに流れ場HF又は該
流れ場の影響を受けた仮想場をマッピングすることによ
って、以下に述べるような表現を行うことができる。以
下では、流れ場をマッピングする場合について説明する
が、該流れ場の影響を受けた仮想場をマッピングする場
合も同様の表現が可能である。
ける動作 本実施形態において、オブジェクトに流れ場HF又は該
流れ場の影響を受けた仮想場をマッピングすることによ
って、以下に述べるような表現を行うことができる。以
下では、流れ場をマッピングする場合について説明する
が、該流れ場の影響を受けた仮想場をマッピングする場
合も同様の表現が可能である。
【0209】例えば、流れ場HFがマッピングされたオ
ブジェクトに関連付けられた法線ベクトルの向きや大き
さ、オブジェクトの頂点情報(色情報、透明度情報、位
置情報)を変化させることができる。
ブジェクトに関連付けられた法線ベクトルの向きや大き
さ、オブジェクトの頂点情報(色情報、透明度情報、位
置情報)を変化させることができる。
【0210】図12(A)、(B)に、本実施形態にお
ける流れ場HFがマッピングされたオブジェクトに関連
付けられた法線ベクトルを、流れ場HFの情報に基づい
て変化させる場合について説明するための図を示す。
ける流れ場HFがマッピングされたオブジェクトに関連
付けられた法線ベクトルを、流れ場HFの情報に基づい
て変化させる場合について説明するための図を示す。
【0211】オブジェクトの表面に流れ場HFがマッピ
ングされ、図12(A)に示すように格子点GPO1〜
GPO4に、流れ場情報として速度ベクトルVV1〜V
V4が求められているものとする。
ングされ、図12(A)に示すように格子点GPO1〜
GPO4に、流れ場情報として速度ベクトルVV1〜V
V4が求められているものとする。
【0212】例えば、流れ場HFの格子点GPO1〜G
PO4とオブジェクトの各頂点が一致している場合に
は、オブジェクトに関連付けられた法線ベクトルNVO
1〜NVO4の大きさを、速度ベクトルVV1〜VV4
の大きさに応じて変化させるようにしてもよい。また、
流れ場HFの格子点GPO1〜GPO4とオブジェクト
の各頂点が一致してない場合でも、オブジェクトに関連
付けられた法線ベクトルNVO1〜NVO4の大きさ
を、速度ベクトルVV1〜VV4の大きさの比で変化さ
せるようにしてもよい。
PO4とオブジェクトの各頂点が一致している場合に
は、オブジェクトに関連付けられた法線ベクトルNVO
1〜NVO4の大きさを、速度ベクトルVV1〜VV4
の大きさに応じて変化させるようにしてもよい。また、
流れ場HFの格子点GPO1〜GPO4とオブジェクト
の各頂点が一致してない場合でも、オブジェクトに関連
付けられた法線ベクトルNVO1〜NVO4の大きさ
を、速度ベクトルVV1〜VV4の大きさの比で変化さ
せるようにしてもよい。
【0213】或いは、オブジェクトに関連付けられた法
線ベクトルNVO1〜NVO4の向きを、速度ベクトル
VV1〜VV4の向きに応じて変化させて、オブジェク
トに関連付けられた法線ベクトルNVO1´〜NVO4
´を生成するようにしてもよい。
線ベクトルNVO1〜NVO4の向きを、速度ベクトル
VV1〜VV4の向きに応じて変化させて、オブジェク
トに関連付けられた法線ベクトルNVO1´〜NVO4
´を生成するようにしてもよい。
【0214】これにより、このようなオブジェクトに関
連付けられた法線ベクトルNVO1´〜NVO4´を用
いてオブジェクトのシェーディングを行う場合、これま
でにないオブジェクトの表面のシェーディングが変化す
る画像を生成することができる。また、うねる地面の形
状の地面オブジェクトの表面に、法線ベクトルの方向に
草が生えている場合には、外因として加えられた風若し
くは突風などによりオブジェクトに関連付けられた法線
ベクトルNVO1´〜NVO4´が生成さされる。した
がって、このオブジェクトに関連付けられた法線ベクト
ルNVO1´〜NVO4´を用いて、風になびく草むら
を表現するといったことも可能となる。
連付けられた法線ベクトルNVO1´〜NVO4´を用
いてオブジェクトのシェーディングを行う場合、これま
でにないオブジェクトの表面のシェーディングが変化す
る画像を生成することができる。また、うねる地面の形
状の地面オブジェクトの表面に、法線ベクトルの方向に
草が生えている場合には、外因として加えられた風若し
くは突風などによりオブジェクトに関連付けられた法線
ベクトルNVO1´〜NVO4´が生成さされる。した
がって、このオブジェクトに関連付けられた法線ベクト
ルNVO1´〜NVO4´を用いて、風になびく草むら
を表現するといったことも可能となる。
【0215】図13(A)、(B)に、本実施形態にお
ける流れ場HFがマッピングされたオブジェクトの頂点
の位置を、流れ場HFの情報に基づいて変化させる場合
について説明するための図を示す。
ける流れ場HFがマッピングされたオブジェクトの頂点
の位置を、流れ場HFの情報に基づいて変化させる場合
について説明するための図を示す。
【0216】オブジェクトの表面に流れ場HFがマッピ
ングされ、図13(A)に示すように格子点(頂点)G
PO1〜GPO4に、流れ場情報として速度ベクトルV
V1〜VV4が求められているものとする。
ングされ、図13(A)に示すように格子点(頂点)G
PO1〜GPO4に、流れ場情報として速度ベクトルV
V1〜VV4が求められているものとする。
【0217】この場合、オブジェクトの格子点GPO1
〜GPO4の位置を、流れ場情報として速度ベクトルV
V1〜VV4の向き又は大きさに応じて変化させるよう
にしてもよい。また、格子点GPO1〜GPO4の位置
を、速度ベクトルのVV1〜VV4の向きと大きさに応
じて変化させるようにしてもよい。
〜GPO4の位置を、流れ場情報として速度ベクトルV
V1〜VV4の向き又は大きさに応じて変化させるよう
にしてもよい。また、格子点GPO1〜GPO4の位置
を、速度ベクトルのVV1〜VV4の向きと大きさに応
じて変化させるようにしてもよい。
【0218】また、流れ場HFの格子点GPO1〜GP
O4とオブジェクトの各頂点が一致してない場合でも、
オブジェクトの頂点の位置を、速度ベクトルVV1〜V
V4の向きの比で変化させるようにしてもよい。或い
は、オブジェクトの頂点の位置を、速度ベクトルVV1
〜VV4の大きさの比に応じて変化させるようにしても
よい。
O4とオブジェクトの各頂点が一致してない場合でも、
オブジェクトの頂点の位置を、速度ベクトルVV1〜V
V4の向きの比で変化させるようにしてもよい。或い
は、オブジェクトの頂点の位置を、速度ベクトルVV1
〜VV4の大きさの比に応じて変化させるようにしても
よい。
【0219】これにより、流体シミュレーションにした
がって、流れ場HF(又は該流れ場の影響を受けた仮想
場)がマッピングされたオブジェクト自体を変形するこ
とができるようになり、これまでにないオブジェクトの
変形画像を生成することができる。また、インタラクテ
ィブに発生する外因の影響を反映させたオブジェクトの
変形画像を、リアルタイムに生成することができるよう
になる。
がって、流れ場HF(又は該流れ場の影響を受けた仮想
場)がマッピングされたオブジェクト自体を変形するこ
とができるようになり、これまでにないオブジェクトの
変形画像を生成することができる。また、インタラクテ
ィブに発生する外因の影響を反映させたオブジェクトの
変形画像を、リアルタイムに生成することができるよう
になる。
【0220】図14(A)、(B)に、本実施形態にお
ける流れ場HFがマッピングされたオブジェクトの表面
から発生したパーティクルを、流れ場HFの情報に基づ
いて変化させる場合について説明するための図を示す。
ける流れ場HFがマッピングされたオブジェクトの表面
から発生したパーティクルを、流れ場HFの情報に基づ
いて変化させる場合について説明するための図を示す。
【0221】オブジェクトの表面に流れ場HFがマッピ
ングされ、図14(A)に示すように格子点GPO1〜
GPO4に、流れ場情報として速度ベクトルVV1〜V
V4が求められているものとする。
ングされ、図14(A)に示すように格子点GPO1〜
GPO4に、流れ場情報として速度ベクトルVV1〜V
V4が求められているものとする。
【0222】例えば、流れ場HF内で発生させたパーテ
ィクルPTの位置を、各格子点PO1〜GPO4の速度
ベクトルVV1〜VV4にしたがって、変化させるよう
にしてもよい。また、パーティクルPTの色情報又は透
明度情報などのパーティクルPTに関連付けられる情報
(例えば、寿命、色情報、透明度情報)を、各格子点P
O1〜PO4の速度ベクトルVV1〜VV4にしたがっ
て変化させるようにしてもよい。
ィクルPTの位置を、各格子点PO1〜GPO4の速度
ベクトルVV1〜VV4にしたがって、変化させるよう
にしてもよい。また、パーティクルPTの色情報又は透
明度情報などのパーティクルPTに関連付けられる情報
(例えば、寿命、色情報、透明度情報)を、各格子点P
O1〜PO4の速度ベクトルVV1〜VV4にしたがっ
て変化させるようにしてもよい。
【0223】これにより、オブジェクト表面から、流体
シミュレーションに対応した位置や状態が変化するパー
ティクルを発生させることができ、埃や粉のまきあげと
いった現象をよりリアルに表現することができる。
シミュレーションに対応した位置や状態が変化するパー
ティクルを発生させることができ、埃や粉のまきあげと
いった現象をよりリアルに表現することができる。
【0224】ここでは、流れ場をマッピングする場合に
ついて説明したが、該流れ場の影響を受けた仮想場をマ
ッピングする場合も同様である。
ついて説明したが、該流れ場の影響を受けた仮想場をマ
ッピングする場合も同様である。
【0225】2.5 流れ場の可変制御
本実施形態においては、流体シミュレーションにより求
められた流れ場は、サイズ、格子状に行われる分割数、
設定位置、設定数及び形状(場若しくはグリッドの形
状)のうち少なくとも1つを変更することができるよう
になっている。そして、この変更後の場が反映される位
置のプリミティブ(パーティクルシステムを構成するパ
ーティクル・プリミティブを含む)(広義には、別プリ
ミティブ)に流体動作を反映させた画像を生成する。
められた流れ場は、サイズ、格子状に行われる分割数、
設定位置、設定数及び形状(場若しくはグリッドの形
状)のうち少なくとも1つを変更することができるよう
になっている。そして、この変更後の場が反映される位
置のプリミティブ(パーティクルシステムを構成するパ
ーティクル・プリミティブを含む)(広義には、別プリ
ミティブ)に流体動作を反映させた画像を生成する。
【0226】なお、流れ場は、2次元のものでも3次元
のものでもよいが、2次元の場合には、上述したように
その分処理負荷を軽減することができる。
のものでもよいが、2次元の場合には、上述したように
その分処理負荷を軽減することができる。
【0227】図15に、流れ場の可変制御について説明
するための図を示す。
するための図を示す。
【0228】以下では、2次元の流れ場を2次元のオブ
ジェクトに適用する場合について説明するが、2次元又
は3次元の流れ場を2次元又は3次元のオブジェクトに
適用する場合は同様である。
ジェクトに適用する場合について説明するが、2次元又
は3次元の流れ場を2次元又は3次元のオブジェクトに
適用する場合は同様である。
【0229】ここで、上述のNavier-Stokes方程式を用
いた流体シミュレーションにより求められた流れ場を、
オブジェクトWOBJXに対して反映させた画像を生成
する場合を考える。
いた流体シミュレーションにより求められた流れ場を、
オブジェクトWOBJXに対して反映させた画像を生成
する場合を考える。
【0230】流れ場を反映させる位置にオブジェクトW
OBJXが配置された場合、流れ場の各格子点の情報に
基づいて、オブジェクトOBJXの構成点又は制御点の
位置や、構成点に関連付けられる情報(色情報、透明度
情報など)や制御点に関連付けられる情報(重み付けな
ど)が変化する。これにより、オブジェクトWOBJX
は、流れ場のサイズ又は分割数に応じた画像が生成され
ることになる。
OBJXが配置された場合、流れ場の各格子点の情報に
基づいて、オブジェクトOBJXの構成点又は制御点の
位置や、構成点に関連付けられる情報(色情報、透明度
情報など)や制御点に関連付けられる情報(重み付けな
ど)が変化する。これにより、オブジェクトWOBJX
は、流れ場のサイズ又は分割数に応じた画像が生成され
ることになる。
【0231】例えば図15に示すように、オブジェクト
OBJXは、サイズ又は分割数が異なる流れ場HFX1
〜HFX3の各格子点の流れ場情報(例えば速度ベクト
ル)に基づいてそれぞれオブジェクトの構成点の位置を
変化させた場合、オブジェクトOBJX1〜OBJX3
のように変形する。
OBJXは、サイズ又は分割数が異なる流れ場HFX1
〜HFX3の各格子点の流れ場情報(例えば速度ベクト
ル)に基づいてそれぞれオブジェクトの構成点の位置を
変化させた場合、オブジェクトOBJX1〜OBJX3
のように変形する。
【0232】ここで、流れ場HFX1と流れ場HFX2
は、分割数は同等で、サイズが異なる。また、流れ場H
FX1と流れ場HFX3は、サイズが同等で、分割数が
異なる。
は、分割数は同等で、サイズが異なる。また、流れ場H
FX1と流れ場HFX3は、サイズが同等で、分割数が
異なる。
【0233】流れ場HFX2を設定する場合は、流れ場
HFX1を設定する場合に比べて、分割数が同等である
ため、流れ場を表す精度が低下する。しかしながら、こ
の場合は、流体シミュレーションの処理負荷を増加させ
ることなく、流れ場HFX1よりも広いエリアで流れ場
の状態を表現することができる。
HFX1を設定する場合に比べて、分割数が同等である
ため、流れ場を表す精度が低下する。しかしながら、こ
の場合は、流体シミュレーションの処理負荷を増加させ
ることなく、流れ場HFX1よりも広いエリアで流れ場
の状態を表現することができる。
【0234】一方、流れ場HFX3を設定する場合は、
流れ場HFX1を設定する場合に比べて、分割数が多く
なるため、流体シミュレーションの処理負荷が重くなっ
てしまう。しかしながら、この場合は、流れ場HFX1
よりも精度良く流れ場の状態を表現することができるの
で、よりリアルな画像を生成することが可能となる。
流れ場HFX1を設定する場合に比べて、分割数が多く
なるため、流体シミュレーションの処理負荷が重くなっ
てしまう。しかしながら、この場合は、流れ場HFX1
よりも精度良く流れ場の状態を表現することができるの
で、よりリアルな画像を生成することが可能となる。
【0235】このように、オブジェクトに対して、処理
負荷と表現のリアルさとを考慮して流れ場のサイズ又は
分割数を変更することで、流体シミュレーションにより
求められた流れ場の情報に基づく画像生成処理の最適化
を図ることができる。
負荷と表現のリアルさとを考慮して流れ場のサイズ又は
分割数を変更することで、流体シミュレーションにより
求められた流れ場の情報に基づく画像生成処理の最適化
を図ることができる。
【0236】なお、本実施形態では、流れ場のサイズ又
は分割数だけに限定されず、流れ場のサイズ、流れ場の
分割数、流れ場の設定する位置や、設定する数及び流れ
場の形状(グリッドの形状も含む)のうち少なくとも1
つを変更することで、同様に処理負荷と精度が高い画像
生成との最適化を図ることができる。
は分割数だけに限定されず、流れ場のサイズ、流れ場の
分割数、流れ場の設定する位置や、設定する数及び流れ
場の形状(グリッドの形状も含む)のうち少なくとも1
つを変更することで、同様に処理負荷と精度が高い画像
生成との最適化を図ることができる。
【0237】2.5.1 イベントの発生に応じて変化
させた流れ場の設定 本実施形態では、所与のイベントの発生を契機に、流れ
場のサイズ、流れ場の分割数、流れ場の設定する位置
や、設定する数及び流れ場の形状(グリッドの形状も含
む)のうち少なくとも1つを変更することができる。
させた流れ場の設定 本実施形態では、所与のイベントの発生を契機に、流れ
場のサイズ、流れ場の分割数、流れ場の設定する位置
や、設定する数及び流れ場の形状(グリッドの形状も含
む)のうち少なくとも1つを変更することができる。
【0238】以下では、所与のイベントの発生を契機
に、流れ場の分割数を変更する場合について説明する。
ここで、所与のイベントとは、オブジェクトに関連して
発生したイベントをいい、イベントの種類に限定される
ものではない。このようなイベントとしては、例えば流
れ場の状態を参照するオブジェクトに他のオブジェクト
が近付く場合のヒットチェック処理の開始イベントがあ
る。
に、流れ場の分割数を変更する場合について説明する。
ここで、所与のイベントとは、オブジェクトに関連して
発生したイベントをいい、イベントの種類に限定される
ものではない。このようなイベントとしては、例えば流
れ場の状態を参照するオブジェクトに他のオブジェクト
が近付く場合のヒットチェック処理の開始イベントがあ
る。
【0239】したがって、例えば常に流れ場を反映した
オブジェクト画像を生成する場合において、表現のリア
ルさがあまり必要とされないときは処理負荷の軽減を優
先して、分割数を粗くした流れ場を設定し、表現のリア
ルさが要求されるイベントが発生したときは処理負荷の
増加を代償に、分割数を細かくした流れ場を設定するこ
とにより、移動若しくは状態の変化について、よりリア
ルに、かつ効率的に反映させる画像生成処理を行うこと
ができる。
オブジェクト画像を生成する場合において、表現のリア
ルさがあまり必要とされないときは処理負荷の軽減を優
先して、分割数を粗くした流れ場を設定し、表現のリア
ルさが要求されるイベントが発生したときは処理負荷の
増加を代償に、分割数を細かくした流れ場を設定するこ
とにより、移動若しくは状態の変化について、よりリア
ルに、かつ効率的に反映させる画像生成処理を行うこと
ができる。
【0240】図16に、このような本実施形態における
イベントの発生を契機とした流れ場の設定について説明
するための図を示す。
イベントの発生を契機とした流れ場の設定について説明
するための図を示す。
【0241】ここでは、炎の中にボールを投げ込んだと
きに炎を広がる様子を、流体シミュレーションにより求
められた2次元の流れ場の情報に基づいて、パーティク
ルシステムにより表現する場合について説明する。
きに炎を広がる様子を、流体シミュレーションにより求
められた2次元の流れ場の情報に基づいて、パーティク
ルシステムにより表現する場合について説明する。
【0242】燃えさかる炎の画像については、例えば図
5に示すように焚き火の炎の中心に対応させた上向きの
速度ベクトルが外因として与えられた流体シミュレーシ
ョンにより求めた流れ場の情報にしたがって、パーティ
クル(パーティクル・プリミティブ)の位置と、パーテ
ィクルに関連付けられる情報(例えば寿命、色情報、透
明度情報、温度情報)とを変化させる。パーティクルの
位置には、炎を表すテクスチャがマッピングされた板ポ
リゴンを配置する。例えば、パーティクルは、温度情報
が所与の発火条件を満足したことを条件に、所与の色で
発火する様子を表すテクスチャをマッピングし、寿命と
ともに炎の色が変化し、やがて煙、すすとなって変化す
るように表現することができる。流れ場の情報にしたが
って、この温度情報や、寿命などを変化させる。また、
テクスチャは、炎の中心からの距離や寿命等に応じて変
化させるようにしてもよい。
5に示すように焚き火の炎の中心に対応させた上向きの
速度ベクトルが外因として与えられた流体シミュレーシ
ョンにより求めた流れ場の情報にしたがって、パーティ
クル(パーティクル・プリミティブ)の位置と、パーテ
ィクルに関連付けられる情報(例えば寿命、色情報、透
明度情報、温度情報)とを変化させる。パーティクルの
位置には、炎を表すテクスチャがマッピングされた板ポ
リゴンを配置する。例えば、パーティクルは、温度情報
が所与の発火条件を満足したことを条件に、所与の色で
発火する様子を表すテクスチャをマッピングし、寿命と
ともに炎の色が変化し、やがて煙、すすとなって変化す
るように表現することができる。流れ場の情報にしたが
って、この温度情報や、寿命などを変化させる。また、
テクスチャは、炎の中心からの距離や寿命等に応じて変
化させるようにしてもよい。
【0243】このとき、炎が燃えさかる様子はテクスチ
ャで表現され、位置や状態の変化については流れ場の影
響を忠実に再現する必要がないため、図16に示すよう
に、流れ場HF4の分割数を粗く設定することで、余分
の処理負荷を他の処理に割り当てることができる。
ャで表現され、位置や状態の変化については流れ場の影
響を忠実に再現する必要がないため、図16に示すよう
に、流れ場HF4の分割数を粗く設定することで、余分
の処理負荷を他の処理に割り当てることができる。
【0244】ここで、流れ場HF4が設定され、この流
れ場HF4の状態を参照して位置等が変化するパーティ
クルにより表現された炎の中に、ボールオブジェクトB
OBJを投げ込んだものとする。
れ場HF4の状態を参照して位置等が変化するパーティ
クルにより表現された炎の中に、ボールオブジェクトB
OBJを投げ込んだものとする。
【0245】本実施形態では、炎を表現するパーティク
ルにボールオブジェクトBOBJが近付いたことを条件
に発生するイベントを契機として、流れ場HF4の設定
位置に、この流れ場HF4の分割数を増加させた流れ場
HF4´を新たに設定する。そして、この流れ場HF4
´を用いて、パーティクルのエリアとボールオブジェク
トBOBJとのヒットチェック処理を行う。すなわち、
ヒットチェック処理の開始をイベントして、分割数が細
かい流れ場HF4´を設定し、ヒット位置に対応した格
子点を精度良く求めることができるようにしている。
ルにボールオブジェクトBOBJが近付いたことを条件
に発生するイベントを契機として、流れ場HF4の設定
位置に、この流れ場HF4の分割数を増加させた流れ場
HF4´を新たに設定する。そして、この流れ場HF4
´を用いて、パーティクルのエリアとボールオブジェク
トBOBJとのヒットチェック処理を行う。すなわち、
ヒットチェック処理の開始をイベントして、分割数が細
かい流れ場HF4´を設定し、ヒット位置に対応した格
子点を精度良く求めることができるようにしている。
【0246】また本実施形態では、検出されたイベント
に関連付けられた位置に、上述したように分割数等を変
更した流れ場を設定することができるようになってい
る。ここで、検出されたイベントに関連付けられた位置
とは、検出されたイベントごとに対応して決められる位
置をいい、例えばイベント要因の発生位置がある。
に関連付けられた位置に、上述したように分割数等を変
更した流れ場を設定することができるようになってい
る。ここで、検出されたイベントに関連付けられた位置
とは、検出されたイベントごとに対応して決められる位
置をいい、例えばイベント要因の発生位置がある。
【0247】上述の例では、ボールオブジェクトBOB
Jがパーティクルのエリアに近付いた(所与の距離内に
侵入した)ことによりヒットチェック処理の開始イベン
トが発生すると、この開始イベントに関連付けられた位
置としてパーティクルが配置される位置に、分割数を細
かくした流れ場が設定される。
Jがパーティクルのエリアに近付いた(所与の距離内に
侵入した)ことによりヒットチェック処理の開始イベン
トが発生すると、この開始イベントに関連付けられた位
置としてパーティクルが配置される位置に、分割数を細
かくした流れ場が設定される。
【0248】これにより、ボールオブジェクトBOBJ
がパーティクルのエリアに侵入した位置(ヒット位置)
から、正確に外因を場に反映させることができる。この
場合、ボールオブジェクトが炎の中をくぐり抜ける際の
周囲の炎が広がる様子を、よりリアルに表現することが
できる。
がパーティクルのエリアに侵入した位置(ヒット位置)
から、正確に外因を場に反映させることができる。この
場合、ボールオブジェクトが炎の中をくぐり抜ける際の
周囲の炎が広がる様子を、よりリアルに表現することが
できる。
【0249】なお、ここでは流れ場の分割数のみを変化
させるようにしているが、流れ場のサイズを変化させる
ようにしてもよい。例えば、ボールオブジェクトBOB
Jが、炎の中をくぐりぬける様子を表現する際にはその
部分のみを流れ場として設定し、それ以外では上昇する
煙を含む炎全体に流れ場を設定することで、炎全体のリ
アルな表現を実現するとともに、炎の中をくぐり抜ける
様子についてこれまでにないリアルさを追及した画像を
生成することができる。
させるようにしているが、流れ場のサイズを変化させる
ようにしてもよい。例えば、ボールオブジェクトBOB
Jが、炎の中をくぐりぬける様子を表現する際にはその
部分のみを流れ場として設定し、それ以外では上昇する
煙を含む炎全体に流れ場を設定することで、炎全体のリ
アルな表現を実現するとともに、炎の中をくぐり抜ける
様子についてこれまでにないリアルさを追及した画像を
生成することができる。
【0250】このように、所与のイベントの発生を契機
として、適宜流れ場のサイズ等を変化させることで、流
体シミュレーションの処理負荷を増加させることなく、
インタラクティブに発生する外因を反映させたリアルな
画像をリアルタイムで生成することができるようにな
る。
として、適宜流れ場のサイズ等を変化させることで、流
体シミュレーションの処理負荷を増加させることなく、
インタラクティブに発生する外因を反映させたリアルな
画像をリアルタイムで生成することができるようにな
る。
【0251】ここでは、流れ場のサイズ等を変更する場
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
【0252】2.5.2 処理負荷に応じて変化させた
流れ場の設定 本実施形態では、処理負荷に応じて、流れ場のサイズ、
流れ場の分割数、流れ場の設定する位置や、設定する数
及び流れ場の形状(グリッドの形状も含む)のうち少な
くとも1つを変更することができる。
流れ場の設定 本実施形態では、処理負荷に応じて、流れ場のサイズ、
流れ場の分割数、流れ場の設定する位置や、設定する数
及び流れ場の形状(グリッドの形状も含む)のうち少な
くとも1つを変更することができる。
【0253】処理負荷は、例えば処理部100で行われ
る処理ごとに、負荷を重み付けした数値を積算して表す
ことができる。これにより、この処理負荷が、所与の閾
値以上か否かを判定することで、処理負荷の高低を判別
することができる。
る処理ごとに、負荷を重み付けした数値を積算して表す
ことができる。これにより、この処理負荷が、所与の閾
値以上か否かを判定することで、処理負荷の高低を判別
することができる。
【0254】したがって、例えば処理負荷が高いと判別
されたときに、流れ場のサイズを小さくしたり、又は分
割数を粗く設定することにより、表現のリアルさをある
程度犠牲にして処理負荷を軽減させることができる。一
方、処理負荷が低いと判別されたときは、流れ場のサイ
ズを大きくしたり、又は分割数を細かく設定することに
より、移動若しくは状態の変化について、よりリアルに
表現させることができる。
されたときに、流れ場のサイズを小さくしたり、又は分
割数を粗く設定することにより、表現のリアルさをある
程度犠牲にして処理負荷を軽減させることができる。一
方、処理負荷が低いと判別されたときは、流れ場のサイ
ズを大きくしたり、又は分割数を細かく設定することに
より、移動若しくは状態の変化について、よりリアルに
表現させることができる。
【0255】ここでは、流れ場のサイズ等を変更する場
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
【0256】2.5.3 1の流れ場を複数の位置に設
定 本実施形態では、1の流れ場を、オブジェクト空間の複
数の位置に設定することができる。すなわち、1の流れ
場において流体シミュレーションによりインタラクティ
ブに発生した外因の影響を反映させた場の情報を、オブ
ジェクト空間の複数の位置に設定された場に適用するこ
とができる。
定 本実施形態では、1の流れ場を、オブジェクト空間の複
数の位置に設定することができる。すなわち、1の流れ
場において流体シミュレーションによりインタラクティ
ブに発生した外因の影響を反映させた場の情報を、オブ
ジェクト空間の複数の位置に設定された場に適用するこ
とができる。
【0257】図17に、このような本実施形態における
1の流れ場を複数の位置に設定する場合について説明す
るための図を示す。
1の流れ場を複数の位置に設定する場合について説明す
るための図を示す。
【0258】2次元の1の流れ場HF6が、オブジェク
ト空間における複数の位置に流れ場HF6−1、HF6
−2、・・・、HF6−Mとして設定されているものと
する。
ト空間における複数の位置に流れ場HF6−1、HF6
−2、・・・、HF6−Mとして設定されているものと
する。
【0259】この場合、流体シミュレーションにより更
新された1の流れ場HF6の各格子点の情報は、オブジ
ェクト空間における複数の位置に設定された流れ場HF
6−1、HF6−2、・・・、HF6−Mの場の情報と
して用いられる。
新された1の流れ場HF6の各格子点の情報は、オブジ
ェクト空間における複数の位置に設定された流れ場HF
6−1、HF6−2、・・・、HF6−Mの場の情報と
して用いられる。
【0260】したがって、1の流れ場HF6における流
体シミュレーションにより、1の流れ場HF6を、各位
置の流れ場HF6−1、HF6−2、・・・、HF6−
Mの状態が参照される位置に配置された各オブジェクト
に反映させることができる。
体シミュレーションにより、1の流れ場HF6を、各位
置の流れ場HF6−1、HF6−2、・・・、HF6−
Mの状態が参照される位置に配置された各オブジェクト
に反映させることができる。
【0261】これにより、これまでにないリアルで複雑
な表現を、より少ない処理負荷で実現することができ
る。
な表現を、より少ない処理負荷で実現することができ
る。
【0262】ここでは、流れ場のサイズ等を変更する場
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
合について説明したが、該流れ場の影響を受けた仮想場
のサイズ等を変更する場合も同様である。
【0263】2.5.4 外因の適用場所
このように、本実施形態における流れ場に、外力(外
因)を与えて流体動作を反映させて流れ場を更新するこ
とにより、外力に対応した出力を流れ場内の任意の位置
に反映させることができる。すなわち、流れ場に与える
外因(イベントを含む)の発生位置と、流れ場を設定す
る位置とを異ならせることができることを意味する。
因)を与えて流体動作を反映させて流れ場を更新するこ
とにより、外力に対応した出力を流れ場内の任意の位置
に反映させることができる。すなわち、流れ場に与える
外因(イベントを含む)の発生位置と、流れ場を設定す
る位置とを異ならせることができることを意味する。
【0264】これにより、流れ場に与える外因の発生位
置が、流れ場の結果を適用する位置と異なるように、流
れ場に基づくエフェクトとして与えることができる。
置が、流れ場の結果を適用する位置と異なるように、流
れ場に基づくエフェクトとして与えることができる。
【0265】図18に、このような本実施形態における
外因の発生位置と、その結果の適用位置との関係につい
て説明するための図を示す。
外因の発生位置と、その結果の適用位置との関係につい
て説明するための図を示す。
【0266】オブジェクト空間において、水面上に設定
された2次元の流れ場HF7の上空を、飛行機オブジェ
クトFOBJが通過した場合を考える。
された2次元の流れ場HF7の上空を、飛行機オブジェ
クトFOBJが通過した場合を考える。
【0267】流れ場HF7の各格子点には、速度ベクト
ルの初期値が設定されている。例えば、風もなく水面が
穏やかな状況に対応した速度ベクトルが設定されてい
る。
ルの初期値が設定されている。例えば、風もなく水面が
穏やかな状況に対応した速度ベクトルが設定されてい
る。
【0268】このとき、本実施形態では、飛行機オブジ
ェクトFOBJが、進行方向DIRの方向に流れ場HF
7の上空を通過したことを条件に、流れ場HF7中の所
与のグリッドに外因としての速度ベクトルEFV7を与
える。
ェクトFOBJが、進行方向DIRの方向に流れ場HF
7の上空を通過したことを条件に、流れ場HF7中の所
与のグリッドに外因としての速度ベクトルEFV7を与
える。
【0269】すなわち、流れ場に与える外因の発生位置
としての飛行機オブジェクトFOBJの通過位置が、流
れ場が反映される位置とは異なる位置とし、流れ場の結
果を適用する位置としての外因の速度ベクトルEFV7
を与える位置が、外因の発生位置と空間的に分離されて
いる。図18では、外因として与えられた速度ベクトル
EFV7の始点をグリッド点とずらして示している。
としての飛行機オブジェクトFOBJの通過位置が、流
れ場が反映される位置とは異なる位置とし、流れ場の結
果を適用する位置としての外因の速度ベクトルEFV7
を与える位置が、外因の発生位置と空間的に分離されて
いる。図18では、外因として与えられた速度ベクトル
EFV7の始点をグリッド点とずらして示している。
【0270】したがって、流れ場HF7において、流体
シミュレーションを行うことにより、速度ベクトルEF
V7を反映して場の情報が更新される。その結果、速度
ベクトルEFV7が与えられた格子点付近の場の情報が
特に大きく変化し、例えば水面上に水柱WCが立つよう
に画像を生成することができる。これにより、飛行機オ
ブジェクトFOBJが水面を通過した際の水面に立つ水
柱を、よりリアルに表現することができる。
シミュレーションを行うことにより、速度ベクトルEF
V7を反映して場の情報が更新される。その結果、速度
ベクトルEFV7が与えられた格子点付近の場の情報が
特に大きく変化し、例えば水面上に水柱WCが立つよう
に画像を生成することができる。これにより、飛行機オ
ブジェクトFOBJが水面を通過した際の水面に立つ水
柱を、よりリアルに表現することができる。
【0271】なお、ここでは流れ場HF7が2次元であ
るものとして説明したが、流れ場HF7を3次元でもよ
い。流れ場HF7が3次元の場合、飛行機オブジェクト
FOBJの通過による空気の流れに対応した外因を流れ
場HF7の各格子点に反映させることで、最終的に水面
上の格子点の情報が変化し、これに基づき水柱WCを立
たせる画像を生成することができる。
るものとして説明したが、流れ場HF7を3次元でもよ
い。流れ場HF7が3次元の場合、飛行機オブジェクト
FOBJの通過による空気の流れに対応した外因を流れ
場HF7の各格子点に反映させることで、最終的に水面
上の格子点の情報が変化し、これに基づき水柱WCを立
たせる画像を生成することができる。
【0272】2.5.5 流れ場の可変処理の詳細例
次に、上述した流れ場を可変制御する場合の本実施形態
の処理の詳細例について説明する。
の処理の詳細例について説明する。
【0273】図19に、本実施形態において、イベント
発生に応じて流れ場を設定する処理の一例を示す。
発生に応じて流れ場を設定する処理の一例を示す。
【0274】まず、処理部100の処理監視部125に
おいて、所与のイベントの発生を監視する(ステップS
10)。
おいて、所与のイベントの発生を監視する(ステップS
10)。
【0275】そして、処理監視部125により、所与の
イベントの発生が検出されると、場設定部115におい
て所与のイベントに関連付けられた位置(発生したイベ
ントに対応して決められた位置)として例えばイベント
の発生位置に、サイズ又は分割数が変更された流れ場を
設定する(ステップS11)。
イベントの発生が検出されると、場設定部115におい
て所与のイベントに関連付けられた位置(発生したイベ
ントに対応して決められた位置)として例えばイベント
の発生位置に、サイズ又は分割数が変更された流れ場を
設定する(ステップS11)。
【0276】次に、シミュレーション演算部110によ
り、上述したように流体シミュレーションを行って、次
の瞬間(フレーム)における流れ場の各格子点の流れ場
情報を求める(ステップS12)。
り、上述したように流体シミュレーションを行って、次
の瞬間(フレーム)における流れ場の各格子点の流れ場
情報を求める(ステップS12)。
【0277】処理部100は、各格子点の流れ場情報を
求めて、流れ場を更新する(ステップS13)。
求めて、流れ場を更新する(ステップS13)。
【0278】続いて、プリミティブ処理部120は、更
新された流れ場の状態が参照される位置にあるオブジェ
クト(プリミティブ)の構成点の位置や、各構成点に設
定された色情報や透明度情報などを、場の情報を用いて
変化させる等して流れ場をオブジェクトに適用する(ス
テップS14)。
新された流れ場の状態が参照される位置にあるオブジェ
クト(プリミティブ)の構成点の位置や、各構成点に設
定された色情報や透明度情報などを、場の情報を用いて
変化させる等して流れ場をオブジェクトに適用する(ス
テップS14)。
【0279】次に、位置又は状態が変化したオブジェク
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS15)。
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS15)。
【0280】最後に、所与の終了条件を満たしたとき
(ステップS16:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS1
6:N)、ステップS10に戻って再度イベントの監視
を行う。
(ステップS16:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS1
6:N)、ステップS10に戻って再度イベントの監視
を行う。
【0281】以上のようにすることで、イベントの発生
状況に応じて、適切なサイズ又は分割数の流れ場を用い
て、流体シミュレーション演算を行うことができるの
で、図16に示したように、画像のリアルさと処理の効
率化とを両立させることができる。
状況に応じて、適切なサイズ又は分割数の流れ場を用い
て、流体シミュレーション演算を行うことができるの
で、図16に示したように、画像のリアルさと処理の効
率化とを両立させることができる。
【0282】図20に、本実施形態において処理負荷に
応じて流れ場を設定する処理の一例を示す。
応じて流れ場を設定する処理の一例を示す。
【0283】まず、処理部100の処理監視部125に
おいて、処理負荷を監視する(ステップS20)。処理
監視部125は、例えば処理部100で行われる処理ご
とに、負荷を重み付けした数値を積算して表し、所与の
閾値以上か否かを判定することで、処理負荷の高低を判
別することができる。
おいて、処理負荷を監視する(ステップS20)。処理
監視部125は、例えば処理部100で行われる処理ご
とに、負荷を重み付けした数値を積算して表し、所与の
閾値以上か否かを判定することで、処理負荷の高低を判
別することができる。
【0284】そして、処理監視部125により、所与の
閾値以上であると判別されたとき(ステップS21:
Y)、場設定部115において例えば処理負荷に応じて
サイズ又は分割数が変更された流れ場を設定する(ステ
ップS22)。
閾値以上であると判別されたとき(ステップS21:
Y)、場設定部115において例えば処理負荷に応じて
サイズ又は分割数が変更された流れ場を設定する(ステ
ップS22)。
【0285】ステップS21で、処理監視部125によ
り処理負荷が所与の閾値より小さいと判別されたとき
(ステップS21:N)、又はステップS22でサイズ
等が変更された流れ場が設定されると、シミュレーショ
ン演算部110により、上述したように流体シミュレー
ションを行って、次の瞬間(フレーム)における流れ場
の各格子点の流れ場情報を求める(ステップS23)。
り処理負荷が所与の閾値より小さいと判別されたとき
(ステップS21:N)、又はステップS22でサイズ
等が変更された流れ場が設定されると、シミュレーショ
ン演算部110により、上述したように流体シミュレー
ションを行って、次の瞬間(フレーム)における流れ場
の各格子点の流れ場情報を求める(ステップS23)。
【0286】処理部100は、各格子点の流れ場情報を
求めて、流れ場を更新する(ステップS24)。
求めて、流れ場を更新する(ステップS24)。
【0287】続いて、プリミティブ処理部120は、更
新された流れ場の状態が参照される位置にあるオブジェ
クト(プリミティブ)の構成点の位置や、各構成点に設
定された色情報や透明度情報などを、場の情報を用いて
変化させる等して流れ場をオブジェクトに適用する(ス
テップS25)。
新された流れ場の状態が参照される位置にあるオブジェ
クト(プリミティブ)の構成点の位置や、各構成点に設
定された色情報や透明度情報などを、場の情報を用いて
変化させる等して流れ場をオブジェクトに適用する(ス
テップS25)。
【0288】次に、位置又は状態が変化したオブジェク
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS26)。
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS26)。
【0289】最後に、所与の終了条件を満たしたとき
(ステップS27:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS2
7:N)、ステップS20に戻って再度処理負荷の監視
を行う。
(ステップS27:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS2
7:N)、ステップS20に戻って再度処理負荷の監視
を行う。
【0290】以上のようにすることで、処理負荷に応じ
て、適切なサイズ又は分割数の流れ場を用いて、流体シ
ミュレーション演算を行うことができるので、リアルタ
イム処理が実現可能な範囲でリアルな画像を生成するこ
とができる。
て、適切なサイズ又は分割数の流れ場を用いて、流体シ
ミュレーション演算を行うことができるので、リアルタ
イム処理が実現可能な範囲でリアルな画像を生成するこ
とができる。
【0291】図21に、本実施形態において、オブジェ
クト空間の複数の位置に1の流れ場を設定する場合の処
理の一例を示す。
クト空間の複数の位置に1の流れ場を設定する場合の処
理の一例を示す。
【0292】まず、処理部100の場設定部115によ
り、オブジェクト空間の複数の位置に、1の流れ場を設
定する(ステップS40)。
り、オブジェクト空間の複数の位置に、1の流れ場を設
定する(ステップS40)。
【0293】続いて、処理部100は、ステップS40
において設定した流れ場、又はオブジェクト空間の各位
置に設定された流れ場に対する外部入力を受け付ける
(ステップS41)。ここで、外部入力として、外力に
対応した流れ場情報を受け付ける。流れ場情報が速度ベ
クトルの場合、外力に対応した大きさ及び方向をもつ速
度ベクトルEFVが外部入力となる。
において設定した流れ場、又はオブジェクト空間の各位
置に設定された流れ場に対する外部入力を受け付ける
(ステップS41)。ここで、外部入力として、外力に
対応した流れ場情報を受け付ける。流れ場情報が速度ベ
クトルの場合、外力に対応した大きさ及び方向をもつ速
度ベクトルEFVが外部入力となる。
【0294】そして、シミュレーション演算部110に
より、オブジェクト空間の複数の位置に適用された1の
流れ場において、上述したように流体シミュレーション
を行って、次の瞬間(フレーム)における流れ場の各格
子点の流れ場情報を求める(ステップS42)。
より、オブジェクト空間の複数の位置に適用された1の
流れ場において、上述したように流体シミュレーション
を行って、次の瞬間(フレーム)における流れ場の各格
子点の流れ場情報を求める(ステップS42)。
【0295】処理部100は、シミュレーションにより
求められた1の流れ場の各格子点の流れ場情報を求め
て、流れ場を更新する(ステップS43)。
求められた1の流れ場の各格子点の流れ場情報を求め
て、流れ場を更新する(ステップS43)。
【0296】続いて、プリミティブ処理部120は、各
位置に設定されてステップS43で更新された流れ場の
状態が参照される位置にあるオブジェクト(プリミティ
ブ)の構成点の位置や、各構成点に設定された色情報や
透明度情報などを、場の情報を用いて変化させる等して
流れ場をオブジェクトに適用する(ステップS44)。
位置に設定されてステップS43で更新された流れ場の
状態が参照される位置にあるオブジェクト(プリミティ
ブ)の構成点の位置や、各構成点に設定された色情報や
透明度情報などを、場の情報を用いて変化させる等して
流れ場をオブジェクトに適用する(ステップS44)。
【0297】次に、位置又は状態が変化したオブジェク
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS45)。
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS45)。
【0298】最後に、所与の終了条件を満たしたとき
(ステップS46:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS4
6:N)、ステップS41に戻って再度外部入力を受け
付ける。
(ステップS46:Y)、一連の処理を終了する(エン
ド)が、終了条件を満たしていないとき(ステップS4
6:N)、ステップS41に戻って再度外部入力を受け
付ける。
【0299】以上のようにすることで、図17に示すよ
うに、これまでにない流体シミュレーションにしたがっ
て変化する各種オブジェクトの位置や色情報等の変化
を、より少ない処理負荷で実現することができる。
うに、これまでにない流体シミュレーションにしたがっ
て変化する各種オブジェクトの位置や色情報等の変化
を、より少ない処理負荷で実現することができる。
【0300】なお、流れ場の可変処理について説明した
が、該流れ場の影響を受けた仮想場の可変処理について
も同様に実現することができる。
が、該流れ場の影響を受けた仮想場の可変処理について
も同様に実現することができる。
【0301】2.6 場の外への情報の引継ぎ
本実施形態では、上述した2次元の流れ場のサイズを有
限のサイズとすることで、流体シミュレーションの処理
負荷を軽減する。より具体的には、オブジェクト空間内
に配置されるプリミティブのうち、オブジェクト空間に
設定された場(流れ場又は流れ場の影響を受けた仮想
場)の中に位置するプリミティブに当該流れ場を反映さ
せる。さらに、本実施形態では、オブジェクト空間に設
定された流れ場の外に位置するプリミティブにも当該場
を反映させることで、流体シミュレーション対象の流れ
場のサイズを大きくすることなく、処理負荷を軽減し、
流体シミュレーションのリアルタイム処理を可能として
いる。
限のサイズとすることで、流体シミュレーションの処理
負荷を軽減する。より具体的には、オブジェクト空間内
に配置されるプリミティブのうち、オブジェクト空間に
設定された場(流れ場又は流れ場の影響を受けた仮想
場)の中に位置するプリミティブに当該流れ場を反映さ
せる。さらに、本実施形態では、オブジェクト空間に設
定された流れ場の外に位置するプリミティブにも当該場
を反映させることで、流体シミュレーション対象の流れ
場のサイズを大きくすることなく、処理負荷を軽減し、
流体シミュレーションのリアルタイム処理を可能として
いる。
【0302】以下この点について、パーティクルを例に
説明する。
説明する。
【0303】場の状態を参照するパーティクル(パーテ
ィクル・プリミティブ)については、流れ場の中と外の
パーティクルに対して、以下のように取り扱うことで、
処理負荷の軽減を実現し、位置や状態(寿命、色、透明
度などパーティクルに関連付けられる情報)の変化が不
自然とならないようにすることができる。
ィクル・プリミティブ)については、流れ場の中と外の
パーティクルに対して、以下のように取り扱うことで、
処理負荷の軽減を実現し、位置や状態(寿命、色、透明
度などパーティクルに関連付けられる情報)の変化が不
自然とならないようにすることができる。
【0304】すなわち、オブジェクト空間に設定された
場内のパーティクルに対しては、場の情報又は該場の影
響を受けた情報に基づいて、パーティクルの位置や状態
を変化させる。一方、オブジェクト空間に設定された流
れ場の外に出たパーティクルに対しては、場の外に出た
時点の場の情報又は該場の影響を受けた情報(例えば速
度ベクトル)に従って、位置や状態を変化させる。
場内のパーティクルに対しては、場の情報又は該場の影
響を受けた情報に基づいて、パーティクルの位置や状態
を変化させる。一方、オブジェクト空間に設定された流
れ場の外に出たパーティクルに対しては、場の外に出た
時点の場の情報又は該場の影響を受けた情報(例えば速
度ベクトル)に従って、位置や状態を変化させる。
【0305】この場合、流れ場の中と外のパーティクル
は、発生地点からの発生時間に応じた寿命計算が行われ
るが、その位置や状態の変化に流れ場の情報が用いられ
るか否かが異なる。
は、発生地点からの発生時間に応じた寿命計算が行われ
るが、その位置や状態の変化に流れ場の情報が用いられ
るか否かが異なる。
【0306】図22(A)、(B)に、流れ場HFの外
に出たパーティクルについて説明するための図を模式的
に示す。
に出たパーティクルについて説明するための図を模式的
に示す。
【0307】上述したように、パーティクルPT0は、
所与のパーティクル発生地点からの発生時間に従って寿
命計算が行われるが、流れ場HFの中ではパーティクル
PT 0は流れ場の情報に基づいて、位置や状態が変化す
る。そして、流れ場HFの外に出た時点の流れ場情報に
基づいて決まるパーティクルPT0の情報(例えば速度
ベクトルFV0)を引き継ぐ。したがって、流れ場HF
の外では流れ場情報を参照することなく、例えば速度ベ
クトルFV0に従ってパーティクルPT0の位置を変化さ
せる。この際、パーティクルPT0の寿命が尽きたとき
には、パーティクルPT0を消滅させる。
所与のパーティクル発生地点からの発生時間に従って寿
命計算が行われるが、流れ場HFの中ではパーティクル
PT 0は流れ場の情報に基づいて、位置や状態が変化す
る。そして、流れ場HFの外に出た時点の流れ場情報に
基づいて決まるパーティクルPT0の情報(例えば速度
ベクトルFV0)を引き継ぐ。したがって、流れ場HF
の外では流れ場情報を参照することなく、例えば速度ベ
クトルFV0に従ってパーティクルPT0の位置を変化さ
せる。この際、パーティクルPT0の寿命が尽きたとき
には、パーティクルPT0を消滅させる。
【0308】或いは、例えば流れ場HFの最寄りの格子
点の流れ場情報を参照して、パーティクルPT0の位置
や状態を変化させる場合には、図22(B)に示すよう
に、流れ場HFの外に出たパーティクルPT0は、流れ
場HFの外に出た時点の流れ場情報に基づいて決まるパ
ーティクルPT0の情報(例えば速度ベクトルFV0)を
引き継ぎ、流れ場HFの外では最寄りの格子点GPMの
流れ場情報のみを参照して求められた速度ベクトルFV
0´により、次の瞬間(フレーム)の位置や情報を定め
るようにしてもよい。また、最寄りの格子点GPM-1、
GPM、GPM+1の3点の流れ場情報の比を参照して求め
られた速度ベクトルFV0´により、位置や状態を定め
るようにしてもよい。
点の流れ場情報を参照して、パーティクルPT0の位置
や状態を変化させる場合には、図22(B)に示すよう
に、流れ場HFの外に出たパーティクルPT0は、流れ
場HFの外に出た時点の流れ場情報に基づいて決まるパ
ーティクルPT0の情報(例えば速度ベクトルFV0)を
引き継ぎ、流れ場HFの外では最寄りの格子点GPMの
流れ場情報のみを参照して求められた速度ベクトルFV
0´により、次の瞬間(フレーム)の位置や情報を定め
るようにしてもよい。また、最寄りの格子点GPM-1、
GPM、GPM+1の3点の流れ場情報の比を参照して求め
られた速度ベクトルFV0´により、位置や状態を定め
るようにしてもよい。
【0309】図23に、流れ場HFを離れたパーティク
ルによるオブジェクト画像の一例を示す。
ルによるオブジェクト画像の一例を示す。
【0310】例えば、焚き火の炎を表現する場合、流れ
場HFを離れたパーティクルPTは、流れ場HFを離れ
た時点の速度ベクトルに従って移動する。このとき、パ
ーティクルPTに配置されるスプライトポリゴンは、黒
い煙を表したポリゴンがマッピングされ、やがて寿命が
尽きたときに消滅するようになっている。
場HFを離れたパーティクルPTは、流れ場HFを離れ
た時点の速度ベクトルに従って移動する。このとき、パ
ーティクルPTに配置されるスプライトポリゴンは、黒
い煙を表したポリゴンがマッピングされ、やがて寿命が
尽きたときに消滅するようになっている。
【0311】こうすることで、流体シミュレーションに
より得られた流れ場内では、流れ場の各格子点ごとに求
められた流れ場情報に基づいてパーティクルの位置や状
態を変化させることができ、流れ場外では流れ場内の情
報を引き継いでそのままパーティクルの位置や状態を変
化させることができる。したがって、流れ場のサイズを
小さくし、この流れ場に基づいて表されるパーティクル
による自然現象を表す画像生成のリアルタイム処理の処
理負荷を、軽減することができるようになる。
より得られた流れ場内では、流れ場の各格子点ごとに求
められた流れ場情報に基づいてパーティクルの位置や状
態を変化させることができ、流れ場外では流れ場内の情
報を引き継いでそのままパーティクルの位置や状態を変
化させることができる。したがって、流れ場のサイズを
小さくし、この流れ場に基づいて表されるパーティクル
による自然現象を表す画像生成のリアルタイム処理の処
理負荷を、軽減することができるようになる。
【0312】ここでは、流れ場の情報を反映させるもの
として説明したが、該流れ場の影響を受けた情報を反映
させる場合も同様である。
として説明したが、該流れ場の影響を受けた情報を反映
させる場合も同様である。
【0313】2.6.1 流れ場の情報の引継ぎの処理
例 図24に、パーティクルの位置や状態を変化させる処理
の一例を示す。
例 図24に、パーティクルの位置や状態を変化させる処理
の一例を示す。
【0314】まず、プリミティブ処理部120は、パー
ティクル(パーティクル・プリミティブ)の寿命や、発
生個数などパーティクル・プリミティブに付随する情報
を初期化する(ステップS90)。
ティクル(パーティクル・プリミティブ)の寿命や、発
生個数などパーティクル・プリミティブに付随する情報
を初期化する(ステップS90)。
【0315】次に、所与の発生地点から、パーティクル
を発生させる(ステップS91)。焚き火の炎を表現す
る場合、焚き火の炎の中心をパーティクルの発生位置と
することができる。
を発生させる(ステップS91)。焚き火の炎を表現す
る場合、焚き火の炎の中心をパーティクルの発生位置と
することができる。
【0316】パーティクルがオブジェクト空間内に設定
された流れ場HF内にあるとき(ステップS92:
Y)、パーティクルに流れ場の情報を与え、パーティク
ルの位置及び状態を更新する(ステップS93)。より
具体的には、各格子点の流れ場情報に基づいて、パーテ
ィクルの速度ベクトルや色、透明度を更新する。
された流れ場HF内にあるとき(ステップS92:
Y)、パーティクルに流れ場の情報を与え、パーティク
ルの位置及び状態を更新する(ステップS93)。より
具体的には、各格子点の流れ場情報に基づいて、パーテ
ィクルの速度ベクトルや色、透明度を更新する。
【0317】また、パーティクルが流れ場HF外にある
とき(ステップS92:N)、パーティクルが流れ場H
Fの外に出た時点の流れ場情報を用いて、パーティクル
の位置及び状態を更新する(ステップS94)。より具
体的には、パーティクルが流れ場HFの外に出たとき
は、流れ場HFの流れ場情報を参照することなく、パー
ティクルが流れ場HFの外に出た時点の流れ場情報のみ
をもって、例えばパーティクルの速度ベクトルや色、透
明度を更新する。
とき(ステップS92:N)、パーティクルが流れ場H
Fの外に出た時点の流れ場情報を用いて、パーティクル
の位置及び状態を更新する(ステップS94)。より具
体的には、パーティクルが流れ場HFの外に出たとき
は、流れ場HFの流れ場情報を参照することなく、パー
ティクルが流れ場HFの外に出た時点の流れ場情報のみ
をもって、例えばパーティクルの速度ベクトルや色、透
明度を更新する。
【0318】なお、ここでは流れ場HFの外に出たパー
ティクルは、流れ場の情報を参照することなく位置や状
態が更新されるものとしているが、例えば図22(B)
に示したように流れ場HFの最寄りの格子点の流れ場情
報を参照して、その位置や状態を更新するようにしても
よく、表現しようとするものに応じて適宜選択されるも
のである。
ティクルは、流れ場の情報を参照することなく位置や状
態が更新されるものとしているが、例えば図22(B)
に示したように流れ場HFの最寄りの格子点の流れ場情
報を参照して、その位置や状態を更新するようにしても
よく、表現しようとするものに応じて適宜選択されるも
のである。
【0319】ステップS93或いはステップS94にお
いて、位置及び状態が更新されたパーティクルは、寿命
判定が行われて、寿命が更新される(ステップS9
5)。
いて、位置及び状態が更新されたパーティクルは、寿命
判定が行われて、寿命が更新される(ステップS9
5)。
【0320】寿命が尽きたと判定されたとき(ステップ
S96:Y)、当該パーティクルを消滅させる処理を行
い、寿命が尽きていないと判定されたとき(ステップS
96:N)、ステップS92に戻って再びパーティクル
の位置及び状態の更新が行われる。
S96:Y)、当該パーティクルを消滅させる処理を行
い、寿命が尽きていないと判定されたとき(ステップS
96:N)、ステップS92に戻って再びパーティクル
の位置及び状態の更新が行われる。
【0321】以上のようにすることで、流体シミュレー
ションにより得られた流れ場内では、流れ場の各格子点
ごとに求められた流れ場情報に基づいてパーティクルの
位置や状態を変化させることができ、流れ場外では流れ
場内の情報を引き継いでそのままパーティクルの位置や
状態を変化させることができる。したがって、図23に
示すように流れ場に基づいて表されるパーティクルによ
る自然現象を表す画像生成のリアルタイム処理の処理負
荷を、さらに軽減することができるようになる。
ションにより得られた流れ場内では、流れ場の各格子点
ごとに求められた流れ場情報に基づいてパーティクルの
位置や状態を変化させることができ、流れ場外では流れ
場内の情報を引き継いでそのままパーティクルの位置や
状態を変化させることができる。したがって、図23に
示すように流れ場に基づいて表されるパーティクルによ
る自然現象を表す画像生成のリアルタイム処理の処理負
荷を、さらに軽減することができるようになる。
【0322】なお、上記したパーティクルについては、
流れ場を適用する場合について説明したが、これに限定
されるものではなく、例えば該流れ場の影響を受けた仮
想場を適用する場合も同様である。
流れ場を適用する場合について説明したが、これに限定
されるものではなく、例えば該流れ場の影響を受けた仮
想場を適用する場合も同様である。
【0323】2.7 本実施形態の適用例
これまで説明したような本実施形態における流れ場につ
いては、例えばオブジェクト空間の移動オブジェクトに
追従して設定し、インタラクティブに発生する外因を反
映させたエフェクト効果を与えることができる。
いては、例えばオブジェクト空間の移動オブジェクトに
追従して設定し、インタラクティブに発生する外因を反
映させたエフェクト効果を与えることができる。
【0324】図22に、このような本実施形態における
移動オブジェクトに追従して設定される流れ場について
説明するための図を示す。
移動オブジェクトに追従して設定される流れ場について
説明するための図を示す。
【0325】ここでは、移動オブジェクトとしての車オ
ブジェクトCOBJMに追従して、車オブジェクトCO
BJMの後輪の後方側の地面上に、流れ場HFM又は該
流れ場の影響を受けた仮想場を設定するようにしてい
る。より具体的には、2次元の流れ場HFM又は該流れ
場の影響を受けた仮想場を、地面オブジェクト表面上
に、移動オブジェクトの後方側にマッピングする。
ブジェクトCOBJMに追従して、車オブジェクトCO
BJMの後輪の後方側の地面上に、流れ場HFM又は該
流れ場の影響を受けた仮想場を設定するようにしてい
る。より具体的には、2次元の流れ場HFM又は該流れ
場の影響を受けた仮想場を、地面オブジェクト表面上
に、移動オブジェクトの後方側にマッピングする。
【0326】車オブジェクトCOBJMが前方に進む
と、車オブジェクトCOBJMの後方側に車体の移動や
タイヤの回転などによって砂埃や土煙などが舞い上がる
様子を表現する場合を考える。
と、車オブジェクトCOBJMの後方側に車体の移動や
タイヤの回転などによって砂埃や土煙などが舞い上がる
様子を表現する場合を考える。
【0327】この場合、流れ場HFMにおいて、流体シ
ミュレーションにより、車体の移動方向、移動速度等に
よる外因を反映させることで、場の情報を更新し、例え
ば砂埃オブジェクトSOBJの速度ベクトルが得られ
る。
ミュレーションにより、車体の移動方向、移動速度等に
よる外因を反映させることで、場の情報を更新し、例え
ば砂埃オブジェクトSOBJの速度ベクトルが得られ
る。
【0328】このとき、2次元のXY平面上について
は、流体シミュレーションにより求められた場の情報を
用いて、砂埃オブジェクトSOBJの位置や状態を変化
させ、高さ方向については別個の計算式(例えば、重力
を加味した自由落下の計算式)で砂埃オブジェクトSO
BJがゆっくり地面に落ちるように設定することができ
る。
は、流体シミュレーションにより求められた場の情報を
用いて、砂埃オブジェクトSOBJの位置や状態を変化
させ、高さ方向については別個の計算式(例えば、重力
を加味した自由落下の計算式)で砂埃オブジェクトSO
BJがゆっくり地面に落ちるように設定することができ
る。
【0329】したがって、流れ場HFMの場の情報に基
づき、例えば砂埃オブジェクトSOBJ等の位置若しく
は色情報等を変化させることができ、これまで表現がで
きなかった車の走行風により舞い上がる砂埃や落ち葉を
表現する画像を、リアルタイムに生成することができ
る。
づき、例えば砂埃オブジェクトSOBJ等の位置若しく
は色情報等を変化させることができ、これまで表現がで
きなかった車の走行風により舞い上がる砂埃や落ち葉を
表現する画像を、リアルタイムに生成することができ
る。
【0330】この場合、常に車オブジェクトCOBJM
の後方側に流れ場が設定されるように、車オブジェクト
COBJMの位置に応じて設定する流れ場のサイズを変
更した流れ場HFM´を設定するようにしてもよい。
の後方側に流れ場が設定されるように、車オブジェクト
COBJMの位置に応じて設定する流れ場のサイズを変
更した流れ場HFM´を設定するようにしてもよい。
【0331】これにより、移動する車オブジェクトCO
BJMの移動方向、移動速度に応じた砂埃等のエフェク
ト画像の生成を実現することができる。
BJMの移動方向、移動速度に応じた砂埃等のエフェク
ト画像の生成を実現することができる。
【0332】なお、車オブジェクトCOBJMが走行す
る地面の性質(アスファルトの道路や、砂利道といった
道路の性質)に応じて流れ場を変更したり、地面の形状
(道路の凸凹)に合わせて流れ場を設定することもでき
る。
る地面の性質(アスファルトの道路や、砂利道といった
道路の性質)に応じて流れ場を変更したり、地面の形状
(道路の凸凹)に合わせて流れ場を設定することもでき
る。
【0333】このように、本実施形態によれば、単調な
砂埃等の表現を回避し、移動オブジェクトの移動の仕方
や、地面の性質の影響を反映した移動オブジェクトの後
方に発生する砂埃等を表現する画像をリアルタイムで生
成することができる。
砂埃等の表現を回避し、移動オブジェクトの移動の仕方
や、地面の性質の影響を反映した移動オブジェクトの後
方に発生する砂埃等を表現する画像をリアルタイムで生
成することができる。
【0334】図26に、本実施形態において移動オブジ
ェクトに追従して流れ場を設定する処理の一例を示す。
ェクトに追従して流れ場を設定する処理の一例を示す。
【0335】まず、移動オブジェクトに対応付けられた
位置に流れ場を設定する(ステップS100)。例え
ば、移動オブジェクトが車オブジェクトの場合、車オブ
ジェクトに対応付けられた位置として車オブジェクトの
後輪の後方側の地面上に、流れ場を設定する。
位置に流れ場を設定する(ステップS100)。例え
ば、移動オブジェクトが車オブジェクトの場合、車オブ
ジェクトに対応付けられた位置として車オブジェクトの
後輪の後方側の地面上に、流れ場を設定する。
【0336】続いて、処理部100は、ステップS10
0において設定した流れ場に対する外部入力を受け付け
る(ステップS101)。ここで、外部入力として、外
力に対応した流れ場情報を受け付ける。流れ場情報が速
度ベクトルの場合、外力に対応した大きさ及び方向をも
つ速度ベクトルEFVが外部入力となる。例えば、移動
オブジェクトが車オブジェクトの場合、車の走行風に対
応した速度ベクトルを外部入力として受け付ける。
0において設定した流れ場に対する外部入力を受け付け
る(ステップS101)。ここで、外部入力として、外
力に対応した流れ場情報を受け付ける。流れ場情報が速
度ベクトルの場合、外力に対応した大きさ及び方向をも
つ速度ベクトルEFVが外部入力となる。例えば、移動
オブジェクトが車オブジェクトの場合、車の走行風に対
応した速度ベクトルを外部入力として受け付ける。
【0337】そして、シミュレーション演算部110に
より、上述したように流体シミュレーションを行って、
次の瞬間(フレーム)における流れ場の各格子点の流れ
場情報を求める(ステップS102)。
より、上述したように流体シミュレーションを行って、
次の瞬間(フレーム)における流れ場の各格子点の流れ
場情報を求める(ステップS102)。
【0338】処理部100は、各格子点の流れ場情報を
用いて、例えば温度分布や濃度変化を求めて、流れ場を
更新する(ステップS103)。
用いて、例えば温度分布や濃度変化を求めて、流れ場を
更新する(ステップS103)。
【0339】続いて、プリミティブ処理部120は、更
新された流れ場が反映される位置にあるオブジェクト
(プリミティブ)の構成点の位置や、各構成点に設定さ
れた色情報や透明度情報などを、場の情報を用いて変化
させる等して流れ場をオブジェクトに適用する(ステッ
プS104)。したがって、例えば移動オブジェクトが
車オブジェクトの場合、車の走行風により地面から舞い
上がる落ち葉や砂埃などを表現する各オブジェクトの位
置や色情報などを、流体シミュレーションにしたがって
変化させることができる。
新された流れ場が反映される位置にあるオブジェクト
(プリミティブ)の構成点の位置や、各構成点に設定さ
れた色情報や透明度情報などを、場の情報を用いて変化
させる等して流れ場をオブジェクトに適用する(ステッ
プS104)。したがって、例えば移動オブジェクトが
車オブジェクトの場合、車の走行風により地面から舞い
上がる落ち葉や砂埃などを表現する各オブジェクトの位
置や色情報などを、流体シミュレーションにしたがって
変化させることができる。
【0340】次に、位置又は状態が変化したオブジェク
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS105)。
トを、オブジェクト空間の所与の視点から見たオブジェ
クト画像として生成し、表示部などに出力する(ステッ
プS105)。
【0341】最後に、所与の終了条件を満たしたとき
(ステップS106:Y)、一連の処理を終了する(エ
ンド)が、終了条件を満たしていないとき(ステップS
106:N)、ステップS100に戻って再度移動オブ
ジェクトの対応する位置に流れ場を設定する。
(ステップS106:Y)、一連の処理を終了する(エ
ンド)が、終了条件を満たしていないとき(ステップS
106:N)、ステップS100に戻って再度移動オブ
ジェクトの対応する位置に流れ場を設定する。
【0342】以上のようにすることで、オブジェクト空
間内を移動する移動オブジェクトの所与の位置において
流体シミュレーションにしたがって変化する各種オブジ
ェクトの位置や色情報等の変化により、これまでにない
リアルな画像を提供することができる。
間内を移動する移動オブジェクトの所与の位置において
流体シミュレーションにしたがって変化する各種オブジ
ェクトの位置や色情報等の変化により、これまでにない
リアルな画像を提供することができる。
【0343】3. ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一
例について図27を用いて説明する。
例について図27を用いて説明する。
【0344】メインプロセッサ900は、CD982
(情報記憶媒体)に格納されたプログラム、通信インタ
ーフェース990を介して転送されたプログラム、或い
はROM950(情報記憶媒体の1つ)に格納されたプ
ログラムなどに基づき動作し、ゲーム処理、画像処理、
音処理などの種々の処理を実行する。
(情報記憶媒体)に格納されたプログラム、通信インタ
ーフェース990を介して転送されたプログラム、或い
はROM950(情報記憶媒体の1つ)に格納されたプ
ログラムなどに基づき動作し、ゲーム処理、画像処理、
音処理などの種々の処理を実行する。
【0345】コプロセッサ902は、メインプロセッサ
900の処理を補助するものであり、高速並列演算が可
能な積和算器や除算器を有し、マトリクス演算(ベクト
ル演算)を高速に実行する。例えば、オブジェクトを移
動させたり動作(モーション)させるための物理シミュ
レーションに、マトリクス演算などの処理が必要な場合
には、メインプロセッサ900上で動作するプログラム
が、その処理をコプロセッサ902に指示(依頼)す
る。
900の処理を補助するものであり、高速並列演算が可
能な積和算器や除算器を有し、マトリクス演算(ベクト
ル演算)を高速に実行する。例えば、オブジェクトを移
動させたり動作(モーション)させるための物理シミュ
レーションに、マトリクス演算などの処理が必要な場合
には、メインプロセッサ900上で動作するプログラム
が、その処理をコプロセッサ902に指示(依頼)す
る。
【0346】ジオメトリプロセッサ904は、座標変
換、透視変換、光源計算、曲面生成などのジオメトリ処
理を行うものであり、高速並列演算が可能な積和算器や
除算器を有し、マトリクス演算(ベクトル演算)を高速
に実行する。例えば、座標変換、透視変換、光源計算な
どの処理を行う場合には、メインプロセッサ900で動
作するプログラムが、その処理をジオメトリプロセッサ
904に指示する。
換、透視変換、光源計算、曲面生成などのジオメトリ処
理を行うものであり、高速並列演算が可能な積和算器や
除算器を有し、マトリクス演算(ベクトル演算)を高速
に実行する。例えば、座標変換、透視変換、光源計算な
どの処理を行う場合には、メインプロセッサ900で動
作するプログラムが、その処理をジオメトリプロセッサ
904に指示する。
【0347】データ伸張プロセッサ906は、圧縮され
た画像データや音データを伸張するデコード処理を行っ
たり、メインプロセッサ900のデコード処理をアクセ
レートする処理を行う。これにより、オープニング画
面、インターミッション画面、エンディング画面、或い
はゲーム画面などにおいて、所与の画像圧縮方式で圧縮
された動画像を表示できるようになる。なお、デコード
処理の対象となる画像データや音データは、ROM95
0、CD982に格納されたり、或いは通信インターフ
ェース990を介して外部から転送される。
た画像データや音データを伸張するデコード処理を行っ
たり、メインプロセッサ900のデコード処理をアクセ
レートする処理を行う。これにより、オープニング画
面、インターミッション画面、エンディング画面、或い
はゲーム画面などにおいて、所与の画像圧縮方式で圧縮
された動画像を表示できるようになる。なお、デコード
処理の対象となる画像データや音データは、ROM95
0、CD982に格納されたり、或いは通信インターフ
ェース990を介して外部から転送される。
【0348】描画プロセッサ910は、ポリゴンや曲面
などのプリミティブ面で構成されるオブジェクトの描画
(レンダリング)処理を高速に実行するものである。オ
ブジェクトの描画の際には、メインプロセッサ900
は、DMAコントローラ970の機能を利用して、オブ
ジェクトデータを描画プロセッサ910に渡すととも
に、必要であればテクスチャ記憶部924にテクスチャ
を転送する。すると、描画プロセッサ910は、これら
のオブジェクトデータやテクスチャに基づいて、Zバッ
ファなどを利用した陰面消去を行いながら、オブジェク
トをフレームバッファ922に高速に描画する。また、
描画プロセッサ910は、痺uレンディング(半透明処
理)、デプスキューイング、ミップマッピング、フォグ
処理、トライリニア・フィルタリング、アンチエリアシ
ング、シェーディング処理なども行うことができる。そ
して、1フレーム分の画像がフレームバッファ922に
書き込まれると、その画像はディスプレイ912に表示
される。
などのプリミティブ面で構成されるオブジェクトの描画
(レンダリング)処理を高速に実行するものである。オ
ブジェクトの描画の際には、メインプロセッサ900
は、DMAコントローラ970の機能を利用して、オブ
ジェクトデータを描画プロセッサ910に渡すととも
に、必要であればテクスチャ記憶部924にテクスチャ
を転送する。すると、描画プロセッサ910は、これら
のオブジェクトデータやテクスチャに基づいて、Zバッ
ファなどを利用した陰面消去を行いながら、オブジェク
トをフレームバッファ922に高速に描画する。また、
描画プロセッサ910は、痺uレンディング(半透明処
理)、デプスキューイング、ミップマッピング、フォグ
処理、トライリニア・フィルタリング、アンチエリアシ
ング、シェーディング処理なども行うことができる。そ
して、1フレーム分の画像がフレームバッファ922に
書き込まれると、その画像はディスプレイ912に表示
される。
【0349】サウンドプロセッサ930は、多チャンネ
ルのADPCM音源などを内蔵し、BGM、効果音、音
声などの高品位のゲーム音を生成する。生成されたゲー
ム音は、スピーカ932から出力される。
ルのADPCM音源などを内蔵し、BGM、効果音、音
声などの高品位のゲーム音を生成する。生成されたゲー
ム音は、スピーカ932から出力される。
【0350】ゲームコントローラ942からの操作デー
タや、メモリカード944からのセーブデータ、個人デ
ータは、シリアルインターフェース940を介してデー
タ転送される。
タや、メモリカード944からのセーブデータ、個人デ
ータは、シリアルインターフェース940を介してデー
タ転送される。
【0351】ROM950にはシステムプログラムなど
が格納される。なお、業務用ゲームシステムの場合に
は、ROM950が情報記憶媒体として機能し、ROM
950に各種プログラムが格納されることになる。な
お、ROM950の代わりにハードディスクを利用する
ようにしてもよい。
が格納される。なお、業務用ゲームシステムの場合に
は、ROM950が情報記憶媒体として機能し、ROM
950に各種プログラムが格納されることになる。な
お、ROM950の代わりにハードディスクを利用する
ようにしてもよい。
【0352】RAM960は、各種プロセッサの作業領
域として用いられる。
域として用いられる。
【0353】DMAコントローラ970は、プロセッ
サ、メモリ(RAM、VRAM、ROM等)間でのDM
A転送を制御するものである。
サ、メモリ(RAM、VRAM、ROM等)間でのDM
A転送を制御するものである。
【0354】CDドライブ980は、プログラム、画像
データ、或いは音データなどが格納されるCD982
(情報記憶媒体)を駆動し、これらのプログラム、デー
タへのアクセスを可能にする。
データ、或いは音データなどが格納されるCD982
(情報記憶媒体)を駆動し、これらのプログラム、デー
タへのアクセスを可能にする。
【0355】通信インターフェース990は、ネットワ
ークを介して外部との間でデータ転送を行うためのイン
ターフェースである。この場合に、通信インターフェー
ス990に接続されるネットワークとしては、通信回線
(アナログ電話回線、ISDN)、高速シリアルバスな
どを考えることができる。そして、通信回線を利用する
ことでインターネットを介したデータ転送が可能にな
る。また、高速シリアルバスを利用することで、他のゲ
ームシステムとの間でのデータ転送が可能になる。
ークを介して外部との間でデータ転送を行うためのイン
ターフェースである。この場合に、通信インターフェー
ス990に接続されるネットワークとしては、通信回線
(アナログ電話回線、ISDN)、高速シリアルバスな
どを考えることができる。そして、通信回線を利用する
ことでインターネットを介したデータ転送が可能にな
る。また、高速シリアルバスを利用することで、他のゲ
ームシステムとの間でのデータ転送が可能になる。
【0356】なお、本発明の各手段は、その全てを、ハ
ードウェアのみにより実行してもよいし、情報記憶媒体
に格納されるプログラムや通信インターフェースを介し
て配信されるプログラムのみにより実行してもよい。或
いは、ハードウェアとプログラムの両方により実行して
もよい。
ードウェアのみにより実行してもよいし、情報記憶媒体
に格納されるプログラムや通信インターフェースを介し
て配信されるプログラムのみにより実行してもよい。或
いは、ハードウェアとプログラムの両方により実行して
もよい。
【0357】そして、本発明の各手段をハードウェアと
プログラムの両方により実行する場合には、情報記憶媒
体には、本発明の各手段をハードウェアを利用して実行
するためのプログラムが格納されることになる。より具
体的には、上記プログラムが、ハードウェアである各プ
ロセッサ902、904、906、910、930等に
処理を指示するとともに、必要であればデータを渡す。
そして、各プロセッサ902、904、906、91
0、930等は、その指示と渡されたデータとに基づい
て、本発明の各手段を実行することになる。
プログラムの両方により実行する場合には、情報記憶媒
体には、本発明の各手段をハードウェアを利用して実行
するためのプログラムが格納されることになる。より具
体的には、上記プログラムが、ハードウェアである各プ
ロセッサ902、904、906、910、930等に
処理を指示するとともに、必要であればデータを渡す。
そして、各プロセッサ902、904、906、91
0、930等は、その指示と渡されたデータとに基づい
て、本発明の各手段を実行することになる。
【0358】図28(A)に、本実施形態を業務用ゲー
ムシステムに適用した場合の例を示す。プレーヤは、デ
ィスプレイ1100上に映し出されたゲーム画像を見な
がら、レバー1102、ボタン1104等を操作してゲ
ームを楽しむ。内蔵されるシステムボード(サーキット
ボード)1106には、各種プロセッサ、各種メモリな
どが実装される。そして、本発明の各手段を実行するた
めの情報(プログラム或いはデータ)は、システムボー
ド1106上の情報記憶媒体であるメモリ1108に格
納される。以下、この情報を格納情報と呼ぶ。
ムシステムに適用した場合の例を示す。プレーヤは、デ
ィスプレイ1100上に映し出されたゲーム画像を見な
がら、レバー1102、ボタン1104等を操作してゲ
ームを楽しむ。内蔵されるシステムボード(サーキット
ボード)1106には、各種プロセッサ、各種メモリな
どが実装される。そして、本発明の各手段を実行するた
めの情報(プログラム或いはデータ)は、システムボー
ド1106上の情報記憶媒体であるメモリ1108に格
納される。以下、この情報を格納情報と呼ぶ。
【0359】図28(B)に、本実施形態を家庭用のゲ
ームシステムに適用した場合の例を示す。プレーヤはデ
ィスプレイ1200に映し出されたゲーム画像を見なが
ら、ゲームコントローラ1202、1204を操作して
ゲームを楽しむ。この場合、上記格納情報は、本体シス
テムに着脱自在な情報記憶媒体であるCD1206、或
いはメモリカード1208、1209等に格納されてい
る。
ームシステムに適用した場合の例を示す。プレーヤはデ
ィスプレイ1200に映し出されたゲーム画像を見なが
ら、ゲームコントローラ1202、1204を操作して
ゲームを楽しむ。この場合、上記格納情報は、本体シス
テムに着脱自在な情報記憶媒体であるCD1206、或
いはメモリカード1208、1209等に格納されてい
る。
【0360】図28(C)に、ホスト装置1300と、
このホスト装置1300とネットワーク1302(LA
Nのような小規模ネットワークや、インターネットのよ
うな広域ネットワーク)を介して接続される端末130
4-1〜1304-nとを含むシステムに本実施形態を適用
した場合の例を示す。この場合、上記格納情報は、例え
ばホスト装置1300が制御可能な磁気ディスク装置、
磁気テープ装置、メモリ等の情報記憶媒体1306に格
納されている。端末1304-1〜1304-nが、スタン
ドアロンでゲーム画像、ゲーム音を生成できるものであ
る場合には、ホスト装置1300からは、ゲーム画像、
ゲーム音を生成するためのゲームプログラム等が端末1
304-1〜1304-nに配送される。一方、スタンドア
ロンで生成できない場合には、ホスト装置1300がゲ
ーム画像、ゲーム音を生成し、これを端末1304-1〜
1304-nに伝送し端末において出力することになる。
このホスト装置1300とネットワーク1302(LA
Nのような小規模ネットワークや、インターネットのよ
うな広域ネットワーク)を介して接続される端末130
4-1〜1304-nとを含むシステムに本実施形態を適用
した場合の例を示す。この場合、上記格納情報は、例え
ばホスト装置1300が制御可能な磁気ディスク装置、
磁気テープ装置、メモリ等の情報記憶媒体1306に格
納されている。端末1304-1〜1304-nが、スタン
ドアロンでゲーム画像、ゲーム音を生成できるものであ
る場合には、ホスト装置1300からは、ゲーム画像、
ゲーム音を生成するためのゲームプログラム等が端末1
304-1〜1304-nに配送される。一方、スタンドア
ロンで生成できない場合には、ホスト装置1300がゲ
ーム画像、ゲーム音を生成し、これを端末1304-1〜
1304-nに伝送し端末において出力することになる。
【0361】なお、図28(C)の構成の場合に、本発
明の各手段を、ホスト装置(サーバ)と端末とで分散し
て実行するようにしてもよい。また、本発明の各手段を
実行するための上記格納情報を、ホスト装置(サーバ)
の情報記憶媒体と端末の情報記憶媒体に分散して格納す
るようにしてもよい。
明の各手段を、ホスト装置(サーバ)と端末とで分散し
て実行するようにしてもよい。また、本発明の各手段を
実行するための上記格納情報を、ホスト装置(サーバ)
の情報記憶媒体と端末の情報記憶媒体に分散して格納す
るようにしてもよい。
【0362】またネットワークに接続する端末は、家庭
用ゲームシステムであってもよいし業務用ゲームシステ
ムであってもよい。そして、業務用ゲームシステムをネ
ットワークに接続する場合には、業務用ゲームシステム
との間で情報のやり取りが可能であるとともに家庭用ゲ
ームシステムとの間でも情報のやり取りが可能な携帯型
情報記憶装置(メモリカード、携帯型ゲーム装置)を用
いることが望ましい。
用ゲームシステムであってもよいし業務用ゲームシステ
ムであってもよい。そして、業務用ゲームシステムをネ
ットワークに接続する場合には、業務用ゲームシステム
との間で情報のやり取りが可能であるとともに家庭用ゲ
ームシステムとの間でも情報のやり取りが可能な携帯型
情報記憶装置(メモリカード、携帯型ゲーム装置)を用
いることが望ましい。
【0363】なお本発明は、上記実施形態で説明したも
のに限らず、種々の変形実施が可能である。
のに限らず、種々の変形実施が可能である。
【0364】例えば、本実施形態では流体シミュレーシ
ョン演算を主に例にとり説明したが、本発明のシミュレ
ーション演算は流体シミュレーション演算に限定されな
い。また、流れ場に限定されず、本発明は種々の物理量
に関する場に適用できる。
ョン演算を主に例にとり説明したが、本発明のシミュレ
ーション演算は流体シミュレーション演算に限定されな
い。また、流れ場に限定されず、本発明は種々の物理量
に関する場に適用できる。
【0365】また、シミュレーション演算の手法も図2
〜図6で説明した手法に限定されず、Navier-Stokes方
程式とは異なる方程式に基づいてシミュレーション演算
を行ってもよい。
〜図6で説明した手法に限定されず、Navier-Stokes方
程式とは異なる方程式に基づいてシミュレーション演算
を行ってもよい。
【0366】また本実施の形態ではベクトル場に属する
点として格子点を例にとり説明したがこれに限られな
い。格子状に並んでいない点でもよい。
点として格子点を例にとり説明したがこれに限られな
い。格子状に並んでいない点でもよい。
【0367】さらに、本実施形態において、流れ場(流
れ場情報)を適用できるものは、同様の手法で該流れ場
の影響を受けた仮想場(該流れ場の影響を受けた情報)
を適用することができる。また、流れ場の影響を受けた
仮想場(流れ場の影響を受けた情報)を適用できるもの
は、同様の手法で該流れ場(該流れ場の情報)を適用す
ることができる。
れ場情報)を適用できるものは、同様の手法で該流れ場
の影響を受けた仮想場(該流れ場の影響を受けた情報)
を適用することができる。また、流れ場の影響を受けた
仮想場(流れ場の影響を受けた情報)を適用できるもの
は、同様の手法で該流れ場(該流れ場の情報)を適用す
ることができる。
【0368】また、本発明のうち従属請求項に係る発明
においては、従属先の請求項の構成要件の一部を省略す
る構成とすることもできる。また、本発明の1の独立請
求項に係る発明の要部を、他の独立請求項に従属させる
こともできる。
においては、従属先の請求項の構成要件の一部を省略す
る構成とすることもできる。また、本発明の1の独立請
求項に係る発明の要部を、他の独立請求項に従属させる
こともできる。
【0369】また本発明は種々のゲーム(格闘ゲーム、
シューティングゲーム、ロボット対戦ゲーム、スポーツ
ゲーム、競争ゲーム、ロールプレイングゲーム、音楽演
奏ゲーム、ダンスゲーム等)に適用できる。
シューティングゲーム、ロボット対戦ゲーム、スポーツ
ゲーム、競争ゲーム、ロールプレイングゲーム、音楽演
奏ゲーム、ダンスゲーム等)に適用できる。
【0370】また本発明は、業務用ゲームシステム、家
庭用ゲームシステム、多数のプレーヤが参加する大型ア
トラクションシステム、シミュレータ、マルチメディア
端末、ゲーム画像を生成するシステムボード等の種々の
画像生成システム(ゲームシステム)に適用できる。
庭用ゲームシステム、多数のプレーヤが参加する大型ア
トラクションシステム、シミュレータ、マルチメディア
端末、ゲーム画像を生成するシステムボード等の種々の
画像生成システム(ゲームシステム)に適用できる。
【図1】本実施形態の画像生成システムの機能ブロック
図の例である。
図の例である。
【図2】流体シミュレーションを行う際の手順について
説明するための模式図である。
説明するための模式図である。
【図3】流体シミュレーションを行う際の手順について
説明するためのフローチャートである。
説明するためのフローチャートである。
【図4】図4(A)、(B)、(C)は、流れ場に対し
て外力に対応した速度ベクトルを与えた場合の場の状態
変化を模式的に表した図である。
て外力に対応した速度ベクトルを与えた場合の場の状態
変化を模式的に表した図である。
【図5】境界条件について説明するための図である。
【図6】図6(A)、(B)、(C)は、具体的な計算
例としてキャビティ問題について説明するための図であ
る。
例としてキャビティ問題について説明するための図であ
る。
【図7】本実施形態における2次元の流れ場と3次元の
オブジェクト空間との関係を模式的に示す説明図であ
る。
オブジェクト空間との関係を模式的に示す説明図であ
る。
【図8】2次元の流れ場を焚き火の炎の表現に適用した
場合のオブジェクト画像の一例を示す図である。
場合のオブジェクト画像の一例を示す図である。
【図9】本実施形態において、オブジェクトにマッピン
グされる場を模式的に示す説明図である。
グされる場を模式的に示す説明図である。
【図10】本実施形態において、オブジェクトに対して
行われる2次元の流れ場のUVマッピングについて説明
するための図である。
行われる2次元の流れ場のUVマッピングについて説明
するための図である。
【図11】本実施形態におけるスプライトポリゴンが配
置されたオブジェクト空間の画像の一例を示す図であ
る。
置されたオブジェクト空間の画像の一例を示す図であ
る。
【図12】図12(A)、(B)は、本実施形態におけ
る流れ場がマッピングされたオブジェクトの法線ベクト
ルを、流れ場の情報に基づいて変化させる場合について
説明するための説明図である。
る流れ場がマッピングされたオブジェクトの法線ベクト
ルを、流れ場の情報に基づいて変化させる場合について
説明するための説明図である。
【図13】図13(A)、(B)は、本実施形態におけ
る流れ場がマッピングされたオブジェクトの頂点の位置
を、流れ場の情報に基づいて変化させる場合について説
明するための説明図である。
る流れ場がマッピングされたオブジェクトの頂点の位置
を、流れ場の情報に基づいて変化させる場合について説
明するための説明図である。
【図14】図14(A)、(B)は、本実施形態におけ
る流れ場がマッピングされたオブジェクトの表面から発
生したパーティクルを、流れ場の情報に基づいて変化さ
せる場合について説明するための説明図である。
る流れ場がマッピングされたオブジェクトの表面から発
生したパーティクルを、流れ場の情報に基づいて変化さ
せる場合について説明するための説明図である。
【図15】本実施形態における流れ場の可変制御につい
て説明するための説明図である。
て説明するための説明図である。
【図16】本実施形態において、イベントの発生を契機
とした流れ場の設定について説明するための説明図であ
る。
とした流れ場の設定について説明するための説明図であ
る。
【図17】本実施形態において、1の流れ場を複数の位
置に設定する場合について説明するための説明図であ
る。
置に設定する場合について説明するための説明図であ
る。
【図18】本実施形態における外因の発生位置と、その
結果の適用位置との関係について説明するための説明図
である。
結果の適用位置との関係について説明するための説明図
である。
【図19】本実施形態において、イベント発生に応じて
流れ場を設定する処理の一例を示すフローチャートであ
る。
流れ場を設定する処理の一例を示すフローチャートであ
る。
【図20】本実施形態において処理負荷に応じて流れ場
を設定する処理の一例を示すフローチャートである。
を設定する処理の一例を示すフローチャートである。
【図21】本実施形態において、オブジェクト空間の複
数の位置に1の流れ場を設定する場合の処理の一例を示
すフローチャートである。
数の位置に1の流れ場を設定する場合の処理の一例を示
すフローチャートである。
【図22】図22(A)、(B)は、流れ場の外に出た
パーティクルについて模式的に示す説明図である。
パーティクルについて模式的に示す説明図である。
【図23】本実施形態における流れ場を離れたパーティ
クルによるオブジェクト画像の一例を示す図である。
クルによるオブジェクト画像の一例を示す図である。
【図24】本実施形態におけるパーティクルの位置や状
態を変化させる処理の一例を示すフローチャートであ
る。
態を変化させる処理の一例を示すフローチャートであ
る。
【図25】本実施形態において移動オブジェクトに追従
して流れ場を設定する処理の一例を示すフローチャート
である。
して流れ場を設定する処理の一例を示すフローチャート
である。
【図26】本実施形態において移動オブジェクトに追従
して流れ場を設定する処理の一例を示すフローチャート
である。
して流れ場を設定する処理の一例を示すフローチャート
である。
【図27】本実施形態を実現できるハードウェアの構成
の一例を示す図である。
の一例を示す図である。
【図28】図28(A)、(B)、(C)は、本実施形
態が適用される種々の形態のシステムの例を示す図であ
る。
態が適用される種々の形態のシステムの例を示す図であ
る。
100 処理部
110 シミュレーション演算部
115 場設定部
120 プリミティブ処理部
125 処理監視部
140 画像生成部
150 音生成部
160 操作部
170 記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部
HFX1〜HFX3 流れ場
WOBJX、WOBJX1〜WOBJX3 オブジェク
ト
ト
フロントページの続き
Fターム(参考) 2C001 AA03 AA06 AA11 AA14 AA16
BA02 BA04 BA05 BA06 BA07
BB01 BB02 BB03 BB04 BC02
BC03 BC04 BC05 BC06 CA02
CB01 CB02 CB04 CB06 CB08
CC01 CC08 DA04
5B050 BA08 BA11 EA24
Claims (17)
- 【請求項1】 画像生成を行う画像生成システムであっ
て、 シミュレーション空間を分割した各点での物理量に基づ
いて形成される場について、サイズ、分割数、設定位
置、設定数及び形状のうち少なくとも1つを変更して設
定する場設定手段と、 前記物理量の変化をシミュレーション演算により求め、
前記場を求めるシミュレーション演算手段と、 前記場の各点での物理量を用いて、プリミティブの位置
又はプリミティブに関連付けられる情報を変化させる手
段と、 前記プリミティブが配置されるオブジェクト空間の所与
の視点から見た画像を生成する手段と、 を含むことを特徴とする画像生成システム。 - 【請求項2】 請求項1において、 前記場の各点での物理量を用いて、パーティクルの位置
又はパーティクルに関連付けられる情報を変化させる手
段を含むことを特徴とする画像生成システム。 - 【請求項3】 請求項1又は2において、 処理負荷を監視する手段を含み、 前記場設定手段は、 処理負荷に応じて、前記場のサイズ、分割数、設定位
置、設定数及び形状のうち少なくとも1つを変更して設
定することを特徴とする画像生成システム。 - 【請求項4】 請求項1乃至3のいずれかにおいて、 所与のイベントを検出する手段を含み、 前記場設定手段は、 前記イベントの検出結果に基づいて、前記場のサイズ、
分割数、設定位置、設定数及び形状のうち少なくとも1
つを変更して設定することを特徴とする画像生成システ
ム。 - 【請求項5】 請求項4において、 前記イベントに関連付けられた位置に、前記場又は該場
の影響を受けた仮想場が設定されることを特徴とする画
像生成システム。 - 【請求項6】 請求項4又は5において、 前記イベントの発生位置と、前記場又は該場の影響を受
けた仮想場を設定する位置とは異なることを特徴とする
画像生成システム。 - 【請求項7】 請求項1乃至6のいずれかにおいて、 前記シミュレーション演算が行われる1の場の情報又は
該場の影響を受けた情報が、オブジェクト空間内の複数
の位置に設定された場の情報として用いられることを特
徴とする画像生成システム。 - 【請求項8】 請求項1乃至7のいずれかにおいて、 前記場又は該場の影響を受けた仮想場は、オブジェクト
空間内を移動するプリミティブに追従する位置に設定さ
れることを特徴とする画像生成システム。 - 【請求項9】 シミュレーション空間を分割した各点で
の物理量に基づいて形成される場について、サイズ、分
割数、設定位置、設定数及び形状のうち少なくとも1つ
を変更して設定する場設定手段と、 前記物理量の変化をシミュレーション演算により求め、
前記場を求めるシミュレーション演算手段と、 前記場の各点での物理量を用いて、プリミティブの位置
又はプリミティブに関連付けられる情報を変化させる手
段と、 前記プリミティブが配置されるオブジェクト空間の所与
の視点から見た画像を生成する手段としてコンピュータ
を機能させることを特徴とするプログラム。 - 【請求項10】 請求項9において、 前記場の各点での物理量を用いて、パーティクルの位置
又はパーティクルに関連付けられる情報を変化させる手
段としてコンピュータを機能させることを特徴とするプ
ログラム。 - 【請求項11】 請求項9又は10において、 処理負荷を監視する手段としてコンピュータを機能さ
せ、 前記場設定手段は、 処理負荷に応じて、前記場のサイズ、分割数、設定位
置、設定数及び形状のうち少なくとも1つを変更して設
定することを特徴とするプログラム。 - 【請求項12】 請求項9乃至11のいずれかにおい
て、 所与のイベントを検出する手段としてコンピュータを機
能させ、 前記場設定手段は、 前記イベントの検出結果に基づいて、前記場のサイズ、
分割数、設定位置、設定数及び形状のうち少なくとも1
つを変更して設定することを特徴とするプログラム。 - 【請求項13】 請求項12において、 前記イベントに関連付けられた位置に、前記場又は該場
の影響を受けた仮想場が設定されることを特徴とするプ
ログラム。 - 【請求項14】 請求項12又は13において、 前記イベントの発生位置と、前記場又は該場の影響を受
けた仮想場を設定する位置とは異なることを特徴とする
プログラム。 - 【請求項15】 請求項9乃至14のいずれかにおい
て、 前記シミュレーション演算が行われる1の場の情報又は
該場の影響を受けた情報が、オブジェクト空間内の複数
の位置に設定された場の情報として用いられることを特
徴とするプログラム。 - 【請求項16】 請求項9乃至15のいずれかにおい
て、 前記場又は該場の影響を受けた仮想場は、オブジェクト
空間内を移動するプリミティブに追従する位置に設定さ
れることを特徴とするプログラム。 - 【請求項17】 コンピュータにより読み取り可能な情
報記憶媒体であって、請求項9乃至16のいずれかのプ
ログラムを記憶することを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001282148A JP2003091740A (ja) | 2001-09-17 | 2001-09-17 | 画像生成システム、プログラム及び情報記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001282148A JP2003091740A (ja) | 2001-09-17 | 2001-09-17 | 画像生成システム、プログラム及び情報記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003091740A true JP2003091740A (ja) | 2003-03-28 |
Family
ID=19105842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001282148A Withdrawn JP2003091740A (ja) | 2001-09-17 | 2001-09-17 | 画像生成システム、プログラム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003091740A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010041358A1 (ja) * | 2008-10-08 | 2010-04-15 | 株式会社ソニー・コンピュータエンタテインメント | ゲーム制御プログラム、ゲーム装置、及びゲーム制御方法 |
JP2010088693A (ja) * | 2008-10-08 | 2010-04-22 | Sony Computer Entertainment Inc | ゲーム制御プログラム、ゲーム装置、及びゲーム制御方法 |
JP2010515170A (ja) * | 2006-12-29 | 2010-05-06 | ジェスチャー テック,インコーポレイテッド | 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 |
JP2013034884A (ja) * | 2012-10-10 | 2013-02-21 | Daito Giken:Kk | 遊技台 |
JP2013061927A (ja) * | 2011-09-12 | 2013-04-04 | Disney Enterprises Inc | 三次元グラフィックモデルから生成された画像データを処理する方法 |
JP2015112193A (ja) * | 2013-12-10 | 2015-06-22 | 京楽産業.株式会社 | 遊技機 |
JP2017202409A (ja) * | 2017-08-29 | 2017-11-16 | 株式会社三洋物産 | 遊技機 |
CN110941894A (zh) * | 2019-11-05 | 2020-03-31 | 天津大学 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
-
2001
- 2001-09-17 JP JP2001282148A patent/JP2003091740A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010515170A (ja) * | 2006-12-29 | 2010-05-06 | ジェスチャー テック,インコーポレイテッド | 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 |
US8559676B2 (en) | 2006-12-29 | 2013-10-15 | Qualcomm Incorporated | Manipulation of virtual objects using enhanced interactive system |
WO2010041358A1 (ja) * | 2008-10-08 | 2010-04-15 | 株式会社ソニー・コンピュータエンタテインメント | ゲーム制御プログラム、ゲーム装置、及びゲーム制御方法 |
JP2010088693A (ja) * | 2008-10-08 | 2010-04-22 | Sony Computer Entertainment Inc | ゲーム制御プログラム、ゲーム装置、及びゲーム制御方法 |
US9138649B2 (en) | 2008-10-08 | 2015-09-22 | Sony Corporation | Game control program, game device, and game control method adapted to control game where objects are moved in game field |
JP2013061927A (ja) * | 2011-09-12 | 2013-04-04 | Disney Enterprises Inc | 三次元グラフィックモデルから生成された画像データを処理する方法 |
JP2013034884A (ja) * | 2012-10-10 | 2013-02-21 | Daito Giken:Kk | 遊技台 |
JP2015112193A (ja) * | 2013-12-10 | 2015-06-22 | 京楽産業.株式会社 | 遊技機 |
JP2017202409A (ja) * | 2017-08-29 | 2017-11-16 | 株式会社三洋物産 | 遊技機 |
CN110941894A (zh) * | 2019-11-05 | 2020-03-31 | 天津大学 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
CN110941894B (zh) * | 2019-11-05 | 2024-02-06 | 天津大学 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7905779B2 (en) | Video game including effects for providing different first person experiences of the same video game world and a storage medium storing software for the video game | |
JP4771821B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
EP2158948A2 (en) | Image generation system, image generation method, and information storage medium | |
US7312804B2 (en) | Program product, image generation method and image generation system | |
US20060094501A1 (en) | Video game including time dilation effect and a storage medium storing software for the video game | |
CN1957375B (zh) | 图像处理装置、图像处理方法以及信息存储介质 | |
JP2003091740A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003091738A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4776017B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2002222435A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3245142B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2007226572A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4651436B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3483967B2 (ja) | 雲状現象可視化装置 | |
JP4743733B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003091739A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4408681B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4782583B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3377491B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2002222434A (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP2003044876A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003091741A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP6863678B2 (ja) | プログラム及びゲーム装置 | |
JP3431562B2 (ja) | ゲームシステム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |