(57)【要約】【課題】サーバからリモート・クライアントに対する、シミュレートされた３次元モデル化オブジェクトの改善されたストリーミングが必要とされる。【解決手段】シミュレートされた３次元モデル化オブジェクトをサーバからクライアントへストリーミングするためのコンピュータ実行型の方法であって、ａ）リモート・クライアント上でユーザにより実施された対話をサーバ上で受信するステップ（Ｓ１０）と、ｂ）前記サーバ上で、３次元モデル化オブジェクトを前記対話に基づいてシミュレートするステップ（Ｓ２１０）と、前記シミュレーションの結果を少なくとも１つの２次元画像に変換するステップ（Ｓ２２０）と、前記少なくとも１つの２次元画像を圧縮するステップ（Ｓ２４０）と、圧縮された前記少なくとも１つの２次元画像を前記リモート・クライアントに送信するステップ（Ｓ２６０）と、を前記サーバ上で実施するステップ（Ｓ２０）と、を含む、方法を提供する。【選択図】図１
2014130603.tif 000002
【特許請求の範囲】
【請求項１】
シミュレートされた３次元モデル化オブジェクトをサーバからクライアントへストリーミングするためのコンピュータ実行型の方法であって
ａ）リモート・クライアント上でユーザにより実施された対話を、サーバ上で受信するステップ（Ｓ１０）と、
ｂ）前記サーバ上で、
３次元モデル化オブジェクトを前記対話に基づいてシミュレートするステップ（Ｓ２１０）と、
前記シミュレーションの結果を少なくとも１つの２次元画像に変換するステップ（Ｓ２２０）と、
前記少なくとも１つの２次元画像を圧縮するステップ（Ｓ２４０）と、
圧縮された前記少なくとも１つの２次元画像を前記リモート・クライアントに送信するステップ（Ｓ２６０）と、
を前記サーバ上で実施するステップ（Ｓ２０）と、
を含む、方法。
【請求項２】
前記少なくとも１つの２次元画像を圧縮するステップが、
現在の２次元画像と以前の２次元画像の差異を計算するステップ（Ｓ２３０）と、
計算した前記差異を圧縮するステップ（Ｓ２４０）と、
を含む、請求項１に記載のコンピュータ実行型の方法。
【請求項３】
前記圧縮するステップは、前記差異を計算しない圧縮を伴い繰り返し行われる、請求項２に記載のコンピュータ実行型の方法。
【請求項４】
前記現在の２次元画像と以前の２次元画像とは、前記シミュレーションの結果から得られた２つの連続する２次元画像である、請求項２または３に記載のコンピュータ実行型の方法。
【請求項５】
前記圧縮ステップでの前記差異の計算に起因する累積エラーをエミュレートするステップをさらに含む、請求項２乃至４の何れか１項に記載のコンピュータ実行型の方法。
【請求項６】
前記少なくとも１つの２次元画像はジオメトリ画像である、請求項１乃至５の何れか１項に記載のコンピュータ実行型の方法。
【請求項７】
前記受信ステップａ）で実施される前記対話は、前記リモート・クライアントで表示された３次元モデル化オブジェクト上で実施される、請求項１乃至６の何れか１項に記載のコンピュータ実行型の方法。
【請求項８】
前記ステップｂ）の実施は前記サーバによりリアルタイムで実行される、請求項１乃至７の何れか１項に記載のコンピュータ実行型の方法。
【請求項９】
ｃ）前記リモート・クライアント上で、
前記サーバにより送信された圧縮された少なくとも１つの２次元画像を受信するステップ（Ｓ３００）と、
前記圧縮された少なくとも１つの２次元画像を解凍するステップ（Ｓ３１０）と、
前記少なくとも１つの２次元画像を３次元モデル化オブジェクトに変換するステップと、
変換された前記２次元オブジェクトを表示するステップ（Ｓ３６０）と、
を実施するステップ（Ｓ３０）をさらに含む、請求項１乃至８の何れか１項に記載のコンピュータ実行型の方法。
【請求項１０】
前記ステップｃ）における、前記圧縮された少なくとも１つの２次元画像を解凍するステップは、
前記リモート・クライアントにより受信された前記圧縮された少なくとも１つの２次元画像は、前記現在の２次元画像と以前の２次元画像の間の前記差異から計算されたと判定するステップ（Ｓ３２０）
を含み、
前記ステップｃ）における、前記少なくとも１つの２次元画像を３次元モデル化オブジェクトに変換するステップは、
現在の解凍された少なくとも１つの２次元画像と以前の解凍された２次元画像の合計を計算するステップ（Ｓ３３０）と、
計算した前記和を３次元モデル化オブジェクトに変換するステップ（Ｓ３４０）と、
を含む、請求項９に記載のコンピュータ実行型の方法。
【請求項１１】
請求項１乃至１０の何れか１項の方法を実施させるためのプログラム・コード命令を含む、コンピュータ実行可能プログラム・コード命令を有するコンピュータ・プログラム。
【請求項１２】
請求項１１に記載のコンピュータ・プログラムを記録した、コンピュータ読取可能記憶媒体。
【請求項１３】
シミュレートされた３次元モデル化オブジェクトをサーバからリモート・クライアントにストリーミングするためのシステムであって、
ｉ）請求項１乃至８の何れか１項の方法を実施させるためのモジュールを備えたサーバ（５０）と、
ｉｉ）クライアント（５２）であって、
３次元モデル化オブジェクトを表示するためのグラフィカル・ユーザ・インタフェースと、
前記グラフィカル・ユーザ・インタフェース上でユーザにより実施される対話を生成するための触覚装置と、
請求項９のステップｃ）または請求項１０のステップを実施させるためのモジュールと、
を備えるクライアント（５２）と、
を備える、システム。
【請求項１４】
ｉｉｉ）前記サーバを前記クライアントに接続する通信ネットワーク
をさらに備える、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・プログラムとシステムの分野に関し、特に、サーバからリモート・クライアントへシミュレートされた３次元モデル化オブジェクトをストリーミングするための方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
オブジェクトを設計し、開発し、製造するための幾つかのシステムとプログラムが市場で提供されている。ＣＡＤはＣｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎの頭字語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇの頭字語であり、例えば、将来の製品の物理的な振舞いをシミュレートするためのソフトウェア・ソリューションに関する。ＣＡＭはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇの頭字語であり、例えば、製造プロセスや動作を定義するためのソフトウェア・ソリューションに関する。かかるコンピュータ支援設計システムでは、グラフィカル・ユーザ・インタフェースが当該技法の効率性に関して重要な役割を果たす。これらの技法は、ＰＬＭ（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｓｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ）システムに組み込まれることもある。ＰＬＭとは、製品の構想からその寿命まで、拡大された企業の概念にわたって、企業が製品データを共有し、共通プロセスを適用し、製品開発に関する企業の知識を利用するのを支援するビジネス戦略をさす。
【０００３】
Ｄａｓｓａｕｌｔシステムにより（ＣＡＴＩＡ、ＥＮＯＶＩＡおよびＤＥＬＭＩＡの商標のもとで）提供されるＰＬＭソリューションは、エンジニアリングＨｕｂ、製造Ｈｕｂ、および企業Ｈｕｂを提供する。エンジニアリングＨｕｂは製品のエンジニアリング知識を組織し、製造Ｈｕｂは製品開発知識を管理し、企業ＨｕｂはエンジニアリングＨｕｂと製造Ｈｕｂの両方への企業統合と接続を可能とする。システムが全体となって製品、プロセス、リソースを接続するオープンなオブジェクト・モデルをもたらし、最適な製品定義、製造準備、生産およびサービスを推進する動的で、知識ベースの製品製造と意思決定のサポートを可能とする。
【０００４】
対話的なリモート・アクセスをシミュレート／アニメーション化された３Ｄモデル化オブジェクトに提供するという課題は、コンピュータ・グラフィックの分野で非常に重要である。
【０００５】
コンピュータ・ゲームや仮想世界のようなアニメーション化されたジオメトリに関する幾つかのアプリケーションがある。計算能力とメモリに関して絶え間なく増大するニーズのため、かかるアプリケーションを強力なサーバまたはクラウドで実行して結果のエクスペリエンスをユーザに戻す幾つかのソリューションが存在する。今日、かかるエクスペリエンスをもたらす２つの主要なアプローチ、即ち、画素ストリーミングとジオメトリ・ストリーミングが存在する。
【０００６】
画素ストリーミングでは、３Ｄエクスペリエンスはリモート・サーバ上で実行され、シミュレーションの各フレームが描画される。次いで、描画されたフレームが、ビデオ圧縮技法を用いて、接続クライアント（ユーザの装置）へとネットワークを介してストリーミングされる。当該画素技法は主に、ビデオ・ゲーム風のアプリケーションに対処し、帯域幅の可用性を保証するためにネットワーク・プロバイダとの強い合意に依存している。実際、画素ストリーミングには、調整が困難な大量の帯域幅消費がある。さらに、ストリーミングを受信するクライアントには画像しか表示されない。したがって、ユーザはシミュレーションと対話することができず、サーバの介入によりオブジェクト上の視点を修正することができない。さらに、ストリームが妨害される場合には、クライアントは最後に受信した画像以外は表示することができない。さらに、画素ストリーミングはサーバのスケーラビリティの問題を引き起こす。実際、１つのサーバが処理できるクライアントの数は、サーバでの３Ｄ描画の計算コストが非常に高いため、限られている。
【０００７】
幾何学的ストリーミングでは、３Ｄエクスペリエンスはリモート・サーバ上で実行され、モデル化オブジェクトのジオメトリが接続クライアントにストリーミングされてリモートに描画される。幾何学的ストリーミングは一般に静的メッシュに適している。しかし、メッシュをリアルタイムなシミュレーションストリーミングによりアニメーション化するときには、純粋なジオメトリでは、リアルタイムな配信制約を満たす点で不適切となる。実際、３次元モデル化オブジェクトの複雑でランダムな変形を記述するのに使用できる効率的な圧縮機構は存在しない。さらに、ストリーミングを受信するクライアントは、シミュレーションを描画するのに十分な計算リソースを保持しなければならないが、これはタブレット・コンピュータ、スマートフォン等のような装置では満足できない。
【０００８】
この状況では、サーバからリモート・クライアントに対する、シミュレートされた３次元モデル化オブジェクトの改善されたストリーミングが依然として必要である。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｘｉａｎｆｅｎｇ  Ｇｕ、  Ｓｔｅｖｅｎ  Ｊ．Ｇｏｒｔｌｅｒ、  ａｎｄ  Ｈｕｇｕｅｓ  Ｈｏｐｐｅ．Ｇｅｏｍｅｔｏｒｙ  ｉｍａｇｅｓ．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２９ｔｈ  ａｎｎｕａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ｇｒａｐｈｉｃｓ  ａｎｄ  ｉｎｔｅｒａｃｔｉｖｅ  ｔｅｃｈｎｉｑｕｅｓ、  ｐａｇｅｓ  ３５５−３６１．  ＡＣＭ  Ｐｒｅｓｓ、  ２００２
【発明の概要】
【課題を解決するための手段】
【００１０】
１態様によれば、本発明は、サーバからリモート・クライアントへ、シミュレートされた３次元モデル化オブジェクトをストリーミングするためのコンピュータ実行型の方法を提供する。本方法は、
ａ）リモート・クライアント上でユーザにより実施された対話をサーバで受信するステップと、
ｂ）当該サーバ上で、
当該対話に基づいて３次元モデル化オブジェクトをシミュレートするステップと、
当該シミュレーションの結果を少なくとも１つの２次元画像に変換するステップと、
当該少なくとも１つの２次元画像を圧縮するステップと、
当該圧縮された少なくとも１つの２次元画像を当該リモート・クライアントに送信するステップと、
を実施するステップと、
を含む。
【００１１】
当該方法は、
少なくとも１つの２次元画像を圧縮するステップが、現在の２次元画像と以前の２次元画像の差異を計算し、計算された差異を圧縮するステップを含むこと、
当該圧縮ステップが、当該差異を計算しない圧縮で繰り返し実施されること、
現在の２次元画像と以前の２次元画像が、シミュレーションの結果から得られた２つの連続的な２次元画像であること、
当該圧縮ステップでの当該差異の計算に起因する蓄積エラーをエミュレートするステップ、
当該少なくとも１つの２次元画像はジオメトリ画像であること、
受信ステップａ）で実施される対話は、リモート・クライアントで表示される３次元モデル化オブジェクト上で実施されること、
実施ステップｂ）がサーバによりリアルタイムで実行されること、
サーバにより送信された当該圧縮された少なくとも１つの２次元画像を受信し、当該圧縮された少なくとも１つの２次元画像を解凍し、当該少なくとも１つの２次元画像を３次元モデル化オブジェクトに変換し、変換した２次元オブジェクトを表示するステップをリモート・クライアントで実施するステップｃ）をさらに含むこと、
当該圧縮された少なくとも１つの２次元画像を解凍するステップが、リモート・クライアントにより受信された当該圧縮された少なくとも１つの２次元画像が現在の２次元画像と以前の２次元画像の差異とから計算されていると判定するステップを含み、当該少なくとも１つの２次元画像を３次元モデル化オブジェクトに変換するステップが、現在の解凍された少なくとも１つの２次元画像と以前の解凍された２次元画像の和を計算し、計算した和を３次元モデル化オブジェクトに変換するステップを含むこと、
のうち、１つまたは複数を含んでもよい。
【００１２】
本発明はさらに、コンピュータ実行可能プログラム・コード命令を格納したコンピュータ・プログラムを提供する。当該コンピュータ実行可能プログラム・コード命令は、本発明に従う方法を実施するためのプログラム・コード命令を含む。
【００１３】
本発明はさらに、上記コンピュータ・プログラムを記録したコンピュータ読取可能記憶媒体を提供する。
【００１４】
本発明はさらに、サーバからリモート・クライアントへ、シミュレートされた３次元モデル化オブジェクトをストリーミングするためのシステムを提供する。本システムは、
ｉ）上記方法のステップａ）とｂ）を実施するためのモジュールを備えたサーバと、
ｉｉ）クライアントであって、
３次元モデル化オブジェクトを表示するためのグラフィカル・ユーザ・インタフェースと、
当該グラフィカル・ユーザ・インタフェース上でユーザにより実施される対話を生成するための触覚装置と、
上記方法のステップｃ）を実施するためのモジュールと、
を備えたクライアントと、
を備える。
【００１５】
当該システムはさらに、ｉｉｉ）サーバをクライアントに接続する通信ネットワークを備えてもよい。
【００１６】
次に、添付図面を参照して、本発明の諸実施形態を非限定的な例により説明する。
【図面の簡単な説明】
【００１７】
【図１】本発明に従う方法の１例の流れ図である。
【図２】図１のステップＳ３０の１例を示す流れ図である。
【図３】３Ｄモデル化オブジェクトをジオメトリ画像へ変換する１例を示す図である。
【図４】３Ｄモデル化オブジェクトをジオメトリ画像へ変換する１例を示す図である。
【図５】本発明に従う方法を実行するシステムのアーキテクチャの１例を示す図である。
【図６】圧縮された２Ｄ画像を含むパケットのストリーミングの１例を示す図である。
【図７】グラフィカル・ユーザ・インタフェースの１例を示す図である。
【図８】コンピュータ・システム、例えば、クライアントまたはサーバの１例を示す図である。
【発明を実施するための形態】
【００１８】
図１の流れ図を参照すると、サーバからリモート・クライアントへシミュレートされた３次元（３Ｄ）モデル化オブジェクトをストリーミングするためのコンピュータ実行型の方法が提供されている。ストリーミングという用語は、媒体、ここではシミュレートされた３Ｄモデル化オブジェクトの配信をさす。サーバやクライアントという用語は、クライアント・サーバ・モデルをさす。クライアントはリモートであり、これは、サーバとクライアントが同一の装置でないことを意味する。当該方法は、クライアント上でユーザにより実施された対話をサーバ側で受信するステップを含む。当該方法はさらに、サーバ上で幾つかのステップを実施するステップを含む。当該サーバは、対話に基づいて３Ｄモデル化オブジェクトをシミュレートするステップを実施する。例えば、シミュレートされた３Ｄモデル化オブジェクトは、クライアント上で表現されかつユーザが当該対話を実施した３Ｄモデル化オブジェクトであってもよい。当該サーバはまた、シミュレーションの結果を少なくとも１つの２次元（２Ｄ）画像に変換する。当該サーバはさらに、１つまたは複数の２Ｄ画像の圧縮を実施し、圧縮された１つまたは複数の２Ｄ画像をリモート・クライアントに送信する。
【００１９】
かかる方法により、クライアントのコンピュータ・リソースの消費を減らしつつ３Ｄモデル化オブジェクトのリモート対話が改善される。なぜならば、サーバ上での３Ｄモデル化オブジェクトのシミュレーションが、３Ｄモデル化オブジェクトに関連するリモート対話の結果としてトリガされ、シミュレーションの圧縮結果が、当該結果の単純な描画を実施するクライアントに転送される。さらに、クライアントは３Ｄモデル化オブジェクトと直接対話することができる。なぜならば、シミュレーションを代表するオブジェクトの画像ではなく、シミュレーションの結果がサーバからクライアントに送信されるからである。即ち、クライアントはモデル化オブジェクトの任意の３Ｄ情報を認識する。さらなる利点は、データ・ストリームが何らかの理由（ネットワーク遅延、サーバ障害．．．）で割り込まれた場合に、クライアントは３Ｄオブジェクトの知識（サーバが送信した最新状態）を有し、例えば３Ｄモデル化オブジェクトが配置されているシーンのナビゲートのような、何らかの動作を依然として実施することができる。さらに、サーバのスケーラビリティが改善される。なぜならば、サーバ側では何ら描画が実施されないからである。特に、  本発明は視点依存でなく、その結果、同一のデータを計算し幾つかのクライアントに送信することができる。各クライアントは、その現在の視点から見たシーンを表示する。さらに、本発明は、複雑に変形する多角形メッシュとして記述される３Ｄモデル化オブジェクトにも適している。例えば、本発明は、オブジェクトの各点がシミュレーションにより移動しその移動が近傍点の移動と自明な関係にないときに、変形可能オブジェクトの物理的なシミュレーションに適している。
【００２０】
当該方法はコンピュータ実行型である。これは、当該方法の諸ステップ（または実質的に全てのステップ）が少なくとも１つのコンピュータにより実行されることを意味する。種々の例では、当該方法のステップのうち少なくとも一部をトリガすることをユーザとコンピュータの対話を通じて実施してもよい。要求されるユーザとコンピュータ対話のレベルが、予見される自動性のレベルに依存してもよく、ユーザの希望を実現する必要性とバランスさせてもよい。種々の例では、このレベルがユーザ定義および／または事前定義されてもよい。
【００２１】
当該方法をコンピュータ実装する典型的な例は、この目的に適したグラフィカル・ユーザ・インタフェース（ＧＵＩ）を備えるコンピュータ化システムで当該方法を実施することである。ＧＵＩはメモリとプロセッサに接続される。当該メモリは、データベースを格納し、かかる記憶に適した任意のハードウェアにすぎない。
【００２２】
「データベース」により、検索と抽出向けに編成されたデータ（即ち、情報）の任意の集合を意味する。メモリに格納したときは、データベースによりコンピュータは高速な検索と抽出が可能となる。データベースは実際、様々なデータ処理動作と関連したデータの記憶、抽出、修正、および削除を容易にするように構成される。データベースが、その各々が１つまたは複数のフィールドから構成されるレコードに分解できるファイルまたは１組のファイルから構成されてもよい。フィールドはデータ記憶の基本的単位である。ユーザは、主にクエリを通じてデータを抽出することができる。キーワードとソート・コマンドを使用して、ユーザは多数のレコードのフィールドを検索し、再配置し、グループ化し、選択して、使用しているデータベース管理システムのルールに従って特定のデータ集合を抽出するかまたはそれに関するレポートを生成することができる。
【００２３】
当該方法のケースでは、シミュレーションを実施するのに必要な情報をデータベースに格納してもよい。
【００２４】
当該方法は一般にモデル化オブジェクトを操作する。モデル化オブジェクトとは、データベースに格納されたデータにより定義された任意のオブジェクトである。拡張すると、「モデル化オブジェクト」という表現はデータ自体を示す。システムの種類に応じて、モデル化オブジェクトを様々な種類のデータにより定義してもよい。当該システムは実際、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、および／またはＰＬＭシステムの任意の組合せであってもよい。これらの様々なシステムでは、モデル化オブジェクトは対応するデータにより定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＣＡＭデータ、ＣＡＥデータと称するかもしれない。しかし、モデル化オブジェクトをこれらのシステムの任意の組合せに対応するデータにより定義できるので、これらのシステムは互いに排他的ではない。したがって、以下で提供するシステムの定義から明らかなように、システムはＣＡＤシステムでああってもＰＬＭシステムであってもよい。
【００２５】
ＣＡＤシステムにより、ＣＡＴＩＡのような、モデル化オブジェクトのグラフィカル表現に基づいてモデル化オブジェクトを設計するのに少なくとも適した任意のシステムを意味する。このケースでは、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能とするデータを含む。ＣＡＤシステムは例えば、エッジまたは線、特定のケースでは面またはサーフェスを用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、エッジ、またはサーフェスを様々に、例えば、ＮＵＲＢＳ（ｎｏｎ−ｕｎｉｆｏｒｍ  ｒａｔｉｏｎａｌ  Ｂ−ｓｐｌｉｎｅ）で表現してもよい。特に、ＣＡＤ仕様は、ジオメトリをそこから生成でき表現を生成できる仕様を含む。モデル化オブジェクトの仕様を、単一のＣＡＤ仕様または複数のＣＡＤ仕様に格納してもよい。ＣＡＤシステム内のモデル化オブジェクトを表現する仕様の典型的なサイズは、部品あたり１メガバイトの範囲である。モデル化オブジェクトは一般に、無数の部品から成るアセンブリであってもよい。
【００２６】
ＣＡＤの状況では、モデル化オブジェクトは一般に３Ｄモデル化オブジェクトであってもよく、例えば部品もしくは部品のアセンブリのような製品、または場合によっては製品のアセンブリを表現する。「３Ｄモデル化オブジェクト」により、その３Ｄ表現を可能とするデータによりモデル化された任意のオブジェクトを意味する。３Ｄ表現により、部品を全ての角度から参照することができる。例えば、３Ｄモデル化オブジェクトは、３Ｄで表現するとき、その任意の軸の周りで、または、表現が表示されているスクリーン内の任意の軸の周りで扱い回転させてもよい。これにより、３Ｄモデル化されない２Ｄアイコンが排除されることに留意されたい。３Ｄ表現の表示により設計が容易になる（即ち、設計者が自身の作業を達成する速度が統計的に高まる）。これにより、設計が製造プロセスの一部であるので、業界における製造プロセスが加速する。
【００２７】
ＣＡＤシステムがヒストリ・ベースであってもよい。このケースでは、モデル化オブジェクトはさらに、幾何学的特徴のヒストリを含むデータにより定義される。モデル化オブジェクトを実際に、標準的なモデリング機能（例えば押出し、回転、切取り、および／または丸め等）および／または標準的なサーフェス機能（例えばスイープ、混合、ロフト、充填、変形、平滑化等）を用いて物理的な人（即ち、設計者／ユーザ）により設計してもよい。かかるモデリング機能をサポートする多数のＣＡＤシステムはヒストリ・ベースのシステムである。これは、設計機能の作成履歴が一般に、入出力リンクを通じて上記の幾何学的特徴を接続する非対称のデータ・フローを通じて保存されることを意味する。ヒストリ・ベースのモデリング・パラダイムは８０年代の初頭から公知である。モデル化オブジェクトは、２つの不変データ表現、即ちヒストリとＢ−ｒｅｐ（即ち、境界表現）により記述される。Ｂ−ｒｅｐは、ヒストリで定義された計算の結果である。モデル化オブジェクトを表現するときにコンピュータのスクリーンに表示される部品の形状は、Ｂ−ｒｅｐ（のテッセレーション）である。当該部品のヒストリは設計意図である。基本的に、ヒストリは、モデル化オブジェクトが受けた動作に関する情報を収集する。Ｂ−ｒｅｐをヒストリとともに保存して、複雑な部品を表示するのを簡単にしてもよい。当該ヒストリをＢ−ｒｅｐとともに保存して、設計意図に従う部品の設計変更を可能としてもよい。
【００２８】
ＰＬＭシステムとは、物理的な製造製品を表現するモデル化オブジェクトの管理に適した任意のシステムを意味する。ＰＬＭシステムでは、モデル化オブジェクトはこのように物理的なオブジェクトの製造に適したデータにより定義される。これらは一般に次元値および／または許容値であってもよい。オブジェクトを正しく製造するために、かかる値を有するのが良い。
【００２９】
ＣＡＥシステムとは、モデル化オブジェクトの物理的な振舞いの分析に適した任意のシステムを意味する。ＣＡＥシステムでは、モデル化オブジェクトはこのようにかかる振舞いの分析に適したデータにより定義される。これは一般に１組の振舞い特徴（ｂｅｈａｖｉｏｒｉｎｇ  ｆｅａｔｕｒｅｓ）であってもよい。例えば、ドアに対応するモデル化オブジェクトを、当該ドアが軸回りに回転することを示すデータにより定義してもよい。
【００３０】
図７は、クライアントによりユーザに表示されるＧＵＩの１例を示す。クライアントはＣＡＤシステムであってもよい。
【００３１】
ＧＵＩ１００は、標準的なメニューバー１１０、１２０、ならびに下部および側面のツールバー１４０、１５０を有する典型的なＣＡＤ風のインタフェースであってもよい。当業界で公知なように、かかるメニューバーとツールバーは１組のユーザ選択可能なアイコンを含み、各アイコンは１つまたは複数の動作または機能に関連付けられている。これらのアイコンのうち一部は、ＧＵＩ１００に表示される３Ｄモデル化オブジェクトの編集および／または当該３Ｄモデル化オブジェクト２０１０での作業に適合されたソフトウェア・ツールに関連付けられている。当該ソフトウェア・ツールをワークベンチにグループ化してもよい。各ワークベンチはソフトウェア・ツールのサブセットを備える。特に、当該ワークベンチの１つは、３Ｄモデル化オブジェクト２０１０の幾何学的特徴の編集に適した、エディション・ワークベンチである。動作において、適切なアイコンを選択することにより、設計者は例えばオブジェクト２０１０の一部を事前選択し、動作（例えば、次元、色等の変更）を開始するか、または、幾何学的な制約を編集してもよい。例えば、典型的なＣＡＤ動作は、スクリーンに表示された３Ｄモデル化オブジェクトの押し抜きまたは畳み込みのモデル化である。
【００３２】
ＧＵＩは、例えば、表示された３Ｄモデル化オブジェクト２０１０に関連する表示データ２５０であってもよい。図２の例では、データ２５０は、「特徴木」として表示され、その３Ｄ表現２０１０は、ブレーキ・キャリパとブレーキ・ディスクを含むブレーキ部品に関する。ＧＵＩはさらに、例えばオブジェクトの３Ｄ配置の促進、編集された製品の動作のシミュレーションのトリガのための、様々なグラフィック・ツール１３０、２０７０、２０８０を示し、表示された製品２０１０の様々な属性を表示してもよい。カーソル２０６０を触覚装置により制御して、ユーザがグラフィック・ツールと対話できるようにしてもよい。
【００３３】
図８は、コンピュータ・システム、例えば、クライアントのワークステーションを示す。当該クライアント・コンピュータは、内部通信ＢＵＳ１０００に接続されたＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１０１０と、やはり当該ＢＵＳに接続されたＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１０７０を備える。当該クライアント・コンピュータにはさらに、当該ＢＵＳに接続されたビデオ・ランダム・アクセス・メモリ１１００に関連付けられたＧＰＵ（ｇｒａｐｈｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１１１０が設けられている。ビデオＲＡＭ１１００は、当業界ではフレーム・バッファとしても知られている。大容量記憶装置コントローラ１０２０は、ハード・ドライブ１０３０のような大容量メモリ装置へのアクセスを管理する。コンピュータ・プログラム命令とデータを有形的に具体化するのに適した大容量メモリ装置には、あらゆる形態の不揮発性メモリが含まれる。当該メモリには、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ装置のような半導体メモリ装置、内部ハード・ディスクおよび取外し可能ディスクのような磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０が含まれる。以上のうち任意のものを、特殊設計ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）により補完するか、または、当該ＡＳＩＣに組み込んでもよい。ネットワーク・アダプタ１０５０はネットワーク１０６０へのアクセスを管理する。当該クライアント・コンピュータはまた、カーソル制御装置、キーボード等のような触覚装置１０９０を備えてもよい。図２を参照して述べたように、カーソル制御装置は当該クライアント・コンピュータで使用されて、ユーザがカーソルをディスプレイ１０８０上の任意の所望位置へと選択的に配置できるようにする。さらに、当該カーソル制御装置によりユーザは様々なコマンドと入力制御信号を選択することができる。当該カーソル制御装置は、制御信号をシステムに入力するための幾つかの信号生成装置を備える。一般に、カーソル制御装置は、マウス、および信号を生成するために使用されている当該マウスのボタンであってもよい。
【００３４】
図７のコンピュータ・システムが、クライアントが接続されるサーバであってもよいことは理解される。
【００３５】
コンピュータ・プログラムは、コンピュータによる命令を含んでもよく、当該命令は、システムに上述の方法を実施させるための手段を含む。本発明を例えば、デジタル電子回路で、または、コンピュータ・ハードウェア、ファームウェア、ソフトウェアで、またはそれらの組合せで実装してもよい。本発明の装置を、プログラム可能プロセッサで実行するための機械読取可能記憶装置で有形的に具体化したコンピュータ・プログラム製品で実装してもよく、本発明の方法のステップを、入力データ上で動作し出力を生成することによって本発明の諸機能を実施するための命令から成るプログラムを実行するプログラム可能プロセッサにより実施してもよい。
【００３６】
図１を再び参照すると、ステップＳ１０とＳ３０は、サーバと関連してリモート・クライアント上で／リモート・クライアントによって実施される動作に関し、ステップＳ２０はサーバ上で／サーバによって実施される動作に関する。クライアントとサーバの間の関係は、クライアント・サーバ・モデルに従う。
【００３７】
ステップＳ１０で、ユーザの対話がリモート・クライアント上で実施される。ユーザの対話とは、ユーザがクライアント上で動作（複数可）を実施し当該動作（複数可）の結果としてフィードバックがユーザに返されることを意味する。実際、ユーザは、クライアント上に表示されたＧＵＩにおいて表現された３Ｄモデル化オブジェクトで対話を行う。当該３Ｄモデル化オブジェクトは、例えば、ＧＵＩ内で表現された３Ｄシーンにおいて表現してもよい。当該対話を当業界で公知なように実施してもよい。これには、例えば、３Ｄシーン内のモデル化オブジェクトに対して、マウス、トラックボールのような触覚装置で操作されるカーソルで作用すること、３Ｄモデル化オブジェクトを表示するクライアントのタッチ・センシティブ・スクリーンを介して操作すること、または、例えば図２のグラフィック・ツール１３０、２０７０、２０８０のようなツールを介してオブジェクトに作用すること、が含まれるがこれらに限らない。
【００３８】
リモート・クライアントは、例えば図８に示したコンピュータ・システムのような任意のコンピュータ・システムであってもよい。
【００３９】
３Ｄシーンは、オブジェクト間の空間関係が記述される空間である。当該シーンは少なくとも２つのオブジェクトから成り、当該オブジェクトは３Ｄモデル化オブジェクトであってもよいがこれに限らない。３Ｄシーンは一般に、物理的な世界のモデルであり、座標により３Ｄ空間内の全ての点を記述するジオメトリにより数学的に表現することができる。３Ｄシーンは一般に実世界でシミュレートしたものであってもよい。この場合、オブジェクト間の現実的な対話がシミュレートされる。現実的な対話という表現は、シミュレートされた対話が実世界の対話、例えば物理法則を反映して、力（重力、磁力、接触）が、情報の流れのような法則を制御し、事象を制御することを意味する。
【００４０】
次に、ステップＳ２０で、リモート・クライアント上で実施されたユーザ対話の結果として、サーバで幾つかのステップＳ２００乃至Ｓ２６０がトリガされる。
【００４１】
ステップＳ２００で、サーバは、リモート・クライアント上でユーザが実施した対話を受け取る。対話を受け取るというのは、リモート・クライアント上で実施された対話を表す情報が正しくサーバに送信されたことを意味する。
【００４２】
次に、ステップＳ２１０で、３Ｄモデル化オブジェクトのシミュレーションがサーバにより実施される。当該シミュレーションは、受け取った対話に従って行われる。これは、サーバが、受け取った対話から取得した動作（複数可）を３Ｄモデル化オブジェクト上で模倣するということである。クライアント側の３Ｄモデル化オブジェクトはサーバ側のものと同一であることは理解される。例えば、ユーザがクライアントの３Ｄモデル化オブジェクトの回転を実施した場合には、当該回転のシミュレーションがサーバにより同じ３Ｄモデル化オブジェクト上で行われる。
【００４３】
次に、ステップＳ２２０で、当該シミュレーションの結果が少なくとも１つの２Ｄ画像に変換される。シミュレーションの結果とは、シミュレーションによって生成された１組のデータ、例えば、３Ｄモデル化オブジェクトが３Ｄシーン内で回転されたことを意味する。３Ｄから２Ｄへの変換とは、シミュレーションの結果のリメッシュが行われること、および、変換が可逆であること、例えば以前の変換から得られた画像をシミュレーションの元の結果に再変換できることを意味する。
【００４４】
実際には、２Ｄ画像はジオメトリ画像表現であってもよく、ジオメトリ画像とも呼ばれる。ジオメトリ画像は、当業界で公知なように、３Ｄモデル化オブジェクトの任意のサーフェスを２Ｄ画像としての静的メッシュに変換することで得られる。当該静的メッシュは、３Ｄモデル化オブジェクトの元のジオメトリの完全に均一なリメッシュであり、これが逆変換をサポートする。ジオメトリ画像は、ジオメトリを量子化点から成る単純な２Ｄ配列としてキャプチャする完全に均一な構造を提供する。法線や色のようなサーフェス信号は、同一の暗黙なサーフェス・パラメータ化を用いて同様な２Ｄ配列に格納され、テキスチャ座標は存在しない。ジオメトリ画像は非特許文献１で説明されており、引用により本明細書に組み込む。
【００４５】
説明の目的のため、３Ｄモデル化オブジェクトをジオメトリ画像に変換する１例を、図３および４を参照して説明する。実際のリアルタイムな３Ｄアプリケーションでは、３Ｄモデル化オブジェクトは、多角形メッシュを形成する空間内の１組の接続された多角形により完全に記述されるサーフェスとして表現される。多角形メッシュは、空間内の１組の点（頂点）と見なすこともできる。これらの点はエッジにより幾つかの近傍点に接続される。エッジのループはメッシュの面／多角形を示す。図３は、多角形メッシュのサーフェスとして表現された３Ｄモデルを示す。この３Ｄモデルはジオメトリ画像に変換される。最初に、多角形メッシュが正規メッシュに変換される。この場合、各面は四辺形であり、各頂点は、グリッド境界にある頂点を除いて、４つの他の頂点に接続される。図４は、かかる正規メッシュに変換された図３の３Ｄモデルを示す。次に、正規メッシュを２次元画像に変換する。即ち、メッシュ上の各頂点には画像内の点が関連付けられている。当該画像の色要素（赤／緑／青の値）は空間内の頂点の位置の座標（ｘ、ｙ、ｚ）に等しく設定されている。当該画像をジオメトリ画像と称する。画像の点を画素と称する。
【００４６】
興味深いことに、正規メッシュからジオメトリ画像への変換は可逆である。実際、頂点位置は色情報に格納され、（頂点がエッジにより接続される）接続情報は暗黙的である。即ち、ジオメトリ画像内の２つの隣接点は正規メッシュ内の２つの接続された頂点に対応する。したがって、３Ｄモデル化オブジェクトをジオメトリ画像から再構築するとき、正規メッシュのみを取得することができ、元のメッシュは取得することができない。しかし、再構築されたサーフェスは十分に元のサーフェスに近いものであり、再構築されたサーフェスと元のサーフェスの相違は定量化することができる。この相違点は主に、元のメッシュの頂点数に依存する。この数は、近いサーフェスを取得するのに十分大きくかつ十分に小さく選択される。なぜならば、元のサーフェスに大量の頂点があるとその位置を格納するための大規模な画像が必要となるからである。
【００４７】
次に、ステップＳ２３０で、現在の２Ｄ画像と以前の２Ｄ画像の差異を計算する。２つの２Ｄ画像の間の差異を計算するということは、画素差引動作が２つの２Ｄ画像を入力としてとって、画素値が第１の画像の画素値から第２の画像の対応する画素値を単純に引いたものである第３の２Ｄ画像を出力として生成することを意味する。当該差引が、各画素色値（赤／青／緑）に対して以前の２Ｄ画像、例えばジオメトリ画像におけるその値を差し引くことを含んでもよい。これは、３Ｄモデル化オブジェクトの頂点が２つの２Ｄ画像の構造の間の空間内で移動しなかった場合には、最新の２Ｄ画像内の関連する色がヌルになることを意味する。サーバ上で実施したシミュレーションに応じて、３次元オブジェクトの変形、したがって、その頂点の移動は一般に滑らかで連続的であり、これは、２つの連続する２Ｄ画像内の頂点位置が強く相関し、その差異が小さいことを意味し、２つの連続する２Ｄ画像の間の差異の計算の結果、単一の２Ｄ画像よりも小さい色値を有する画像が生ずる。
【００４８】
現在の画像と以前の画像が同一次元かつ同一解像度を有することが好ましいことは理解される。
【００４９】
以前の２Ｄ画像という表現は、以前に、かつ、現在の２Ｄ画像と同じ対話に従って取得された２Ｄ画像を意味する。現在の２Ｄ画像という表現は、最後に取得された２Ｄ画像、即ち、最も直近に取得された２Ｄ画像を意味する。
【００５０】
３Ｄモデル化オブジェクトのシミュレーションには一般に、３Ｄモデル化オブジェクト上のアニメーションが３Ｄシーンにおける一連の３Ｄモデル化オブジェクトの状態を含むことが必要であり、シミュレーションの変換結果を一連のジオメトリ画像と見なすことができる。各ジオメトリ画像は、１組の連続する状態のうち変換された状態である。当該状態と対応する変換された２Ｄ画像とは、一般に、均一な時間間隔で定義してもよい。例えば、３Ｄモデル化オブジェクトの回転のシミュレーションには、３Ｄモデル化オブジェクトのアニメーションが必要である。当該回転を、３Ｄモデル化オブジェクトの幾つかの状態（例えば、１ｍｓごとの状態）に任意に分割することができ、状態ごとに、３Ｄモデル化オブジェクトのシミュレーション結果が１つのジオメトリ画像に変換される。実際、現在の２Ｄ画像と以前の２Ｄ画像は、シミュレーションの結果から得られた２つの連続する２Ｄ画像である。
【００５１】
有利なことに、差異を計算することにより、単一の２Ｄ画像よりも小さな色値を有る画像を取得することができ、したがって、当該画像を圧縮することで、ステップＳ２６０でより少ないデータがクライアントに送信される。
【００５２】
次に、ステップＳ２４０で、圧縮を実施する。３つのケースが生じうる。第１のケース（Ｓ２３２）では、圧縮を、ステップＳ２２０で取得した１つまたは複数の２Ｄ画像に対して直接実施してもよい。第２のケースでは、２つの２Ｄ画像間で計算した差異に対して圧縮を行う。したがって、第１のケースでは、２つの２Ｄ画像間の差異を計算することなく、圧縮が１つまたは複数の２Ｄ画像に対して繰り返し行われる。
【００５３】
第３のケースでは、２Ｄ画像上、および、２つの２Ｄ画像間で計算された差異、に対して圧縮が選択的に実施される。換言すれば、圧縮が、差異を計算しない圧縮とともに選択的に実施される。これにより、エラーの蓄積を回避でき、したがって、各頂点に蓄積したエラーをリセットすることができる。実際、３Ｄモデル化オブジェクトを２Ｄ画像から再構築するとき、各頂点の位置は、当該差異を総和することによって推定される。しかし、各２Ｄ画像は、画像を圧縮するためにロッシ―圧縮機構を選択したことに起因して、エラーとともに構築される。差異を総和することによって、再構築されたオブジェクトも各２Ｄ画像のエラーを蓄積することとなる。
【００５４】
図６を参照すると、圧縮された２Ｄ画像（ＩフレームにつきＩと記す）または２つの２Ｄ画像間の圧縮された差異（ＰフレームにつきＰと記す）を運搬するフレームのストリーミングの１例が示されている。フレームという用語は、送信すべき、または送信された、または受信された画像のデータのフォーマット単位である。したがって、フレームはパケット・ネットワークにおけるパケットと等価である。
【００５５】
画像の圧縮とは、２Ｄ画像を符号化するデータの削減が実施されることを意味する。圧縮により、２Ｄ画像のサイズが削減される。圧縮は、損失に耐えることができる。サーバは圧縮率を調整することができる。これにより、画像品質を犠牲として、圧縮されたデータのサイズが変更される。圧縮率は、未圧縮の２Ｄ画像から再構築された３Ｄモデル化オブジェクトの頂点位置に影響を及ぼすことは理解される。
【００５６】
実際、圧縮には３つのステップ、即ち、（ｉ）変換、（ｉｉ）量子化、および（ｉｉｉ）符号化のステップが必要である。これらの３つのステップの圧縮機構は、ＪＰＥＧまたはＪＰＥＧ２０００のような標準的な画像圧縮機構のような既知の圧縮機構で実施できるものと同様である。先ず、変換により低周波数情報を高周波数情報から分離する。例えば、当該変換は、ＪＰＧ標準のようなケースでは離散余弦変換であることができ、ＪＰＧ２０００標準では離散ウェーブレット変換であることができる。次に、量子化ステップで結果の係数を丸める。画像の品質の調整を量子化ステップの選択により実施する。即ち、より大きなステップにより画像品質が低下するが、データの偏差が減り、それらがより相関する。最後に、符号化ステップによりこれらの係数をバイナリ・データに符号化し、データがどれくらい強く相関するかに応じてデータのサイズの削減を実現する。
【００５７】
ステップＳ２５０で、ステップＳ２４０での差異の計算に起因する蓄積エラーをエミュレートする。蓄積エラーをエミュレートするとは、蓄積エラーのシミュレーションが実施されること、および、蓄積エラーの評価が蓄積エラーのシミュレーションに従って実施されることを意味する。エミュレーションは一般に、当業界で公知なように、例えばハードウェア・モジュールまたはソフトウェア・モジュールのような専用機能により実施される。
【００５８】
ステップ２４０を参照して論じたように、現在の２Ｄ画像と以前の２Ｄ画像の間で計算された差異の連続的な圧縮の結果、画像圧縮機構の選択に起因するクライアント上のエラー蓄積につながる。当該圧縮はサーバ上で実施されるので、サーバはエミュレーションを用いてクライアント上の蓄積エラーの値を予測することができる。
【００５９】
蓄積エラーの値の予測をサーバにより有利に使用して、蓄積エラーが閾値を超えたときに差異を計算することなく圧縮された画像を送信することができる（ステップＳ２６０）。これにより、有利なことに、クライアント上の蓄積エラーが閾値を超えたときに当該蓄積エラーがリセットされる。
【００６０】
ステップＳ２６０で、圧縮された２Ｄ画像（複数可）がリモート・クライアントに送信される。サーバからリモート・クライアントへの送信は当業界で公知なように実施される  実際、幾つかの圧縮された画像が送信される。即ち、シミュレートされた３Ｄモデル化オブジェクトがリモート・クライアントにストリームされる。
【００６１】
圧縮された２Ｄ画像の送信は一般に、インターネットのような電気通信ネットワークを用いて実施される。任意の適切な通信プロトコルを使用して、当該電気通信ネットワーク上で圧縮された２Ｄ画像を送信してもよい。例えば、当該圧縮された２Ｄ画像を、ＩＰプロトコル・スイートを用いてインターネット上で送信してもよい。ユーザ・データグラム・プロトコル（ＵＤＰ）が一般に、シミュレートされた３Ｄモデル化オブジェクトのストリーミングに使用される。なぜならば、ＵＤＰはコネクションレスであり、単純なメッセージ・ベースのコネクションレスなプロトコルであるからである。
【００６２】
リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）のような、ストリーミング・メディア・サーバを制御するために設計されたアプリケーション・プロトコルを使用することが好ましいことは理解される。
【００６３】
ステップＳ２４０を参照して上述したように、圧縮時には３つのケースが生じうる。圧縮を１つまたは複数の２Ｄ画像上で直接実施するときは、圧縮された２Ｄ画像がリモート・クライアントに送信される。当該リモート・クライアントはしたがって、３Ｄモデル化オブジェクト上で実施されたシミュレーションに関する最も完全な情報を受信する。
【００６４】
２つの２Ｄ画像の間の計算された差異に対して圧縮を実行するときには、２つの２Ｄ画像の間の当該差異のみがリモート・クライアントに送信される。興味深いことに、これによりサーバをリモート・クライアントに接続するネットワークの帯域幅の消費を制限することができる。さらに、リモート・クライアントが３Ｄモデル化オブジェクトの再構築（ステップＳ３０）に必要な計算リソースは少ない。
【００６５】
圧縮を、上記差異を計算しない圧縮と選択的に実施するとき、各頂点に蓄積するエラーのリセットを、リモート・クライアントが受信した圧縮された２Ｄ画像ごとに実施する。完全な２Ｄ画像（即ち、ステップ２３０ではなくステップ２３２で取得した画像）を送信する決定を、２つの方法に基づいて行ってもよい。
【００６６】
第１の方法は、定期的な完全更新を利用する。この場合、完全な圧縮された２Ｄ画像が定期的な時間間隔でリモート・クライアントに送信される。当該時間間隔を例えば夫々１ｍｓに予め設定してもよく、または、例えば蓄積エラーの予測値に従って動的に決定してもよい。圧縮された２Ｄ画像を、定期的な数のフレームで、即ち、ｎフレームごとにリモート・クライアントに送信することもできる。フレーム数ｎを、Ｅｃｌｉｅｎｔ≦ｎ．Ｅｆｒａｍｅの間はリモート・クライアントに完全な２Ｄ画像が送信されないように、決定してもよい。ここで、Ｅｃｌｉｅｎｔはクライアントで受け入れられる最大のエラーであり、Ｅｆｒａｍｅは２つの２Ｄ画像間の差異により取得した１つのフレームが保持する最大のエラーである。両方のＥｃｌｉｅｎｔが所定値であり、Ｅｆｒａｍｅは使用する圧縮機構に関連する統計値を用いて測定されることが好ましいことは理解される。
【００６７】
第２の方法は、ステップＳ２５０で取得したエラー・エミュレーションを利用する。ステップＳ２５０を参照して述べたように、差異の計算に起因する累積エラーのエミュレーションの結果をサーバにより有利に使用して、累積エラーが閾値を超えたときに当該差異を計算することなく、圧縮された画像を送信してもよい。サーバは圧縮に起因するエラーを予測し、サーバの専用機能が送信すべきフレームの種類を制御して、予測されたクライアントのエラーを固定閾値Ｅｔｈｒｅｓｈｏｌｄ未満に保つ。これを、Ｅｃｌｉｅｎｔ≦Ｅｔｈｒｅｓｈｏｌｄと書くことができる。圧縮された２Ｄ画像または２つの２Ｄ画像の間の圧縮された差異を送信すべきかどうかを制御する機能は、当業界で公知なように、例えばサーバ上のハードウェアまたはソフトウェア・モジュールであってもよいがこれらに限らない。
【００６８】
以上で、サーバが実施する動作（図１のステップＳ２０）を説明した。実際、サーバはこれらのステップをリアルタイムで実施する。これは、ステップＳ２００乃至２６０が当業界で公知なように所定の期間に実施されることを意味する。次に図２を参照して、リモート・クライアントにより実施されるステップＳ３０を説明する。
【００６９】
リモート・クライアントにより受信した圧縮された１つまたは複数の２Ｄ画像は、ステップＳ１０で実施したユーザ対話の結果を表示する目的で処理される。
【００７０】
ステップＳ３００で、リモート・クライアントが圧縮された２Ｄ画像を受信する。これは、リモート・クライアントが当業界で公知なようにフレームを受信するということである。
【００７１】
次に、ステップＳ３１０で、リモート・クライアントにより受信された圧縮された２Ｄ画像を当業界で公知なように解凍する。したがって、２Ｄ画像はステップＳ２４０で圧縮された後にもとの状態に復元される。
【００７２】
次に、ステップＳ３２０で、当該２Ｄ画像が、現在の２Ｄ画像と以前の２Ｄ画像の間の差異から計算されたものかどうかを判定（または検出）する。現在の２Ｄ画像はリモート・クライアントが最後に受信した画像であることは理解される。現在の画像が、リモート・クライアントが受信した第１の画像である場合には、当該判定を省略することができる。なぜならば、当該第１の画像は、必ず、２つの２Ｄ画像間の差異から得られなかった２Ｄ画像であるからである。即ち、第１の画像は完全な２Ｄ画像である。
【００７３】
受信した圧縮された２Ｄ画像が差異から得られたものでない場合には、当該２Ｄ画像をステップ３５０で３Ｄモデル化オブジェクトに変換する。
【００７４】
反対に、リモート・クライアントにより受信された圧縮された少なくとも１つの２Ｄ画像が、現在の２Ｄ画像と以前の２Ｄ画像の間の差異から計算されたものであるとステップＳ３２０で判定された場合には、未圧縮の２Ｄ画像を３Ｄモデル化オブジェクトに変換することを、ステップＳ３３０およびＳ３４０に従って実施する。ジオメトリ画像を３Ｄモデルに変換することが、当該ジオメトリ画像に格納された少なくとも正規メッシュが当該変換の結果として得られることを意味することは理解される。
【００７５】
当業界で公知なように、ステップＳ３３０で、現在の解凍された２Ｄ画像と以前に解凍された２Ｄ画像の間の合計を計算し、ステップＳ３４０で、計算した合計を３Ｄモデル化オブジェクトに変換する。
【００７６】
次に、ステップＳ３６０で、ステップＳ３４０またはＳ３５０で変換した２Ｄオブジェクトをリモート・クライアントに表示する。したがって、当該シミュレーションの結果がユーザに示される。これは、対話の結果が表示されるということである。
【００７７】
図５を参照すると、本発明に従う方法を実行するシステムのアーキテクチャの１例が示されている。当該システムはクライアント５２とサーバ５０を備える。当該クライアントとサーバの両方が、図８に示したもののようなコンピュータ・システムであってもよい。
【００７８】
サーバ５０は、リモート・クライアント５２の通信層５２０と通信するための通信層５００を備える。通信層５００と５２２はＯＳＩモデルのレイヤ１、２、および３と同様であってもよい。実際、当該通信層を、通信を管理するモジュール、例えばＯＬＬとして実装してもよい。当該通信層を、圧縮された２Ｄ画像を電気通信ネットワーク上で送信するために使用される通信プロトコルを管理するように適合させてもよいことは理解される。
【００７９】
サーバの通信層５００はステップＳ２００の対話を受信するように適合される。
【００８０】
クライアントはさらに、ミドルウェア層の上にアプリケーション層５２４を備える。当該アプリケーション層は、クライアントのディスプレイにグラフィカル・ユーザ・インタフェースを表示するように適合された表示可視化モジュール５２６を備えてもよい。当該アプリケーション層はさらに、グラフィカル・ユーザ・インタフェース上で検出したユーザ対話を管理するように適合された入力マネージャ５２８を備えてもよい。当該対話は、グラフィカル・ユーザ・インタフェース上の触覚装置により生成される。
【００８１】
サーバはさらにミドルウェア層５０２を備える。ミドルウェア層５０２は、ソフトウェア・アプリケーションにサービスを提供し、分散システムの様々なコンポーネントが通信しデータを管理できるようにする。同様に、クライアントもミドルウェア層５２２を備える。ミドルウェア層５０２と５２２は双方通信し、共に３Ｄモデル化オブジェクトを管理できることは理解される。
【００８２】
サーバのミドルウェア５０２は、対話に従って３Ｄモデル化オブジェクト上でシミュレーションを実施する（ステップＳ２１０）ように適合されたシミュレーション・モジュール５０４を備える。当該対話は、クライアントの入力マネージャにより管理されるユーザ対話であってもよい。当該シミュレーション・モジュールをさらに、当該シミュレーションの結果を少なくとも１つの２Ｄ画像に変換する（ステップＳ２２０）ように適合させてもよい。
【００８３】
サーバのミドルウェア５０２はさらに、２Ｄ画像と、２つの２Ｄ画像の間の差異から取得した画像を格納するためのデータベース５０６を備えてもよい。
【００８４】
サーバのミドルウェア５０２はさらに、当該２Ｄ画像と、２つの２Ｄ画像の間の差異とを計算する（ステップＳ２３０）ように適合された差異計算モジュールを備えてもよい。
【００８５】
サーバのミドルウェア５０２はまた、ステップＳ２５０を実施するように適合されたエラー予測モジュール５０８を備えてもよい。
【００８６】
サーバのミドルウェア５０２はまた、変換モジュール５１０、量子化モジュール５１２、およびステップＳ２４０で２Ｄ画像を圧縮するためのエンコーダ５１４を備えてもよい。
【００８７】
クライアントのミドルウェア５２２は、ステップＳ３１０を実施するように適合されたデコーダ・モジュール５３８および逆変換モジュール５３６を備えてもよい。逆変換モジュール５３６はさらに、ステップＳ３２０の決定を実施するように適合される。
【００８８】
クライアントのミドルウェア５２２はさらに、２つの２Ｄ画像間の差異を含むとして検出されたフレーム（ステップＳ３２０）を格納するための差異フレーム蓄積モジュール５３４を備えてもよい。当該差異フレーム蓄積モジュールはまた、２つの未圧縮の２Ｄ画像の間の合計を計算する（ステップＳ３３０）ように適合される。
【００８９】
クライアントのミドルウェア５２２はまた、２Ｄ画像を３Ｄモデル化オブジェクトに変換する（ステップＳ３４０およびＳ３５０）ように適合された変換モジュール５３２を備えてもよい。
【００９０】
クライアントのミドルウェア５２２はまた、シミュレートされた３Ｄモデル化オブジェクトが展開する３Ｄシーンに関するデータを格納するように適合された局所資産データベース５３０を備えてもよい。実際、サーバは単純にシミュレーションの結果をクライアントに送信するだけであり、対話に従って実施されたシミュレーションが関わらないオブジェクトは、不変である、即ち、シミュレーションに関与していないので、クライアントに送信する必要はない。したがって、帯域幅の必要性が大幅に減る。
【００９１】
図５に示すモジュールの実装が、専用のハードウェアまたはソフトウェアに依存してもよい。実際、当該モジュールは、図８に示したもののような、コンピュータ・システムにより実行されるソフトウェアの一部である。
【００９２】
本発明を、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置とデータおよび命令を送受信するように接続された少なくとも１つのプログラム可能プロセッサを備えるプログラム可能システム上で実行可能な、１つまたは複数のコンピュータ・プログラムで有利に実装してもよい。当該アプリケーションプログラムを、高レベルの手続型プログラミング言語もしくはオブジェクト指向プログラミング言語、または、必要ならばアセンブリ言語もしくは機械言語で実装してもよい。いずれの場合でも、当該言語はコンパイル型言語でもインタプリタ型言語であってもよい。
【図１】
2014130603.tif 000003
【図２】
2014130603.tif 000004
【図３】
2014130603.tif 000005
【図４】
2014130603.tif 000006
【図５】
2014130603.tif 000007
【図６】
2014130603.tif 000008
【図７】
2014130603.tif 000009
【図８】
2014130603.tif 000010
【外国語明細書】
2014130603000001.pdf