【文献】
榎原博之, 外2名,“大規模仮想空間における動的領域分割法”,情報処理学会研究報告 2012(平成24)年度▲1▼ [CD−ROM],日本,一般社団法人情報処理学会,2012年 6月15日,p.1-8
【文献】
遠藤伶, 外3名,“MMO仮想環境におけるユーザ密度の変化に対応した負荷分散手法”,情報処理学会研究報告,日本,社団法人情報処理学会,2008年 3月 6日,第2008巻, 第21号,p.213-218
【文献】
J. HUANG, 外2名,"Design of the server cluster to support avatar migration",Proceedings of the IEEE Virtual Reality 2003,2003年 4月 2日
(58)【調査した分野】(Int.Cl.,DB名)
前記第1のゾーンと前記第2のゾーンとの間の情報を交換するステップは、前記第1のゾーンと前記第2のゾーンとの間の同期通信チャネルを通じて実行されることを特徴とする請求項1乃至5のいずれか1項に記載のコンピュータ実装方法。
前記第1のゾーンと前記第2のゾーンとの間の情報を交換するステップは、前記第1のゾーンと前記第2のゾーンとの間の非同期通信チャネルを通じて実行されることを特徴とする請求項1乃至5のいずれか1項に記載のコンピュータ実装方法。
前記第1のゾーンと前記第2のゾーンとの間の情報を交換するステップは、前記第1のゾーンと前記第2のゾーンとの間の信頼性のある通信チャネルを用いて実行されることを特徴とする請求項1乃至7のいずれか1項に記載のコンピュータ実装方法。
前記第1のゾーンと前記第2のゾーンとの間の情報を交換するステップは、前記第1のゾーンと前記第2のゾーンとの間の信頼性のない通信チャネルを用いて実行されることを特徴とする請求項1乃至7のいずれか1項に記載のコンピュータ実装方法。
【背景技術】
【0002】
MMO(Massively Multi-user On line applications)によって、大勢のユーザが、現実世界の事象のシミュレータ(real-world phenomena simulator)、没入型アプリケーションなどのアプリケーションを同時に使用できるようになる。同様に、MMOG(Massively Multi-user On line Games)によって、大勢のゲーマがビデオゲームを同時に行えるようになる。MMOおよびMMOGは、例えば、インターネットのような、ユーザまたはゲーマがアプリケーションまたはビデオゲームに接続可能にするコンピュータネットワークに特に依存する。本明細書にわたり「アプリケーション」および「ビデオゲーム」という用語は、同義であると理解され、そしてMMOおよびMMOGという用語は、区別せずに使用される。
【0003】
MMOは、複雑で大規模な仮想環境を含み、その環境は、ユーザまたはゲームプレーヤに、より現実的な体験を与えるために、可能な限り詳細で、可能な限りリアルタイムに近づけてレンダリングされることが望ましい。MMOは、特に、3Dシーンの表現および操作用に設計され、そして典型的には、エンドユーザのコンピュータ上で、対話的で逐次的なリアルタイムの3Dシーンの生成に必要なアプリケーションに利用される。ユーザが3Dシーンと対話する時に、コンピュータは、ユーザが参加している、継続して進行する現実感をユーザに伝えるのに十分高速な3D表現を再描画する。シーンは、ユーザが3Dシーンと対話する時に操作することができる多数の別個のオブジェクトから構成される。従って、MMOは、大容量のデータ、高データレートを含み、そして空間が複雑で非常に詳細な仮想環境において、リアルタイムで参加している大勢のユーザを管理するためにデータの高複雑性が一般に要求される。
【0004】
MMOは、典型的には、例えば、Multi−Body Rigid Dynamics,Human Simulaion,Cloth Simulation,Particle Simulationなどの、コンピュータモデルにおいて現実世界の事象をシミュレートするために使用される。シミュレーションは、製造工程および製品に使用される、工程のシミュレーションおよび使用する製品のシミュレーションを生成する素材の物理的プロパティ(強度、弾性など)などの、現実世界の事象を記述する正確なデータおよびアルゴリズムを要求する。3DCAD/CAM(コンピュータ支援設計、コンピュータ支援製造)ツールによって、製品または構成部品の3D表現を生成することが可能になる。
【0005】
MMOおよびMMOGの主要なおよび重要な要求は、プレーヤの人数にかかわらず、そしてアプリケーションを解決してレンダリングするために生じる計算コストにかかわらず、接続しているプレーヤにリアルタイム応答を常時提供することである。さもなければ、プレイ体験の質が落ち、アプリケーションに対するプレーヤの興味が低下し、共同配信されるデザインレビューを実行する時の対話が制限される。 MMOGと同様にMMOは、絶え間なく変化する作業負荷に動的に適応するためにスケーラブルでなければならず、従ってリアルタイムな実行を維持しなければならない。スケーラビリティは、特に、アプリケーションを同時に使用することができるユーザの数、シミュレーションを計算する計算資源の数、アプリケーションによって許容される3Dシーンのオブジェクト間で同時に対話する数などを備える。MMOGの場合、動的オブジェクトにすべて包含される位置およびグラフィックの属性だけでなく、ユーザの数も著しく変わり得る。それにもかかわらず、周辺景色の設定は、一回限りであり、動的オブジェクトおよびサポートされる挙動クラスの類型は、ゲームが開始される前に事前に定義されている。言い換えれば、MMOGの3Dシーンは、計算資源の要求を強固に制限するいくつかの事前に定義された特性を備える。従って、スケーラビリティを改善する。
【0006】
一方、アドバンストMMOの場合、3Dシーンの景色および分布類型は、特にアプリケーションが稼動している間に発展して豊富になり得る。実際に、MMOは、現実世界の事象が目的であり、そこでオブジェクトの動きは、動的であって、事前に定義された挙動クラスを除外する。結果として、MMOの3D景色は、MMOGのように事前に定義された特性を使用することができない。
【0007】
スケーラビリティの問題は、MMOGによって対処される。このようなソリューションおよび技術は、シャーディングおよびゾーニングを含む。シャーディングは、作業負荷の増加に対処するために、世界(一部または全体)を複製すること、および新たにログインしたユーザをホストすることで構成されているが、シャード間の対話は不可能である。従って本質的に、シャーディングは、仮想世界の空間および分布の無制限の拡大をサポートすることができない。即ち、シャードは、実際には、それらに割り当てられた処理資源の実行によって決められる物理的容量の上限を有する。
【0008】
ゾーニングは、いわゆるゾーンにおける仮想世界の空間のパーティションに依存し、ゾーンのそれぞれに対し、計算資源が責任を負う。オブジェクト/ユーザは、ゾーンからゾーンへとナビゲートすることができる。関連する計算資源は、その後、専用メッセージをネットワークで通信して、このような移動オブジェクトをそれらの計算モデルに統合する。
【0009】
しかしながら、MMOGでは、ゾーンは、互いに完全に独立して発展する。即ち、動的オブジェクトは、事前に定義されたゾーン「A」の数少ない通過場所のうちの1つからゾーン「B」の数少ない別の通過場所に単に「空間移動」される。最適なロードバランシングの問題は、ゾーンを障害物またはソリッド壁でフェンスすることによって、ゾーン間の通過場所の数を制限することによって、各ゾーン内のオブジェクトの分布を常時制限することによって、そして調整された静的な装飾物でゾーンを満たすことによって解決される。ある程度、仮想環境の異なる領域は、リアルタイム要求に合致するようにカスタマイズされる。
【0010】
しかしながら、MMOの高度な物理学シミュレーションの場合、このような単純化は、許容できない。実際に、仮想環境、特に現実世界の事象がシミュレートされる時、景色の人工フェンシングをサポートすることができず、シミュレートされる現実世界のカスタム化の可能性を制限する。特に、すべてのオブジェクトは、2またはいくつかのゾーン間の境界をどのポイントにおいても通過することが可能でなければならず、そしてその通過は、オブジェクトの状態(例えば、位置および速度)の継続性を保つように実行されなければならない。さらに、隣接するゾーンは、通常、オブジェクトを介して相互の対話を行うことによってオブジェクトの共通の境界(例えば、接触力)を共有し、従って、「空間移動」などのメカニズムは、現実的なシミュレーションにとって効果がない。その上、共通の物理的な挙動のシミュレーションは、考慮すべき物理学の教義に従ってデータのゾーン間の継続的で反復的な通信を要求し、かなり複雑になりえる。
【0011】
このようなコンテキストにおいて、複数のゾーンに分割された3Dシーンにおけるオブジェクトの物理的な挙動の、スケーラブルで、シームレスで、効率的なリアルタイムシミュレーションを提供する方法、コンピュータプログラム、およびシステムに改善する必要が依然として存在する。
【発明の概要】
【0012】
一態様に従って、本発明は、複数のゾーンに分割された3Dシーンにおける少なくとも1つのオブジェクトの物理的な挙動をシミュレートするためのコンピュータ実装方法を提供する。その方法は、
−位相的に隣接する少なくとも第1のゾーンおよび第2のゾーンを提供することであって、各ゾーンは、それ自体の計算資源を有し、
−1または双方のゾーンに置かれたオブジェクトを提供することと、
−オブジェクトの物理的な挙動をシミュレートすることであって、シミュレーションは、上述の第1および第2のゾーンのうちのそれぞれの計算資源によって実行されることを備える。
【0013】
方法は、以下のうちの1または複数を備えることができる。
−オブジェクトを提供するステップであって、オブジェクトのインスタンスは、オブジェクトが置かれた各ゾーンに対して計算され、オブジェクトの計算されたインスタンスは、同一であることと、オブジェクトの物理的な挙動をシミュレートするステップは、オブジェクトのインスタンスにリンクされた物理的な状態に従って実行されること、
−提供するステップの後、第1のゾーンと第2のゾーンとの間の情報を交換するステップであって、交換される情報は、一方のゾーン内のオブジェクトの物理的な状態および他方のゾーン内におけるオブジェクトの存在または不在を少なくとも含むことと、
−提供するステップの後、オブジェクトが双方のゾーンに置かれていると判定するステップと、オブジェクトの到着ゾーンである双方のゾーンのうちの一方が、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって、オブジェクトの出発ゾーンである他方のゾーン内におけるオブジェクトの存在を計算するステップと、出発ゾーン内におけるオブジェクトの存在を示す情報を、到着ゾーンから出発ゾーンに交換するステップと、
−提供するステップの後、オブジェクトがもはやゾーンのうちの一方に置かれていないと判定するステップと、オブジェクトの到着ゾーンであるゾーンのうちの一方が、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって、オブジェクトの出発ゾーンである他方のゾーン内におけるオブジェクトの不在を計算するステップと、出発ゾーン内におけるオブジェクトの不在を示す情報を、到着ゾーンから出発ゾーンに交換するステップと、出発ゾーンによって出発ゾーン内のオブジェクトのインスタンスをキル(kill)するステップと、
−提供するステップの後、オブジェクトが、オブジェクトの到着ゾーンであるゾーンのうちの一方に入っていると判定するステップと、出発ゾーンである他方のゾーンが、オブジェクトが出発ゾーン内に完全には入っていないことを確認することによって、到着ゾーン内におけるオブジェクトの存在を計算するステップと、到着ゾーン内におけるオブジェクトの存在を示す情報を、出発ゾーンから到着ゾーンに交換するステップと、到着ゾーンによってオブジェクトのインスタンスを作成するステップと、
−第1のゾーンと第2のゾーンとの間の情報を交換するステップは、第1のゾーンと第2のゾーンとの間の同期通信チャネルを通じて実行されることと、
−第1のゾーンと第2のゾーンとの間の情報を交換するステップは、第1のゾーンと第2のゾーンとの間の非同期通信チャネルを通じて実行されることと、
−第1のゾーンと第2のゾーンとの間の情報を交換するステップは、第1のゾーンと第2のゾーンとの間の信頼性のある通信チャネルを用いて実行されることと、
−第1のゾーンと第2のゾーンとの間の情報を交換するステップは、第1のゾーンと第2のゾーンとの間の信頼性のない通信チャネルを用いて実行されることと、
−信頼性のない通信チャネルは、ユーザデータグラムプロトコルを使用すること。
【0014】
本発明は、命令を備えるコンピュータプログラムをさらに提案することであって、コンピュータプログラムは、コンピュータによって実行される命令を備えて、命令は、本発明の方法のステップを実行するように適応される。
【0015】
本発明は、上記のコンピュータプログラムが記録されたコンピュータ可読記憶媒体をさらに提案する。
【0016】
本発明は、複数のゾーンに分割された3Dシーンの位相的に隣接する少なくとも第1のゾーンおよび第2のゾーンを記憶し、および1または双方のゾーン内にオブジェクトを記憶するための記憶システムと、本発明に従って、オブジェクトの物理的な挙動をシミュレートするための処理ユニットとを備えるコンピュータ化システムをさらに提案する。
【発明を実施するための形態】
【0018】
複数のゾーンに分割された3次元(3D)シーンにおける少なくとも1つのオブジェクトの物理的な挙動をシミュレートするための方法を提案する。3Dシーンは、現実世界の環境をシミュレートすることができる。3Dシーンは、1または複数のオブジェクト、例えば、3Dモデル化オブジェクトを備える。方法は、1または双方のゾーンに置かれたオブジェクトを提供することを備える。方法は、オブジェクトの物理的な挙動をシミュレートすることを備える。物理的な挙動とは、オブジェクトが3Dシーンにおいて、他のオブジェクトがもしあれば、それとどのように対話するかを意味する。オブジェクトの物理的な挙動のシミュレーションは、上述の第1および第2のゾーンのうちのそれぞれの計算資源によって実行される。従って、オブジェクトが置かれた各ゾーンの計算資源は、シミュレーションに寄与する。
【0019】
このような方法は、3Dシーンをアドホックにカスタム化することまたはその特性に対する制約を課すことをせずに、3Dシーンにおけるオブジェクトの物理的な挙動のシミュレーションを改善する。実際に、第1のゾーンから第2のゾーンへの通過が継続的なやり方、即ち、シームレスに実行されるように、シミュレーションは、オブジェクトが置かれた1または複数のゾーンによって分担して行われる。結果として、オブジェクトが置かれたゾーンのうちの1つによるシミュレーションへの影響がなくなり、従って、物理法則をオブジェクトに継続的に適用することができる。従って、シミュレーションが改善され、つまり、シミュレーションがより現実的になる。
【0020】
方法は、コンピュータ実装される。これは、方法のステップ(またはほぼすべてのステップ)が、少なくとも1つのコンピュータまたはコンピュータ化されたシステムによって実行されることを意味する。例において、方法のステップの少なくとも一部のトリガは、ユーザとコンピュータとの対話を通じて実行することができる。要求されるユーザとコンピュータとの対話レベルは、予測される自動性のレベルによって決まり、そしてユーザの望みを実装する必要性とのバランスを取ることができる。例において、このレベルは、ユーザ定義および/または事前定義とすることができる。
【0021】
例えば、1または双方に置かれたオブジェクトを提供するステップを、ユーザ選択に基づいて実行することができる。ユーザは、キーボード、マウス、スタイラスなどの、ハプティックデバイスを経由して選択を実行できる。例えば、2つボタンのマウスでは、左側のボタンは、シーンリストの中からシーンを選択するために使用することができる。システムは、デフォルトでオブジェクトを特定し、そしてオブジェクトを3Dシーンの1または複数のゾーンに置くこともできる。即ち、オブジェクトの提供およびロケーションは、ユーザ選択を要求することをせずに実行される。
【0022】
本方法のコンピュータ実装の典型的な例は、メモリおよびプロセッサを備えるシステムを用いて方法を実行することである。データベースを記憶するメモリは、そのような記憶に適した任意のハードウェアにすぎない。プロセッサを計算ユニットと呼ぶこともできる。このようなシステムは、現実世界のシミュレーションアプリケーションのコンテキストにおいて、スケーラブルでシームレスで効率的な3Dシーンのリアルタイムシミュレーションを提供する。当該システムは、3Dシーン、第1および第2のゾーン、および3Dシーンにおける1または複数のオブジェクトを表示するのに適したグラフィカルユーザインターフェース(GUI)をさらに備えることができる。GUIは、メモリおよびプロセッサに接続される。
【0023】
「データベース」とは、検索および取得のために体系化されたデータの任意の集合(即ち、情報)を意味する。メモリに記憶される場合、データベースをコンピュータによって高速に検索および取得できるようにする。データベースは、実際に、さまざまなデータ処理動作とともにデータの記憶、検索、変更、および削除を促進するように構造化されている。データベースは、レコードに細分化することができるファイルまたはファイルのセットから構成され、それぞれのレコードは、1または複数のフィールドから構成される。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを検索できる。キーワードを使用し、そしてコマンドをソートして、ユーザは、使用しているデータベース管理システムのルールに従って、特定のデータ集計に対するレポートを検索または作成するために多数のレコードのフィールドを高速に探索し、再配置し、グループ化し、そして選択することができる。
【0024】
方法の場合、データベースは、複数のゾーン、例えば、位相的に隣接する第1および第2のゾーンに分割された3次元シーンを記憶できる。データベースは、1または複数のオブジェクトをさらに記憶でき、そしてオブジェクトをシーンとは独立して記憶できる。データベースは、システムによって実行される命令を備えるコンピュータプログラムをさらに備えることができる。命令は、本方法のステップを実行するように適応される。
【0025】
方法は、概してオブジェクトを操作する。オブジェクトは、データベースに記憶されたデータによって定義される任意のオブジェクトである。さらに言うと、「オブジェクト」という表現は、データそのものを指す。システムのタイプに従って、オブジェクトを異なる種類のデータによって定義できる。システムは、CADシステム、CAEシステム、CAMシステム、および/またはPLMシステムのうちの任意の組み合わせであってよい。そのような異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。それよって、CADオブジェクト、PLMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、CAMデータ、CAEデータとも言える。しかしながら、このようなシステムは、このようなシステムの任意の組み合わせに対応するデータによってオブジェクトを定義できるので、互いに排他的ではない。システムは、従って、以下に提供されるシステムの定義から明らかであるように、CADシステムとPLMシステムとの双方になることもある。システムは、オブジェクトがユーザアクションに基づいて操作されるMMOまたはMMOGになることもある。
【0026】
CADシステムとは、CATIA(登録商標)などの、モデル化オブジェクトのグラフィック表現に基づいてモデル化オブジェクトを設計するのに少なくとも適した任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを備える。CADシステムは、例えば、エッジまたは線、ある場合では面または表面を使用して、CADモデル化オブジェクトの表現を提供できる。線、エッジまたは表面を、例えば、NURBS(Non-Uniform Rational B-Splines)などの、さまざまな方法で表現できる。詳細には、CADファイルは、形状を生成できる仕様を包含し、次々に生成される表現が可能となる。モデル化オブジェクトの仕様を単一のCADファイルまたは複数のCADファイルに記憶することができる。CADシステムのモデル化オブジェクトを表現するファイルの典型的なサイズは、1部品当たり1メガバイトの範囲内である。そしてモデル化オブジェクトは、典型的には、数千から成る部品のアセンブリとすることができる。
【0027】
CADのコンテキストにおいて、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクトとすることができ、例えば、部品または部品のアセンブリ、場合によっては製品のアセンブリなどの、製品を表現する。「3Dモデル化オブジェクト」とは、その3D表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。3D表現は、部品をあらゆる角度から見ることを可能にする。例えば、3Dモデル化オブジェクトが3D表現されると、その軸を操作して任意に回転させ、またはその表現が表示されている画面の軸を任意に回転させることができる。これは、特に、3Dにモデル化されていない2Dアイコンを除外する。3D表現の表示は、設計を容易にする(即ち、統計的に、設計者が自分達の仕事を完成する速度が上がる)。これは、製品の設計が製造工程の一部であるので、産業における製造工程を加速させる。
【0028】
CADシステムは、履歴ベースとすることができる。この場合、モデル化オブジェクトは、幾何学的特徴の履歴を備えるデータによってさらに定義される。モデル化オブジェクトは、実際に、生身の人間(即ち、設計者/ユーザ)が標準のモデリング機能(例えば、押し出し、回転、カット、および/またはラウンドなど)および/または標準のサーフェシング機能(例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングおよび/またはその他)を使用することによって設計される。このようなモデリング機能をサポートする多くのCADシステムは、履歴ベースのシステムである。これは、設計特徴の履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて前述の幾何学的特徴を結合する非巡回データフローを介して保存されることを意味する。履歴ベースのモデリングパラダイムは、80年代当初からよく知られている。モデル化オブジェクトは、2つの永続的データ表現、即ち履歴とB−rep(境界表現)とによって記述される。B−repは、履歴で定義された計算結果である。モデル化オブジェクトが表現される時にコンピュータの画面上に表示される部品の形がB−rep(のテッセレーション)である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトに行われた動作に対する情報を集める。B−repを履歴と一緒に保存して、複雑な部品を表示しやすくすることができる。設計意図に従って部品の設計変更ができるようにするために、履歴をB−repと一緒に保存できる。
【0029】
PLMシステムとは、物理的な製造品を表現するモデル化オブジェクトの管理に適した任意のシステムを意味する。PLMシステムにおいて、モデル化オブジェクトは、従って、物理的オブジェクトの製造に適したデータによって定義される。このようなデータは、典型的には、次元値および/または許容値とすることができる。オブジェクトを間違いなく製造する場合、実際にこのような値を有する方がよい。
【0030】
CAEシステムとは、モデル化オブジェクトの物理的な挙動の分析に適した任意のシステムを意味する。CAEシステムにおいて、モデル化オブジェクトは、従って、そのような動きの分析に適したデータによって定義される。このデータは、典型的には、挙動の特徴のセットとすることができる。例えば、ドアに対応するモデル化オブジェクトを、ドアが軸の回りを回転することを示すデータによって定義することができる。
【0031】
図8は、クライアントコンピュータシステム、例えば、ユーザのワークステーションを示す。
【0032】
クライアントコンピュータは、内部通信バス1000に接続されたCPU1010と、さらにそのBUSに接続されたRAM1070とを備える。クライアントコンピュータは、BUSに接続されたビデオランダムアクセスメモリ1100と関連付けられたGPU(Graphical Processing Unit)1110をさらに備える。ビデオRAM1100は、フレームバッファとしても当業者に知られている。マスストレージデバイスコントローラ1020は、ハードドライブ1030などの、マスメモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に具体化するのに適したマスメモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、EPROM、EEPROM、およびフラッシュメモリなどの、半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの、磁気ディスクと、光磁気ディスクと、CD−ROMディスク1040とを含む。前述のいずれのメモリも、特別に設計されたASIC(application-specific integrated circuits)を補完するか、またはそれに組み込むことができる。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの、ハプティックデバイス1090を含むこともできる。カーソル制御デバイスがクライアントコンピュータで使用されることによって、ユーザがカーソルをディスプレイ1080の望ましい任意の場所に選択的に位置付けることが可能になる。さらに、カーソル制御デバイスによって、ユーザは各種コマンドを選択し、そして制御信号を入力できるようになる。カーソル制御デバイスは、制御信号をシステムに入力するためのいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスは、マウスとすることができ、マウスのボタンは、信号を生成するために使用される。
【0033】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を実行させるための手段を備える。本発明を、例えば、デジタル電子回路に実装するか、あるいはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに実装できる。本発明の装置は、プログラム可能なプロセッサによって実行されるマシン可読記憶デバイスに有形に具体化されるコンピュータプログラム製品に実装されてもよいし、本発明の方法のステップは、入力データで動作して出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラム可能なプロセッサによって実行されてもよい。
【0034】
本発明をプログラム可能なシステムで実行可能な1または複数のコンピュータプログラムに好適に実装することができる。プログラム可能なシステムは、データおよび命令をデータ記憶システムから受信してデータ記憶システムに送信するために接続された少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。アプリケーションプログラムを、ハイレベルの手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語か、または必要に応じてアセンブリ言語もしくは機械語に実装できる。いずれの場合も、それらの言語は、コンパイラ型言語またはインタープリタ型言語とすることができる。
【0035】
図1のフローチャートを参照して、これより複数のゾーンに分割された3Dシーンにおける少なくとも1つのオブジェクトの物理的な挙動をシミュレートする方法の例について説明する。
【0036】
ステップ100において、位相的に隣接する少なくとも第1のゾーンおよび第2のゾーンが提供される。実際に、第1のゾーンおよび第2のゾーンは、複数のゾーンに分割された3Dシーンの一部である。ゾーン条件は、3Dシーンのサーフェスを指定することができる。ゾーン条件は、3Dシーンのボリュームも指定することができる。3Dシーンの全空間が複数のゾーン、例えば、少なくとも第1のゾーンおよび第2のゾーンに分割されるように、第1のゾーンおよび第2のゾーンは位相的に隣接している。例えば、3Dシーンによって定義された全ボリュームがボックスに含まれるように、3Dシーンによって定義されたボリュームを位相的に隣接する、例えば、キューブ(cubes)などのボックスのセットに分割できる。別の例として、3Dシーンは、オブジェクト(例えば、人間、車)が動く地面を備えることができ、そして地面を、隣接するいくつかのポリゴンゾーンに分割することができる。
【0037】
3Dシーンの各ゾーンは、各ゾーン自身の計算資源を有する。実際に、CPUの計算電力の割合が各ゾーンに提供される。各ゾーンに対するこの割合は、同じであってもよいし、異なっていてもよい。ゾーンの計算資源は、典型的には、ゾーンに置かれたオブジェクトをシミュレートするために使用される。実際に、オブジェクトは、計算資源のコストを生成する。即ち、各オブジェクトは、ゾーンにおいて実行されるために計算資源の処理時間を要求する。
【0038】
3Dシーンは、オブジェクト(もしあれば)間の空間関係が記述される空間である。そのシーンは、少なくとも1つのオブジェクトで構成され、そしてそのオブジェクトは、モデル化オブジェクトまたは3Dモデル化オブジェクトとすることができるが、これらに限定されない。3Dモデル化オブジェクトは、3D空間におけるオブジェクトの記述である。3Dシーンは、座標を用いて3D空間のあらゆるポイントを記述して形状を数学的に表現できる、物理的世界のモデルである。3Dシーンは、典型的には、オブジェクト間の現実的な対話がシミュレートされた、現実世界をシミュレートしたものである。現実的な対話という表現は、シミュレートされる対話が、現実世界、例えば、力および作用(重力、接触力)のような物理法則や、情報の流れ、制御イベントのような制御法則の対話を反映するという意味である。1または複数のオブジェクトは、3Dシーン内において発展し、シミュレートされる現実世界の法則、例えば、2つのオブジェクトは互いに交差することができないといった法則に従う。3Dシーンは、特定のシナリオを実行でき、そこでのシナリオは、オブジェクトの予測可能な対話を最も一般的に記述した説明である。言い換えれば、シナリオは、代替可能な世界または状況の実装を評価する。例えば、新しい素材の車への影響を分析する。シナリオは、ユーザによる定義が可能であることを理解されたい。
【0039】
次に、ステップ110において、オブジェクトが提供される。これは、オブジェクトが3Dシーンにおいて選択され、そしてロードされると言うことである。オブジェクトの選択は、ユーザによって実行されてもよいし、本発明を実行するシステムによって行われてもよい。オブジェクトの選択は、当該技術分野で周知の形式で実行される。ロードとは、方法を実行するシステムが使用可能であることを意味する。
【0040】
オブジェクトは、第1のゾーンおよび第2のゾーンのうちの1つに置かれるか、または第1のゾーンと第2のゾーンとの双方に置かれる。オブジェクトのどのポイントもゾーンの外になければ、そのオブジェクトは、1つのゾーンに置かれる。オブジェクトの少なくとも1つのポイントが第1のゾーンの外にあり、そして第2のゾーンの内にあるのであれば、そのオブジェクトは、2つのゾーンに置かれる。オブジェクトの少なくとも1つのポイントが2つのゾーン間の共通の境界に置かれるイベントにおいて、2つのゾーンは、位相的に隣接しており、オブジェクトは、1つのゾーンのみに置かれていると見なされるか、または双方のゾーンに置かれていると見なされる。これは、規則(convention)であり、そして例えば、ユーザによる構成が可能である。オブジェクトのポイントは、オブジェクトの境界の内側または境界の一部である、3Dシーンの任意のポイントである。
【0041】
次に、ステップ120において、オブジェクトのインスタンスは、オブジェクトが置かれた各ゾーンに対して計算される。オブジェクトのインスタンス化は、当技術分野で周知の形式で実行される。インスタンス化は、ユーザによって設定されたパラメータに従って実行することができるか、または自動的に設定することができる。このようなインスタンス化パラメータは、オブジェクトの選択された3Dメッシュの複雑度と、テクスチャの精度と、3Dシーンにおけるオブジェクトの反射および陰影と、他の物理的パラメータおよびプロパティとであってよいが、これらに限定されない。オブジェクトのインスタンス化は、所与のオブジェクトが3Dシーンに置かれている間、即ち、第1のゾーンおよび/または第2のゾーンに置かれている間に実行することができることを理解されたい。
【0042】
従って、ステップ120において、オブジェクトのインスタンスは、計算されて、そのオブジェクトが置かれている同じゾーンに置かれるか、またはオブジェクトの2つのインスタンスが計算され、そして1つのインスタンスは、そのオブジェクトが置かれている各ゾーンに置かれる。
【0043】
オブジェクトが第1のゾーンおよび第2のゾーンに置かれたイベントにおいて、オブジェクトのインスタンスは、各ゾーンに対して計算される、即ち、2つのインスタンスが計算され、そして計算されたインスタンスは、同一である。同一という用語は、オブジェクトのそれぞれのインスタンスのそれぞれの物理的状態が同一であることを含む。これは、インスタンスが、ステップ110における所与のオブジェクトから得られた複製であると言うことである。オブジェクトの物理的状態は、3Dシーンに対するオブジェクトの物理的パラメータの設定である。3Dシーンは、従って、仮想環境である。物理的パラメータという表現および物理的プロパティという表現は、双方のゾーンにおいて同一である。オブジェクトの物理的パラメータは、3Dシーンにおけるオブジェクトの位置、3Dシーンにおけるオブジェクトの速度とすることができるが、これらに限定されない。オブジェクトの物理的パラメータは、典型的には、当該技術分野で周知のように、古典的な手順によって定義される。
【0044】
実際に、オブジェクトの物理的状態を、オブジェクトソルバによって維持することができ、オブジェクトのソルバは、コンピュータプログラムまたはソフトウェアライブラリなどの、1つのソフトウェアであり、記述の問題を取り上げて、その問題の解決方法を計算する。オブジェクトソルバによってオブジェクトの物理的状態を維持することは、ソルバがインスタンスを計算するためにオブジェクトの物理的状態を使用するので有利である。オブジェクトの物理的状態を、例えば、シミュレートされた物理特性に従った正しい大きさおよび単位システムを備えるデータベクトルによって表現できるが、これに限らない。
【0045】
オブジェクトの物理的挙動のシミュレーションを、オブジェクトのインスタンスにリンクされた物理的な状態に従って実行できる。これは、オブジェクトのインスタンスの物理的パラメータを設定する物理的パラメータがシミュレーションを実行するために使用されることを意味する。オブジェクトの物理的挙動のシミュレーションは、同一の物理的状態を有するオブジェクトの1または複数のインスタンスから作られる。これにより、物理法則をオブジェクトに継続的に適用することができるように、ゾーンが通過する影響を好適に回避できるようになる。
【0046】
物理的状態がオブジェクトのインスタンスにリンクされることは、物理的状態とオブジェクトのインスタンスとの間の接続または関係が存在することを意味する。典型的には、この関係は、インスタンスを包含するゾーンに接続されたソルバで処理することができる。物理的情報がオブジェクト内において、例えば、オブジェクトのデータを用いて記憶されるのであれば、オブジェクトのインスタンス間の物理的状態を交換および共有することがより簡単になるので、物理的状態をオブジェクトにリンクすることは好適である。従って、計算されたインスタンスを同一に維持することが促進される。さらに、ソルバは同期的にスケジュールされる必要がなく、従って、同期化のメカニズムの困難な実装が回避される。
【0047】
実際に、少なくとも一方のゾーン内のオブジェクトの物理的状態および他方のゾーン内におけるオブジェクトの存在または不在を含む情報を、第1のゾーンと第2のゾーンとの間で交換することができる。言い換えれば、当該情報はデータを備え、それらのデータは、少なくとも第1のゾーン内のオブジェクトの物理的状態を表し、そして少なくとも他方のゾーン内におけるオブジェクトの存在または不在を示す。
【0048】
第1のゾーンと第2のゾーンとの間の情報の交換を、第1のゾーンと第2のゾーンとの間の非同期通信チャネルを介して実行することができる。非同期通信チャネルは、開始ビットおよび停止ビットを使用して先頭ビットを知らせる、非同期伝送を備えることができる。非同期通信チャネルは、双方の通信側で同期化を好適に回避するため、従って、実装し易い。詳細には、ソルバは、同期的にスケジュールされる必要がない。
【0049】
第1のゾーンと第2のゾーンとの間の情報の交換を、第1のゾーンと第2のゾーンとの間の信頼性のある通信チャネルを用いて実行することもできる。例えば、通信チャネルはIPプロトコルによって定義され、そしてトランスポートシステムは、TCP(Transmission Control Protocol)プロトコルによって定義される。信頼性は、OSI(Open Systems Interconnection)モデルのどの層においても有し得ることを理解されたい。ゾーンが同じノードで計算されて同期されるので、遅延やデータ損失が全くなく、従って、数値ノイズが最小になる。
【0050】
第1のゾーンと第2のゾーンとの間の情報の交換を、第1のゾーンと第2のゾーンとの間の信頼性のない通信チャネルを用いて実行することもできる。配信される情報が損失し、重複し、遅延し、または送信側または受信側が認識することなくバラバラに配信されるおそれがあるので、当該情報の配信は信頼性がないとされる。例えば、通信チャネルはIPプロトコルにより定義され、そしてトランスポートシステムは、UDP(User Datagram Protocol)プロトコルにより定義されることができる。信頼性のない通信チャネルは、従って、UDPプロトコルを使用することができる。非信頼性は、OSI(Open Systems Interconnection)モデルのどの層においても有し得ることを理解されたい。非信頼性通信の使用は、帯域幅を好適に節約する。さらに、メッセージの偶発的損失によって生じる局所摂動は、ソルバによってスムーズになり、従って、局所摂動はほとんど視認することができない。
【0051】
ゾーン間の情報の交換は、好適には、ゾーンの隣接ゾーンのみに行われる。言い換えれば、メッセージを、位相的に隣接するゾーン間でのみ交換することができる。
【0052】
さらに、ゾーンは、通常アクノレッジを予期することなく他のゾーンと情報を交換する。これは、例えば2つのゾーン間の情報の交換が、信頼性のない通信チャネルを用いて実行されると仮定される場合の後述の
図7の説明において示される。
【0053】
これより
図5を参照して、位相的に隣接する複数のゾーン51、52、53、54、55に分割された3Dシーンの例を示す。3Dシーンは仮想世界を表し、そしてこの仮想世界の領域は隣接するゾーンにパーティション分けされる。各ゾーンは計算資源、例えばCPUによって提供される計算資源の一部によって管理される。計算資源は、適切なソルバを使用してゾーン54に置かれたすべてのオブジェクト60、61、62、63の即時の物理的状態のリアルタイム解決を継続的に実行できる。この例において、オブジェクト56の物理的状態は、例えば、剛体の力学に従ってオブジェクトの挙動をレンダリングするために、ゾーン54のこのオブジェクトの即座の直交座標および角度位置/速度で構成することができる。これを物理学の他の分野で一般化することができることを理解されたい。
【0054】
再び
図1を参照して、ステップ130において、オブジェクトが3Dシーンに置かれる場所が判定される。実際に、ステップ110で提供されたオブジェクトは、3Dシーン中を移動することができ、この移動はオブジェクトのロケーションが変更されたことを含む。いくつかのケース140,150、160は、オブジェクトが移動しかたどうかおよびオブジェクトがゾーンを変更したかどうかによって異なるように企図される。
【0055】
これより
図6を参照すると、
図5の3Dシーンとは別の図が示され、
図6においてオブジェクト60、61、62、63は移動し、従って、新しいロケーションを有する。
【0056】
オブジェクト60は、なおもゾーン54に置かれている。従って、オブジェクト60は、ゾーン54で単独で発展するとされる。位置および速度などの、オブジェクトの物理的状態は、オブジェクト60自体のソルバによって完全に判定される。これは、共通シミュレーションの典型的な状況である。
【0057】
オブジェクト61は、そのポイントのうちの1つを境界59上に有する。本例において、オブジェクト61はゾーン54のみに局在化されていると見なされる。選択される規則によって、ゾーン54およびゾーン53に局在化されていると見なすことが可能であることを理解されたい。オブジェクト60に対して、オブジェクト61の物理的状態はそのソルバによって完全に維持される。
【0058】
オブジェクト62は、少なくとも1つのポイントをゾーン54に有し、および少なくとも1つのポイントをゾーン55に有する。従って、オブジェクト62はゾーン54とゾーン55との双方に置かれる。オブジェクト62は、従って、位相的に隣接するゾーン54とゾーン55との間の境界58を完全には通過していない。オブジェクト62は、境界58上にあると言える。オブジェクトは、最初に出発ゾーン(ゾーン54)と呼ばれる第1のゾーンに完全には置かれておらず、移動した結果、到着ゾーン(ゾーン55)と呼ばれる第2のゾーンに入った理由によりこの状況が生じる。この状況は、
図1のケース140を表した
図2に示される。
【0059】
これより
図2を参照し、ステップ142において、オブジェクトが第1のゾーンおよび第2のゾーンに置かれている、即ち、オブジェクトが双方のゾーンに置かれていると判定する。これは、オブジェクトが置かれた各ゾーンによって実行される。即ち、各ゾーンは、オブジェクトが各ゾーン上に置かれていることを示す。
【0060】
次に、ステップ144において、オブジェクトの出発ゾーン内におけるオブジェクトの存在が、オブジェクトの到着ゾーンによって計算される。到着ゾーンによる、オブジェクトの出発の検出が、到着ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって実行される。ステップ142とステップ144とが密接に関係することを理解されたい。
【0061】
次に、ステップ146において、出発ゾーン内におけるオブジェクトの存在を示す情報が到着ゾーンから出発ゾーンに交換される。言い換えれば、到着ゾーンは、到着ゾーン内におけるオブジェクトの存在が到着ゾーンによって検出されたことを示す、1または複数のメッセージを出発ゾーンに送信する。当該検出が到着ゾーンによって行われるので、プロセスの堅牢性が改善される。これは、
図7の説明により明らかになるであろう。
【0062】
実際に、インスタンスの作成は、それぞれの第1のゾーンと第2のゾーンとの双方のソルバによって送られた2つの結果からのオブジェクトの物理的状態を調停することを備えることができる。調停プロセスによって、好適には、オブジェクトの2つの同一のインスタンスを得ることができるようになる。調停プロセスは、オブジェクトの各インスタンスのソルバによって実行されることが可能である。調停プロセスの後、双方のゾーンは、それらが共有するオブジェクトの物理的状態に対する同一の評価を一貫して得なければならない。到着ゾーン内における到着ゾーンによってオブジェクトのインスタンスが作成される前に、調停を好適に実行できることを理解されたい。
【0063】
再び
図6を参照すると、オブジェクト63は、最初完全にゾーン54に置かれ、ゾーン54を出て、そして移動の結果として現在単独でゾーン55に置かれている。従って、オブジェクトは、出発ゾーン54を出て、そして到着ゾーン55に完全に入った。この状況は、
図1のステップ150を表した
図3に示される。
【0064】
これより
図3を参照すると、ステップ152において、オブジェクトがもはや第1のゾーンにも第2のゾーンにも置かれていないと判定される。この判定は、オブジェクトが置かれていた各ゾーンによって実行される。
【0065】
次に、ステップ154において、オブジェクトの出発ゾーン内におけるオブジェクトの不在が、オブジェクトの到着ゾーンによって計算される。到着ゾーンによる、オブジェクトの出発の検出が、到着ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトが到着ゾーン内に完全に入っていることを確認することによって実行される。即ち、検出によりオブジェクトの各ポイントが到着ゾーン内に置かれていることを確認する。
【0066】
次に、ステップ156において、出発ゾーン内におけるオブジェクトの不在を示す情報が、到着ゾーンから出発ゾーンに交換される。言い換えれば、到着ゾーンは、出発ゾーン内におけるオブジェクトの不在が到着ゾーンによって検出されたことを示す、1または複数のメッセージを出発ゾーンに送信する。
【0067】
次に、ステップ158において、出発ゾーンは、出発ゾーン内のオブジェクトのインスタンスをキルする。インスタントをキルするとは、インスタンスがゾーン、ここでは、出発ゾーンから抹消されるという意味である。従って、インスタンスの抹消は、到着ゾーンによって出発ゾーンに送信されたステップ154の結果、即ち、到着ゾーンが、オブジェクトの出発ゾーン内におけるオブジェクトの不在を計算したことを示す1または複数のメッセージの結果として行われる。
【0068】
実際に、インスタンスの抹消は、対応するオブジェクトのインスタンスの物理的状態がソルバにおいて廃棄されることを備えることができる。例えば、これより
図6を参照すると、到着ゾーン54内のオブジェクト63のインスタンスのソルバは、オブジェクトが出発ゾーン内において不在であることを到着ゾーンが計算した後に廃棄される、到着ゾーン54内のオブジェクト63のインスタンスのソルバ間で交換されるメッセージを廃棄する。これにより、これ以上存在するはずがないオブジェクトのインスタンスの物理的状態の情報に基づいて、到着ゾーン内のオブジェクトのインスタンスの物理的情報の変更を好適に回避できるようになる。実際に、出発ゾーンが自身のオブジェクトのインスタンスをキルすることができることを出発ゾーンに示すメッセージの伝送は、到着しない恐れがあるか、または遅延する恐れがある。従って、廃棄は到着ゾーン内のオブジェクトのインスタンスの物理的プロパティの安全なメカニズム提供する。さらに、廃棄によって、ソルバは無用なデータの計算から解放される。
【0069】
再び
図6参照すると、オブジェクト62は、最初に、ゾーン54に完全に置かれ、ゾーン55に入り、そして現在ゾーン54とゾーン55との双方の間に置かれている。言い換えれば、オブジェクト62は、ゾーン54の1つの隣接ゾーン55に侵入しており、境界58はオブジェクトによって通過される途中である。この状況は、
図1のステップ160を表した
図4に示される。
【0070】
図4を参照すると、ステップ162において、オブジェクトが、オブジェクトの到着ゾーンであるゾーンのうちの1つに入ろうとしていると判定される。この判定は、オブジェクトが置かれた各ゾーンによって実行される。即ち、各ゾーンは、オブジェクトが各ゾーンに置かれていることを示す。
【0071】
次に、ステップ164において、オブジェクトが出発ゾーン内に完全には入っていないことを確認することによって、到着ゾーン内におけるオブジェクトの存在が出発ゾーンによって計算される。出発ゾーンによる、オブジェクトの到着の検出が、出発ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトの少なくとも1つのポイントが到着ゾーン内に置かれていることを確認することによって実行される。
【0072】
次に、ステップ166において、到着ゾーン内におけるオブジェクトの存在を示す情報は、出発ゾーンから到着ゾーンに交換される。言い換えれば、出発ゾーンは、到着ゾーン内におけるオブジェクトの存在が出発ゾーンによって検出されたことを示す、1または複数のメッセージを到着ゾーンに送信する。
【0073】
次に、ステップ168において、到着ゾーンは、出発ゾーン内のオブジェクトのインスタンスの状態と同様の状態のオブジェクトのインスタンスを作成する。これは、オブジェクトの同様のインスタンスが計算されるということである。
【0074】
図1のプロセスの当該ステップにおいて、3Dシーンの1または複数のオブジェクトに対し、ケース140、150、または160が特定された。
【0075】
次に、ステップ170において、オブジェクトの物理的な挙動がシミュレートされる。即ち、オブジェクトのインスタンスにリンクされた物理的状態に従って、オブジェクトの物理的な挙動が実行される。好適には、このシミュレーションは、オブジェクトのインスタンスにリンクされた物理的状態に従って実行される。
【0076】
これより
図7を参照すると、ゾーン54とゾーン55との、2つのゾーン間の情報交換の例が示されており、この例は
図5および
図6にも表されている。
図7のシナリオにおいて、オブジェクト63は、自身が置かれている出発ゾーン54から、自身が最終的に完全に置かれる到着ゾーン55に移動する。第1のゾーンから第2のゾーンへの移動は、6つの連続シーケンス(A)、(B)、(C)、(D)、(E)、(F)、および(G)において表される。
図7の左側の部分は、出発ゾーン54で見られるオブジェクト63の位置を示し、一方、右側の部分は、到着ゾーン55で見られるのと同じオブジェクトの位置を示す。オブジェクト63は、到着ゾーン55ではオブジェクト74となることが分かる。
【0077】
シーケンス(A)において、オブジェクト63は、ゾーン54内のみに入っている。
【0078】
次に、シーケンス(B)において、ゾーン54は、オブジェクト63がその隣接ゾーン55と境界58とにまたがって置かれていることを検出する。ゾーン54は、オブジェクトが出発ゾーン内に完全には入っていないことを確認した。ゾーン54は、その情報を到着ゾーンと交換し、そしていわゆる境界メッセージ(Border Message)であるメッセージ70をゾーン55に送信する。このメッセージ70は、オブジェクトが境界にまたがっていることを明示的に通知する。さらに、出発ゾーンから到着ゾーンに交換された情報は、出発ゾーン内のオブジェクトの物理的状態をさらに含む。
【0079】
次に、シーケンス(C)において、ゾーン55は、境界メッセージ70を受信する。メッセージの伝送に信頼性があると仮定すれば、2つの状況が生じる可能性がある。これらの2つの状況は、以下の通りである。
【0080】
(i)いずれのゾーン55もオブジェクト63を認識しない。このケースでは、ゾーン55は、境界メッセージ70において指定される物理的状態のオブジェクト63のインスタンス74を作成する。
【0081】
(ii)いずれのゾーン55もすでにオブジェクト63がオブジェクト74であると認識している。このケースでは、ゾーン55は、受信された境界メッセージ70内に包含された特定の物理的状態の情報を登録する。同時に、ゾーン55は、オブジェクト74が境界58にまたがって置かれていることを検出し、そしてオブジェクトが境界にまたがっていることを通知する(即ち、ゾーン55は、オブジェクトがゾーン54内に入っていることをゾーン55が検出したことをゾーン54に通知する)境界メッセージ72を、ゾーン55内のオブジェクト74の物理的状態と共にゾーン54に送信する。
【0082】
ゾーン54は、オブジェクトが境界にまたがっていることをシーケンス(C)において再度検出することが分かる。オブジェクトが境界にまたがっている間、出発ゾーンと到着ゾーンとの双方は、境界メッセージ70、72を交換することを理解されたい。
【0083】
次に、シーケンス(D)において、ゾーン55は、オブジェクト74がもはや隣接ゾーン54に置かれていないと判定し、そしてなおもこのオブジェクトについての境界メッセージをゾーン54から受信する。到着ゾーン55は、削除メッセージ(Deletion Message)75を出発ゾーン54に送信する。この削除メッセージは、オブジェクトがもはや隣接ゾーン(54)に置かれていないことを明示的に通知する。
【0084】
次に、シーケンス(E)において、ゾーン54は、削除メッセージ75を受信し、そしてオブジェクト63のインスタンスがまだ破壊されていない場合に、そのインスタンスをキルする。
【0085】
次に、シーケンス(F)において、オブジェクト63は、完全にゾーン55に置かれており、即ち、ゾーン55内にオブジェクト63のインスタンスが1つのみが残る。
【0086】
シーケンス(C)に戻り、これより、出発ゾーン54と到着ゾーンとの間の情報の交換が信頼のない通信チャネルを用いて実行されると仮定する。従って、メッセージの偶発的損失が起こる恐れがある。2つのゾーン間のメッセージの放出は、オブジェクトが双方のゾーンで共有される限り反復的なプロセスであり、メッセージの損失の後、通常、同じ種類の別のメッセージが続くが、そのメッセージは、オブジェクトについてのより新しい状態データを有することに留意されたい。
【0087】
(i)到着ゾーン55が未知のオブジェクトについての境界メッセージ70を損失する場合、それは、そのゾーン55のいずれも次の境界メッセージを受信すると、付加遅延を有する同一のオブジェクトをインスタンス化するという意味である。
【0088】
(ii)到着ゾーン55が既知のオブジェクトについての境界メッセージ70を損失する場合、このゾーンは、オブジェクトの物理的状態の調停リングに関する有益なデータをわずかに見逃し、従って、摂動を生成する。しかしながら、この摂動は、次の境界メッセージの受信で補完される。その状況は、到着ゾーンによって出発ゾーンに送信された境界メッセージ72を損失する場合と同様であることを理解されたい。
【0089】
(iii)削除メッセージ75の損失の場合、ゾーン54は、なおもオブジェクト63のインスタンスを認識していて、従って、このオブジェクトについてのメッセージをゾーン55に送信する。従って、次のシミュレーションステップにおいて、ゾーン55は、ゾーン54に削除メッセージを再度送信し、それが上手くいけば、オブジェクトを削除する。
【0090】
次に、シーケンス(G)において、オブジェクト74は完全にゾーン55内に入り、そして当該物理的状態はそのゾーンの状態のみに依存する。
【0091】
本発明による方法は、本発明を実装するシステムによって継続的に実行することができる。詳細には、位相的に隣接する少なくとも第1のゾーンおよび第2のゾーンを提供するステップと、1または双方のゾーンに置かれるオブジェクトを提供するステップの後に実行されるステップは、継続的に実行されてもよい。
【0092】
従って、ゾーンに入るまたは出るオブジェクトについて互いに通知するために、メッセージはゾーン間で継続的に交換される。興味深いことに、その方法は、どのオブジェクトも3Dシーンの中で移動していない(例えば、どのオブジェクトも3Dシーンに提供されていない)ことが検出されると停止することが可能であり、そして1または複数のオブジェクトが3Dシーンの中で移動する(例えば、オブジェクトが3Dシーンに提供された)ことが検出されると再開始することが可能である。
【0093】
従って、特定のゾーン内のオブジェクトの生成または削除が当該ゾーン自体によってではなく、むしろその隣接ゾーン(複数)によって、およびメッセージの時間の冗長性、即ち、メッセージが損失したとしても、次の同じ種類のメッセージによって補完されることによってトリガされるという事実によって、プロトコルの堅牢性が保証される。
【0094】
本発明の好適な実施形態について説明した。発明の思想および発明の範囲から逸脱せずにさまざまな変更が可能であることが理解されよう。従って、他の実装も特許請求の範囲の範囲内である。