(57)【要約】【課題】３次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるためのコンピュータ実装方法を提供すること。【解決方法】１または複数のオブジェクトを備える３次元シーンを提供することであって、各オブジェクトは計算資源のコストを生成することと、３次元シーンにおいてロケーションのセットを判定することと、各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大ロケーション占有率で満たすことと、３次元シーンの各ロケーションに対し、最大計算コスト密度を計算することと、隣接するロケーションを１または複数のゾーンにグループ化することであって、各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コスト密度を有することを備える。【選択図】図１
2014123368.tif 000002
【特許請求の範囲】
【請求項１】
３次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるためのコンピュータ実装方法であって、
１または複数のオブジェクトを備える３次元シーンを提供する（１００）ことであって、各オブジェクトは計算資源のコストを生成することと、
前記３次元シーンにおいてロケーションのセットを判定する（１１０）ことと、
各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大ロケーション占有率で満たす（１２０）ことと、
前記３次元シーンの各ロケーションに対し、最大計算コスト密度を計算する（１３０）ことと、
隣接するロケーションを１または複数のゾーンにグループ化する（１６０）ことであって、各ゾーンは、前記ゾーンのリアルタイム実行を保証する算出を行った計算コスト密度を有することを備えることを特徴とする方法。
【請求項２】
前記３次元シーンの前記ロケーションに対して計算される前記最大計算コスト密度を集計する（１３２）ステップと、
前記集計された最大計算コスト密度から前記３次元シーンのコスト密度のマップを構築する（１３４）ステップとをさらに備えることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
各ロケーションをオブジェクトによる最大ロケーション占有率で満たすステップは、動的オブジェクトに対して実行され、動的オブジェクトは、前記３次元シーンの中を潜在的に移動することができるオブジェクトであることを特徴とする請求項１または請求項２に記載のコンピュータ実装方法。
【請求項４】
前記３次元シーンの各ロケーションに対し、前記各ロケーションに置かれた静的オブジェクトを抽出する（１４０）ステップであって、静的オブジェクトは、前記３次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトであることと、
前記３次元シーンの制約マップを前記抽出された静的オブジェクトから構築する（１４２）ステップとをさらに備えることを特徴とする請求項１乃至請求項３のいずれか１項に記載のコンピュータ実装方法。
【請求項５】
前記静的オブジェクトを抽出するステップは、
前記３次元シーンの各ロケーションに対し、前記３次元シーンの前記各ロケーション上の前記静的オブジェクトのプリントを抽出することをさらに備えることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項６】
前記３次元シーンの前記コスト密度のマップと前記３次元シーンの制約マップとを集計する（１５０）ステップとをさらに備えることを特徴とする請求項４または請求項５に記載のコンピュータ実装方法。
【請求項７】
前記最大計算コスト密度の計算は、Ｐ／Ａ比率の計算を備えることであって、Ｐは、前記ロケーションを処理するために必要な計算資源の測定割合であり、およびＡは、前記３次元シーンの前記ロケーションの領域であることを特徴とする請求項１乃至請求項６いずれか１項に記載のコンピュータ実装方法。
【請求項８】
前記グループ化のステップにおいて、前記算出した各ゾーンの計算コスト密度は、前記ゾーンを処理するために必要な前記計算資源が事前に定義された閾値未満であるようにすることを特徴とする請求項１乃至請求項７いずれか１項に記載のコンピュータ実装方法。
【請求項９】
前記グループ化のステップにおいて、２または複数のゾーン間の前記算出した計算コスト密度は、適宜に同じであることを特徴とする請求項１乃至請求項８いずれか１項に記載のコンピュータ実装方法。
【請求項１０】
前記グループ化のステップは、各ゾーンによって過去に行われた前記計算資源の使用を考慮に入れながらさらに実行されることを特徴とする請求項１乃至請求項９いずれか１項に記載のコンピュータ実装方法。
【請求項１１】
コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、請求項１乃至請求項１０のいずれか１項に記載の方法のステップを実行するように適応されることを特徴とするコンピュータプログラム。
【請求項１２】
請求項１１に係るコンピュータプログラムが記録されたコンピュータ可読記憶媒体。
【請求項１３】
１または複数のオブジェクトを備える３次元シーンを記憶するための記憶システムと、
３次元シーンをパーティション分けする複数のゾーンを処理するための処理ユニットであって、各ゾーンは、前記処理ユニットの計算資源によって処理され、前記処理ユニットは、請求項１乃至請求項１０のいずれか１項に記載の方法に従って、前記３次元シーンを複数のゾーンにパーティション分けするように適応される、処理ユニットとを備えることを特徴とするコンピュータ化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、３次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるための方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
ＭＭＯ(Massively Multi-user On line applications)によって、大勢のユーザが、現実世界の事象のシミュレータ(real-world phenomena simulator)、没入型アプリケーションなどのアプリケーションを同時に使用できるようになる。同様に、ＭＭＯＧ(Massively Multi-user On line Games)によって、大勢のゲーマがビデオゲームを同時に行えるようになる。ＭＭＯおよびＭＭＯＧは、例えば、インターネットのような、ユーザまたはゲーマがアプリケーションまたはビデオゲームに接続可能にするコンピュータネットワークに特に依存する。本明細書にわたり「アプリケーション」および「ビデオゲーム」という用語は、同義であると理解され、そしてＭＭＯおよびＭＭＯＧという用語は、区別せずに使用される。
【０００３】
ＭＭＯは、複雑で大規模な仮想環境を含み、その環境は、ユーザまたはゲームプレーヤに、より現実的な体験を与えるために、可能な限り詳細で、可能な限りリアルタイムに近づけてレンダリングされることが望ましい。ＭＭＯは、特に、３Ｄシーンの表現および操作用に設計され、そして典型的には、エンドユーザのコンピュータ上で、対話的で逐次的なリアルタイムの３Ｄシーンの生成に必要なアプリケーションに利用される。ユーザが３Ｄシーンと対話する時に、コンピュータは、ユーザが参加している、継続して進行する現実感をユーザに伝えるのに十分高速な３Ｄ表現を再描画する。シーンは、ユーザが３Ｄシーンと対話する時に操作することができる多数の別個のオブジェクトから構成される。従って、ＭＭＯは、大容量のデータ、高データレートを含み、そして空間が複雑で非常に詳細な仮想環境において、リアルタイムで参加している大勢のユーザを管理するためにデータの高複雑性が一般に要求される。
【０００４】
ＭＭＯは、典型的には、例えば、Ｍｕｌｔｉ−Ｂｏｄｙ  Ｒｉｇｉｄ  Ｄｙｎａｍｉｃｓ，Ｈｕｍａｎ  Ｓｉｍｕｌａｉｏｎ，Ｃｌｏｔｈ  Ｓｉｍｕｌａｔｉｏｎ，Ｐａｒｔｉｃｌｅ  Ｓｉｍｕｌａｔｉｏｎなどの、コンピュータモデルにおいて現実世界の事象をシミュレートするために使用される。シミュレーションは、製造工程および製品に使用される、工程のシミュレーションおよび使用する製品のシミュレーションを生成する素材の物理的プロパティ（強度、弾性など）などの、現実世界の事象を記述する正確なデータおよびアルゴリズムを要求する。３ＤＣＡＤ／ＣＡＭ（コンピュータ支援設計、コンピュータ支援製造）ツールによって、製品または構成部品の３Ｄ表現を生成することが可能になる。
【０００５】
ＭＭＯおよびＭＭＯＧの主要なおよび重要な要求は、プレーヤの人数にかかわらず、そしてアプリケーションを解決してレンダリングするために生じる計算コストにかかわらず、接続しているプレーヤにリアルタイム応答を常時提供することである。さもなければ、プレイ体験の質が落ち、アプリケーションに対するプレーヤの興味が低下し、共同配信されるデザインレビューを実行する時の対話が制限される。  ＭＭＯＧと同様にＭＭＯは、絶え間なく変化する作業負荷に動的に適応するためにスケーラブルでなければならず、従ってリアルタイムな実行を維持しなければならない。スケーラビリティは、特に、アプリケーションを同時に使用することができるユーザの数、シミュレーションを計算する計算資源の数、アプリケーションによって許容される３Ｄシーンのオブジェクト間で同時に対話する数などを備える。ＭＭＯＧの場合、動的オブジェクトにすべて包含される位置およびグラフィックの属性だけでなく、ユーザの数も著しく変わり得る。それにもかかわらず、周辺景色の設定は、一回限りであり、動的オブジェクトおよびサポートされる挙動クラスの類型は、ゲームが開始される前に事前に定義されている。言い換えれば、ＭＭＯＧの３Ｄシーンは、計算資源の要求を強固に制限するいくつかの事前に定義された特性を備える。従って、スケーラビリティを改善する。
【０００６】
一方、アドバンストＭＭＯの場合、３Ｄシーンの景色および分布類型は、特にアプリケーションが稼動している間に発展して豊富になり得る。実際に、ＭＭＯは、現実世界の事象が目的であり、そこでオブジェクトの挙動は、動的であって、事前に定義された挙動クラスを除外する。結果として、ＭＭＯの３Ｄ景色は、ＭＭＯＧのように事前に定義された特性を使用することができない。
【０００７】
スケーラビリティの問題は、ＭＭＯＧによって対処される。このようなソリューションおよび技術は、シャーディングおよびゾーニングを含む。シャーディングは、作業負荷の増加に対処するために、世界（一部または全体）を複製すること、および新たにログインしたユーザをホストすることで構成されているが、シャード間の対話は不可能である。従って本質的に、シャーディングは、仮想世界の空間および分布の無制限の拡大をサポートすることができない。即ち、シャードは、実際には、それらに割り当てられた処理資源の実行によって決められる物理的容量の上限を有する。
【０００８】
ゾーニングは、いわゆるゾーンにおける仮想世界の空間のパーティションに依存し、ゾーンのそれぞれに対し、計算資源が責任を負う。オブジェクト／ユーザは、ゾーンからゾーンへとナビゲートすることができる。関連する計算資源は、その後、専用メッセージをネットワークで通信して、このような移動オブジェクトをそれらの計算モデルに統合する。
【０００９】
しかしながら、ＭＭＯＧでは、ゾーンは、互いに完全に独立して発展する。即ち、動的オブジェクトは、事前に定義されたゾーン「Ａ」の数少ない通過場所のうちの１つからゾーン「Ｂ」の数少ない別の通過場所に単に「空間移動」される。最適なロードバランシングの問題は、ゾーンを障害物またはソリッド壁でフェンスすることによって、ゾーン間の通過場所の数を制限することによって、各ゾーン内のオブジェクトの分布を常時制限することによって、そして調整された静的な装飾物でゾーンを満たすことによって解決される。ある程度、仮想環境の異なる領域は、リアルタイム要求に合致するようにカスタマイズされる。
【００１０】
高度なＭＭＯの場合、このような単純化は許容できない。実際に、仮想環境、特に現実世界の事象がシミュレートされる時、景色の人工フェンシングをサポートすることができず、シミュレートされる現実世界のカスタム化の可能性を制限する。一方、現実世界では、ゾーンはオープンであり、潜在的にどのオブジェクトも通過することができる、共通の連続境界を隣接するゾーンと共有する。従って、その性質上、ゾーニングは、高度なＭＭＯで要求されるような潜在的に無制限な仮想世界の増大を管理することができる。しかしながら、ＭＭＯＧにおいて実行されるようなゾーニングは、仮想環境、シミュレートされる現実世界、およびゾーニング特性に対する制約のアドホックなカスタマイズを要求するので、ＭＭＯのコンテキストに適応されない。
【００１１】
このようなコンテキストにおいて、現実世界のシミュレーションアプリケーションの３Ｄシーンのスケーラブルで、シームレスで、効率的なリアルタイムシミュレーションを提供する方法、コンピュータプログラム、およびシステムに改善する必要が依然として存在する。
【発明の概要】
【００１２】
一態様に従って、本発明は、３次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるためのコンピュータ実装方法を提供する。その方法は、
−１または複数のオブジェクトを備える３次元シーンを提供することであって、各オブジェクトは、計算資源のコストを生成することと、
−３次元シーンにおいてロケーションのセットを判定することと、
−各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大ロケーション占有率で満たすことと、
−３次元シーンの各ロケーションに対し、最大計算コスト密度を計算することと、
−隣接するロケーションを１または複数のゾーンにグループ化することであって、各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コスト密度を有することを備える。
【００１３】
方法は、以下のうちの１または複数を備えることができる。
−３次元シーンのロケーションに対して計算される最大計算コスト密度を集計し、そして集計された最大計算コスト密度から３次元シーンのコスト密度のマップを構築することと、
−各ロケーションをオブジェクトによる最大ロケーション占有率で満たすステップは、動的オブジェクトに対して実行され、動的オブジェクトは、３次元シーンの中を潜在的に移動することができるオブジェクトであることと、
−３次元シーンの各ロケーションに対し、上述の各ロケーションに置かれた静的オブジェクトを抽出することであって、静的オブジェクトは、３次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトであり、そして３次元シーンの制約マップを抽出された静的オブジェクトから構築することと、
−静的オブジェクトを抽出するステップは、３次元シーンの各ロケーションに対し、３次元シーンの上述の各ロケーション上の静的オブジェクトのプリントを抽出することをさらに備えることと、
−３次元シーンのコスト密度のマップと３次元シーンの制約マップとを集計するステップと、
−計算コストの最大密度の計算は、Ｐ／Ａ比率の計算を備え、Ｐは、ロケーションを処理するために必要な計算資源の測定割合であり、そしてＡは、３次元シーンのロケーションの領域であることを備えることと、
−グループ化のステップにおいて、算出した各ゾーンの計算コスト密度は、ゾーンを処理するために必要な計算資源が事前に定義された閾値未満であるようにすることと、
−グループ化のステップにおいて、２または複数のゾーン間の算出した計算コスト密度は、適宜に同じであることと、
−グループ化のステップは、各ゾーンによって過去に行われた計算資源の使用を考慮に入れながらさらに実行されること。
【００１４】
本発明は、コンピュータによって実行される命令を備えるコンピュータプログラムをさらに提案し、その命令は、本発明の方法のステップを実行するように適応される。
【００１５】
本発明は、上記のコンピュータプログラムが記録されたコンピュータ可読記憶媒体をさらに提案する。
【００１６】
本発明は、
−１または複数のオブジェクトを備える３次元シーンを記憶するための記憶システムと、
−３次元シーンをパーティション分けする複数のゾーンを処理するための処理ユニットであって、各ゾーンは、処理ユニットの計算資源によって処理され、処理ユニットは、本発明に従って、３次元シーンを複数のゾーンにパーティション分けするように適応されることを備えるコンピュータ化システムをさらに提案する。
【図面の簡単な説明】
【００１７】
これより本発明の実施形態を、限定されない例を用いて、および添付図面を参照して説明する。
【図１】本発明における方法の例を示すフローチャートである。
【図２】ショッピングモールの仮想世界の例を示す上面図である。
【図３】ロケーションの最大コスト密度の分析の例を示す図である。
【図４】ロケーションの最大コスト密度の数量化の例を示す図である。
【図５】コスト密度のマップの例を示す図である。
【図６】制約マップの例を示す図である。
【図７】図５のコスト密度のマップと図６の制約マップとの集計の例を示す図である。
【図８】コンピュータ化システムの例を示す図である。
【発明を実施するための形態】
【００１８】
図１のフローチャートを参照して、３次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるためのコンピュータ実装方法を提案する。そのプロセスは、３次元（３Ｄ）シーンを提供することを備える。３Ｄシーンは、現実世界の環境をシミュレートすることができる。３Ｄシーンは、１または複数のオブジェクト、例えば、３Ｄモデル化オブジェクトを備える。各オブジェクトは、計算資源のコストを生成する。即ち、各オブジェクトは、３Ｄシーンで実行されるために、計算資源の時間を要求する。方法は、３Ｄシーンのロケーションのセットの判定をさらに備える。３Ｄシーンのロケーションは、３Ｄシーン内のオブジェクトにアクセス可能な領域とすることができる。３Ｄシーンのロケーションは、３Ｄシーンのオブジェクトが網羅されるボリュームとすることができる。方法は、各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大ロケーション占有率で満たすことをさらに備える。方法は、３次元シーンの各ロケーションに対し、計算コストの最大密度を計算することをさらに備える。計算コストの最大密度は、単位領域当たりまたは単位ボリューム当たりの計算コストを参照することができる。方法は、隣接するロケーションを１または複数のゾーンにグループ化することも備える。各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コスト密度を有する。算出したゾーンの計算コスト密度は、各ロケーションをその領域またはボリュームで乗じた最大コスト密度の合計である。
【００１９】
このような方法は、３Ｄシーンのアドホックなカスタマイズをすること、またはゾーニングの特性に対する制約を課すことをせずに、リアルタイム実行の保証が与えられるように３Ｄシーンのゾーニングを改善する。さらに、本方法は、３Ｄシーンの拡張、オブジェクト類型の拡張、およびその挙動クラスの拡張をさらにサポートする。実際に、グループ化は、各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大占有率で満たすことによって実行される、３Ｄシーンの各ロケーションの飽和の結果によって決まる。興味深いことに、オブジェクトの最大占有率は３Ｄシーンの現実的状態を反映する。言い換えれば、グループ化は、各ロケーション上のオブジェクトの分布が最大であるシナリオの結果であって、当該シナリオは、シミュレートされる現実世界に関して現実的である。
【００２０】
方法は、コンピュータ実装される。これは、方法のステップ（またはほぼすべてのステップ）が、少なくとも１つのコンピュータまたはコンピュータ化されたシステムによって実行されることを意味する。例において、方法のステップの少なくとも一部のトリガは、ユーザとコンピュータとの対話を通じて実行することができる。要求されるユーザとコンピュータとの対話レベルは、予測される自動性のレベルによって決まり、そしてユーザの望みを実装する必要性とのバランスを取ることができる。例において、このレベルは、ユーザ定義および／または事前定義とすることができる。
【００２１】
例えば、１または複数のオブジェクトを備える３Ｄシーンを提供するステップを、ユーザ選択、例えば、シーンの選択に基づいて実行することができる。ユーザは、キーボード、マウス、スタイラスなどの、ハプティックデバイスを経由して選択を実行できる。例えば、２つボタンのマウスでは、左側のボタンは、シーンリストの中からシーンを選択するために使用することができる。システムは、デフォルトによって、即ち、ユーザ選択を要求することをせずにシーンを特定することもできる。
【００２２】
本方法のコンピュータ実装の典型的な例は、メモリおよびプロセッサを備えるシステムを用いて方法を実行することである。データベースを記憶するメモリは、そのような記憶に適した任意のハードウェアにすぎない。プロセッサを計算ユニットと呼ぶこともできる。このようなシステムは、現実世界のシミュレーションアプリケーションのコンテキストにおいて、スケーラブルでシームレスで効率的な３Ｄシーンのリアルタイムシミュレーションを提供する。当該システムは、３Ｄシーン、および３Ｄシーンにおけるオブジェクトを表示するのに適したグラフィカルユーザインターフェース（ＧＵＩ）をさらに備えることができる。ＧＵＩは、メモリおよびプロセッサに接続される。
【００２３】
「データベース」とは、検索および取得のために体系化されたデータの任意の集合（即ち、情報）を意味する。メモリに記憶される場合、データベースをコンピュータによって高速に検索および取得できるようにする。データベースは、実際に、さまざまなデータ処理動作とともにデータの記憶、検索、変更、および削除を促進するように構造化されている。データベースは、レコードに細分化することができるファイルまたはファイルのセットから構成され、それぞれのレコードは、１または複数のフィールドから構成される。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを検索できる。キーワードを使用し、そしてコマンドをソートして、ユーザは、使用しているデータベース管理システムのルールに従って、特定のデータ集計に対するレポートを検索または作成するために多数のレコードのフィールドを高速に探索し、再配置し、グループ化し、そして選択することができる。
【００２４】
方法の場合、データベースは、１または複数のオブジェクトを備える３次元シーンを備える。１または複数のオブジェクトはデータベースに記憶され、そしてシーンから独立して記憶されることが可能である。データベースは、システムによって実行される命令を備えるコンピュータプログラムをさらに備えることができる。命令は、本方法のステップを実行するように適応される。
【００２５】
方法は、概してオブジェクトを操作する。オブジェクトは、データベースに記憶されたデータによって定義される任意のオブジェクトである。さらに言うと、「オブジェクト」という表現は、データそのものを指す。システムのタイプに従って、オブジェクトを異なる種類のデータによって定義できる。システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってよい。そのような異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。それよって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＣＡＭデータ、ＣＡＥデータとも言える。しかしながら、このようなシステムは、このようなシステムの任意の組み合わせに対応するデータによってオブジェクトを定義できるので、互いに排他的ではない。システムは、従って、以下に提供されるシステムの定義から明らかであるように、ＣＡＤシステムとＰＬＭシステムとの双方になることもある。システムは、オブジェクトがユーザアクションに基づいて操作されるＭＭＯまたはＭＭＯＧになることもある。
【００２６】
ＣＡＤシステムとは、ＣＡＴＩＡ（登録商標）などの、モデル化オブジェクトのグラフィック表現に基づいてモデル化オブジェクトを設計するのに少なくとも適した任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを備える。ＣＡＤシステムは、例えば、エッジまたは線、ある場合では面または表面を使用して、ＣＡＤモデル化オブジェクトの表現を提供できる。線、エッジまたは表面を、例えば、ＮＵＲＢＳ(Non-Uniform Rational B-Splines)などの、さまざまな方法で表現できる。詳細には、ＣＡＤファイルは、形状を生成できる仕様を包含し、次々に生成される表現が可能となる。モデル化オブジェクトの仕様を単一のＣＡＤファイルまたは複数のＣＡＤファイルに記憶することができる。ＣＡＤシステムのモデル化オブジェクトを表現するファイルの典型的なサイズは、１部品当たり１メガバイトの範囲内である。そしてモデル化オブジェクトは、典型的には、数千から成る部品のアセンブリとすることができる。
【００２７】
ＣＡＤのコンテキストにおいて、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクトとすることができ、例えば、部品または部品のアセンブリ、場合によっては製品のアセンブリなどの、製品を表現する。「３Ｄモデル化オブジェクト」とは、その３Ｄ表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、部品をあらゆる角度から見ることを可能にする。例えば、３Ｄモデル化オブジェクトが３Ｄ表現されると、その軸を操作して任意に回転させ、またはその表現が表示されている画面の軸を任意に回転させることができる。これは、特に、３Ｄにモデル化されていない２Ｄアイコンを除外する。３Ｄ表現の表示は、設計を容易にする（即ち、統計的に、設計者が自分達の仕事を完成する速度が上がる）。これは、製品の設計が製造工程の一部であるので、産業における製造工程を加速させる。
【００２８】
ＣＡＤシステムは、履歴ベースとすることができる。この場合、モデル化オブジェクトは、幾何学的特徴の履歴を備えるデータによってさらに定義される。モデル化オブジェクトは、実際に、生身の人間（即ち、設計者／ユーザ）が標準のモデリング機能（例えば、押し出し、回転、カット、および／またはラウンドなど）および／または標準のサーフェシング機能（例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングおよび／またはその他）を使用することによって設計される。このようなモデリング機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。これは、設計特徴の履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて前述の幾何学的特徴を結合する非巡回データフローを介して保存されることを意味する。履歴ベースのモデリングパラダイムは、８０年代当初からよく知られている。モデル化オブジェクトは、２つの永続的データ表現、即ち履歴とＢ−ｒｅｐ（境界表現）とによって記述される。Ｂ−ｒｅｐは、履歴で定義された計算結果である。モデル化オブジェクトが表現される時にコンピュータの画面上に表示される部品の形がＢ−ｒｅｐ（のテッセレーション）である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトに行われた動作に対する情報を集める。Ｂ−ｒｅｐを履歴と一緒に保存して、複雑な部品を表示しやすくすることができる。設計意図に従って部品の設計変更ができるようにするために、履歴をＢ−ｒｅｐと一緒に保存できる。
【００２９】
ＰＬＭシステムとは、物理的な製造品を表現するモデル化オブジェクトの管理に適した任意のシステムを意味する。ＰＬＭシステムにおいて、モデル化オブジェクトは、従って、物理的オブジェクトの製造に適したデータによって定義される。このようなデータは、典型的には、次元値および／または許容値とすることができる。オブジェクトを間違いなく製造する場合、実際にこのような値を有する方がよい。
【００３０】
ＣＡＥシステムとは、モデル化オブジェクトの物理的な挙動の分析に適した任意のシステムを意味する。ＣＡＥシステムにおいて、モデル化オブジェクトは、従って、そのような動きの分析に適したデータによって定義される。このデータは、典型的には、挙動の特徴のセットとすることができる。例えば、ドアに対応するモデル化オブジェクトを、ドアが軸の回りを回転することを示すデータによって定義することができる。
【００３１】
図８は、クライアントコンピュータシステム、例えば、ユーザのワークステーションを示す。
【００３２】
クライアントコンピュータは、内部通信バス１０００に接続されたＣＰＵ１０１０と、さらにそのＢＵＳに接続されたＲＡＭ１０７０とを備える。クライアントコンピュータは、ＢＵＳに接続されたビデオランダムアクセスメモリ１１００と関連付けられたＧＰＵ(Graphical Processing Unit)１１１０をさらに備える。ビデオＲＡＭ１１００は、フレームバッファとしても当業者に知られている。マスストレージデバイスコントローラ１０２０は、ハードドライブ１０３０などの、マスメモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に具体化するのに適したマスメモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリなどの、半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの、磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭディスク１０４０とを含む。前述のいずれのメモリも、特別に設計されたＡＳＩＣ(application-specific integrated circuits)を補完するか、またはそれに組み込むことができる。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの、ハプティックデバイス１０９０を含むこともできる。カーソル制御デバイスがクライアントコンピュータで使用されることによって、ユーザがカーソルをディスプレイ１０８０の望ましい任意の場所に選択的に位置付けることが可能になる。さらに、カーソル制御デバイスによって、ユーザは各種コマンドを選択し、そして制御信号を入力できるようになる。カーソル制御デバイスは、制御信号をシステムに入力するためのいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスは、マウスとすることができ、マウスのボタンは、信号を生成するために使用される。
【００３３】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を実行させるための手段を備える。本発明を、例えば、デジタル電子回路に実装するか、あるいはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに実装できる。本発明の装置は、プログラム可能なプロセッサによって実行されるマシン可読記憶デバイスに有形に具体化されるコンピュータプログラム製品に実装されてもよいし、本発明の方法のステップは、入力データで動作して出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラム可能なプロセッサによって実行されてもよい。
【００３４】
本発明をプログラム可能なシステムで実行可能な１または複数のコンピュータプログラムに好適に実装することができる。プログラム可能なシステムは、データおよび命令をデータ記憶システムから受信してデータ記憶システムに送信するために接続された少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。アプリケーションプログラムを、ハイレベルの手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語か、または必要に応じてアセンブリ言語もしくは機械語に実装できる。いずれの場合も、それらの言語は、コンパイラ型言語またはインタープリタ型言語とすることができる。
【００３５】
図１のフローチャートを参照して、これより３次元シーンを複数のゾーンにパーティション分けするための方法の例について説明する。
【００３６】
ステップ１００において、１または複数のオブジェクトを備える３次元（３Ｄ）シーンが提供される。３Ｄシーンの提供は、３Ｄシーンおよびその１または複数のオブジェクトをディスプレイに表示すること、例えば、図２を参照して述べるディスプレイ１０８０上に表示することを備えてもよい。３Ｄシーンは、オブジェクト間の空間関係が記述される空間である。そのシーンは、少なくとも１つのオブジェクトで構成され、そしてそのオブジェクトは、モデル化オブジェクトまたは３Ｄモデル化オブジェクトとすることができるが、これらに限定されない。３Ｄモデル化オブジェクトは、３Ｄ空間におけるオブジェクトの記述である。３Ｄシーンは、座標を用いて３Ｄ空間のあらゆるポイントを記述して形状を数学的に表現できる、物理的世界のモデルである。３Ｄシーンは、典型的には、オブジェクト間の現実的な対話がシミュレートされた、現実世界をシミュレートしたものである。現実的な対話という表現は、シミュレートされる対話が、現実世界、例えば、力および作用（重力、磁力、接触力）のような物理法則や、情報の流れ、制御イベントのような制御法則の対話を反映するという意味である。１または複数のオブジェクトは、３Ｄシーン内において発展し、シミュレートされる現実世界の法則、例えば、２つのオブジェクトは互いに交差することができないといった法則に従う。３Ｄシーンは、特定のシナリオのために変更可能であるレイアウトを備える。シナリオは、３Ｄシーンにおける１または複数のオブジェクトのうちの少なくとも予測可能な対話を記述する。シナリオは、従って、顧客の流量管理に関する、または火災時の避難の安全性に関する店舗内の新しいセクションへの影響を分析するなどの、アクティビティのコンテキストにおいて３Ｄシーンが使用されるまたは３Ｄシーンの使用が企図される１つのやり方を記述する。各特定のシナリオは、レイアウト上でシミュレートされる。シナリオは、ユーザによる定義が可能であることを理解されたい。実際に、３Ｄシーンのレイアウトは、３次元シーンの中を移動することができない、および別のオブジェクトが横断(traverse)することができない静的オブジェクトで構成される。
【００３７】
図２は、ショッピングモールの仮想世界をシミュレートする３Ｄシーンの上面図の例を示す。この仮想モールは、（太線で表された）壁で隔てられたいくつかの店舗２００、２１０、２２０、２３０と、通路２６０、２７０と、階段２４０、２５０とで構成される。店舗は、棚２８０、レジ２９０および他の機器を包含する。図２において、３Ｄシーンのレイアウトは、通路、廊下、壁、棚の面などの、静的オブジェクトで構成される。レジなどの３Ｄシーンの他のオブジェクトは静的オブジェクトではないので、レイアウトの一部ではない。実際には、レジがレイアウトの一部であると指定されない場合、すなわち、静的オブジェクトである場合を除いて、レジは動かすことができるオブジェクトである。
【００３８】
次に、図１のステップ１１０において、ロケーションのセットは３Ｄシーンで判定される。つまり、２つまたは複数のロケーションが３Ｄシーンで特定される。あるいはまた、１つのみのロケーションを判定することができる。ロケーションは、３Ｄシーンのオブジェクトによって到達可能な３Ｄシーンの一部である。典型的には、３Ｄシーンのロケーションは、動的オブジェクトによって到達可能である。動的オブジェクトは、３Ｄシーンの中において潜在的に移動することができるオブジェクトである。動的オブジェクトは、従って、３次元シーンの中を全く移動しない、および別のオブジェクトが横断することができない静的オブジェクトとは対極をなす。ロケーション条件は、３Ｄシーンのオブジェクトにアクセス可能な３Ｄシーンの境界領域を指定することができるか、または３Ｄシーンのオブジェクトが網羅された３Ｄシーンのボリュームを指定することもできる。言い換えれば、ロケーションは、１または複数のオブジェクトによって占有されるまたは占有に利用可能な３Ｄシーンの場所とすることができる。
【００３９】
図２に示した３Ｄシーンに戻って説明すると、顧客（図示されず）はオブジェクトによってシミュレートされる。顧客は、歩き、眺め、棚に陳列した商品を選んでそれらを自分達のショッピングカートに入れることができる。商品（図示せず）もまたオブジェクトであることを理解されたい。これらの顧客および商品は、動的オブジェクトであり、即ち、３Ｄシーンの中を潜在的に移動することができるオブジェクトである。ここでは、動的オブジェクトのリストおよび予想されるアクションのリストは、広範ではなく、そしてアプリケーションの目的および３Ｄシーンによってサポートされるシナリオの性質によって決まる。図２で表現された３Ｄシーンは、永続的に稼動するまたは計算資源によって処理される。これは、ユーザが常時ログイン／ログアウトしながら、モール内に新しい店舗が開業し、リフトのような新しい設備が追加され、そして新しい商品が導入されることを含む。言い換えれば、レイアウトを変更することができ、動的オブジェクトも変更できる。例えば、顧客の人数を省き、追加し、または変更することも可能である。
【００４０】
３Ｄシーンは、従って、静的オブジェクトのレイアウトと上述のレイアウトにおいて移動する／発展する動的オブジェクトのセットとを備えるものと企図される。興味深いことに、ロケーションと静的オブジェクトは、密接に関係する。実際に、レイアウト内の動的オブジェクトの動きは、動的オブジェクトが横断することができない、３Ｄ空間におけるサーフェスまたはボリュームを定義する静的オブジェクトによって制限される。例えば、図３において、顧客３４およびショッピングカート３５を表現するオブジェクトは、静的オブジェクトである通路３３（図２の通路２７０、棚２８０を指す）を移動する動的オブジェクトである。通路３３の地面は、動的オブジェクトによって到達可能であり、従って、ロケーションとして特定することができる。別例として、山積みの缶３２を表現するオブジェクトは、１つの棚３１から潜在的に移動することができる（例えば、顧客によって缶が掴まれてショッピングカートに入れられる）動的オブジェクトである。陳列ケース３０の棚３１を、従って、ロケーションであると判定することができる。
【００４１】
図１に戻って参照すると、ステップ１２０において、事前に判定された各ロケーションは、最も高価な計算コストに達するオブジェクトによって最大ロケーション占有率で満たされる。ロケーションを、オブジェクトによって最大ロケーション占有率で満たすことは、オブジェクトがロケーションに置かれること、およびそのロケーションに置かれるオブジェクトの数が、ロケーションで許容されるオブジェクトの最大数であることを意味する。このオブジェクトの最大数はロケーションの特性であり、そしてその特性を３Ｄシーンで再生されまたは適用されるシナリオによって定義できる。シナリオは、シミュレートされる現実世界に関して現実的であり、そして３Ｄシーンのオブジェクトの起こり得るアクションを制限する。
【００４２】
３Ｄシーンの１または複数のオブジェクトは、当該技術分野において知られたように、インスタンス化オブジェクトである。オブジェクトは、３Ｄシーンでインスタンス化される時に計算コストを生成する。インスタンス化オブジェクトの計算コストは、インスタンス化パラメータの関数である。これらインスタンス化パラメータは、選択されたオブジェクトの３Ｄメッシュの複雑度、テクスチャの精度、３Ｄシーンのオブジェクトの反射および陰影、接触／衝突、弾性、熱伝達などの、力学的挙動と関連するプロパティであってよいが、これらに限定されない。ロケーションのオブジェクトの最大数に対して生成される計算コストは、インスタンス化パラメータが最大（例えば、現実度を最大にしたインスタンス化）の時に最大になることを理解されたい。
【００４３】
図２を参照すると、商品を店舗２００の棚２８０に置くことができる。例えば、商品がシャンプーボトルであってもよいし、棚がロケーションであってもよい。３Ｄシーンが現実世界のシミュレーションシナリオを再生するので、この棚に対する最も高価な計算コストを得ることができるように、棚は最大現実度でインスタンス化されたシャンプーボトルの最大数をサポートできる。この状況を図３に示す。陳列ケース３０は、６つの棚３１を備える。陳列ケース３０は、許容される最も大きい棚（３１）であり、レンダリングのための複雑な３Ｄメッシュおよびリッチテクスチャを備える最も高価なＣＰＵの缶を有し、それぞれの棚が山積みの缶（３２）の最大容量である、陳列ケースの最大コストの状況において示されている。
【００４４】
さらに図２を参照すると、別の例のように、オブジェクトを通路２７０に置くことができる。例えば、オブジェクトは、買い物かごを提げたユーザであってもよい。同様に、３Ｄシーンが現実世界のシミュレーションシナリオを再生するので、通路は、棚に対する最も高価な計算コストを生成する買い物かごを提げたユーザの最大数を備えることができる。これを図３に示すと、ロケーション、ここでは通路３３(図２の通路２７０、棚２８０を指す)は、各顧客がアイテム３６で一杯のショッピングカート３５を押している場合が最大コストの状況であり、各顧客および顧客のカートは「数珠つなぎ」の状況であることを示している。即ち、「数珠つなぎ」の状況は、通路３３が顧客の最大数を備えるという悪化した状況である。オブジェクト（ユーザ、カート、およびアイテム）は、計算資源の最大コストを生成するために選択される、パラメータのインスタンス化によってインスタンス化されることを理解されたい。例えば、レンダリングパラメータは、オブジェクトの最も緻密な表現を得るために選択される。
【００４５】
好適には、ステップ１２０を動的オブジェクトのみに対して実行してもよい。即ち、３次元シーンの中を潜在的に移動することができるオブジェクトに対して実行できる。実際に、動的オブジェクトの計算コストは、動的オブジェクトの数、動的オブジェクトのレンダリングの精度などの要因によって決まるので、動的オブジェクトは予測不可能な計算コストを有する。一方、静的な、即ち、３次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトは、計算資源の予測可能な計算コストを生成する。言い換えれば、静的オブジェクトの計算資源のコストを予め知ることができる。
【００４６】
従って、ステップ１２０において、ロケーションで許容できるオブジェクトが最大数に達し、およびそのオブジェクトが少なくとも最大現実度でインスタンス化される時に、所与のロケーションに対して最も高価な計算コストに達する。従って、最大コスト状況の分析が実行される。即ち、仮想世界の各ロケーションは、ロケーションのＣＰＵの最大コスト状況において分析される。
【００４７】
次に、ステップ１３０において、３Ｄシーンの各ロケーションの最大計算コスト密度が計算される。これは、好適には、ステップ１２０において実行されるすべてのロケーションに対する最悪のコスト状況を数量化して特性化することができるようにする。その計算は、ステップ１２０において最大占有率で満たされた各ロケーションに対して実行される。
【００４８】
計算コストの最大密度は、単位領域当たりまたは単位ボリューム当たりの計算コストを参照でき、ロケーションのタイプ（領域、ボリューム）によって決まる。例えば、ロケーションが領域であれば、計算コストの最大密度は、単位領域当たりの計算コストになり、別の例として、ロケーションがボリュームであれば、計算コストの最大密度は、単位ボリューム当たりの計算コストになる。注目すべきは、最大計算コスト密度が３Ｄオブジェクトの性質を含むことができることである。これは、最大計算コスト密度を上述の単位領域または単位ボリュームの３Ｄオブジェクトの性質に従って計算できるということである。例えば、同じ領域に対し、最大計算コスト密度は、立方体、球形などの、基本的な３Ｄオブジェクトか、またはサーフェス、メッシュなどの、複雑な３Ｄオブジェクトがシミュレートされるかどうかによって決まる。
【００４９】
実際に、計算ステップ１３０は、Ｐ／Ａ比率を計算することを備え、Ｐは、ステップ１２０を参照して説明したように、最も高価な計算コストに達するロケーションを処理するために必要な計算資源の測定割合であり、Ａは、３次元シーンにおけるロケーションの領域である。あるいはまた、Ａは、３次元シーンのロケーションのボリュームであってもよい。計算資源Ｐは、典型的には、本方法を実装するシステムのプロセッサであるか、またはゾーンを処理する計算資源である。
【００５０】
これより図４を参照して、図２を参照して示したように、ショッピングモールの棚の最大計算コスト密度の計算を示す。図４において、判定されたロケーション４０は、動的オブジェクト（商品）が置かれた陳列ケース３０の３つの棚３１を備えるボリュームである。Ｐ／Ａ比率の計算結果は、単位ボリューム当たりの最大計算コスト、例えば、１立方メートル当たりの最大計算コストである。
【００５１】
あるいはまた、さらに図４を参照すると、ロケーション４０のＰ／Ａ比率の計算結果は、単位領域当たりの最大計算コスト、例えば、１平方メートル当たりの最大計算コストとすることができる。ロケーション４０はボリュームであるので、そのロケーションのボリュームを表現する領域が計算される。このため、プリント４１はボリューム４０から抽出される。これは、ボリューム４０の投影が方向に従って投影プレーン上（例えば、モールの地面４２）で実行されること、即ち、３Ｄ空間のポイントを２次元投影プレーン上のポイントに線形マッピングすることによって投影が構築されることを意味する。プリントは、従って領域である。図４において、投影の方向は、ここでは、投影プレーン４２と垂直である矢印４３で表される。投影プレーンは、この例において通路３３の地面とすることができる。プリント４１は、従って、投影プレーン４２上のボリューム４０の投影結果である。
【００５２】
典型的には、投影プレーンは、各ロケーションをこのプレーン上で投影することができるように、３Ｄシーンに広がるプレーンとすることができる。このような投影プレーンによって、ステップ１１０において領域のロケーションとボリュームのロケーションとの混合が判定された時、最大計算コスト密度が計算できるようになる。実際に、すべてのロケーション（領域またはボリューム）は、投影プレーン上で投影される。図４の例において、３Ｄシーンは、ショッピングモールの地面が平面であるショッピングモールである。この場合、地面は、ロケーションを判定するためのプレーンとして機能する。即ち、モールの通路などのロケーションは、ショッピングモールの地面上で直接特定され、そして棚などの、ロケーションのボリュームのプリントは、ショッピングモールの地面上で計算される。
【００５３】
計算ステップ１３０は、最大計算資源コストの状況において、典型的なロケーションの選択である小さい同次領域に対する計算資源の実行を測定するためのリアルタイムにおけるシミュレーションを満たす、基本的であるが重要なシナリオのいくつかのバッチを稼動することによって実行することができる。
【００５４】
次に、図１のステップ１３２において、３Ｄシーンの各ロケーションの計算された最大計算コスト密度を集計するステップが実行される。集計とは、各ロケーションの計算された最大計算コスト密度の結果が統合（または集合）されるという意味である。
【００５５】
次に、図１のステップ１３４において、３Ｄシーンのコスト密度のマップは、集計された最大計算コスト密度から構築される。計算密度のマップという用語は、計算された最大計算コスト密度の表現を示す。この表現は、典型的には、３Ｄシーン、例えば、３Ｄシーンの上面図と重ね合わせることができる２Ｄプレーンに対して行われる。言い換えれば、コスト密度のマップは、３Ｄシーンと対応する最大計算コスト密度の表現である。
【００５６】
興味深いことに、コスト密度のマップは、ロケーションを投影することができる１つの投影プレーンと同じプレーン上で構築されることが可能である。この方法によって、ロケーションと計算された最大計算コスト密度との対応が維持し易くなる。さらに、この方法によって、３Ｄシーンのマップが投影プレーン上のロケーションの投影の結果として事前に構築されるので、好適には、集計ステップ１３２および構築ステップ１３４が容易に実行することができる。
【００５７】
一旦コスト密度のマップが構築されると、ユーザが、３Ｄシーンのどのような領域がどのくらいの計算資源の量を要求するかを確かめることができるように、そのマップを表示することができる。このため、マップは、３Ｄシーンのロケーションの計算された最大計算コスト密度を示すグラフィック情報を提供することができる。例えば、最大コスト密度を表現するためにカラースケール(color scale)を使用できる。
【００５８】
図５を参照して、図２で表現された３Ｄシーン（ショッピングモール）のコスト密度のマップの例を表す。このコスト密度のマップは、計算ステップ１３０、集計ステップ１３２、および構築ステップ１３４の結果として得られたものである。図５に示したコスト密度マップは、３Ｄシーン、例えば、図２の３Ｄシーンと重ね合わせることができるプレーンである。図５において、コスト密度マップはコスト密度のＫｉポリゴン（ｉは、自然数である）の集計で構成され、各ポリゴンＫｉはコスト密度が計算されたロケーションを表す。例えば、ポリゴンＫ８は、動的オブジェクト（棚に置く商品）のロケーションとおおよそ対応する。別例として、ポリゴンＫ１は、顧客および顧客のカートが移動することができるモールの領域と対応する。
【００５９】
興味深いことに、集計された最大計算コスト密度から構築されるマップは、３Ｄシーンに広がるプレーンとすることができ、３Ｄの各ロケーションがこのプレーン上に投影される。このような単一の投影プレーンによって、ステップ１１０において領域のロケーションとボリュームのロケーションとの混合が判定された時、最大計算コスト密度が計算できるようになる。
【００６０】
図１に示したこのプロセスのステップにおいて、３Ｄシーンのコスト密度のマップが、ステップ１２０からステップ１３４までの結果として構築された。これより、ステップ１４０からステップ１４２において、３Ｄシーンの制約マップと呼ばれる第２のマップが計算される。コスト密度のマップと制約マップとの構築を、逐次的に実行するか、または並列で実行することができる。双方のマップに対し、１または複数のオブジェクトを備える３Ｄシーンを提供すること（ステップ１００）、および３Ｄシーンにおけるロケーションのセットを判定すること（ステップ１１０）のみ要求される。３Ｄシーンで再生されるシナリオを任意で提供することができる。そのシナリオを３Ｄシーンと同じやり方で提供することができる。
【００６１】
ステップ１４０において、３Ｄシーンの各ロケーションに対し、上述の各ロケーションに置かれた静的オブジェクトが抽出される。前述の通り、静的オブジェクトは、３次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトである。抽出という用語は、３Ｄシーンの静的オブジェクトを特定するための計算が、３Ｄシーン上で実行されることを意味する。従って、静的オブジェクトの抽出は、静的オブジェクトの特定ということである。静的オブジェクトの特定は、仮想世界が設計される時、その仮想世界の情報から発生し得る。
【００６２】
次に、ステップ１４２において、３Ｄシーンの制約マップは、ステップ１４０で抽出された静的オブジェクトから構築される。制約マップという用語は、静的オブジェクトの表現を示す。この表現は、典型的には、３Ｄシーン、例えば、３Ｄシーンの上面図と重ね合わせることができる２Ｄプレーンにおいて行われる。
【００６３】
制約マップの目的は、ステップ１６０においてグループ化されるゾーンの実用ルールのグラフィック変換を提供することである。このような実用ルールは、ルールによって決まる形の良いゾーンを提供することを目的とする。例えば、ルールの範囲は、環境の形状に関連付けることができるが、これに限定されない。実際に、前述の通り、３Ｄシーンは、特定のシナリオのために変更可能であるレイアウトを備えるものと企図され、そのレイアウトは、３次元シーンの中を移動することができない、および別のオブジェクトが横断することができない静的オブジェクトを備えることもできる。さらに、他のルールは、物理学、工学などの、環境の形状以外の検討事項を管理することができる。
【００６４】
コスト密度のマップに関して、制約マップは、典型的には、３Ｄシーン、例えば、図２の３Ｄシーンの上面図と重ね合わせることができる２Ｄプレーンである。静的オブジェクトが３Ｄオブジェクトであるので、抽出のステップは、３Ｄシーンの各ロケーション上で各静的オブジェクトのプリントを抽出することをさらに備えることができる。図４を参照して説明したように、オブジェクトのプリントの抽出は、３Ｄ空間のポイントから２次元投影プレーンのポイントへのマッピングが実行されるように、オブジェクトの投影が投影の方向に従って投影プレーン上で実行されるということである。
【００６５】
制約マップは、ロケーションを投影できる１つの投影プレーンと同じプレーン上で構築されることができる。このやり方によって、ロケーションと抽出された静的オブジェクトとの対応がより簡単に維持される。ひとたびコスト密度のマップが構築されると、ユーザが３Ｄシーンの特定の領域に対する制約を確かめることができるように、そのマップを表示することができる。
【００６６】
図６を参照して、図２で表現された３Ｄシーン（ショッピングモール）の制約マップの例を表す。この制約マップは、抽出ステップ１４０および構築ステップ１４２の結果として得られたものである。図４の例で示したように、いくつかの静的オブジェクトは、３Ｄシーンから静的オブジェクトのプリントを抽出することによって抽出された。例えば、陳列ケース３０のいくつかの支持体６６が抽出された。各支持体６６は、他のオブジェクトが横断することができない静的オブジェクトである。３Ｄシーンから抽出される静的オブジェクトの別例として、ショッピングモールの屋根を支えるパイル６２、モールの店舗を隔てるパーティション壁６４がある。
【００６７】
興味深いことに、支持体６６に取り付けられた棚３１も静的オブジェクトである。即ち、棚は３次元シーンの中を移動することができず、および他のオブジェクトが横断することができない。しかしながら、制約マップを構築する時、棚は抽出されない。実際に、図３または図４に示すように、１または複数の動的オブジェクトを潜在的に棚に置くことができ、そして棚のプリントが抽出される時、即ち、棚３６の投影が投影プレーン上（ここでは、地面４２）で行われる時、棚に対する投影と同様に実行される、１または複数の潜在的動的オブジェクトの投影は、その棚のプリントを少なくとも一部回復できる。そして１または複数の動的オブジェクトのプリントが、少なくとも一部は静的オブジェクトのプリントを回復する見込みがあるので、棚は、制約マップを構築する時に保存されない。対照的に、どの動的オブジェクトも置くことができない支持体６６のプリントは、保存される。
【００６８】
制約マップを３Ｄシーンに広がるプレーンとすることによって、３Ｄシーンの各ロケーションをそのプレーン上に投影することが可能になる。このような単一のプレーンによって、ステップ１１０において領域のロケーションとボリュームのロケーションとの混合が判定された時、静的オブジェクトを抽出できるようになる。
【００６９】
図１に戻って参照すると、一旦コスト密度のマップおよび制約マップが構築されると、ステップ１５０で両方のマップを集計することができる。マップの集計とは、マップがマージされることを意味する。２つのマップの集計を、２つのマップを重ね合わせることによって実行することができる。詳細には、双方のマップが同じスケールを有する場合にこの動作を容易に実行することができる。スケールという用語は、マップ上から対応する３Ｄシーン上の距離までの距離の比率を指すことを理解されたい。
【００７０】
次に、ステップ１６０において、隣接するロケーションを１または複数のゾーンにグループ化することが実行される。ロケーションは隣接する。即ち、各ロケーションは、ゾーンの別のロケーションとの少なくとも１つの共通ポイントまたは少なくとも１つの共通境界を有する。あるいはまた、グループ化のステップは、隣接するロケーションの一部が１または複数のゾーンにグループ化されることを含むことができる。ステップ１６０は、従って、仮想環境を１または複数のゾーンにパーティション分けすることにある。例えば、図５を参照すると、各ポリゴンＫ８は、ロケーションを表し、そして別のポリゴンＫ１と少なくとも１つのエッジを共有する。ゾーン５２は、隣接するロケーションの一部を備える点線で表される。
【００７１】
各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コストの最大密度を有する。これは、本方法を実行するコンピュータ化システムの処理ユニットが、リアルタイム実行を確保する計算資源をゾーンに提供し得ることを意味する。リアルタイム実行という用語は、厳格な時間制約の範囲内で保証された応答を提供したという意味である。  グループ化は、算出した各ゾーンの計算コスト密度が、ゾーンを処理するために必要な計算資源が事前に定義された閾値未満になるようにして実行される。算出したゾーンの計算コスト密度は、各ロケーションをその領域で乗じた最大コスト密度の合計である。言い換えれば、各ロケーションの最大計算コストは、各ロケーションの領域をその最大コスト密度で乗じることによって計算され、そして各ロケーションに対して得られた計算結果が合計される。事前に定義された閾値は、本発明を実行するコンピュータ化システムの処理ユニットのパーセンテージか、またはゾーンの計算資源のパーセンテージであってもよい。詳細には、ゾーンは、最小ゾーンと呼ばれるゾーンを形成するように作成されることができ、最小ゾーンは、ゾーンのＣＰＵコストがゾーンに関連する処理資源の１００％、つまり３Ｄシーンの最大コストの状況と適宜に同じである。好適には、例えば、制約に合致するように形を調整するので、ＣＰＵコストは１００％未満である。
【００７２】
さらに、２または複数のゾーン間の算出した計算コスト密度が適宜に同じになるように、ロケーションを１または複数のゾーンに分けるグループ化を実行することができる。これは、ゾーン間のＣＰＵ処理資源を共有しやすくすることに好適に寄与する。特に、コンピュータ化システムがゾーンの計算資源を提供する２または複数のＣＰＵを備える場合、ＣＰＵ間の付加をより容易に共有する。
【００７３】
さらに、各ゾーンで過去に行われた計算資源の使用を考慮に入れることによって、グループ化はさらに実行されることができる。実際に、３Ｄシーンは、永続的に稼動するまたは計算資源によって処理され、その結果、新しい動的オブジェクトおよび静的オブジェクトを継続的に追加し、変更し、または省くことができる。従って、そして好適には、３Ｄシーンの変更が考慮されるように、３Ｄシーンをパーティション分けするための方法を一定の間隔で実行することができる。例えば、その方法は、事前に判定された時間期間が経過した後に再度実行されることができる。あるいはまた、３Ｄシーンの１または複数の変更が実行された後に、再度３Ｄシーンをパーティション分けするための方法を実行できる。本発明の方法が数回実行されるので、各ゾーンの計算資源の過去の使用を知ることが可能であり、従って、ゾーンに割り当てられる計算資源のごく一部を使用するゾーンを特定することが可能である。実際に、算出したゾーンの計算コスト密度に則って、ゾーンを処理するために割り当てられる計算資源が減少する。これを、事前定義された閾値を下げることによって実行できる。
【００７４】
グループ化を、ユーザクションに基づいて、例えば、３Ｄシーンのロケーションが示されたディスプレイと対話することによって実行できる。このため、図７に示されるように、ディスプレイ経由でグラフィック編集ツールをユーザに提供することができる。そのディスプレイは、ゾーンパーティションエディタのビューと、制約マップとコスト密度のマップとを重ね合わせることによって生成される。ゾーン４６の形を編集して描画する場合、ユーザは、ゾーンの算出したＣＰＵコスト（ここでは７５％）の更新を継続的に受信する。ゾーンの描画は、ゾーンパーティションエディタで領域の選択を行うということであり、選択は、ユーザがキーボード、マウス、スタイラスなどの、触覚デバイスを介して、またはディスプレイ、例えば、タッチセンシティブスクリーンのディスプレイから直接実行することができる。例えば、２つボタンのマウスでは、左側のボタンは、カーソル４４を移動させながら領域を選択するために使用することができる。
【００７５】
さらに、ユーザは、ゾーンのアンカー定義ポイントに支援されることが可能である。即ち、ユーザの描画は、制約マップから抽出されたルールに基づいて操作または抑制される。図２に表したショッピングモールの例では、そのような支援は、ゾーンのセグメントを壁と一致させるか、または最も近くの棚と垂直の状態にする。
【００７６】
ユーザは、例えば、ゾーンを編集するための１または複数のルールによってさらに支援されることが可能であるが、これに限定されない。
・ゾーンは、コンピュータ化システムの処理ユニットに１００％を超える要求をする計算コストを含む算出を行った計算コスト密度を有することができない。
・ゾーンは、ランプ(lump)することができない。
・ゾーンは、通過可能な境界を有する隣接ゾーンの最小数を有する。
・ゾーンは、隣接ゾーンとの最短の長さの通過可能な境界を有する。
・ゾーンは、可能な限り最もコンパクトな形を有する。
【００７７】
グループ化は、本方法を実行するシステムによる計算で、自動的に実行されることも可能である。これは、最適化プログラムを使用することによって実行できる。最適化プログラムは、仮想環境をゾーンに区切る予想されるパーティションを、計算資源のＣＰＵ電力が可能な限り１００％に近づくように自動的に生成することができる。
【００７８】
本発明の好適な実施形態について説明した。発明の思想および発明の範囲から逸脱せずにさまざまな変更が可能であることが理解されよう。従って、他の実装も特許請求の範囲の範囲内である。
【図１】
2014123368.tif 000003
【図２】
2014123368.tif 000004
【図３】
2014123368.tif 000005
【図４】
2014123368.tif 000006
【図５】
2014123368.tif 000007
【図６】
2014123368.tif 000008
【図７】
2014123368.tif 000009
【図８】
2014123368.tif 000010
【外国語明細書】
2014123368000001.pdf