【文献】
榎原博之, 外2名,“大規模仮想空間における動的領域分割法”,情報処理学会研究報告 2012(平成24)年度▲1▼ [CD−ROM],日本,一般社団法人情報処理学会,2012年 6月15日,p.1-8
(58)【調査した分野】(Int.Cl.,DB名)
各ロケーションをオブジェクトによる最大ロケーション占有率で満たすステップは、動的オブジェクトに対して実行され、動的オブジェクトは、前記3次元シーンの中を潜在的に移動することができるオブジェクトであることを特徴とする請求項1または請求項2に記載のコンピュータ実装方法。
前記3次元シーンの各ロケーションに対し、前記各ロケーションに置かれた静的オブジェクトを抽出する(140)ステップであって、静的オブジェクトは、前記3次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトであることと、
前記3次元シーンの制約マップを前記抽出された静的オブジェクトから構築する(142)ステップとをさらに備えることを特徴とする請求項1乃至請求項3のいずれか1項に記載のコンピュータ実装方法。
前記3次元シーンの前記コスト密度のマップと前記3次元シーンの制約マップとを集計する(150)ステップとをさらに備えることを特徴とする請求項4または請求項5に記載のコンピュータ実装方法。
前記グループ化のステップにおいて、前記算出した各ゾーンの計算コスト密度は、前記ゾーンを処理するために必要な前記計算資源が事前に定義された閾値未満であるようにすることを特徴とする請求項1乃至請求項6いずれか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の場合、このような単純化は許容できない。実際に、仮想環境、特に現実世界の事象がシミュレートされる時、景色の人工フェンシングをサポートすることができず、シミュレートされる現実世界のカスタム化の可能性を制限する。一方、現実世界では、ゾーンはオープンであり、潜在的にどのオブジェクトも通過することができる、共通の連続境界を隣接するゾーンと共有する。従って、その性質上、ゾーニングは、高度なMMOで要求されるような潜在的に無制限な仮想世界の増大を管理することができる。しかしながら、MMOGにおいて実行されるようなゾーニングは、仮想環境、シミュレートされる現実世界、およびゾーニング特性に対する制約のアドホックなカスタマイズを要求するので、MMOのコンテキストに適応されない。
【0011】
このようなコンテキストにおいて、現実世界のシミュレーションアプリケーションの3Dシーンのスケーラブルで、シームレスで、効率的なリアルタイムシミュレーションを提供する方法、コンピュータプログラム、およびシステムに改善する必要が依然として存在する。
【発明を実施するための形態】
【0018】
図1のフローチャートを参照して、3次元シーンを複数のゾーンにパーティション分けし、各ゾーンが計算資源によって処理されるためのコンピュータ実装方法を提案する。そのプロセスは、3次元(3D)シーンを提供することを備える。3Dシーンは、現実世界の環境をシミュレートすることができる。3Dシーンは、1または複数のオブジェクト、例えば、3Dモデル化オブジェクトを備える。各オブジェクトは、計算資源のコストを生成する。即ち、各オブジェクトは、3Dシーンで実行されるために、計算資源の時間を要求する。方法は、3Dシーンのロケーションのセットの判定をさらに備える。3Dシーンのロケーションは、3Dシーン内のオブジェクトにアクセス可能な領域とすることができる。3Dシーンのロケーションは、3Dシーンのオブジェクトが網羅されるボリュームとすることができる。方法は、各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大ロケーション占有率で満たすことをさらに備える。方法は、3次元シーンの各ロケーションに対し、計算コストの最大密度を計算することをさらに備える。計算コストの最大密度は、単位領域当たりまたは単位ボリューム当たりの計算コストを参照することができる。方法は、隣接するロケーションを1または複数のゾーンにグループ化することも備える。各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コスト密度を有する。算出したゾーンの計算コスト密度は、各ロケーションをその領域またはボリュームで乗じた最大コスト密度の合計である。
【0019】
このような方法は、3Dシーンのアドホックなカスタマイズをすること、またはゾーニングの特性に対する制約を課すことをせずに、リアルタイム実行の保証が与えられるように3Dシーンのゾーニングを改善する。さらに、本方法は、3Dシーンの拡張、オブジェクト類型の拡張、およびその挙動クラスの拡張をさらにサポートする。実際に、グループ化は、各ロケーションを、最も高価な計算コストに達するオブジェクトによる最大占有率で満たすことによって実行される、3Dシーンの各ロケーションの飽和の結果によって決まる。興味深いことに、オブジェクトの最大占有率は3Dシーンの現実的状態を反映する。言い換えれば、グループ化は、各ロケーション上のオブジェクトの分布が最大であるシナリオの結果であって、当該シナリオは、シミュレートされる現実世界に関して現実的である。
【0020】
方法は、コンピュータ実装される。これは、方法のステップ(またはほぼすべてのステップ)が、少なくとも1つのコンピュータまたはコンピュータ化されたシステムによって実行されることを意味する。例において、方法のステップの少なくとも一部のトリガは、ユーザとコンピュータとの対話を通じて実行することができる。要求されるユーザとコンピュータとの対話レベルは、予測される自動性のレベルによって決まり、そしてユーザの望みを実装する必要性とのバランスを取ることができる。例において、このレベルは、ユーザ定義および/または事前定義とすることができる。
【0021】
例えば、1または複数のオブジェクトを備える3Dシーンを提供するステップを、ユーザ選択、例えば、シーンの選択に基づいて実行することができる。ユーザは、キーボード、マウス、スタイラスなどの、ハプティックデバイスを経由して選択を実行できる。例えば、2つボタンのマウスでは、左側のボタンは、シーンリストの中からシーンを選択するために使用することができる。システムは、デフォルトによって、即ち、ユーザ選択を要求することをせずにシーンを特定することもできる。
【0022】
本方法のコンピュータ実装の典型的な例は、メモリおよびプロセッサを備えるシステムを用いて方法を実行することである。データベースを記憶するメモリは、そのような記憶に適した任意のハードウェアにすぎない。プロセッサを計算ユニットと呼ぶこともできる。このようなシステムは、現実世界のシミュレーションアプリケーションのコンテキストにおいて、スケーラブルでシームレスで効率的な3Dシーンのリアルタイムシミュレーションを提供する。当該システムは、3Dシーン、および3Dシーンにおけるオブジェクトを表示するのに適したグラフィカルユーザインターフェース(GUI)をさらに備えることができる。GUIは、メモリおよびプロセッサに接続される。
【0023】
「データベース」とは、検索および取得のために体系化されたデータの任意の集合(即ち、情報)を意味する。メモリに記憶される場合、データベースをコンピュータによって高速に検索および取得できるようにする。データベースは、実際に、さまざまなデータ処理動作とともにデータの記憶、検索、変更、および削除を促進するように構造化されている。データベースは、レコードに細分化することができるファイルまたはファイルのセットから構成され、それぞれのレコードは、1または複数のフィールドから構成される。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを検索できる。キーワードを使用し、そしてコマンドをソートして、ユーザは、使用しているデータベース管理システムのルールに従って、特定のデータ集計に対するレポートを検索または作成するために多数のレコードのフィールドを高速に探索し、再配置し、グループ化し、そして選択することができる。
【0024】
方法の場合、データベースは、1または複数のオブジェクトを備える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のフローチャートを参照して、これより3次元シーンを複数のゾーンにパーティション分けするための方法の例について説明する。
【0036】
ステップ100において、1または複数のオブジェクトを備える3次元(3D)シーンが提供される。3Dシーンの提供は、3Dシーンおよびその1または複数のオブジェクトをディスプレイに表示すること、例えば、
図2を参照して述べるディスプレイ1080上に表示することを備えてもよい。3Dシーンは、オブジェクト間の空間関係が記述される空間である。そのシーンは、少なくとも1つのオブジェクトで構成され、そしてそのオブジェクトは、モデル化オブジェクトまたは3Dモデル化オブジェクトとすることができるが、これらに限定されない。3Dモデル化オブジェクトは、3D空間におけるオブジェクトの記述である。3Dシーンは、座標を用いて3D空間のあらゆるポイントを記述して形状を数学的に表現できる、物理的世界のモデルである。3Dシーンは、典型的には、オブジェクト間の現実的な対話がシミュレートされた、現実世界をシミュレートしたものである。現実的な対話という表現は、シミュレートされる対話が、現実世界、例えば、力および作用(重力、磁力、接触力)のような物理法則や、情報の流れ、制御イベントのような制御法則の対話を反映するという意味である。1または複数のオブジェクトは、3Dシーン内において発展し、シミュレートされる現実世界の法則、例えば、2つのオブジェクトは互いに交差することができないといった法則に従う。3Dシーンは、特定のシナリオのために変更可能であるレイアウトを備える。シナリオは、3Dシーンにおける1または複数のオブジェクトのうちの少なくとも予測可能な対話を記述する。シナリオは、従って、顧客の流量管理に関する、または火災時の避難の安全性に関する店舗内の新しいセクションへの影響を分析するなどの、アクティビティのコンテキストにおいて3Dシーンが使用されるまたは3Dシーンの使用が企図される1つのやり方を記述する。各特定のシナリオは、レイアウト上でシミュレートされる。シナリオは、ユーザによる定義が可能であることを理解されたい。実際に、3Dシーンのレイアウトは、3次元シーンの中を移動することができない、および別のオブジェクトが横断(traverse)することができない静的オブジェクトで構成される。
【0037】
図2は、ショッピングモールの仮想世界をシミュレートする3Dシーンの上面図の例を示す。この仮想モールは、(太線で表された)壁で隔てられたいくつかの店舗200、210、220、230と、通路260、270と、階段240、250とで構成される。店舗は、棚280、レジ290および他の機器を包含する。
図2において、3Dシーンのレイアウトは、通路、廊下、壁、棚の面などの、静的オブジェクトで構成される。レジなどの3Dシーンの他のオブジェクトは静的オブジェクトではないので、レイアウトの一部ではない。実際には、レジがレイアウトの一部であると指定されない場合、すなわち、静的オブジェクトである場合を除いて、レジは動かすことができるオブジェクトである。
【0038】
次に、
図1のステップ110において、ロケーションのセットは3Dシーンで判定される。つまり、2つまたは複数のロケーションが3Dシーンで特定される。あるいはまた、1つのみのロケーションを判定することができる。ロケーションは、3Dシーンのオブジェクトによって到達可能な3Dシーンの一部である。典型的には、3Dシーンのロケーションは、動的オブジェクトによって到達可能である。動的オブジェクトは、3Dシーンの中において潜在的に移動することができるオブジェクトである。動的オブジェクトは、従って、3次元シーンの中を全く移動しない、および別のオブジェクトが横断することができない静的オブジェクトとは対極をなす。ロケーション条件は、3Dシーンのオブジェクトにアクセス可能な3Dシーンの境界領域を指定することができるか、または3Dシーンのオブジェクトが網羅された3Dシーンのボリュームを指定することもできる。言い換えれば、ロケーションは、1または複数のオブジェクトによって占有されるまたは占有に利用可能な3Dシーンの場所とすることができる。
【0039】
図2に示した3Dシーンに戻って説明すると、顧客(図示されず)はオブジェクトによってシミュレートされる。顧客は、歩き、眺め、棚に陳列した商品を選んでそれらを自分達のショッピングカートに入れることができる。商品(図示せず)もまたオブジェクトであることを理解されたい。これらの顧客および商品は、動的オブジェクトであり、即ち、3Dシーンの中を潜在的に移動することができるオブジェクトである。ここでは、動的オブジェクトのリストおよび予想されるアクションのリストは、広範ではなく、そしてアプリケーションの目的および3Dシーンによってサポートされるシナリオの性質によって決まる。
図2で表現された3Dシーンは、永続的に稼動するまたは計算資源によって処理される。これは、ユーザが常時ログイン/ログアウトしながら、モール内に新しい店舗が開業し、リフトのような新しい設備が追加され、そして新しい商品が導入されることを含む。言い換えれば、レイアウトを変更することができ、動的オブジェクトも変更できる。例えば、顧客の人数を省き、追加し、または変更することも可能である。
【0040】
3Dシーンは、従って、静的オブジェクトのレイアウトと上述のレイアウトにおいて移動する/発展する動的オブジェクトのセットとを備えるものと企図される。興味深いことに、ロケーションと静的オブジェクトは、密接に関係する。実際に、レイアウト内の動的オブジェクトの動きは、動的オブジェクトが横断することができない、3D空間におけるサーフェスまたはボリュームを定義する静的オブジェクトによって制限される。例えば、
図3において、顧客34およびショッピングカート35を表現するオブジェクトは、静的オブジェクトである通路33(
図2の通路270、棚280を指す)を移動する動的オブジェクトである。通路33の地面は、動的オブジェクトによって到達可能であり、従って、ロケーションとして特定することができる。別例として、山積みの缶32を表現するオブジェクトは、1つの棚31から潜在的に移動することができる(例えば、顧客によって缶が掴まれてショッピングカートに入れられる)動的オブジェクトである。陳列ケース30の棚31を、従って、ロケーションであると判定することができる。
【0041】
図1に戻って参照すると、ステップ120において、事前に判定された各ロケーションは、最も高価な計算コストに達するオブジェクトによって最大ロケーション占有率で満たされる。ロケーションを、オブジェクトによって最大ロケーション占有率で満たすことは、オブジェクトがロケーションに置かれること、およびそのロケーションに置かれるオブジェクトの数が、ロケーションで許容されるオブジェクトの最大数であることを意味する。このオブジェクトの最大数はロケーションの特性であり、そしてその特性を3Dシーンで再生されまたは適用されるシナリオによって定義できる。シナリオは、シミュレートされる現実世界に関して現実的であり、そして3Dシーンのオブジェクトの起こり得るアクションを制限する。
【0042】
3Dシーンの1または複数のオブジェクトは、当該技術分野において知られたように、インスタンス化オブジェクトである。オブジェクトは、3Dシーンでインスタンス化される時に計算コストを生成する。インスタンス化オブジェクトの計算コストは、インスタンス化パラメータの関数である。これらインスタンス化パラメータは、選択されたオブジェクトの3Dメッシュの複雑度、テクスチャの精度、3Dシーンのオブジェクトの反射および陰影、接触/衝突、弾性、熱伝達などの、力学的挙動と関連するプロパティであってよいが、これらに限定されない。ロケーションのオブジェクトの最大数に対して生成される計算コストは、インスタンス化パラメータが最大(例えば、現実度を最大にしたインスタンス化)の時に最大になることを理解されたい。
【0043】
図2を参照すると、商品を店舗200の棚280に置くことができる。例えば、商品がシャンプーボトルであってもよいし、棚がロケーションであってもよい。3Dシーンが現実世界のシミュレーションシナリオを再生するので、この棚に対する最も高価な計算コストを得ることができるように、棚は最大現実度でインスタンス化されたシャンプーボトルの最大数をサポートできる。この状況を
図3に示す。陳列ケース30は、6つの棚31を備える。陳列ケース30は、許容される最も大きい棚(31)であり、レンダリングのための複雑な3Dメッシュおよびリッチテクスチャを備える最も高価なCPUの缶を有し、それぞれの棚が山積みの缶(32)の最大容量である、陳列ケースの最大コストの状況において示されている。
【0044】
さらに
図2を参照すると、別の例のように、オブジェクトを通路270に置くことができる。例えば、オブジェクトは、買い物かごを提げたユーザであってもよい。同様に、3Dシーンが現実世界のシミュレーションシナリオを再生するので、通路は、棚に対する最も高価な計算コストを生成する買い物かごを提げたユーザの最大数を備えることができる。これを
図3に示すと、ロケーション、ここでは通路33(
図2の通路270、棚280を指す)は、各顧客がアイテム36で一杯のショッピングカート35を押している場合が最大コストの状況であり、各顧客および顧客のカートは「数珠つなぎ」の状況であることを示している。即ち、「数珠つなぎ」の状況は、通路33が顧客の最大数を備えるという悪化した状況である。オブジェクト(ユーザ、カート、およびアイテム)は、計算資源の最大コストを生成するために選択される、パラメータのインスタンス化によってインスタンス化されることを理解されたい。例えば、レンダリングパラメータは、オブジェクトの最も緻密な表現を得るために選択される。
【0045】
好適には、ステップ120を動的オブジェクトのみに対して実行してもよい。即ち、3次元シーンの中を潜在的に移動することができるオブジェクトに対して実行できる。実際に、動的オブジェクトの計算コストは、動的オブジェクトの数、動的オブジェクトのレンダリングの精度などの要因によって決まるので、動的オブジェクトは予測不可能な計算コストを有する。一方、静的な、即ち、3次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトは、計算資源の予測可能な計算コストを生成する。言い換えれば、静的オブジェクトの計算資源のコストを予め知ることができる。
【0046】
従って、ステップ120において、ロケーションで許容できるオブジェクトが最大数に達し、およびそのオブジェクトが少なくとも最大現実度でインスタンス化される時に、所与のロケーションに対して最も高価な計算コストに達する。従って、最大コスト状況の分析が実行される。即ち、仮想世界の各ロケーションは、ロケーションのCPUの最大コスト状況において分析される。
【0047】
次に、ステップ130において、3Dシーンの各ロケーションの最大計算コスト密度が計算される。これは、好適には、ステップ120において実行されるすべてのロケーションに対する最悪のコスト状況を数量化して特性化することができるようにする。その計算は、ステップ120において最大占有率で満たされた各ロケーションに対して実行される。
【0048】
計算コストの最大密度は、単位領域当たりまたは単位ボリューム当たりの計算コストを参照でき、ロケーションのタイプ(領域、ボリューム)によって決まる。例えば、ロケーションが領域であれば、計算コストの最大密度は、単位領域当たりの計算コストになり、別の例として、ロケーションがボリュームであれば、計算コストの最大密度は、単位ボリューム当たりの計算コストになる。注目すべきは、最大計算コスト密度が3Dオブジェクトの性質を含むことができることである。これは、最大計算コスト密度を上述の単位領域または単位ボリュームの3Dオブジェクトの性質に従って計算できるということである。例えば、同じ領域に対し、最大計算コスト密度は、立方体、球形などの、基本的な3Dオブジェクトか、またはサーフェス、メッシュなどの、複雑な3Dオブジェクトがシミュレートされるかどうかによって決まる。
【0049】
実際に、計算ステップ130は、P/A比率を計算することを備え、Pは、ステップ120を参照して説明したように、最も高価な計算コストに達するロケーションを処理するために必要な計算資源の測定割合であり、Aは、3次元シーンにおけるロケーションの領域である。あるいはまた、Aは、3次元シーンのロケーションのボリュームであってもよい。計算資源Pは、典型的には、本方法を実装するシステムのプロセッサであるか、またはゾーンを処理する計算資源である。
【0050】
これより
図4を参照して、
図2を参照して示したように、ショッピングモールの棚の最大計算コスト密度の計算を示す。
図4において、判定されたロケーション40は、動的オブジェクト(商品)が置かれた陳列ケース30の3つの棚31を備えるボリュームである。P/A比率の計算結果は、単位ボリューム当たりの最大計算コスト、例えば、1立方メートル当たりの最大計算コストである。
【0051】
あるいはまた、さらに
図4を参照すると、ロケーション40のP/A比率の計算結果は、単位領域当たりの最大計算コスト、例えば、1平方メートル当たりの最大計算コストとすることができる。ロケーション40はボリュームであるので、そのロケーションのボリュームを表現する領域が計算される。このため、プリント41はボリューム40から抽出される。これは、ボリューム40の投影が方向に従って投影プレーン上(例えば、モールの地面42)で実行されること、即ち、3D空間のポイントを2次元投影プレーン上のポイントに線形マッピングすることによって投影が構築されることを意味する。プリントは、従って領域である。
図4において、投影の方向は、ここでは、投影プレーン42と垂直である矢印43で表される。投影プレーンは、この例において通路33の地面とすることができる。プリント41は、従って、投影プレーン42上のボリューム40の投影結果である。
【0052】
典型的には、投影プレーンは、各ロケーションをこのプレーン上で投影することができるように、3Dシーンに広がるプレーンとすることができる。このような投影プレーンによって、ステップ110において領域のロケーションとボリュームのロケーションとの混合が判定された時、最大計算コスト密度が計算できるようになる。実際に、すべてのロケーション(領域またはボリューム)は、投影プレーン上で投影される。
図4の例において、3Dシーンは、ショッピングモールの地面が平面であるショッピングモールである。この場合、地面は、ロケーションを判定するためのプレーンとして機能する。即ち、モールの通路などのロケーションは、ショッピングモールの地面上で直接特定され、そして棚などの、ロケーションのボリュームのプリントは、ショッピングモールの地面上で計算される。
【0053】
計算ステップ130は、最大計算資源コストの状況において、典型的なロケーションの選択である小さい同次領域に対する計算資源の実行を測定するためのリアルタイムにおけるシミュレーションを満たす、基本的であるが重要なシナリオのいくつかのバッチを稼動することによって実行することができる。
【0054】
次に、
図1のステップ132において、3Dシーンの各ロケーションの計算された最大計算コスト密度を集計するステップが実行される。集計とは、各ロケーションの計算された最大計算コスト密度の結果が統合(または集合)されるという意味である。
【0055】
次に、
図1のステップ134において、3Dシーンのコスト密度のマップは、集計された最大計算コスト密度から構築される。計算密度のマップという用語は、計算された最大計算コスト密度の表現を示す。この表現は、典型的には、3Dシーン、例えば、3Dシーンの上面図と重ね合わせることができる2Dプレーンに対して行われる。言い換えれば、コスト密度のマップは、3Dシーンと対応する最大計算コスト密度の表現である。
【0056】
興味深いことに、コスト密度のマップは、ロケーションを投影することができる1つの投影プレーンと同じプレーン上で構築されることが可能である。この方法によって、ロケーションと計算された最大計算コスト密度との対応が維持し易くなる。さらに、この方法によって、3Dシーンのマップが投影プレーン上のロケーションの投影の結果として事前に構築されるので、好適には、集計ステップ132および構築ステップ134が容易に実行することができる。
【0057】
一旦コスト密度のマップが構築されると、ユーザが、3Dシーンのどのような領域がどのくらいの計算資源の量を要求するかを確かめることができるように、そのマップを表示することができる。このため、マップは、3Dシーンのロケーションの計算された最大計算コスト密度を示すグラフィック情報を提供することができる。例えば、最大コスト密度を表現するためにカラースケール(color scale)を使用できる。
【0058】
図5を参照して、
図2で表現された3Dシーン(ショッピングモール)のコスト密度のマップの例を表す。このコスト密度のマップは、計算ステップ130、集計ステップ132、および構築ステップ134の結果として得られたものである。
図5に示したコスト密度マップは、3Dシーン、例えば、
図2の3Dシーンと重ね合わせることができるプレーンである。
図5において、コスト密度マップはコスト密度のK
iポリゴン(iは、自然数である)の集計で構成され、各ポリゴンK
iはコスト密度が計算されたロケーションを表す。例えば、ポリゴンK
8は、動的オブジェクト(棚に置く商品)のロケーションとおおよそ対応する。別例として、ポリゴンK
1は、顧客および顧客のカートが移動することができるモールの領域と対応する。
【0059】
興味深いことに、集計された最大計算コスト密度から構築されるマップは、3Dシーンに広がるプレーンとすることができ、3Dの各ロケーションがこのプレーン上に投影される。このような単一の投影プレーンによって、ステップ110において領域のロケーションとボリュームのロケーションとの混合が判定された時、最大計算コスト密度が計算できるようになる。
【0060】
図1に示したこのプロセスのステップにおいて、3Dシーンのコスト密度のマップが、ステップ120からステップ134までの結果として構築された。これより、ステップ140からステップ142において、3Dシーンの制約マップと呼ばれる第2のマップが計算される。コスト密度のマップと制約マップとの構築を、逐次的に実行するか、または並列で実行することができる。双方のマップに対し、1または複数のオブジェクトを備える3Dシーンを提供すること(ステップ100)、および3Dシーンにおけるロケーションのセットを判定すること(ステップ110)のみ要求される。3Dシーンで再生されるシナリオを任意で提供することができる。そのシナリオを3Dシーンと同じやり方で提供することができる。
【0061】
ステップ140において、3Dシーンの各ロケーションに対し、上述の各ロケーションに置かれた静的オブジェクトが抽出される。前述の通り、静的オブジェクトは、3次元シーンの中を移動することができない、および別のオブジェクトが横断することができないオブジェクトである。抽出という用語は、3Dシーンの静的オブジェクトを特定するための計算が、3Dシーン上で実行されることを意味する。従って、静的オブジェクトの抽出は、静的オブジェクトの特定ということである。静的オブジェクトの特定は、仮想世界が設計される時、その仮想世界の情報から発生し得る。
【0062】
次に、ステップ142において、3Dシーンの制約マップは、ステップ140で抽出された静的オブジェクトから構築される。制約マップという用語は、静的オブジェクトの表現を示す。この表現は、典型的には、3Dシーン、例えば、3Dシーンの上面図と重ね合わせることができる2Dプレーンにおいて行われる。
【0063】
制約マップの目的は、ステップ160においてグループ化されるゾーンの実用ルールのグラフィック変換を提供することである。このような実用ルールは、ルールによって決まる形の良いゾーンを提供することを目的とする。例えば、ルールの範囲は、環境の形状に関連付けることができるが、これに限定されない。実際に、前述の通り、3Dシーンは、特定のシナリオのために変更可能であるレイアウトを備えるものと企図され、そのレイアウトは、3次元シーンの中を移動することができない、および別のオブジェクトが横断することができない静的オブジェクトを備えることもできる。さらに、他のルールは、物理学、工学などの、環境の形状以外の検討事項を管理することができる。
【0064】
コスト密度のマップに関して、制約マップは、典型的には、3Dシーン、例えば、
図2の3Dシーンの上面図と重ね合わせることができる2Dプレーンである。静的オブジェクトが3Dオブジェクトであるので、抽出のステップは、3Dシーンの各ロケーション上で各静的オブジェクトのプリントを抽出することをさらに備えることができる。
図4を参照して説明したように、オブジェクトのプリントの抽出は、3D空間のポイントから2次元投影プレーンのポイントへのマッピングが実行されるように、オブジェクトの投影が投影の方向に従って投影プレーン上で実行されるということである。
【0065】
制約マップは、ロケーションを投影できる1つの投影プレーンと同じプレーン上で構築されることができる。このやり方によって、ロケーションと抽出された静的オブジェクトとの対応がより簡単に維持される。ひとたびコスト密度のマップが構築されると、ユーザが3Dシーンの特定の領域に対する制約を確かめることができるように、そのマップを表示することができる。
【0066】
図6を参照して、
図2で表現された3Dシーン(ショッピングモール)の制約マップの例を表す。この制約マップは、抽出ステップ140および構築ステップ142の結果として得られたものである。
図4の例で示したように、いくつかの静的オブジェクトは、3Dシーンから静的オブジェクトのプリントを抽出することによって抽出された。例えば、陳列ケース30のいくつかの支持体66が抽出された。各支持体66は、他のオブジェクトが横断することができない静的オブジェクトである。3Dシーンから抽出される静的オブジェクトの別例として、ショッピングモールの屋根を支えるパイル62、モールの店舗を隔てるパーティション壁64がある。
【0067】
興味深いことに、支持体66に取り付けられた棚31も静的オブジェクトである。即ち、棚は3次元シーンの中を移動することができず、および他のオブジェクトが横断することができない。しかしながら、制約マップを構築する時、棚は抽出されない。実際に、
図3または
図4に示すように、1または複数の動的オブジェクトを潜在的に棚に置くことができ、そして棚のプリントが抽出される時、即ち、棚36の投影が投影プレーン上(ここでは、地面42)で行われる時、棚に対する投影と同様に実行される、1または複数の潜在的動的オブジェクトの投影は、その棚のプリントを少なくとも一部回復できる。そして1または複数の動的オブジェクトのプリントが、少なくとも一部は静的オブジェクトのプリントを回復する見込みがあるので、棚は、制約マップを構築する時に保存されない。対照的に、どの動的オブジェクトも置くことができない支持体66のプリントは、保存される。
【0068】
制約マップを3Dシーンに広がるプレーンとすることによって、3Dシーンの各ロケーションをそのプレーン上に投影することが可能になる。このような単一のプレーンによって、ステップ110において領域のロケーションとボリュームのロケーションとの混合が判定された時、静的オブジェクトを抽出できるようになる。
【0069】
図1に戻って参照すると、一旦コスト密度のマップおよび制約マップが構築されると、ステップ150で両方のマップを集計することができる。マップの集計とは、マップがマージされることを意味する。2つのマップの集計を、2つのマップを重ね合わせることによって実行することができる。詳細には、双方のマップが同じスケールを有する場合にこの動作を容易に実行することができる。スケールという用語は、マップ上から対応する3Dシーン上の距離までの距離の比率を指すことを理解されたい。
【0070】
次に、ステップ160において、隣接するロケーションを1または複数のゾーンにグループ化することが実行される。ロケーションは隣接する。即ち、各ロケーションは、ゾーンの別のロケーションとの少なくとも1つの共通ポイントまたは少なくとも1つの共通境界を有する。あるいはまた、グループ化のステップは、隣接するロケーションの一部が1または複数のゾーンにグループ化されることを含むことができる。ステップ160は、従って、仮想環境を1または複数のゾーンにパーティション分けすることにある。例えば、
図5を参照すると、各ポリゴンK
8は、ロケーションを表し、そして別のポリゴンK
1と少なくとも1つのエッジを共有する。ゾーン52は、隣接するロケーションの一部を備える点線で表される。
【0071】
各ゾーンは、ゾーンのリアルタイム実行を保証する算出を行った計算コストの最大密度を有する。これは、本方法を実行するコンピュータ化システムの処理ユニットが、リアルタイム実行を確保する計算資源をゾーンに提供し得ることを意味する。リアルタイム実行という用語は、厳格な時間制約の範囲内で保証された応答を提供したという意味である。 グループ化は、算出した各ゾーンの計算コスト密度が、ゾーンを処理するために必要な計算資源が事前に定義された閾値未満になるようにして実行される。算出したゾーンの計算コスト密度は、各ロケーションをその領域で乗じた最大コスト密度の合計である。言い換えれば、各ロケーションの最大計算コストは、各ロケーションの領域をその最大コスト密度で乗じることによって計算され、そして各ロケーションに対して得られた計算結果が合計される。事前に定義された閾値は、本発明を実行するコンピュータ化システムの処理ユニットのパーセンテージか、またはゾーンの計算資源のパーセンテージであってもよい。詳細には、ゾーンは、最小ゾーンと呼ばれるゾーンを形成するように作成されることができ、最小ゾーンは、ゾーンのCPUコストがゾーンに関連する処理資源の100%、つまり3Dシーンの最大コストの状況と適宜に同じである。好適には、例えば、制約に合致するように形を調整するので、CPUコストは100%未満である。
【0072】
さらに、2または複数のゾーン間の算出した計算コスト密度が適宜に同じになるように、ロケーションを1または複数のゾーンに分けるグループ化を実行することができる。これは、ゾーン間のCPU処理資源を共有しやすくすることに好適に寄与する。特に、コンピュータ化システムがゾーンの計算資源を提供する2または複数のCPUを備える場合、CPU間の付加をより容易に共有する。
【0073】
さらに、各ゾーンで過去に行われた計算資源の使用を考慮に入れることによって、グループ化はさらに実行されることができる。実際に、3Dシーンは、永続的に稼動するまたは計算資源によって処理され、その結果、新しい動的オブジェクトおよび静的オブジェクトを継続的に追加し、変更し、または省くことができる。従って、そして好適には、3Dシーンの変更が考慮されるように、3Dシーンをパーティション分けするための方法を一定の間隔で実行することができる。例えば、その方法は、事前に判定された時間期間が経過した後に再度実行されることができる。あるいはまた、3Dシーンの1または複数の変更が実行された後に、再度3Dシーンをパーティション分けするための方法を実行できる。本発明の方法が数回実行されるので、各ゾーンの計算資源の過去の使用を知ることが可能であり、従って、ゾーンに割り当てられる計算資源のごく一部を使用するゾーンを特定することが可能である。実際に、算出したゾーンの計算コスト密度に則って、ゾーンを処理するために割り当てられる計算資源が減少する。これを、事前定義された閾値を下げることによって実行できる。
【0074】
グループ化を、ユーザクションに基づいて、例えば、3Dシーンのロケーションが示されたディスプレイと対話することによって実行できる。このため、
図7に示されるように、ディスプレイ経由でグラフィック編集ツールをユーザに提供することができる。そのディスプレイは、ゾーンパーティションエディタのビューと、制約マップとコスト密度のマップとを重ね合わせることによって生成される。ゾーン46の形を編集して描画する場合、ユーザは、ゾーンの算出したCPUコスト(ここでは75%)の更新を継続的に受信する。ゾーンの描画は、ゾーンパーティションエディタで領域の選択を行うということであり、選択は、ユーザがキーボード、マウス、スタイラスなどの、触覚デバイスを介して、またはディスプレイ、例えば、タッチセンシティブスクリーンのディスプレイから直接実行することができる。例えば、2つボタンのマウスでは、左側のボタンは、カーソル44を移動させながら領域を選択するために使用することができる。
【0075】
さらに、ユーザは、ゾーンのアンカー定義ポイントに支援されることが可能である。即ち、ユーザの描画は、制約マップから抽出されたルールに基づいて操作または抑制される。
図2に表したショッピングモールの例では、そのような支援は、ゾーンのセグメントを壁と一致させるか、または最も近くの棚と垂直の状態にする。
【0076】
ユーザは、例えば、ゾーンを編集するための1または複数のルールによってさらに支援されることが可能であるが、これに限定されない。
・ゾーンは、コンピュータ化システムの処理ユニットに100%を超える要求をする計算コストを含む算出を行った計算コスト密度を有することができない。
・ゾーンは、ランプ(lump)することができない。
・ゾーンは、通過可能な境界を有する隣接ゾーンの最小数を有する。
・ゾーンは、隣接ゾーンとの最短の長さの通過可能な境界を有する。
・ゾーンは、可能な限り最もコンパクトな形を有する。
【0077】
グループ化は、本方法を実行するシステムによる計算で、自動的に実行されることも可能である。これは、最適化プログラムを使用することによって実行できる。最適化プログラムは、仮想環境をゾーンに区切る予想されるパーティションを、計算資源のCPU電力が可能な限り100%に近づくように自動的に生成することができる。
【0078】
本発明の好適な実施形態について説明した。発明の思想および発明の範囲から逸脱せずにさまざまな変更が可能であることが理解されよう。従って、他の実装も特許請求の範囲の範囲内である。