(57)【要約】【目的】運動三次元物体をＣＧにより大画面表示する場合において、物体運動の全体的整合性を保つ効率的な分散処理を可能にし、安価で高速な可視化方法を提供すること。【構成】三次元空間中で運動する物体を可視化すべく二次元画像を生成する方法において、最終目的の二次元画像を複数の部分画像に分割し、可視化対象の三次元空間を複数の部分空間に分割し、部分空間の１つを、複数用意したコンピュータのどれか１つに割り当て担当部分空間とし、各コンピュータにそれぞれの担当部分空間中にある物体のみを可視化処理させ、合計として複数の部分画像を得て複数の部分画像を合成して、最終的に１つの大きな二次元可視化画像を得る。【選択図】　　　図１
2004005182.tif 000002
【特許請求の範囲】
【請求項１】
三次元空間中で運動する物体を可視化すべく二次元画像を生成する方法において、
最終目的の二次元画像を複数の部分画像に分割し、可視化対象の三次元空間を複数の部分空間に分割し、部分空間の１つを、複数用意したコンピュータのどれか１つに割り当て担当部分空間とし、各コンピュータにそれぞれの担当部分空間中にある物体のみを可視化処理させ、合計として複数の部分画像を得て複数の部分画像を合成して、最終的に１つの大きな二次元可視化画像を得ることを特徴とする可視化方法。
【請求項２】
コンピュータの担当部分空間の可視化処理方法が、運動する物体の時間変化を求める運動計算と、或る時点の物体を二次元画像化する画像化計算の２種類の計算から構成され、可視化対象の三次元空間分割方法として、運動計算用と画像化計算用とで、それぞれの計算に適した、異なる三次元空間分割方法を用い、２種類の分割部分空間を各コンピュータに割り当て、各コンピュータは担当の運動計算用分割部分空間中にある物体に対してのみ運動計算を行い、担当の画像化計算用分割部分空間中にある物体に対してのみ画像化計算を行うことを特徴とする請求項１記載の可視化方法。
【請求項３】
画像化計算用三次元空間分割方法として、各分割部分空間の二次元画像化が、各分割部分画像を与えるよう空間分割し、得られる画像化計算用分割部分空間が各コンピュータ間で交わらないようにし、運動計算用三次元空間分割方法として、各分割部分空間が、画像化計算用三次元空間分割方法によって得られる分割部分空間を部分的に包含するように空間分割し、得られる運動計算用分割部分空間が任意の二対のコンピュータ間で部分的に交わるようにし、任意の二対のコンピュータ間に発生する運動計算用分割部分空間の交わり空間を共有空間とし、一方のコンピュータにつき運動計算用分割部分空間から共有空間を除いた部分を非共有空間とし、一方のコンピュータの運動計算において非共有空間から共有空間へ物体が移動した場合、物体進入として相手コンピュータに通知し、相手コンピュータは物体進入の通知を受け該当物体を新たな運動計算対象として加え、一方のコンピュータの運動計算において担当の運動計算用分割部分空間の内部から外部へ物体が移動した場合、該当物体を自運動計算対象から除外し、一方のコンピュータから相手コンピュータへ物体進入通知を送信する場合、送信側における該当物体の現在の運動状態と送信側現在時刻である進入時刻を送信情報に付加し、相手コンピュータが物体進入通知を受信した場合、受信側における現在時刻と物体進入通知情報にある進入時刻との差から通信所要時間を算出し、物体進入通知によってもたらされる新たな物体の運度状態を通信所要時間分進め補正することを特徴とする請求項２記載の可視化方法。
【請求項４】
任意の二対のコンピュータ間に対する時刻合わせの方法として、二対のコンピュータのうちどちらか一方を主、もう一方を副とし、主コンピュータに対する副コンピュータの時刻差を副コンピュータ上で未知パラメータとして持たせ、主コンピュータ側から副コンピュータ側に物体進入通知が頻繁に起こるような物体運動を発生させ、前記請求項３記載の方法を副コンピュータ上の未知パラメータを加えた形で実行して可視化画像を表示し、観測者には可視化画像を注視させ、分割された部分画像間を横切る物体運動の画像が滑らかに接続されるよう、副コンピュータ上の未知パラメータを増減させ、最終的に物体運動の接続が十分滑らになった時点の未知パラメータの値により二対コンピュータ間の真の時刻差を決定し、真の時刻差に基づき二対コンピュータ間の時刻合わせを行うことを特徴とする請求項３記載の可視化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、三次元コンピュータグラフィックス技術を用い、運動三次元物体を可視化する方法に関するものである。
【０００２】
【従来技術】
近年、コンピュータグラフィックス（以降ＣＧと呼ぶ）を用いた三次元物体の可視化技術は、専門的なシミュレーション分野から家庭用ゲーム機等の広範な分野に普及している。三次元物体の可視化において、ユーザとのインタラクティブ性や表現のリアリティを追求した場合、必然的に、運動する三次元物体を扱う必要性が出てくる。例えば、ユーザの操作によりインタラクティブに物体位置を変える場合や、物体を物理法則に基づき自然に運動させる場合である。よって、三次元物体、特に運動する三次元物体をリアルタイムにＣＧによって可視化する技術は今後益々重要になっていくと考えられる。
【０００３】
一方、運動三次元物体の可視化技術は、通常のデスクトップ環境だけでなく、展示会や遊園地のアトラクション等にも用いられている。後者の場合、多くの観客の目を惹き付けるべくプロジェクター等を利用した大画面表示が必要になる。このような大画面表示を行うためには、表示面積だけでなく可視化対象の三次元データも大規模になる場合が多い。このため、従来、展示用の大型表示を目的としたＣＧ画像生成には、高価で高速なコンピュータと大型表示装置が使われてきた。
【０００４】
しかし、近年、装置の高性能化・低価格化が進んだため、複数のコンピュータ及び複数のプロジェクターによる分散処理を用い、これによる大画面表示が可能になってきている。この場合の分散処理とは、目的とする表示画面を複数の部分画面に分割し、各部分画面を複数のコンピュータとプロジェクターに分散処理させ、各部分画面をスクリーン上で合成して単一の大きな画面を得る、という方法である。又、分散処理に使用する各コンピュータはＬＡＮ等の通信機構により接続され、互いのデータをやり取りできる。
【０００５】
【発明が解決しようとする課題】
従来技術で説明したように、運動三次元物体のＣＧ表現を大画面で行う場合、複数コンピュータを用いた効率的な分散処理によって低コスト化と大画面化が可能となる。そこで、効率化という点で、運動三次元物体を複数コンピュータによって可視化する問題を考えてみる。
【０００６】
コンピュータ上で行われる運動物体の可視化処理は大きく次の２つに分けることができる。可視化処理の１つは物体の運動を表現すべく時々刻々物体の状態を更新する運動計算処理である。この運動計算とは、物体に課せられる条件（運動方程式等）に基づき、或る時点における物体の状態と環境の状態から、次の時刻における物体の状態を決定する処理である。可視化処理のもう１つは、各時刻において物体を画像データに変換する処理、即ち一般にＣＧ技術分野において「レンダリング」と呼ばれている処理である。
（効率的分散化方法に関する考察）
可視化処理を分散処理によって効率化する方法として、第１にレンダリング処理の効率化が可能であり、これが大画面化に直接結びつく。ここで、例として２台のコンピュータを使う場合を考える。この場合、最終的に必要となる全画面を右半分と左半分に分け、１つのコンピュータは右半分の視界の可視化画像を生成し、もう一方のコンピュータは左半分の視界を計算し画像を生成するようにする。このようにして最終的に左右２つの画像を合成表示すれば、可視化できる空間又はは物体の量を概ね２倍に増やすことになる。
【０００７】
一方、運動計算処理については、一般に、分散化によって性能を向上させることは難しい。なぜなら、各コンピュータは共通の空間を可視化対象としているため、自コンピュータ上の物体データの状態は、他コンピュータ上での状態と等しくなければならない。又、運動物体の状態は運動により時々刻々変化するため、各コンピュータ上ではこの時間変化を追跡する必要がある。よって、一般的には複数のコンピュータを使う場合においても、各コンピュータは全物体の運動計算を行う必要があり分散化の効果を発揮できない。但し、この運動計算処理の部分も何らかの条件下で効率的に分散化することができれば、全体的な可視化処理性能を向上させることができる。例えば、次のような場合を考えてみる。
【０００８】
今、全物体が空間的に左右２つのグループに分かれ、一方のグループの物体運動は空間的に左側の視界領域に限定され、又、もう一方のグループの物体運動は右側の視界領域に限定されるものとする。更に、各物体の運動は他物体の状態には依存せずに進行する、即ち物体間の相互作用はないものとする。このように、全物体が運動領域を限定する２つの部分に分かれ、各部分の運動領域ごとに独立した運動計算ができる場合を以降運動領域独立型と呼ぶことにする。
【０００９】
運動領域独立型の場合、左右２つの視界領域のレンダリング処理を２台のコンピュータに分担させるだけでなく、運動計算処理も２台のコンピュータに分担させることができる。即ち、左右２つの視界領域に属するそれぞれの物体群の運動計算は、対応する視界領域を担当するコンピュータ上でのみ行えば良い。これにより、各コンピュータの運動計算の処理量は半分に減り、逆に考えれば運動計算能力を２倍に増やしたことになる。
【００１０】
しかし、実際に扱われる物体運動を考える場合、上記のような運動領域独立型では扱う対象が限定される。そこで、運動領域独立型の条件を緩め、より現実的な設定として運動領域準独立型と呼ぶものを考えることにする。運動領域準独立型とは次のようなものである。
【００１１】
即ち、全物体は幾つかの部分に分かれ、各部分に属する物体は概ね特定の領域内に限定され、又、各物体の運動は他の物体の状態には依存せずに計算できる。つまり、運動領域準独立型は、概ね運動領域独立型の特性を備えている。但し、各部分に属する物体のうち、幾つかの物体は異なる部分領域間を移動する。そして、このような部分領域間を移動する物体の割合は部分領域内に留まる物体に比べて少ないものとする。運動領域準独立型の条件は運動領域独立型より緩くなっているが、部分領域内の物体に着目すれば運動領域独立型における運動計算の分散化が可能である。
【００１２】
そこで、運動領域準独立型を扱うには次のようにすれば良い。即ち、第１に運動領域独立型と見なした運動計算として、各コンピュータ上で担当部分領域に属する物体群に対して独立した運動計算を行う。これに加えて第２に、各コンピュータ上で、部分領域内物体群を部分領域間の物体移動に基づき更新する処理（以降、部分領域内物体更新処理と呼ぶ）を行う。
【００１３】
部分領域内物体更新処理を行うには、各コンピュータの担当領域の運動計算において、相手担当領域へ進入する物体を相手コンピュータに通知すること及び自担当領域に進入する物体を他コンピュータから通知されることが必要である。
【００１４】
ところが、コンピュータ間の情報伝達には遅延が伴う。このため、一方のコンピュータ上での時刻Ｔ１における運動計算において、相手領域への物体進入を相手コンピュータに通知したとしても、それが相手コンピュータにおいて認識されるのはＴ１より遅れた時刻Ｔ２である。同じ室内のコンピュータの接続にはＬＡＮを使うのが普通であるため、前記遅延時間（Ｔ２−Ｔ１）は１秒以下程度に小さくすることが可能である。
【００１５】
しかしながら、１秒間に数十回の割合で画面が更新されるリアルタイムアニメーションでは数百ｍｍ秒の遅延は無視できず、更に、分割計算された画面が１つに合成されて表示されるという状況下では、左右のアニメーションの不一致を生じることになり尚更無視できない。
【００１６】
以上述べたように運動する三次元物体を可視化する場合であり、且つ、大画面表示を得るべく複数コンピュータを使用する場合、分散化による処理の効率化が望まれる。そのためには、各コンピュータ間の情報伝達に遅延が発生するという状況下で、各コンピュータ上での物体運動の整合性（一致性）を保たなければならない。ところが、従来、そのような方法が存在しなかった。
【００１７】
本発明は上記問題に鑑みてなされたものであり、その目的とする処は、運動三次元物体をＣＧにより大画面表示する場合において、物体運動の全体的整合性を保つ効率的な分散処理を可能にし、安価で高速な可視化方法を提供することにある。
【００１８】
【課題を解決するための手段】
上記目的を達成するため、本発明は、三次元空間中で運動する物体を可視化すべく二次元画像を生成する可視化方法において、最終目的の二次元画像を複数の部分画像に分割し、可視化対象の三次元空間を複数の部分空間に分割し、部分空間の１つを、複数用意したコンピュータのどれか１つに割り当て担当部分空間とし、各コンピュータにそれぞれの担当部分空間中にある物体のみを可視化処理させ、合計として複数の部分画像を得て複数の部分画像を合成して、最終的に１つの大きな二次元可視化画像を得ることを特徴とする。
【００１９】
【発明の実施の形態】
以下に本発明の実施の形態を図１〜図１１を用いて説明する。
（システムの構成）
図１は本実施の形態に使われる装置構成の概念図である。
【００２０】
本実施の形態では、可視化対象となる仮想三次元空間が２つに分割され、右側の部分空間が右コンピュータ１０７によって、左側の部分空間が左コンピュータ１０６によってそれぞれ可視化される。各コンピュータによって可視化された画像は、コンピュータに接続されたプロジェクター（１０４又は１０５）を通しスクリーンに投影される。このとき、右コンピュータ１０７の画像はスクリーン右側の１０２に、左コンピュータ１０６の画像はスクリーン左側の１０１にそれぞれ投影される。スクリーン上の左右２つの投影画像はプロジェクターの調整により１０１の右端と１０２の左端を一致させ１つの画面１０３を構成し、最終的に１つの空間を可視化しているように見せる。
（コンピュータの構成）
図２は本実施の形態に使われるコンピュータの構成を示したものであり、図１のコンピュータ１０６と１０７は共にこの構成に従う。以下、図２を使ってコンピュータの構成を説明する。
【００２１】
コンピュータ２０１の記憶装置２０７には、本実施の形態の可視化方法の実行プログラムが格納される。このプログラムはコンピュータのＣＰＵ２０２によって実行される。可視化計算によって作成された可視化画像は画像メモリ２０３に置かれる。２０３上の可視化画像は、プロジェクター２０８に送られ表示される。操作者とコンピュータとの対話には、キーボード２０５やマウス２０６等の入力装置を用いる。２つのコンピュータ間の通信には通信装置２０９を用い、この通信装置はＬＡＮの回線２０９に接続される。
（具体的運動法則）
本発明は前記「効率的分散化方法に関する考察」において述べた運動領域準独立型の状況に一般的に適用できる。しかし、ここでは実施の形態の説明を分かり易くするために運動法則等の物体群の置かれる状況を具体的に設定する。よって、ここで一旦、可視化対象となる物体群の状況設定について簡単に説明する。
【００２２】
図３は物体群の運動法則を説明する図である。
【００２３】
本実施の形態における可視化の目的は、公園等に見られる噴水の光景を簡易なＣＧによって疑似表現することである。噴水３０１と３０２はＥｒとＥｌの位置に噴射口を２つ持つものとする。
【００２４】
本実施の形態では、噴水の水粒子を多数の小物体によって表現し、噴水全体のアニメーションを運動小物体の可視化によって表現する。噴水の水粒子を表す物体には次のような運動法則を適用する。
（粒子生成）
図３のＡに示すように、水粒子を表す物体は噴射口Ｅｒ（又はＥｌ）から生成され、適度な初速を持って上方向に射出される。
（放物運動）
図３のＢに示すように、噴射された物体は万有引力の法則に従い放物運動を行う。よって、物体の速度データ（Ｖｘ，Ｖｙ，Ｖｚ）は式１に従い時間変化する。又、速度データは位置データ（Ｐｘ，Ｐｙ，Ｐｚ）と式２の関係にある。但し、各座標軸の向きは図３に示す通りとする。
式１：
ｄ（Ｖｘ）／ｄｔ＝０
ｄ（Ｖｙ）／ｄｔ＝−ｇ
ｄ（Ｖｚ）／ｄｔ＝０
ここで、ｇは正の定数である。
式２：
ｄ（Ｐｘ）／ｄｔ＝Ｖｘ
ｄ（Ｐｙ）／ｄｔ＝Ｖｙ
ｄ（Ｐｚ）／ｄｔ＝Ｖｚ
（地面反射）
図３のＣに示すように、物体が地面の位置に来たときに適度な跳ね返り係数で物体を弾ませる（反射させる））。よって、物体の反射前の速度を（Ｖｘ，Ｖｙ，Ｖｚ）、反射後の速度を（Ｖｘ’，Ｖｙ’，Ｖｚ’）とすると式３によって物体の反射が表現される。尚、地面は「Ｙ＝０」となる平面とする。
式３：
Ｖｘ’＝Ｖｘ
Ｖｙ’＝−ｋＶｙ
Ｖｚ’＝Ｖｚ
ここで、ｋは跳ね返り係数を表し「１」より小さい正の定数である。
（粒子消滅）
水粒子を表す物体の総数が無制限に増えないようにするため、物体に年齢と寿命を設定する。そして、物体の年齢が寿命を過ぎた場合は、物体を消滅させるようにする。即ち、各物体の生成時からの時間を計り、それを年齢とし、年齢が所定時間（寿命）以上経った場合には各物体を可視化処理対象から外す。
（領域分割と分散化の原理）
本発明では運動計算処理とレンダリング処理を分散化する方法が重要となるが、この分散化は処理対象となる空間領域の分割方法と密接に関係する。よって、分散化のための領域分割及びその利用方法の原理について予め説明しておく。
（レンダリング用領域分割）
図４は分散化のための空間分割を説明する図であり、可視化対象の空間、投影面及び分割面の関係を表している。但し、ここで言う「投影」とは三次元から二次元への投影変換を指し、投影面とはその変換に使う二次元平面を指している。４０１と４０２は三次元空間にある２つの噴水、即ち、図３の３０１と３０２を概略的に表している。
【００２５】
面Ｓｒ１−Ｓ１１−Ｓ１４−Ｓｒ４は投影変換のための投影面である。投影変換には平行投影を使用する。面Ｓｒ２−Ｓ１２−Ｓ１３−Ｓｒ３は遠方の視界を制限するためのクリッピング平面である。よって直方体Ｓｒ１−Ｓ１１−Ｓ１４−Ｓｒ４−Ｓｒ２−Ｓ１２−Ｓ１３−Ｓｒ３（以後、可視直方体）によって囲まれる領域内の物体が面Ｓｒ１−Ｓ１１−Ｓ１４−Ｓｒ４に投影されて可視化されることになる。
【００２６】
先ず、レンダリング処理用の領域分割について説明する。
【００２７】
最終目的の全可視化領域は可視直方体であり、その全可視化画像は投影面Ｓｒ１−Ｓ１１−Ｓ１４−Ｓｒ４上の像を画素化したものである。ここで、面Ｂｃ１−Ｂｃ２−Ｂｃ３−Ｏを含む平面を考え、これを境界面Ｂｃとする。そして、レンダリング分散化のために可視直方体を境界面Ｂｃで分断し、直方体Ｓｒ１−Ｂｃ１−Ｏ−Ｓｒ４−Ｓｒ２−Ｂｃ２−Ｂｃ３−Ｓｒ３（以後、右可視直方体）と直方体Ｂｃ１−Ｓ１１−Ｓ１４−Ｏ−Ｂｃ２−Ｓ１２−Ｓ１３−Ｂｃ３（以後、左可視直方体）に分割する。
【００２８】
又、これに伴い投影面Ｓｒ１−Ｓ１１−Ｓ１４−Ｓｒ４も右投影面Ｓｒ１−Ｂｃ１−Ｏ−Ｓｒ４と左投影面Ｂｃ１−Ｓ１１−Ｓ１４−Ｏに分割される。但し、Ｂｃ１とＯはそれぞれＳｒ１−Ｓ１１とＳｒ４−Ｓ１４の中点とする。又、線分Ｓｒ１−Ｓ１１の長さを２×ｒとする（ｒは正の数とする）。即ち、線分Ｂｃ１−Ｏ等の長さはｒとなる。このｒは希望する可視化の投影条件によって決まる値である。
【００２９】
このように領域を分割した上で、右可視直方体を右コンピュータに割り当て、右コンピュータの「担当レンダリング領域」とする。そして、右コンピュータは右可視直方体中の物体のみをレンダリングし、得られた可視化画像が図１の表示面１０２に表示される。同様に左可視直方体を左コンピュータに割り当て、左コンピュータの「担当レンダリング領域」とする。そして、左コンピュータは左可視直方体中の物体のみをレンダリングし、得られた可視化画像が図１の表示面１０１に表示される。このように、各々のコンピュータは、可視化対象の全領域ではなく半分に分割された領域をレンダリングするだけで良いため、処理の効率化が図れる。
【００３０】
次に、運動計算処理を分散化するための空間分割について説明する。
（運動計算用領域分割）
先ず、面Ｂ１１−Ｂ１２−Ｂ１３−Ｂ１４を含む平面を考え、これを境界面Ｂ１とする。そして、視界右側に関する計算のために全空間を境界面Ｂ１で分け、右側の部分空間をＣｒ、左側の部分をＣｒｘとする（ただし、Ｃｒ，Ｃｒｘは図が煩雑になるため図４には示さない。後述の図５で再度取り上げる）。そして、Ｃｒを右コンピュータに割り当て、右コンピュータの担当運動計算領域とする。ここで、境界面Ｂ１は境界面ＢｃをＸ軸負の方向にｍ移動させたものである（ｍは正の数とする）。又、座標系の原点をＯに取り、各座標軸の向きは図４に示す向きとする。
【００３１】
このようにすると、領域Ｃｒは「Ｘ≧−ｍとなる領域」と表現できる。同様に領域Ｃｒｘは「Ｘ＜−ｍとなる領域」と表現できる。尚、ｍの大きさの設定については後述の「運動計算用領域分割の理由」において説明する。
【００３２】
一方、視界左側に関する計算についても同様の分割が行われ、全空間を、面Ｂｒ１−Ｂｒ２−Ｂｒ３−Ｂｒ４を含む境界面Ｂｒで分け「Ｘ≦ｍとなる領域」Ｃ１と「Ｘ＞ｍとなる領域」Ｃｌｘとに分割する。そして、Ｃ１を左コンピュータに割り当て、左コンピュータの担当運動計算領域とする（但し、Ｃ１、Ｃｌｘも図が煩雑になるため図４には示さない。後述の図５で再度取り上げる）。
【００３３】
ところで、このように運動計算領域を分割した上で、各コンピュータは担当運動計算領域にある物体についてのみ運動計算を行うようにする。又、自担当運動計算領域外にある物体に関しては運動計算を省略する。例えば、右コンピュータはＣｒにある全ての物体の運動計算を行うが、担当領域外、即ちＣｒｘの部分にある物体の運動計算は行わない。これによって各コンピュータの運動に関わる計算量は、全物体の運動計算を行うよりも少なくなる。
【００３４】
運動計算領域をこのように分割する理由と、この分割領域の利用方法を以下に述べる。
（運動計算用領域分割の理由）
図５は図４の領域分割を真上から見て、必要な部分のみを概略的に表したものである。
【００３５】
Ｂｃは可視化用領域分割の分割面を表し、Ｖｒ、Ｖ１はそれぞれ右コンピュータ用レンダリング領域、左コンピュータ用レンダリング領域を表す。尚、或るコンピュータの担当レンダリング領域とは、その定義より全可視化対象領域のうち、そのコンピュータの視点において可視となる領域に対応するものであった。
【００３６】
Ｂ１は右コンピュータ用運動計算領域を与える分割面を表す。Ｃｒは右コンピュータ用担当運動計算領域を表す。Ｃｒｘは全空間のＣｒ以外の領域を表す。同じく、Ｂｒは左コンピュータ用運動計算領域を与える分割面を表す。Ｃ１は左コンピュータ用運動計算領域を表す。Ｃｌｘは全空間のＣ１以外の領域を表す。
【００３７】
今、右コンピュータに必要な運動計算について考えてみる。
【００３８】
先ず、最初の発想として、右コンピュータから見て不可視となるＡ’領域については、左コンピュータに計算を任せ、右コンピュータはＡ’領域の計算を省略する、という方針が立つ。実際、もし右コンピュータと左コンピュータが遅延なく情報を交換できるとすると、右コンピュータ用運動計算領域はＡとして良い。即ち、右コンピュータはＡの物体についてのみ運動計算を行えば良く、不可視の部分のＡ’にある物体は可視になるまで、即ちＡに来るまで運動計算を省略してもおいても良い。何故なら、右コンピュータの立場を左コンピュータに置き換えればＡ’にある物体の運動計算は左コンピュータが担っていることになり、又、通信遅延がなければ、物体がＢｃを越えＡ’からＡに移った場合、その時点で瞬時に左コンピュータから右コンピュータに運動計算を引き継ぐことができるからである。ところが、現実には左右コンピュータの情報交換には遅延が発生し、その点が本発明の解決すべき課題であった。
【００３９】
そこで、右コンピュータの運動計算領域はＡより多めに取りＣｒとする。そして、左コンピュータからの物体移動の通知は、物体がＢｃを越えた時ではなく、Ｂ１を越えた時に行う。これによって、右コンピュータは物体が可視領域（Ｖｒ）に入るより前に余裕を持って、その物体の存在を知ることができる。そして、右コンピュータはこの余分な領域（ＢｃとＢ１に囲まれた領域）を利用して、通信中に本来物体が移動しているべき距離を計算し、補正を行うことができる。そして、このような考えが左コンピュータに対しても同様に成立する。
【００４０】
ところで、以上の説明によれば、図４におけるｍは、通信遅延時間の間に物体がＸ方向に移動できる最大距離程度に取れば良いことが分かる。
（運動計算用領域分割の利用）
以上が運動計算領域を図４のように分割する理由であるが、このような領域分割に基づく分散処理を機能させるためには、左右のコンピュータは次の処理を行う必要がある。即ち、右コンピュータについて説明すると、右コンピュータは物体位置が「Ｒ１→Ｒ２」と「Ｌ１→Ｌ２」と変化する現象に注意を払い、「Ｒ１→Ｒ２」となる場合は左コンピュータに新たな物体の進入を知らせ、又、「Ｌ１→Ｌ２」となる場合はその物体を運動計算対象から除外する。同様に左コンピュータは物体位置が「Ｌ１’→Ｌ２’」と「Ｒ１’→Ｒ２’」なる現象に注意を払い、それぞれ「物体進入の通知」と「運動計算対象からの除外」を行う。
【００４１】
尚、「Ｒ１→Ｒ２」（又は「Ｌ１’→Ｌ２’」）と、「Ｌ１→Ｌ２」の領域移動は内容の異なるものであり区別する必要がある。よって、以降の説明に混乱が生じないよう、ここで呼び方を決めておく。「Ｒ１→Ｒ２」の現象は右コンピュータから見て相手コンピュータ担当運動計算領域「への」「物体進入」と呼び、左コンピュータから見て相手コンピュータ担当運動計算領域「からの」「物体進入」と呼ぶ。
【００４２】
一方、「Ｌ１→Ｌ２」の現象は左コンピュータには関心がないので、右コンピュータにとっての呼び方を決める。即ち、「Ｌ１→Ｌ２」の現象は右コンピュータから見て自担当運動計算領域からの「物体流出」と呼ぶ。同様に「Ｌ１’→Ｌ２’」と「Ｒ１’→Ｒ２’」についても、上記の規定が右コンピュータと左コンピュータを入れ替えた形で適用される。
【００４３】
本発明の分散化は以上述べた原理に基づいて行われる。
（物体データテーブル）
ここで、以後の説明に必要となるデータ構造について説明する。
【００４４】
図６は運動物体の状態を表すデータ構造を説明する図である。
【００４５】
全物体の運動データは、一物体のデータを複数集めたテーブル構造となっている。このテーブルを物体データテーブルと呼ぶことにする。又、一物体のデータを単に物体データと呼ぶことにする。各物体は番号で区別され、その番号が物体データテーブルの行番号に対応する。各行には個々の物体の運動データが入り、一運動データは三次元位置データ、三次元速度データ及び年齢データが入る。
【００４６】
又、一物体データテーブルにつき１つ、総要素数、即ち総物体数を表す情報Ｎを用意する。よって、物体データテーブルの行数はＮとなる。各コンピュータは各自の物体データテーブルを所有し、各コンピュータ上での運動計算とレンダリング処理を各自のデータテーブルを用いて行う。尚、この物体データテーブルは図２で示したコンピュータの記憶装置２０７に格納される。
（処理手順）
図７〜図１１を用いて本実施例の処理手順を説明する。但し、処理手順は右コンピュータと左コンピュータについて２つ必要になるが、この２つの処理手順は同様であるため、１つの処理手順の説明を基本とし、二者間で差異のある部分についてのみ適宜説明を補うことにする。
【００４７】
図７のフローチャートは処理手順の大きな構造を示している。図７のフローチャートはループ構造となっており、７０４において終了条件を満たすまで７０１の運動計算処理と７０２のレンダリング処理を繰り返す。７０４の終了条件を満たす場合とは、ユーザからのキーボード入力やマウス入力による終了要求を検知した場合である。
【００４８】
７０１のサブルーチンでは全物体の運動に関わる計算を行い、全物体を運動させる。７０２のサブルーチンでは全物体をレンダリングし、二次元画像を生成する。但し、右コンピュータは右側の視界に対応した画像を、又、左コンピュータは左側の視界に対応した画像を生成する。尚、７０１と７０２の繰り返し処理によりアニメーション表現を行う訳であるが、７０１と７０２の処理は処理時間が毎回異なる可能性がある。即ち、アニメーションスピードが変動する可能性がある。
【００４９】
そこで、そのような変動が好ましくない場合は７０３の部分にアニメーションスピード調整処理を加える。アニメーションスピード調整処理７０３では、前回７０３を実行した時刻から、規定時間が経過するよう時間待ち処理を行い、７０１と７０２の繰り返し処理の周期が一定になるようにすれば良い。これによってスピードが安定化する。
【００５０】
以下、７０１と７０２で行われる運動計算とレンダリングのサブルーチンについて説明する。
（運動計算処理サブルーチン）
図８は運動計算サブルーチンの詳細を表すフローチャートである。図８を使って運動計算サブルーチンの内部を説明する。
【００５１】
最初に８０１において「Δｔ」の設定を行う。Δｔは時間間隔を表す値であり、前回運動計算処理からの経過時間を表す。Δｔは運動計算サブルーチン内において頻繁に使用されるので、サブルーチンの先頭で一度設定しておく。Δｔには前回運動計算を実行した時刻Ｔ１と現在時刻Ｔ２との差（Ｔ２−Ｔ１）を設定する。但し、アニメーションスピードを一定に保つような処理を行っている場合、Δｔは適当な定数としても良い。
（物体生成処理）
８０２においては物体生成処理を行う。この物体生成とは前記具体的運動法則における粒子生成の現象を表現するものである。
【００５２】
先ず、生成すべき物体数Ｍを決める。これは単位時間当たりの物体生成率Ｒに、経過時間Δｔを掛け、「Ｍ＝Ｒ×Δｔ」として決める。Ｒには希望の値を設定すれば良い。Ｍが決まると、物体データテーブルに物体データをＭ個追加し、同時に物体データテーブルの総物体数ＮをＭ増加させる。即ち、「Ｎ←Ｎ＋Ｍ」とする。
【００５３】
次に、追加された各物体データに年齢、位置データ及び速度データを設定する。年齢の値にはゼロを設定する。位置データには噴射口の位置座標を設定する。但し、この噴射口とは２つある噴射口のうちの一方であり、各コンピュータの担当レンダリング領域（又は担当運動計算領域）に存在する方の噴射口を指す。速度データとしては、真上方向を中心としてある立体角内に一様に分布するような方向ベクトルをランダムに生成し、この方向ベクトルを速度データに設定する。この方向ベクトルの長さは射出速度の大きさを表すが、これは固定しても良く、一物体ごと可変にしても良い。以上が８０２における物体生成処理である。
【００５４】
次に、８０３に進んで処理物体番号用の変数Ｉを初期化する。この番号Ｉは処理対象となる物体データを指定するために使用し、番号Ｉによって物体データテーブルのＩ行目にある物体データを指定する。以降、物体データテーブル中、番号Ｉで指される物体データを「物体データＩ」、又は「物体」と簡単に呼ぶことにする。
【００５５】
ところで、８０３に続いて行われる処理では、番号Ｉを走らせ物体データテーブル中の全ての行、即ち全ての物体を処理する。このとき、物体ごとの処理はデータテーブルの末尾（番号Ｎ）から先頭（番号１）へ向かって行われる。よって、８０３では、先ず番号Ｉに「Ｎ」を代入する。
【００５６】
次に、８０４に進む。ここで、８０１２の部分はループ構造を成しており、物体データテーブルの全ての物体データに対し８０９の処理群を施すことを意味している。即ち、先ず物体Ｉに対し処理群８０９を行う。次に、８０１０に進みＩを減少させ「Ｉ←Ｉ−１」とする。
【００５７】
次に、８０１１の終了条件判断において、処理物体番号Ｉがゼロになったかどうか、即ち、未処理物体があるかどうかを調べ、Ｉがゼロでなければ８０４に戻り処理群８０９を繰り返し、Ｉがゼロであればループを終了する。
【００５８】
８０１２のループを終了すると、最後に「相手領域からの物体進入検査」８０１３を実行する。
【００５９】
以下、先ず処理群８０９の部分、次いで「相手領域からの物体進入検査」８０１３と説明して行く。
（処理群８０９）
（時間発展サブルーチン）
８０４の時間発展サブルーチンは物体Ｉの状態を時間発展させる処理である。図９を使って時間発展サブルーチンの処理手順を説明する。
【００６０】
先ず、９０１において物体Ｉの年齢をΔｔ増加させる。即ち、物体データテーブルの物体Ｉの年齢データａを、「ａ←ａ＋Δｔ」とする。
【００６１】
次に、９０２に進んで物体消滅に関わる処理を行う。これは前記具体的運動法則における物体消滅の現象を取り扱うものである。
【００６２】
９０２においてもし年齢値が予め設定された寿命値を越えた場合、物体消滅フラグを「真」に設定し９０６を行い、サブルーチンを終了する。年齢値が寿命値を越えていない場合は物体消滅フラグを「偽」に設定し９０５を行い、サブルーチンを終了する。
【００６３】
９０６においては物体Ｉを物体データテーブルから削除する。即ち、物体Ｉを消滅させる。この時、物体データテーブルに空白の行が発生しないように、今まで物体Ｉのデータが入っていた行に、テーブル末尾の物体データを移動させる。又、総物体数Ｎを「１」減少させ、「Ｎ←Ｎ−１」とする。
【００６４】
９０５においては物体Ｉの運動を時間Δｔ進行させる。即ち、物体Ｉの位置と速度を時間ステップΔｔ変化させる。この処理は前記具体的運動法則における放物運動の現象と地面反射の現象を表現するものである。
【００６５】
物体の位置データと速度データの時間変化は運動方程式、式１、式２を満たす必要がある。
又、必要であれば地面反射、式３の変化も発生させなければならない。そこで、方法としては、先ず式１と式２の微分方程式をオイラー法（微分方程式の近似解法）によって時間積分し位置データと速度データを更新する。次いで、或る条件の下地面反射である位置データと速度データの修正を行う。
【００６６】
ここで、更新前の物体データ、即ち、物体データテーブルの物体Ｉのデータを参照することによって得られるデータについて、位置データを（Ｐｘ，Ｐｙ，Ｐｚ）、速度データを（Ｖｘ，Ｖｙ，Ｖｚ）とし、それぞれ旧位置データ、旧速度データと呼ぶことにする。又、計算による新しい物体データについて、位置データを（Ｐｘ’，Ｐｙ’，Ｐｚ’）、速度データを（Ｖｘ’，Ｖｙ’，Ｖｚ’）とし、それぞれ新位置データ、新速度データと呼ぶことにする。
【００６７】
先ず、放物運動を表す位置データと速度データの変化は次のように計算される。
【００６８】
速度データの変化は式１から分かるようにＹ成分のみが変化し、新しい速度データのＹ成分は式４に従って計算される。
式４：
Ｖｙ’＝Ｖｙ＋ｇ×Δｔ
ここで、ｇは式１のｇであり定数である。又、ｇ×Δｔをまとめて１つの定数として扱っても良い。
【００６９】
新しい位置データは式５に従って計算される。
式５：
Ｐｘ’＝Ｐｘ＋Ｖｘ’×Δｔ
Ｐｙ’＝Ｐｙ＋Ｖｙ’×Δｔ
Ｐｚ’＝Ｐｚ＋Ｖｚ’×Δｔ
ところで、上記計算によって物体位置が地面より下に来た場合、すなわち「Ｙ＜０」の場合、地面反射を施す。地面反射による速度の修正は新速度（Ｖｘ’，Ｖｙ’，Ｖｚ’）のＹ成分を反転させることによって行う。即ち、式６となる。
式６：
Ｖｙ’←（−Ｖｙ’）
又、位置の修正は、時間ステップΔｔの間の位置変化は小さいとして近似的に扱い、単に新位置データを旧位置データで置き換える。即ち、式７となる。
式７：
Ｐｘ’＝Ｐｘ
Ｐｙ’＝Ｐｙ
Ｐｚ’＝Ｐｚ
以上により、Δｔの時間発展による物体Ｉの新しい位置データと速度データが求まった。そこで、物体データテーブルの物体Ｉのデータを、新しい位置データと速度データによって書き換える必要がある。但し、以後の処理において、旧位置データ（Ｐｘ，Ｐｙ，Ｐｚ）と新位置データ（Ｐｘ’，Ｐｙ’，Ｐｚ’）の両方を必要とする処理が存在する。よって、物体データテーブルの位置データの書き換えは図８の８０８の時点まで保留され、この時点では速度データのみが書き換えられる。
【００７０】
以上、時間発展サブルーチンの説明を終わる。
【００７１】
再び、図８の説明に戻り、処理群８０９の８０５の部分から説明を続ける。
【００７２】
時間発展サブルーチンから戻った場合、９０３や９０４で設定された物体消滅フラグを調べることによって、物体が消滅したか否かを判別することができる。８０５において物体Ｉが消滅したと判断される場合は、８０６〜８０８を省略し８０１０に進み、物体Ｉが消滅していなければ８０６に進む。
（相手領域への進入検査）
８０６においては、先ず、物体Ｉの位置が相手コンピュータの担当運動計算領域に進入したかどうかを判別する。但し、相手コンピュータの担当運動計算領域とは、右コンピュータの場合、左コンピュータの担当運動計算領域である図５のＣ１を意味し、左コンピュータの場合、右コンピュータの担当運動計算領域である図５のＣｒを意味する。
【００７３】
又、「物体の領域への進入」とは、物体の以前の位置が領域外にあり、且つ、新しい位置が領域内に入るという変化を意味している。よって、右コンピュータにとっての８０６の判別処理は、物体Ｉの旧位置データが「Ｐｘ＞ｍ」であり、且つ、新位置データが「Ｐｘ≦ｍ」であるかどうかを調べることによって行われる。ここで、ｍは図４及び図５で使用したｍを意味する。又、左コンピュータの場合も同様に、物体Ｉの旧位置データが「Ｐｘ＜−ｍ」であり、且つ、新位置データが「Ｐｘ≧−ｍ」であるかどうかを調べることによって判別が行われる。判別の結果、物体Ｉが相手コンピュータの担当運動計算領域に進入しなかった場合は何もしない。
【００７４】
一方、物体Ｉが相手コンピュータの担当運動計算領域に進入した場合は、物体Ｉの進入を相手コンピュータに知らせるべく物体進入データを相手コンピュータに送信する。この物体進入データには、図１０に示すように物体Ｉに関する位置データ（Ｐｘ，Ｐｙ，Ｐｚ）、速度データ（Ｖｘ，Ｖｙ，Ｖｚ）、年齢ａ及び進入発生時刻Ｔｅの情報が記録される。但し、進入発生時刻とは現在の運動計算を行っている時点での時刻である。
【００７５】
又、位置データ、速度データには物体Ｉの新位置データ、新速度データを使用する。尚、物体進入データの送信は物体ごとに行うのではなく、８０１２のループ処理を行う間中、送信すべきデータを蓄えておき、８０１２のループ処理を抜けた段階で一気にデータを送出するという方法であっても良い。
（物体流出検査）
８０７においては、先ず、物体Ｉが担当運動計算領域内に留まるかどうかを判別する。この判別は、右コンピュータの場合は物体Ｉの新位置データが「Ｐｘ≧−ｍ」であるかどうか、又、コンピュータの場合は物体Ｉの座標が「Ｐｘ≦ｍ」であるかどうかを調べることによって行う。判別の結果、物体Ｉが担当運動計算領域内に留まった場合は何もしない。
【００７６】
一方、物体Ｉが担当運動計算領域外に流出した場合は、物体Ｉを物体データテーブルから削除する。この処理は図９の９０６の処理と同様である。
【００７７】
８０７の流出検査が終わると、８０８において、保留にしてあった物体データテーブルの位置データの書き換え、即ち新位置データによる物体データテーブルの上書きを行う。
【００７８】
以上、図８の運動計算処理サブルーチンにおける処理群８０９の部分が全て説明された。
（相手領域からの物体進入検査）
次に、図８の運動計算処理サブルーチンにおける「相手領域からの物体進入検査」８０１３の処理を説明する。８０１３では、先ず、相手コンピュータから物体進入データを受信したかどうかを調べる。受信データがなければ何も行わず、もしあれば１つの物体進入データにつき、以下述べる遅延補正処理と物体追加処理の２つの処理を行い、これを全ての物体進入データに対して行う。尚、ここでは物体進入データが表す物体を進入物体と呼ぶことにする。
（遅延補正処理）
相手コンピュータ上で物体進入が検出されてから、自コンピュータで物体進入データを受信するまでの間には通信に伴う遅延が発生する。この遅延時間Ｄは自コンピュータ上の現在時刻から、物体進入データの進入発生時刻（図１０のＴｅ）を減算することによって得られる。物体進入データの物体データ（位置、速度、年齢）はこの遅延時間Ｄ過去に遡った物体の状態を表している。よって、進入物体対し受信物体データを以後の運動計算にそのまま使用することは、「進入物体は進入発生時刻から時間Ｄの間運動を止めていた」として現象を扱うことになる。この扱いは結果として右コンピュータが生成する右側半分の表示画像と、左コンピュータが生成する左側半分の表示画像との間に不連続性を発生させる。よって、進入物体を自分の運動計算対象に加える場合は、遅延時間Ｄの遅れ分、進入物体の状態を進めなければならない。
【００７９】
進入物体を時間ステップＤだけ時間発展させるには、図９の時間発展サブルーチンと同様の処理を行えば良い。但し、その場合、図９（及びサブルーチンの説明）における物体Ｉのデータを物体進入データと解釈し、時間ステップΔｔはＤに置き換える。又、物体データテーブルの書き換えは不要である。
（物体追加処理）
遅延補正処理における時間発展によって進入物体が依然として存在していれば、進入物体を物体データテーブルへ追加する。もし、遅延補正処理によって進入物体が消滅した場合は何もしなくて良い。進入物体の物体データテーブルへの追加は物体データテーブルの末尾に新たな行データを追加することによって行う。又、この時、物体データテーブルの総物体数Ｎを「１」増加させ、「Ｎ←Ｎ＋１」とする。
（時刻合わせに関する問題と対策）
上記の遅延補正処理が十分な精度を保証するには、右コンピュータと左コンピュータの時刻が十分な精度で一致していなければならない。つまり、両コンピュータの時刻差が前記時間発展サブルーチンの計算に使うΔｔより小さくなければならない。
【００８０】
ところが、Δｔは数十〜数百ｍｍ秒の程度であり、この精度で両コンピュータの時刻を手動で合わせるのは難しい。そこで、本実施の形態の枠組みをそのまま使った次の方法を用いれば良い。即ち、先ず、目的の運動物体の可視化を行う前に、両コンピュータの時刻を手動により粗い精度で合わせておく。但し、両コンピュータには依然、微少な時間差があるとし、その差を未知パラメータＴｃとする。そして、上記遅延補正処理で述べた通信遅延時間の実測値は、真の通信遅延時間の値にＴｃが加算されているものと考える。但し、未知パラメータＴｃは、「Ｔｃ＝左コンピュータ時刻−右コンピュータ時刻」とし、通信遅延時間は物体進入データが右コンピュータから左コンピュータへ送られた時に、左コンピュータ上で計るものとする。よって、左コンピュータ上の計測における通信遅延時間の実測値をＤ’、新の通信遅延時間をＤとすると、「Ｄ’＝Ｄ＋Ｔｃ」、或は「Ｄ＝Ｄ’−Ｔｃ」となる。
【００８１】
以上の準備の下、本実施例の本来の目的とは異なる、調整用の物体運動を行わせ、それを可視化して表示する。この調整用の可視化処理は物体の運動パターンが異なるだけで、それ以外の処理は本来の目的のものと同じものとする。よって、調整用の可視化処理においても、物体の運動領域間移動に伴い両コンピュータ間で物体進入データの送受信が行われるものとする。調整用に使用する物体運動としては、右から左へ等速で物体が移動するようなものを使用する。そして、左コンピュータ上にて、随時、通信遅延時間を計測する。
【００８２】
一方、調整操作を行う者は表示画面を注視し右から左へ流れる物体を観測する。この時、調整操作者にとって、右から左へ流れる物体が画面分割線付近で減速しているように感じれば、それはＴｃが少な目に見積もられていることを意味しており、Ｔｃを減少させる必要がある。よって、そのような場合は調整操作者がコンピュータの入力装置を使ってＴｃｃを減少させるようコンピュータに指示を出す。
【００８３】
又、逆の場合、即ち調整操作者にとって、右から左へ流れる物体が画面分割線付近で加速しているように感じれば、Ｔｃを増加させるよう調整操作者が指示を出す。このようにして調整操作者に画面を観測させながら微調整を行わせ、最終的に右から左へ流れる物体が画面分割線付近で滑らかに繋がるようにすれば、その時は、Ｔｃが必要な精度で求められたことになる。即ち、上記遅延補正処理において、通信遅延時間が視覚上十分な精度で補正できることになる。
【００８４】
以上ここまでが図７の運動計算サブルーチン内の説明である。
（レンダリングサブルーチン）
次に、図７のレンダリングサブルーチン７０２について図１１のフローチャートを使って説明する。
【００８５】
図１１はループ構造になっており、番号変数Ｉを使い物体データテーブル中の全ての物体データに対し１１０６の部分の処理を施すことを意味している。ここでも、物体データテーブル中、番号Ｉで指される物体データを「物体Ｉ」と簡単に呼ぶことにする。
【００８６】
１１０１では、先ず番号Ｉに「Ｎ」を代入する。
【００８７】
次に、１１０２に進み物体Ｉの位置が担当レンダリング領域内部にあるかどうか判別する。但し、担当レンダリング領域として、右コンピュータに対しては前記レンダリング用領域分割で説明した右可視直方体を使用し、同様に左コンピュータに対しては左可視直方体を使用する。判別処理は単に位置座標を調べ、その位置が担当レンダリング領域を表す直方体内部か外部かを調べれば良い。
【００８８】
１１０２の判別の結果、物体Ｉが担当レンダリング領域外部であれば、１１０３を省略して１１０４に進む。物体Ｉが担当レンダリング領域内部であれば１１０３において物体Ｉをレンダリングする。
【００８９】
一物体のレンダリングは物体を点と考え、先ず、物体の三次元座標を二次元投影平面（図４の面Ｓｒ１−Ｓ１１−Ｓ１３−Ｓｒ４）に平行投影し、次いでその投影面上位置から目的とする二次元画像上の位置を決め、その位置に物体像を描くことによって行う。二次元画像上への物体像の描画は、単に点を描くだけでも良く、テクスチャマッピングされた小四角形（又は小三角形）を描くという方法であっても良い。後者の場合、テクスチャマッピングされた多角形の描画というＣＧ技術を使うことになるが、その方法は公知であるため説明は省略する。
【００９０】
１１０４では、Ｉを減少させ「Ｉ←Ｉ−１」として、１１０５に進む。
【００９１】
１１０５の条件判断では、処理物体番号Ｉがゼロになったかどうか、即ち、未処理物体があるかどうかを調べ、Ｉがゼロでなければ１１０２に戻り１１０２からの処理を繰り返し、Ｉがゼロであればループを終了しレンダリングサブルーチンを終了する。
【００９２】
尚、上記ループ処理は図８の８０１２の部分と同様、物体ごとの処理を物体データテーブルの末尾から先頭へ向かって行うものであった。しかし、レンダリングサブルーチンの場合はテーブルの更新が発生しないため、テーブルを先頭から末尾へ向かって処理するという方法を用いても良い。
【００９３】
上記述べた処理手順によって本実施の形態が実現される。
【００９４】
【発明の効果】
以上の説明で明らかなように、運動三次元物体を可視化し大画面表示する場合において、本発明に係る運動物体可視化方法によって、運動物体間の整合性の取れた効率的な分散処理が可能となり、これによって安価で高速な大画面表示方法が可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成を表す図である。
【図２】本発明の実施の形態に使用されるコンピュータの構成を表す図である。
【図３】本発明の実施の形態で扱う物体の運動法則を説明する模式図である。
【図４】分散化のための空間分割を説明する図である。
【図５】運動計算分散化の原理を説明する図である。
【図６】本発明の実施の形態で扱うデータ構造を説明する図である。
【図７】本発明の実施の形態の処理手順を説明するフローチャートである。
【図８】本発明の実施の形態の運動計算サブルーチンを説明するフローチャートである。
【図９】本発明の実施の形態の時間発展サブルーチンを説明するフローチャートである。
【図１０】本発明の実施の形態で扱うデータ構造を説明する図である。
【図１１】本発明の実施の形態の時間発展サブルーチンを説明するフローチャートである。
【符号の説明】
１０２　　　左側分割表示画面
１０２　　　右側分割表示画面
１０３　　　表示画面全体
１０４　　　左側プロジェクター
１０５　　　右側プロジェクター
１０６　　　左側コンピュータ
１０７　　　右側コンピュータ
２０１　　　コンピュータ
２０２　　　ＣＰＵ
２０３　　　画像メモリ
２０４　　　通信装置
２０５　　　キーボード
２０６　　　マウス
２０７　　　記憶装置
２０８　　　プロジェクター
２０９　　　ＬＡＮ
３０１　　　左側噴水
３０２　　　右側噴水
【図１】
2004005182.tif 000003
【図２】
2004005182.tif 000004
【図３】
2004005182.tif 000005
【図４】
2004005182.tif 000006
【図５】
2004005182.tif 000007
【図６】
2004005182.tif 000008
【図７】
2004005182.tif 000009
【図８】
2004005182.tif 000010
【図９】
2004005182.tif 000011
【図１０】
2004005182.tif 000012
【図１１】
2004005182.tif 000013