JP3958527B2 - 風のシミュレーション・システム - Google Patents
風のシミュレーション・システム Download PDFInfo
- Publication number
- JP3958527B2 JP3958527B2 JP2001062535A JP2001062535A JP3958527B2 JP 3958527 B2 JP3958527 B2 JP 3958527B2 JP 2001062535 A JP2001062535 A JP 2001062535A JP 2001062535 A JP2001062535 A JP 2001062535A JP 3958527 B2 JP3958527 B2 JP 3958527B2
- Authority
- JP
- Japan
- Prior art keywords
- wind
- calculation
- simulation
- tree
- grid
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、3次元グラフィックスのアニメーションに関し、特に、風に揺れる樹木等の風による動きのシミュレーション・システムに関する。
【0002】
【従来の技術】
近年の計算機の高性能化によって、流体の物理シミュレーションがパソコンでも可能になってきている。そこで、コンピュータ・グラフィックスの分野においても、それらを利用した流体の動きのアニメーション作成手法がいくつか考案されている。例えば、煙、雲の流れを再現するための研究などがある。しかし、それらは流体そのものの動きだけを表現するものである。
【0003】
【発明が解決しようとする課題】
本発明の目的は、流体の動きによって引き起こされる他の物体への影響に着目してシミュレートすることで、風の動きによって引き起こされる樹木等の変形を表現するアニメーションを生成することである。
【課題を解決するための手段】
上記目的を達成するために、本発明は、風のシミュレーション・システムであって、シミュレーション空間内に、シミュレーションを行う対象であるオブジェクトの配置を行うオブジェクト配置手段と、前記オブジェクトによる境界条件を、シミュレーション計算のために、前記シミュレーション空間全体を分割した広域計算用の格子及び配置されたオブジェクトの形状・配置状態に応じた詳細計算用の格子と対応つけて、境界条件マップを作成する境界条件マップ作成手段と、作成した前記境界条件マップを用い、前記広域計算用の格子を用いて風のシミュレーション計算を行い、該シミュレーション計算の結果を基に、詳細計算用の格子を用いて風のシミュレーション計算を行う風シミュレーション計算手段と、前記シミュレーション計算手段の結果により、風によるオブジェクトの変形計算を行う変形計算手段と、変形されたオブジェクトを描画する描画手段とを備えることを特徴とする風のシミュレーション・システムである。
さらに、前記描画手段で描画された、変形されたオブジェクトにより環境条件マップを更新する環境条件マップ更新手段を備え、更新した前記境界条件マップを用いて、前記風シミュレーション計算手段で風のシミュレーション計算を行うとよい。
さらに、風の設定を行うための風設定手段を備えることができ、風上領域や風力を設定することも可能である。この風設定手段は、風力の時間変化も設定することができる。
また、視点から遠くに配置されたオブジェクトに対する詳細計算用の格子として、粗い格子を使用することもできる。前記オブジェクト配置手段は、樹木のオブジェクトを再帰処理により生成する樹木生成手段を含むこともできる。
これらの風のシミュレーション・システムの各手段をコンピュータ・システムに機能させることができるコンピュータ・プログラムやコンピュータ・プログラムを記録した記録媒体も本発明である。
【0004】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
<風の物理シミュレーション空間>
流体が運動することによって、新たに物質が生成されたり消滅したりすることはない。このような、流体が途切れることなく、連続的に流れることを表す連続の式において、定常流れで、非圧縮性流体の場合には密度ρは一定であるので、空気の流れである風で扱う連続の式は、x,y,z方向それぞれの流速をu,v,wとすると、次式となる。
【数1】
また、風の流れ場全体の様子を詳しく求めるには、流体粒子の運動に関する方程式を解けばよい。そこで、流体粒子の持つ6つの物理量、すなわち3方向の速度成分u,v,w、密度ρ、圧力p、および温度Tを用いて方程式をたて、それを解くことにより風の様子を求めることができる。
また、水や空気のようなもっとも一般的な流体でも、その運動が音速に比べて速いか遅いか、時間とともに変化するかしないかなどの条件により方程式が異なる。風は音速と比べて遅いため、圧縮性の影響を無視することができるので、本論文では風を非圧縮性流体として扱う。
温度一定の非圧縮性流体では密度ρは一定である。したがって、状態方程式やエネルギー保存の法則とは無関係に風の運動を求めることができる。つまり、風は流体粒子のもつ3つの速度成分と、圧力の4つの物理量で決定される。
音速よりも遅い流れでは非圧縮性流体におけるNavier−Stokesの方程式が用いられる。その方程式とは、x,y,z方向それぞれの流速をu,v,w、流体の渦度をξ,η,ζとすると、次のようになる。
【数2】
Re:レイノルズ数
【0005】
(差分方程式)
さて、上述のように、粘性流体の解析に用いられる方程式は、連続の式とNavier−Stokesの方程式である。しかし、Navier−Stokesの式は非線形方程式であるので、厳密解は、極めて簡単な条件の流れに対してのみ得られる。
偏微分方程式は、離散化することによって数値的に求めることができる。以下に、代表的な離散化手法の1つである差分法を用いて離散化する方法について述べる。本発明では、上式から、差分法を用いて数値解を求めることで、風の物理シミュレーションを行う。
差分法は、流れ場を有限個の格子に分割し、流れ場の連続的な物理量を格子点の物理量で代表させて、流れ場の解を求めるものである。流れ場のx,y,z座標に配置された格子点をi,j,kとして、渦度ζ(xy方向、xz方向)と流線方向の流れの強さを表す流れ関数φを求める差分方程式は、次式となる。
【数3】
「流れの情報は主に上流側から来る」という考えに基づき、風上差分と呼ばれる手法を用いて、Navier−Stokesの方程式を差分化すると、流れ関数φの差分式を変形でき、次式となる。
【数4】
【0006】
(周囲境界条件)
差分法を用いる際には、空間を有限の格子に分割するために計算領域の端に境界が生じる。そのため、この部分において通常の計算とは違う特別な処理を行う必要がある。
そこで、本発明では次のような周囲境界条件を使用した。
▲1▼流入領域(流速vで流入)
平行流の条件
【数5】
より
【数6】
▲2▼上下前後境界
▲1▼と同様の条件より、
【数7】
【0007】
<風の運動シミュレーションの手順>
上述の流体の運動方程式及びその数値解法をもとに、風の運動シミュレーションを行う際の手順について述べる。
(ステップ1:格子サイズの決定)
シミュレーションを行う前段階として、計算格子のサイズを決定する必要がある。もちろん、格子サイズはモデルに対して十分に大きくとらなければならないが、サイズが大きくなればなるほど、計算時間やメモリの使用量が増大する。
本発明においては、シミュレーション対象となる樹木、地形などのサイズのオーダーに合わせて、この格子サイズを決定する。なぜなら、対象となるモデルの形状を十分に表現できる程度の格子点を設定することが重要だからである。
よって、格子サイズの決定法は対象となるモデルごとに後述するが、例えば樹木であれば、その葉1つ1つを格子点上に配置し、境界条件として機能する程度のオーダーで格子サイズを決定する。
(ステップ2:風上領域の値の設定)
差分法による計算を行う際に、最初に設定されるのが風上領域の値の設定である。これは、計算格子に対して外部から与えられる唯一の値であり、この値がシミュレーション空間を流れる風の強さを決定する。
(ステップ3:差分法による計算)
シミュレーションのメインとなる部分である。ここでは上述の式を用い、各格子点における時間Δt後の風の状態を求める。
(ステップ4:外部境界条件)
次の繰り返し計算に備えて、上述に示した外部境界条件を整える。
(ステップ5:繰り返し)
次の時刻における風の動きを求めるために、ステップ2に戻る。
以上5つのステップによって、風のシミュレーションが行われる。
【0008】
<風に揺れる樹木>
(樹木形状)
風に揺れる樹木は、風の影響を受けて動く代表的な物体である。樹木の動きから風の強さや方向を知ることができ、また落ち葉や花びらなどは季節を感じる要因の1つである。そのような樹木のモデル化について説明する。また、上述の風のシミュレーション・モデルと生成した樹木モデルとの関わりについても述べる。
樹木モデル作成の第一段階として、形状の生成を行う。本実施形態では、樹木の構造の基本単位を枝とし、幹に相当する1つの大きな枝から再帰によって子となる枝を増やし、末端に葉を配置することで1つの樹木を構成する。
(枝の構造)
図1(a)のように、枝110の構造は5つの節111〜115を持つ円柱からなっている。各節ごとに角度の変化をつけることができ、図1(b)のようにまっすぐな枝だけでなく、曲がった枝120を表現することができる。
各枝の長さと太さは可変であり、この値を変化させることで、太い幹から細い末端の枝に分かれていく際にも、同様の構造で枝を再現できる。
(枝の生成法)
図1(図2(a)参照)に示した枝を用いて、樹木の形状を生成する。その際、図2(b)のように、枝を構成する節に対して、1つの枝から最大8本の子の枝を生成し、乱数によって角度に変化をつける。
また、より本物の樹木の形状に近い形にするために子の枝を生成する際に、下2ブロックに関しては枝の生成を行わないという制限を設ける。このような方法をとることで、実際に生成される形状がどのように変化するかを、図3に示す。図3(a)は制限無しで生成したもので、図3(b)は下2ブロックに関しては枝の生成を行わないという制限を設けて生成したものである。
図3(a)に示した樹木は、根元から枝が生成されているため、あたかも木の上部だけを切り取ったような状態になっている。それに対して、図3(b)に示した制限を設けた樹木はきちんとした形状になっているのがわかる。
(葉の生成)
葉の生成は、図4に示すように、枝の生成と同様に、枝を構成する節に葉をつけることで行われる。本発明では、詳細な形状を表示することが目的ではないので、葉の形状には、楕円を用いる。
(再帰の深さ)
樹木生成を行う際の再帰の深さを変えることによって、樹木形状全体がどのように変化するかを、図5に示す。
図5に示すように、深さ4ならば十分に樹木らしい形状となっている。本発明では、データ量を抑え、アニメーションを高速に生成するために、この深さ4の樹木を用いることとするが、再帰構造を用いているので、容易に形状をより複雑にすることもできる。
【0009】
(風に対する樹木の物理特性)
上述の処理で、樹木形状の生成を行ったが、本発明の目的は風による動きを生成することであるので、樹木の風に対する物理特性を定義する必要がある。
風の状態は流線方向の風の強さとx,y,z方向の回転力で表されるので、これらの力を示したものが図6である。図6は2次元的に示したものであるが、風力Fw、回転角θwが得られた場合、枝の配置角度がθb、抵抗値Rとすると、次の時刻における枝の角度は、以下の式で求められる。
【数8】
このとき与えられる抵抗値Rは、樹木の特性を考慮して、幹のような太いものについては大きく、末端の枝や葉は小さく設定する。
また、末端の葉にかかった力は、その葉を持つ枝に伝達され、逆に、その枝からも親となる枝へと伝達されるようにする。
(落ち葉)
樹木に対する風の効果をより印象的に見せるために、落ち葉の効果を付加する。
樹木の葉は、強い風によって、または四季の移り変わりによって枝から離れ、落ち葉となる。また、樹木の種類によっては、四季の変化では、葉を落とさないものもある。そこで、樹木モデルに落葉のフラグを設定する。
また、葉が落ち葉に変化する確率(落葉率)を次のように設定する。
【数9】
落葉率 = 基本落下率 × 風力
上式で、基本落下率はその樹木に固有のものであり、再現するシーンの時期や種類を考慮して与える。落葉率は、基本落下率に風力を掛けることで、強風によって葉が飛ばされるという現象を再現するためのものである。
枝から切り離された落ち葉は、遠くまで吹き飛ばされる。そのため、ここで述べるような樹木周りの計算格子では対応しきれない。そこで、シミュレーション空間全体の風の流れを求める必要があるが、これに関しては後で述べる。また、地面に落下した葉に関しては移動に抵抗を持たせる。図7に、落ち葉の様子を示す。
【0010】
<境界条件マップ>
ここでは、アニメーション生成を行うために物理シミュレーションと形状モデルとの関係を表す境界条件マップを定義する。また、風の階層的計算やLODによる高速化手法についても述べる。
まず、物理シミュレーションと樹木モデルの関係を表すための境界条件マップについて述べる。
風の物理シミュレーションを行う際に、ある物体周りの風の動きを求める場合、その物体によって風が遮られる部分が生じる。したがって、その物体の特性を考慮した境界条件を設ける必要がある。この境界条件を計算格子に適用することで物体の周囲の風の流れを計算することができる。
この境界条件の設定次第で風の動きも変化してしまうので、この値はシミュレーション全体に大きな影響を及ぼす。つまり、境界条件マップとは、仮想空間上の物体と計算格子上の場所を関連付けるための情報のことである。これを用いることで、形状の変化を計算格子に適用し、また、結果を形状にフィードバックさせることができる。
(境界条件マップの生成)
樹木の境界条件マップは、図8に示すのように生成される。
図8(a)の計算格子において、図8(b)に示す樹木の形状のように、塗りつぶされた部分(図8(c)参照)が、境界としてマッピングされた部分である。樹木の周囲の風の流れを求めるためには、樹木形状に対して十分な大きさの計算格子を用意する必要がある。
【0011】
(境界条件問題)
図8(c)に示すような境界条件マップを活用し、風の流れを計算する際に問題となるのが、その境界条件をどのような方法で決定するかである。そこで、風に対する樹木の境界条件を考える必要がある。
まず幹については、これは完全に風を通さない物体であり、粘性流体に関してはすべりなしの条件が成り立つので、物体表面と接触する部分の流体の速度はゼロとなる。
それに対して、葉の部分の境界条件は複雑である。葉は幹などと違って、とても軽く、小さいものである。それゆえ、幹のように風を完全に遮断することなく、一部を通過させるであろうことは容易に想像がつく。それゆえ、葉に対しては幹とは異なった境界条件を用いる必要がある。そこで、葉の周りの風の動きを観察するために、葉の形状の周りに詳細な計算格子を設け、上述の数値計算の手法を用いて風下においてどれだけの風が通過しているかを調べた。以下にその結果を図9のグラフで示す。図9に示したグラフは、横軸が時間、縦軸が(風下の風力の平均値)/(風上の風力の平均値)である。このグラフを見ると、0.52を中心に値が分布している。このことから、葉形状によって生成される境界条件を
【数10】
風上の風速*0.52 = 風上の風速
と定めた。
(樹木に適した計算格子)
境界条件マップを利用することで、樹木と計算格子の関係を示すことができる。そこで、上で述べた手法で生成した樹木に対して用いる計算格子を次のように定義する。
本実施形態で用いている樹木は、約4200枚の葉から構成されている。その位置は生成時の乱数の影響で一定ではないが、枝の長さなどからある程度の距離内に収まることがわかる。そこで、樹木を完全に覆うような正方形の空間を考え、それを分割することで境界条件マップと対応させる。分割数は葉の配置状態を正確に反映できるように細かくとる必要がある。そこで、分割数に対する葉の作り出す境界の数を調べた。その結果を計算格子の分割数と葉の配置数である次の表に示す。
【表1】
この結果から、分割数49*49*49ならば、十分に葉の配置状態を引き出すことができることがわかる。また、計算格子のサイズ、境界条件マップのサイズも同様となる。
【0012】
<格子サイズ>
アニメーション生成の対象となる空間に対して、どのようなサイズの計算格子を割り当てればよいかを考える。ここで考慮すべき要素は、地形の複雑さ、木の本数、落ち葉の枚数などがある。もちろん、格子は細かいほどよいが、そこまで厳密な解を求める必要はなく、むしろ、高速に解を求めることで、動きの連続性が理解できるようになる。しかし、計算結果として意味のある解を求めるためには、ある程度の大きさの計算格子を用いる必要がある。そこで、地形の複雑さ、樹木の数などを考慮し、それぞれの形状、配置状態が十分に反映されるような大きさの格子を用いる。
(階層的な計算手法)
アニメーション生成を行う空間は、樹木の詳細な形状に対して数十倍の大きさがある。よって、上で述べた樹木周辺の詳細な計算格子を用いて空間全体を計算することは、データ量的にも、計算量的にも無駄が多い。そこで、空間全体を計算する格子は、上で述べたように、地形などの状態を反映できる程度の格子を用いて、個々の樹木周りに関しては、より詳細な計算格子を用いることとする。そのために、風の階層的な計算を行う。この風の階層的な計算を、図10を用いて説明する。これは、図10に示すように、広域計算用には、荒い格子の計算格子を用いて空間全体に対して計算している。樹木の周りでは詳細な計算格子を用意する。そして、空間全体の計算格子の一部の値を樹木周りの詳細な計算格子へと伝達し、そこで、ふたたび樹木周りに関して再計算を行うという手法を用いる。これによって、空間全体に詳細な格子を用いずに、詳細な動きを求めることが可能となる。
(Level of Detail(LOD)による高速化)
アニメーション生成を行う際に、LODによる高速化を行う。本発明ではLODによって樹木の形状を簡略化するだけでなく、計算格子の精度を落すことによって高速化を行う。
さて、遠い樹木は詳細な形状が見えなくなるだけでなく、詳細な動きも見ることができない。そこで、計算格子の精度を落し計算格子全体のサイズを小さくすることで計算の高速化が可能となる。樹木の計算格子は、表1において定義した49*49*49の格子を用いているが、樹木の視点からの距離が詳細な動きが見えなくなるような値を超えたときには、計算格子のサイズを25*25*25に変更する。これにより、計算量は1/8に減少する。
【0013】
<アニメーション生成システム>
上述では、風のシミュレーションを行うための差分計算の基礎的な式、風のシミュレーションによるアニメーションの代表的なオブジェクトである樹木の生成手法、計算のための格子や境界条件マップについて説明した。これらを用いて、風のシミュレーションによるアニメーションを作成することが可能である。このためのシミュレーション・システム(アニメーション作成システム)を以下に説明する。
(アニメーション生成の手順)
アニメーション生成の手順を、図11のフローチャートを用いて説明する。
まず、シミュレーションを行う前段階として、ユーザーが各オブジェクトの配置を行う(S202)。各オブジェクトとしては、上述の樹木の外、建物、地形等がある。これらの配置については後述する。次に風の発生についての設定を行う(S204)。これについても後述する。
これらの風のシミュレーションを行うために必要な設定入力が終了すると、図8に示したように、各オブジェクトに関する境界条件マップを生成し、風の物理シミュレーションの準備を行う(S206)。そして、アニメーションを行う空間全体の風の流れを求めるために、図10に示すように、広域計算用の格子において、上述の差分方程式を用いて風の物理シミュレーションを行う(S208)とともに、広域計算より得られた結果をもとに、樹木周辺に関しても詳細な格子を用いて風の物理シミュレーションを行う(S210)。
物理シミュレーションの計算結果により、計算格子から、樹木の各枝と、葉に対してかかる風力をフィードバックして、変形を行う(S212)。この変形をもとに、オブジェクトの描画を行う(S214)。まだ、終了しない場合(S216でNO)、樹木の変形結果を反映させるために、境界条件マップを更新する(S218)。
【0014】
<オブジェクトの配置等>
(風を遮蔽するオブジェクト)
風のアニメーションを作成する際には、建物、地形、車、人などの、風に影響を及ぼすオブジェクトを配置することにより、より効果的なシーンを作り出すことができる。
本発明では、風を遮蔽するオブジェクトとして建物と地形を考える。この2つのオブジェクトは、風の進路を妨げるため、風の流れに大きな影響を及ぼす。また、樹木とは異なり風の力によって変形することがないので、物理特性などを考慮する必要もない。
(建物モデル)
本発明では、建物の形状を直方体で表す。この直方体を、空間全体のサイズと比較し、境界条件マップを作成すればよい。その境界条件は、すべりなしの条件より、建物表面での流速がゼロになるようにすればよい。
(地形モデル)
地形モデルは風へ影響を及ぼすだけでなく、建物、樹木、落ち葉に高さの変化をつけるためにも必要である。そのために、200*200の格子点をもつ平面を考える。それぞれの点に対して高さの値を設定することで、詳細な地形を表せるようにした。また、境界条件に関しては、これらの格子点の高さから境界条件マップを生成し、建物と同様の境界条件を用いる。
<配置等のユーザー・インターフェース>
上述において、本システムで用いるオブジェクト等について説明した。ここでは、それらを利用し、実際のアニメーションを生成する際に使用するユーザー・インターフェースについて述べる。
(樹木、建物の配置)
樹木、建物の配置は、「樹木、建物配置画面」で行われ、その配置状態が表示されるとともに、「アニメーション生成画面」でその結果を確認することができる。
「樹木、建物配置画面」では、樹木を配置すると、「樹木形状確認画面」に詳細な形状が表示され、樹木の色や、落ち葉の処理を行うかどうかを設定できる。樹木の色の設定を行うことで、紅葉、桜の木などの表現も可能である。また、「樹木、建物配置画面」において、建物を配置すると、建物の大きさと、テクスチャを指定できる。
(地形の編集)
地形の編集は地形編集画面で行われる。地形は200*200の格子点からできているので、1つ1つの高さを設定することは、非常に煩わしい作業である。そこで、マウスを用いて、高くしたい部分を指定する。その際に、周囲の高さを上げることで、より自然な地形を作り出せるようする。地形編集画面は標高が高くなるにつれて、その部分の色が緑→黄色→赤と変化するので、見た目で地形の様子を理解しやすくする。
図12に、「アニメーション生成画面」(シミュレーション空間)300内に対して、建物310,320、地形モデル330、樹木340,350を配置した状態を示す。
【0015】
(風の編集)
図13に示すように、「風の編集画面」400は3つの部分からなっている。
ユーザーが風力の情報を入力する際に、各時間ステップごとの風力を入力するのは非常に手間のかかる作業である。そこで、「風の編集画面」400では、「風力設定部」430において、時間ステップよりも大きな刻み幅で値を設定し、間を補間することで、負担を軽減できるようにしている。また、数値ではなく、マウスによる視覚的な操作によって風力を入力することで、風力値と樹木の運動に関する詳細な関係を知らなくとも風の設定を行うようにする。さらに、異常な強風の入力を無意識のうちに抑えることもできるようにする。
ユーザーから取得する情報と、その補間法について述べる。まず、入力情報であるが、ユーザーからは10ステップに1つの割合で風力を取得する。入力情報は図13の「風力設定部」430で、四角の点で表している。これは、動画を生成した際に急激な風の変化を感じ、また、緩やかな変化を作成する際にも煩わしさを感じないように考慮し、このような間隔を設定している。この各入力点をB−Spline補間を用いて補間して、図13の「風力設定部」430に示す曲線を得ている。
次に、風の発生位置の設定について述べる。風を設定する際には、その位置もシーンを決定する重要な要素となる。そこで、風上部分の平面に関して、風の発生する位置412を、図13の「風の編集画面」400の「風の範囲入力部」410において平面として指定できる。図13の色のついている部分が、風の発生する位置である。この部分に、「風力設定部」430で入力された風力が割り当てられる。
上述で説明した風力、位置の設定だけでは、単純な風しか作り出せない。そこで、風の種類を6つに増やし、各上述の風の発生する位置で指定した範囲ごとに異なった強さの風が吹くように、「風の種類設定部」420において設定できるようにしている。これは、風の発生する位置に対して「風の種類設定部」420から選択した異なった色を付与することにより、複雑な風の動きを与えることができる。
【0016】
<スクリーン・キャプチャー>
本発明の手法を用いてアニメーション生成を行った場合、数本の樹木であればパソコンでもリアルタイムにシーンを生成することが可能である。しかし、数十本の樹木が含まれるようなシーンを再現する場合、1フレームを生成するのに数十秒かかってしまう。そこで、各フレームの画像をキャプチャーし、ビットマップ形式で保存する。これにより、市販のムービー製作ツールを用いることで、目的のシーンを生成することができる。
【0017】
【実施例】
図14に生成されたアニメーションの例を示す。図14に示した各シーンでは、樹木の葉が風に飛ばされている様子が表現されている。また、図15は、樹木の動きを示したものである。
枝の持つ風力に対する抵抗値を変えたときに、形状にどのような変化が現れるかを図16および図17に示す。図16(a)で示した木の抵抗値を1/2にした木を図16(b)〜(d)に示す。図16(a)に示した樹木の抵抗値を3倍にした木を図17(b)〜(d)に示す。
図16(b)〜(d)では抵抗値が小さすぎるため、現実の樹木では折れてしまうくらい枝がしなっている。これに対して図17(b)〜(d)では、同じ強さの風を受けているにもかかわらず、枝がほとんどしなっていない。これらの結果から、図15で示されているような、適度なしなりを見せる木だけでなく、非常に柔らかい木から、堅いものまで表現できる。
【0018】
<LODによる高速化>
LODによる高速化を示すために、図18に示すように6本の樹木を徐々に遠ざけて処理を行った。図18(a)には、近距離に6本配置している様子を示す。図18(b)には、近距離に3本、遠距離3本配置している様子を示す。図18(c)には遠距離に6本配置している様子を示す。
これらの図の様に配置した樹木に対して、風のシミュレーション処理を行った結果を表2に示す。
【表2】
LODとフレームレート
この結果から、LODによる風の計算の簡略化によって、フレームレートが向上していることがわかる。
<建物の効果>
建物が風を遮蔽する様子を図19に示す。図19(a)〜図19(c)が建物無し、図19(d)〜(f)が建物ありを示している。
図19に示すように建物のあるなしでは、明らかに樹木の揺れに差が出ている。これは、建物が風を遮蔽する物体として働いているからである。また、図19からは読み取りにくいが建物のある樹木においても、風が迂回して到達している個所があるので、アニメーション上では、その様子が確認できる。
【0019】
<他の実施形態>
本実施形態では、物理シミュレーションと形状モデルとの関係を定義する際に、樹木、建物、地形の3種類の形状についてのみ扱ったが、次の様にしてもよい。
(1)本発明では樹木の特性だけに着目しているが、他の物体に関しても応用が可能である。例えば、衣服、煙など風によって影響を受けるものは他にも多々ある。さらに、川の流れや、海の波なども同じ流体であるので、これらについても本発明の手法を用いることができる。よって、本発明の手法により流体の及ぼす力を用いたアニメーションを生成できるものは非常に多いといえる。
(2)再帰構造を用いて生成された樹木は、再帰の深さをかえることで容易に形状の複雑さを変えることができる。その際にも本発明で用いた手法によって樹木の動きを生成することができる。よって、計算機の性能によって、現実の樹木と同数の枝や、葉をもつ樹木モデルを構成し、その動きを再現することも可能である。
(3)本発明では風を受ける物体について、その力学特性を詳細には求めなかったが、例えば布のシミュレーションのように、特定の物体の内部特性に関する従来からの研究は多数ある。そこで、それらの手法を本発明と融合し、より現実に近い動きを生成することも可能になる。
本発明は、スタンド・アローンのコンピュータ・システムばかりではなく、複数のシステムから構成される例えばクライアント・サーバ・システム等に適用してもよい。
本発明に関するプログラムを格納した記憶媒体から、プログラムをシステムで読み出して実行することにより、本発明の構成を実現することができる。この記録媒体には、フロッピー・ディスク、CD−ROM、磁気テープ、ROMカセット等がある。また、本発明に関するプログラムを電気通信回線(例えばインターネット等)を介して伝送し、これを用いて本システムを構築することもできる。
【0020】
【発明の効果】
上述のように本発明では、物理シミュレーションに基づく新規な風のアニメーション作成手法を用いて、アニメーション生成のためのシステムを作成した。
そして、次に述べるような成果を得た。
(1)境界条件マップを用いることで、樹木などの形状モデルと風の物理シミュレーション空間の関連を定義することができる。それによって、対象となる空間の風の流れを求め、樹木に及ぼす力を計算し、風の影響による樹木の変形の様子をシミュレーションすることができた。
(2)階層的な風の計算、LODによる高速化などの手法によってアニメーション作成の時間的な負担を軽減することができる。これらにより、本発明では効率的な風の影響による物体の動きを表現するアニメーション作成の手法を得ることができた。
(3)再帰による樹木の生成を行い、複雑な樹木形状の自動生成を可能にした。また、落ち葉の概念を導入することにより、樹木と風の関係をより明確に表現できるようになった。
(4)地形、建物モデルは風の流れに変化をもたらし、樹木の動きを変えるだけでなく、落ち葉の振る舞いなどにも影響を与え、より効果的なシーンを作成することを可能にした。
(5)各種ユーザー・インターフェースを用意することで、ユーザーが手軽に、かつ思い通りのシーンを生成することができた。
以上のことから、本発明は風の物理シミュレーションと各種形状モデルとの関係を境界条件マップという方法を用いて定義することによって、風の流れを表現するアニメーションを作成することができた。
【図面の簡単な説明】
【図1】樹木生成における枝の構造を示す図である。
【図2】樹木生成における枝の生成を示す図である。
【図3】枝生成の制限を示す図である。
【図4】樹木生成における葉の生成を示す図である。
【図5】再帰処理の深さによる樹木生成を示す図である。
【図6】樹木の風に対する物理特性を示す図である。
【図7】落ち葉の様子を示す図である。
【図8】樹木の境界条件マップの生成を示す図である。
【図9】葉に対する風力比の変化を示す図である。
【図10】広域計算用や詳細計算用の計算格子を示す図である。
【図11】アニメーション作成処理を示すフローチャートである。
【図12】地形、建物モデルを導入した図である。
【図13】風の編集画面を示す図である。
【図14】落ち葉のアニメーションを示す図である。
【図15】樹木の揺れを示すアニメーションを示す図である。
【図16】樹木の風に対する抵抗値を減らした場合を示す図である。
【図17】樹木の風に対する抵抗値を増やした場合を示す図である。
【図18】LODによる高速化を示すための図である。
【図19】建物の効果を示す図である。
Claims (8)
- 風のシミュレーション・システムであって、
シミュレーション空間内に、シミュレーションを行う対象であるオブジェクトの配置を行うオブジェクト配置手段と、
前記オブジェクトによる境界条件を、シミュレーション計算のために、前記シミュレーション空間全体を分割した広域計算用の格子及び配置されたオブジェクトの形状・配置状態に応じた詳細計算用の格子と対応つけて、境界条件マップを作成する境界条件マップ作成手段と、
作成した前記境界条件マップを用い、前記広域計算用の格子を用いて風のシミュレーション計算を行い、該シミュレーション計算の結果を基に、詳細計算用の格子を用いて風のシミュレーション計算を行う風シミュレーション計算手段と、
前記シミュレーション計算手段の結果により、風によるオブジェクトの変形計算を行う変形計算手段と、
変形されたオブジェクトを描画する描画手段と
を備えることを特徴とする風のシミュレーション・システム。 - 請求項1に記載の風のシミュレーション・システムにおいて、
さらに、風の設定を行うための風設定手段を備え、
風上領域や風力を設定できることを特徴とする風のシミュレーション・システム。 - 請求項2に記載の風のシミュレーション・システムにおいて、
前記風設定手段は、風力の時間変化も設定することができることを特徴とする風のシミュレーション・システム。 - 請求項1〜3のいずれかに記載の風のシミュレーション・システムにおいて、
さらに、前記描画手段で描画された、変形されたオブジェクトにより環境条件マップを更新する環境条件マップ更新手段を備え、
更新した前記境界条件マップを用いて、前記風シミュレーション計算手段で風のシミュレーション計算を行うことを特徴とする風のシミュレーション・システム。 - 請求項1〜4のいずれかに記載の風のシミュレーション・システムにおいて、
視点から遠くに配置されたオブジェクトに対する詳細計算用の格子として、粗い格子を使用することを特徴とする風のシミュレーション・システム。 - 請求項1〜5のいずれかに記載の風のシミュレーション・システムにおいて、
前記オブジェクト配置手段は、樹木のオブジェクトを再帰処理により生成する樹木生成手段を含むことを特徴とする風のシミュレーション・システム。 - 請求項1〜6のいずれかに記載の風のシミュレーション・システムの各手段をコンピュータ・システムに機能させるコンピュータ・プログラムを記録した記録媒体。
- 請求項1〜6のいずれかに記載の風のシミュレーション・システムの各手段をコンピュータ・システムに機能させるコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001062535A JP3958527B2 (ja) | 2001-03-06 | 2001-03-06 | 風のシミュレーション・システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001062535A JP3958527B2 (ja) | 2001-03-06 | 2001-03-06 | 風のシミュレーション・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002269584A JP2002269584A (ja) | 2002-09-20 |
JP3958527B2 true JP3958527B2 (ja) | 2007-08-15 |
Family
ID=18921656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001062535A Expired - Fee Related JP3958527B2 (ja) | 2001-03-06 | 2001-03-06 | 風のシミュレーション・システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3958527B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616337A (zh) * | 2015-02-10 | 2015-05-13 | 西安理工大学 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4861862B2 (ja) * | 2007-03-08 | 2012-01-25 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、及び、画像生成システム |
-
2001
- 2001-03-06 JP JP2001062535A patent/JP3958527B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616337A (zh) * | 2015-02-10 | 2015-05-13 | 西安理工大学 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
CN104616337B (zh) * | 2015-02-10 | 2017-11-28 | 西安理工大学 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2002269584A (ja) | 2002-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Génevaux et al. | Terrain generation using procedural models based on hydrology | |
CN104778744B (zh) | 基于Lidar数据的大规模三维森林可视化场景建立方法 | |
Chiba et al. | An erosion model based on velocity fields for the visual simulation of mountain scenery | |
US7038694B1 (en) | Automatic scenery object generation | |
CN108052776A (zh) | 基于bim和三维实景模型的洪水模型构建与动态展示方法 | |
WO2019200683A1 (zh) | 一种基于草图实现形状保持的树木变形动画方法 | |
CN109887084A (zh) | 一种利用浸入式虚拟现实技术用于城市规划的方法 | |
CN108803876A (zh) | 基于增强现实的水利工程展示交互方法及系统 | |
TW200945253A (en) | Geospatial modeling system providing simulated tree trunks and branches for groups of tree crown vegetation points and related methods | |
CN106846466A (zh) | 一种智慧城市三维可视化展示系统 | |
Roudier et al. | Landscapes synthesis achieved through erosion and deposition process simulation | |
Huijser et al. | Procedural natural systems for game level design | |
Cristie et al. | CityHeat: visualizing cellular automata-based traffic heat in Unity3D | |
Petrasova et al. | GIS-based environmental modeling with tangible interaction and dynamic visualization | |
CN104299262B (zh) | 一种基于速度场流线的三维云模拟方法 | |
JP3958527B2 (ja) | 風のシミュレーション・システム | |
JP3748268B1 (ja) | 流体の3次元動画像作成方法及びそのプログラム | |
CN114937137B (zh) | 一种基于bim与gis的建筑环境智能分析方法 | |
Zhang et al. | Procedural modeling of rivers from single image toward natural scene production | |
CN114565735A (zh) | 基于激光点云数据的滤波方法及系统 | |
KR100388493B1 (ko) | 3차원 복합 지리정보 가시화 시스템 및 객체지향적 운용방법 | |
Beneš et al. | Simulating desert scenery | |
Yu et al. | Real‐time cartoon water animation | |
KR101295063B1 (ko) | 사실적인 실시간 모델링 시스템 및 방법 | |
CN112184894A (zh) | 三维建模的雕塑方法、装置及设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20031031 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040129 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070314 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070510 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140518 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |