(57)【特許請求の範囲】
【請求項１】
マルチスケール３Ｄデータセットに関連付けられた３次元（３Ｄ）環境をナビゲートするためのナビゲーショングラフィカルユーザインタフェース（ＧＵＩ）を生成するためのコンピュータ実装方法であって、
前記３Ｄ環境内の現在位置を受け取るステップであり、前記３Ｄ環境の可視部分が、前記現在位置に関連付けられた視点に基づいて、表示するためにレンダリングされる、ステップと、
前記３Ｄ環境の不可視部分内に存在する３Ｄオブジェクトを識別するステップと、
オブジェクトインジケータを前記３Ｄ環境の前記可視部分内に表示させるステップであり、前記オブジェクトインジケータが、前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの位置を、前記現在位置に対して示す向きを有する、ステップとを含み、
前記３Ｄ環境の前記可視部分内の前記オブジェクトインジケータの位置が、同じく前記可視部分内に存在する球面境界に制約される、
コンピュータ実装方法。
【請求項２】
前記３Ｄ環境の前記可視部分内の前記オブジェクトインジケータの位置が、同じく前記可視部分内に存在する円形境界に制約され、前記方法が、
前記３Ｄ環境内の更新された位置を受け取るステップと、
前記更新された位置に基づいて、前記オブジェクトインジケータを前記円形境界上で再位置決めするステップと、
前記オブジェクトインジケータを再配向して、前記更新された位置に対して前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの前記位置を示すようにするステップとをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記３Ｄ環境内の更新された位置を受け取るステップと、
前記更新された位置に基づいて、前記オブジェクトインジケータを前記球面境界上で再位置決めするステップと、
前記オブジェクトインジケータを再配向して、前記更新された位置に対して前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの前記位置を示すようにするステップとをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記方法が、前記球面境界を、前記３Ｄ環境の前記可視部分内に存在する２次元（２Ｄ）平面上に投影するステップと、前記配向インジケータが前記２Ｄ平面上に現れるようにするステップとをさらに含み、前記配向インジケータが、前記現在位置と前記３Ｄオブジェクトの間の距離を示す、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記球面境界が、前記３Ｄ環境の前記不可視部分から得られる１つ又は複数の画像を反射することができる反射表面を有し、前記球面境界が、前記３Ｄ環境の前記可視部分内から、前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの画像を反射する、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記３Ｄ環境が追加の球面境界を含み、前記追加の球面境界が反射表面を有し、前記３Ｄ環境の前記不可視部分内に存在し、前記追加の球面境界が、前記３Ｄ環境の前記不可視部分内から、前記３Ｄオブジェクトの画像を反射し、前記球面境界が、前記３Ｄ環境の前記可視部分内から、前記追加の球面境界の画像を反射する、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記球面境界を、前記３Ｄ環境の前記可視部分内に存在する２Ｄ平面上に投影するステップと、前記３Ｄオブジェクトの３Ｄサムネイル画像が、前記現在位置と前記３Ｄオブジェクトの間の距離を示す高さで、前記２Ｄ平面上に現れるようにするステップとをさらに含む、請求項５に記載のコンピュータ実装方法。
【請求項８】
前記オブジェクトインジケータが２Ｄ円板の表面に制約され、前記２Ｄ円板がアナモルフィックレンズを備え、前記３Ｄ環境の前記可視部分内に存在し、前記アナモルフィックレンズが、前記３Ｄ環境の前記可視部分及び前記３Ｄ環境の前記不可視部分の両方からの画像を表示するように構成される、請求項１に記載のコンピュータ実装方法。
【請求項９】
マルチスケール３Ｄデータセットに関連付けられた３Ｄ環境をナビゲートするためのナビゲーションＧＵＩを生成するように構成されたコンピューティングデバイスであって、
前記３Ｄ環境内の現在位置を受け取ることであり、前記３Ｄ環境の可視部分が、前記現在位置に関連付けられた視点に基づいて、表示するためにレンダリングされること、
前記３Ｄ環境の不可視部分内に存在する３Ｄオブジェクトを識別すること、及び
オブジェクトインジケータを前記３Ｄ環境の前記可視部分内に表示させることであり、前記オブジェクトインジケータが、前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの位置を、前記現在位置に対して示す向きを有することを行うように構成された処理ユニットを備え、
前記３Ｄ環境の前記可視部分内の前記オブジェクトインジケータの位置が、同じく前記可視部分内に存在する球面境界に制約される、
コンピューティングデバイス。
【請求項１０】
前記コンピューティングデバイスが、プログラム命令を格納するメモリをさらに備え、前記プログラム命令が、プロセッサによって実行されたとき、前記プロセッサは、
前記３Ｄ環境内の前記現在位置を受け取ること、
前記３Ｄオブジェクトを識別すること、及び
オブジェクトインジケータを前記３Ｄ環境の前記可視部分内に表示させることを行うように、構成される、請求項９に記載のコンピューティングデバイス。
【請求項１１】
メモリがプログラム命令を格納し、前記プログラム命令が、プロセッサによって実行されたとき、前記プロセッサは、
前記３Ｄ環境内の更新された位置を受け取ること、
前記更新された位置に基づいて、前記オブジェクトインジケータを前記可視部分内に存在する円形境界上で再位置決めすること、及び
前記オブジェクトインジケータを再配向して、前記更新された位置に対して前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの前記位置を示すようにすることを行うように、構成される、請求項９に記載のコンピューティングデバイス。
【請求項１２】
メモリがプログラム命令を格納し、前記プログラム命令が、プロセッサによって実行されたとき、前記プロセッサは、
前記３Ｄ環境内の更新された位置を受け取ること、
前記更新された位置に基づいて、前記オブジェクトインジケータを前記球面境界上で再位置決めすること、及び
前記オブジェクトインジケータを再配向して、前記更新された位置に対して前記３Ｄ環境の前記不可視部分内の前記３Ｄオブジェクトの前記位置を示すようにすることを行うように、構成される、請求項９に記載のコンピューティングデバイス。
【請求項１３】
前記オブジェクトインジケータが２Ｄ円板の表面に制約され、前記２Ｄ円板がアナモルフィックレンズを備え、前記３Ｄ環境の前記可視部分内に存在し、前記アナモルフィックレンズが、前記３Ｄ環境の前記可視部分及び前記３Ｄ環境の前記不可視部分の両方からの画像を表示するように構成される、請求項９に記載のコンピューティングデバイス。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本出願は、２０１０年７月３０日に出願した米国特許仮出願第６１／３６９６３５号、及び、２０１１年７月２８日に出願した米国特許出願第１３／１９３５３１号の権利を主張する。これらの出願の各々は、参照により本明細書に組み込まれる。
【発明の背景】
【０００２】
【発明の分野】
【０００３】
[0002]本発明は、コンピュータアニメーションの分野に関し、特に、マルチスケール３次元（３Ｄ）配向に関する。
【関連技術の説明】
【０００４】
[0003]３Ｄコンピュータグラフィックス及び対話のより最近の研究は、単一のオブジェクトオーサリング及び検査の狭い領域を越えて進んでおり、複雑なマルチスケールオブジェクト及び環境を検討し始めている。設計空間のモデリング及び理解のための従来のコンピュータグラフィックス手法は、よく理解されているが、これらの新しい、より複雑なグラフィックス環境に対して、やや制限されることが判明している。これらの新しいグラフィックス環境内で適切に、且つ、より効率的に作業するためには、設計空間のより豊かな理解が必要とされる。
【０００５】
[0004]上記が示すように、当技術分野において、複雑なマルチスケール３Ｄ環境を理解し、その環境と対話するための、改善された技術が必要である。
【発明の概要】
【０００６】
[0005]本発明の一実施形態は、マルチスケール３Ｄデータセットに関連付けられた３次元（３Ｄ）環境をナビゲートするためのナビゲーショングラフィカルユーザインタフェース（ＧＵＩ）を生成するためのコンピュータ実装方法を含む。この方法は、３Ｄ環境内の現在位置を受け取るステップであって、３Ｄ環境の可視部分が、現在位置の視点からの表示のためにレンダリングされる、ステップと、３Ｄ環境の不可視部分内に存在する３Ｄオブジェクトを識別するステップと、オブジェクトインジケータを３Ｄ環境の可視部分内に表示させるステップであって、オブジェクトインジケータが、３Ｄ環境の不可視部分内の３Ｄオブジェクトの位置を、現在位置に対して示す向きを有する、ステップとを含む。
【０００７】
[0006]エンドユーザには、幅広い種類の異なるスケールで観測可能な特性を含む、複雑な３Ｄ環境と対話するための、様々な方法が提供されるので、有利である。そのような手法は、そのような３Ｄ環境の各別個のスケールに関連付けられる、視覚的に没入できる詳細でユーザを引き付けるためには、非常に重要である。
【０００８】
[0007]本発明の上記の特徴が詳細に理解されうるように、上記で簡単にまとめた本発明のより詳細な説明は、実施形態を参照することによって行われうるものであり、実施形態の一部が添付の図面に示される。しかし、添付の図面は、本発明の典型的な実施形態のみを示し、したがって、その範囲を限定するものとして見なされるべきでなく、その理由は、本発明が他の等しく有効な実施形態を認めることができるためであることに留意されたい。
【図面の簡単な説明】
【０００９】
【図１Ａ】[0008]  本発明の１つ又は複数の態様を実装するように構成されたシステムのブロック図である。
【図１Ｂ】[0009]  本発明の一実施形態による、図１Ａのシステムメモリのより詳細な例示の図である。
【図２】[0010]  本発明の一実施形態による、３Ｄシーン内に存在する様々な要素を示す図である。
【図３Ａ】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図３Ｂ】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図４】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図５】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図６】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図７Ａ】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図７Ｂ】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図８】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図９】[0011]  本発明の一実施形態による、３Ｄ環境の異なるスクリーンショットを示す図である。
【図１０】[0012]  本発明の一実施形態による、マルチスケール３Ｄデータセットを可視化するための方法ステップのフローチャートである。
【図１１】[0013]  本発明の一実施形態による、マルチスケール３Ｄデータセットをクエリするための方法ステップのフローチャートである。
【図１２】[0014]  本発明の一実施形態による、マルチスケール３Ｄデータセットに基づいて、ナビゲーションＧＵＩを生成するための方法ステップのフローチャートである。
【詳細な説明】
【００１０】
[0015]以下の説明では、本発明のより完全な理解をもたらすために、多数の特定の詳細が示される。しかし、本発明をこれらの特定の詳細のうち１つ又は複数なしに実施できることは、当業者には明らかであろう。他の場合には、本発明を不明瞭にすることを避けるために、周知の特徴は記載されていない。
【００１１】
ハードウェアの概観
【００１２】
[0016]図１は、本発明の実施形態が実装されうる、システム１００の１つのアーキテクチャを示す。この図は、決して本発明の範囲を限定するものではなく、又は、そのように意図されるものではない。システム１００は、パーソナルコンピュータ、ビデオゲームコンソール、携帯情報端末、レンダリングエンジン、又は、本発明の１つ若しくは複数の実施形態を実施するために適した任意の他のデバイスであってもよい。
【００１３】
[0017]図示のように、システム１００は、メモリブリッジ１０５を含みうるバス経路を介して通信する、中央処理装置（ＣＰＵ）１０２及びシステムメモリ１０４を含む。ＣＰＵ１０２は、１つ又は複数の処理コアを含み、動作中、ＣＰＵ１０２は、他のシステム構成要素の動作を制御且つ調整する、システム１００のマスタプロセッサである。システムメモリ１０４は、ＣＰＵ１０２によって使用するためのソフトウェアアプリケーション及びデータを格納する。ＣＰＵ１０２は、ソフトウェアアプリケーション、及び、随意にオペレーティングシステムを実行する。メモリブリッジ１０５は、例えば、ノースブリッジチップであってもよく、バス又は他の通信経路（例えば、ハイパートランスポートリンク）を介して、Ｉ／Ｏ（入出力）ブリッジ１０７に接続される。Ｉ／Ｏブリッジ１０７は、例えば、サウスブリッジチップであってもよく、ユーザ入力を１つ又は複数のユーザ入力デバイス１０８（例えば、キーボード、マウス、ジョイスティック、デジタイザタブレット、タッチパッド、タッチスクリーン、スチール若しくはビデオカメラ、動きセンサ、及び／又は、マイクロフォン）から受け取り、その入力をＣＰＵ１０２へ、メモリブリッジ１０５を介して転送する。
【００１４】
[0018]表示プロセッサ１１２は、メモリブリッジ１０５へ、バス又は他の通信経路（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ、アクセラレーテッドグラフィックスポート、又は、ハイパートランスポートリンク）を介して結合され、一実施形態では、表示プロセッサ１１２は、少なくとも１つのグラフィックス処理装置（ＧＰＵ）及びグラフィックスメモリを含む、グラフィックスサブシステムである。グラフィックスメモリは、出力画像の画素ごとの画素データを格納するために使用される、表示メモリ（例えば、フレームバッファ）を含む。グラフィックスメモリを、ＧＰＵと同じデバイス内に統合、別のデバイスとしてＧＰＵと接続、及び／又は、システムメモリ１０４内に実装することができる。
【００１５】
[0019]表示プロセッサ１１２は、画素を表示デバイス１１０（例えば、画面、又は、従来のＣＲＴ、プラズマ、ＯＬＥＤ、ＳＥＤ若しくはＬＣＤベースのモニタ若しくはテレビ）へ、定期的に送出する。加えて、表示プロセッサ１１２は、コンピュータにより生成された画像を写真フィルム上に再現するように構成されたフィルムレコーダに、画素を出力してもよい。表示プロセッサ１１２は、表示デバイス１１０に、アナログ又はデジタル信号を供給することができる。
【００１６】
[0020]システムディスク１１４もまた、Ｉ／Ｏブリッジ１０７に接続され、ＣＰＵ１０２及び表示プロセッサ１１２によって使用するためのコンテンツ及びアプリケーション及びデータを格納するように構成されてもよい。システムディスク１１４は、アプリケーション及びデータのための不揮発性記憶を提供し、固定又はリムーバブルのハードディスクドライブ、フラッシュメモリデバイス、及び、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、Ｂｌｕ−ｒａｙ、ＨＤ−ＤＶＤ、又は、他の磁気、光学若しくはソリッドステート記憶装置が含まれうる。
【００１７】
[0021]スイッチ１１６は、Ｉ／Ｏブリッジ１０７と、ネットワークアダプタ１１８並びに様々なアドインカード１２０及び１２１など、他の構成要素との間の接続を提供する。ネットワークアダプタ１１８は、システム１００が電子通信ネットワークを介して他のシステムと通信できるようにし、ローカルエリアネットワーク、及び、インターネットなど、ワイドエリアネットワークを介した、有線又は無線通信を含んでもよい。
【００１８】
[0022]ＵＳＢ又は他のポート接続、フィルム記録デバイスなどを含む、他の構成要素（図示せず）もまた、Ｉ／Ｏブリッジ１０７に接続されてもよい。例えば、音声プロセッサは、ＣＰＵ１０２、システムメモリ１０４、又は、システムディスク１１４によって供給された命令及び／又はデータから、アナログ又はデジタル音声出力を生成するために使用されてもよい。図１の様々な構成要素を相互接続する通信経路は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩ−Ｅ）、ＡＧＰ（アクセラレーテッドグラフィックスポート）、ハイパートランスポート、又は、任意の他のバス若しくはポイントツーポイント通信プロトコル（複数可）など、任意の適切なプロトコルを使用して実装されてもよく、異なるデバイス間の接続は、当技術分野で知られているように、異なるプロトコルを使用してもよい。
【００１９】
[0023]一実施形態では、表示プロセッサ１１２は、例えば、ビデオ出力回路を含む、グラフィックス及びビデオ処理のために最適化された回路を組み込み、グラフィックス処理装置（ＧＰＵ）を構成する。別の実施形態では、表示プロセッサ１１２は、汎用処理のために最適化された回路を組み込む。さらに別の実施形態では、表示プロセッサ１１２は、メモリブリッジ１０５、ＣＰＵ１０２及びＩ／Ｏブリッジ１０７など、１つ又は複数の他のシステム要素と共に統合されて、システムオンチップ（ＳｏＣ）が形成されてもよい。また別の実施形態では、表示プロセッサ１１２は省略され、ＣＰＵ１０２によって実行されたソフトウェアが、表示プロセッサ１１２の機能を行う。
【００２０】
[0024]画素データを、ＣＰＵ１０２から直接、表示プロセッサ１１２へ供給することができる。本発明のいくつかの実施形態では、シーンを表す命令及び／又はデータが、ネットワークアダプタ１１８又はシステムディスク１１４を介して、それぞれシステム１００に類似しているレンダーファーム又はサーバコンピュータのセットに供給される。レンダーファームは、供給された命令及び／又はデータを使用して、そのシーンの１つ又は複数のレンダリングされた画像を生成する。これらのレンダリングされた画像は、コンピュータ可読媒体にデジタル形式で格納されてもよく、随意に表示のためにシステム１００へ返されてもよい。同様に、表示プロセッサ１１２によって処理されたステレオ画像対は、表示のために他のシステムへ出力されてもよく、システムディスク１１４に格納されてもよく、又は、コンピュータ可読媒体にデジタル形式で格納されてもよい。
【００２１】
[0025]別法として、ＣＰＵ１０２は、表示プロセッサ１１２に、ステレオ画像対の間のオフセットの特徴付け及び／又は調整を含む、所望の出力画像を定義するデータ及び／又は命令を供給し、そのデータ及び／又は命令から、表示プロセッサ１１２は、１つ又は複数の出力画像の画素データを生成する。この所望の出力画像を定義するデータ及び／又は命令を、システムメモリ１０４、又は、表示プロセッサ１１２内のグラフィックスメモリに格納することができる。一実施形態では、表示プロセッサ１１２は、シーンのためのジオメトリ、ライティングシェーディング、テクスチャリング、動き、及び／又は、カメラパラメータを定義する命令及びデータから、出力画像のための画素データを生成するための、３Ｄレンダリング機能を含む。表示プロセッサ１１２は、シェーダプログラム、トーンマッピングプログラムなどを実行することができる、１つ又は複数のプログラム可能な実行ユニットをさらに含みうる。
【００２２】
[0026]ＣＰＵ１０２、レンダーファーム、及び／又は、表示プロセッサ１１２は、ラスタライゼーション、スキャンラインレンダリングＲＥＹＥＳ若しくはマイクロポリゴンレンダリング、レイキャスティング、レイトレーシング、画像ベースのレンダリング技術、並びに／又は、当技術分野で知られているこれら及び任意の他のレンダリング若しくは画像処理技術の組み合わせを含む、当技術分野で知られている任意のサーフェス又はボリュームレンダリング技術を採用して、供給されたデータ及び命令から１つ又は複数のレンダリングされた画像を作成することができる。
【００２３】
[0027]本明細書で示されたシステムは例示的であり、変形及び修正が可能であることは理解されよう。ブリッジの数及び配置を含む、接続トポロジは、必要に応じて修正されてもよい。例として、いくつかの実施形態では、システムメモリ１０４は、ブリッジを通してではなく、ＣＰＵ１０２に直接接続され、他のデバイスは、メモリブリッジ１０５及びＣＰＵ１０２を介してシステムメモリ１０４と通信する。他の代替トポロジでは、表示プロセッサ１１２は、メモリブリッジ１０５にではなく、Ｉ／Ｏブリッジ１０７に、又は、ＣＰＵ１０２に直接接続される。さらに他の実施形態では、Ｉ／Ｏブリッジ１０７及びメモリブリッジ１０５は、単一のチップに統合されうる。本明細書で示された個々の構成要素は随意であり、例として、任意の数のアドインカード又は周辺機器がサポートされうる。いくつかの実施形態では、スイッチ１１６は除去され、ネットワークアダプタ１１８及びアドインカード１２０、１２１は、Ｉ／Ｏブリッジ１０７に直接接続する。
【００２４】
ソフトウェアの概観
【００２５】
[0028]図１Ｂは、本発明の一実施形態による、図１Ａのシステムメモリ１０４のより詳細な例示である。図示のように、システムメモリ１０４は、マルチスケール３Ｄデータセット１３２にアクセスするように構成されるマルチスケールデータエンジン１３０を含み、マルチスケール３Ｄデータセット１３２は、複数の異なるスケールで観測可能な特性を有してもよい、３Ｄ環境を表す。
【００２６】
[0029]例えば、マルチスケール３Ｄデータセット１３２は、地球の３Ｄモデルを表す地理空間データセットでありうる。この例では、マルチスケール３Ｄデータセット１３２は、地球を表す大きい球体を含むことがあり、この球体は「惑星」スケールに対応する。さらに、マルチスケール３Ｄデータセット１３２は、都市を表す、球体の表面上に配置された３Ｄの長方形のグループを含むことがあり、これらの３Ｄの長方形のグループは「都市」スケールに対応する。所与の「都市」内で、各「建築物」は、例えば、梁、桁、階段又は窓など、様々な建築物要素を含むことがあり、これらの建築物要素は「建築物」スケールに対応する。マルチスケール３Ｄデータセット１３２は、任意のタイプの３Ｄ環境を表すことができ、加えて、幅広い種類の可能なデータ構造及び／又はデータ形式を使用してそのように行うことができることは、当業者には理解されよう。
【００２７】
[0030]一実施形態では、マルチスケール３Ｄデータセット１３２は、地理情報システム（ＧＩＳ）データベースから得られるデータに基づいて、３Ｄ環境を表す。例えば、マルチスケール３Ｄデータセット１３２は、３Ｄ高度マップを表すことができ、マップ内の各点は、一意のＧＩＳタグを有する。マルチスケール３Ｄデータセット１３２はまた、異なるデータ構造及び／又はデータ形式を実装して、３Ｄ環境内で異なる各スケールを表すこともできる。例えば、マルチスケール３Ｄデータセット１３２は、ある都市の３Ｄモデルを、各々がその都市内の異なる建築物に対応する様々な点群として表すことができる。各点群は、ＧＩＳデータを使用して、「惑星」スケールで位置決めされうる。より小さい「建築物」スケールで、所与の点群内の点は、その点群のＧＩＳタグに関連して定義されうる。
【００２８】
[0031]マルチスケール３Ｄデータセット１３２は、３Ｄ環境を、各々がその３Ｄ環境の異なるスケールに対応する１つ又は複数の異なる３Ｄデータセットを使用して、表すことができる。いくつかの実施形態では、マルチスケール３Ｄデータセット１３２内の各３Ｄデータセットは、他の３Ｄデータセットと共に整列され、又は、マルチスケール３Ｄデータセット１３２内で、他の３Ｄデータセットに対してネストされる。さらに後述するように、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境に、エンドユーザによって、マルチスケールデータエンジン１３０を使用してアクセスすることができる。
【００２９】
[0032]マルチスケールデータエンジン１３０は、可視化エンジン１３４、クエリエンジン１３６、及び、ナビゲーションエンジン１３８を含み、各々は、マルチスケール３Ｄデータセット１３２による様々な処理動作を行うように構成される。エンドユーザは、入力デバイス１０８を介して、マルチスケールデータエンジン１３０内の様々なエンジンにコマンドを発行することができ、表示デバイス１１０を介して、それらのエンジンによって生成された出力を受け取ることができる。図２及び図１０に関連して以下でさらに詳細に説明するように、可視化エンジン１３４は、表示デバイス１１０への出力のために、マルチスケール３Ｄデータセット１３２に基づいて、３Ｄ環境をレンダリングするように構成される。クエリエンジン１３６は、図２及び図１１に関連して以下でさらに詳細に説明するように、入力デバイス１０８を介してエンドユーザから受け取られたクエリに基づいて、マルチスケール３Ｄデータセット１３２内の３Ｄオブジェクトを識別するように構成される。ナビゲーションエンジン１３８は、図３〜図９及び図１２に関連して以下でさらに詳細に説明するように、エンドユーザが、マルチスケールデータセット１３２に関連付けられた３Ｄ環境をナビゲートできるようにするために、マルチスケール３Ｄデータセット１３２に基づいて、様々なナビゲーションＧＵＩを生成するように構成される。
【００３０】
マルチスケール３Ｄデータセットの可視化、クエリ及びナビゲート
【００３１】
[0033]図２は、本発明の一実施形態による、３Ｄシーン２００内に存在する様々な要素の３人称視点を示す。３Ｄシーン２００は、図１Ｂに関連して上述したように、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境の３人称スナップショットを表すことができる。図示のように、３Ｄシーン２００は、３Ｄオブジェクト２０２、２０４及び２０６、並びに、カメラ２０８を含む。図１Ｂに関連して上述された可視化エンジン１３４は、カメラ２０８の視点から、エンドユーザへの表示のための画像をレンダリングするように構成される。
【００３２】
[0034]可視化エンジン１３４はまた、３Ｄオブジェクトを、それらのオブジェクトに関連付けられた空間特性に基づいて選択的にグループ化することによって、３Ｄ環境内で３Ｄオブジェクトの「空間的階層」を生成するようにも構成される。このように、可視化エンジン１３４は、本明細書で例として説明するように、可視の３Ｄオブジェクトの数を減らすことによって、３Ｄ環境を「片付ける」ことができる。
【００３３】
[0035]可視化エンジン１３４は、３Ｄオブジェクト２０２、２０４及び２０６のうち２つ以上を、それらのオブジェクト間の直線距離、カメラ２０８に対するそれらのオブジェクト間の角距離に基づいて、及び／又は、それらのオブジェクトとカメラ２１０の間の距離に基づいて、グループ化するように構成される。３Ｄシーン２００では、δ１は、３Ｄオブジェクト２０２及び２０４の間の直線距離を表し、δ２は、３Ｄオブジェクト２０４及び２０６の間の直線距離を表し、α１は、３Ｄオブジェクト２０２及び２０４の間の角距離を表し、α２は、３Ｄオブジェクト２０４及び２０６の間の角距離を表す。加えて、δ３、δ４及びδ５は、３Ｄオブジェクト２０２、２０４及び２０６とカメラ２０８の間の距離をそれぞれ表す。
【００３４】
[0036]本発明の一実施形態では、可視化エンジン１３４は、３Ｄオブジェクト２０２、２０４及び２０６のうち２つ以上を、それらのオブジェクト間の直線距離が所与の直線閾値未満であるとき、グループ化するように構成されてもよい。例えば、δ１が直線閾値未満である場合、可視化エンジン１３４は、３Ｄオブジェクト２０２及び２０４をグループ化するようになる。
【００３５】
[0037]本発明の別の実施形態では、可視化エンジン１３４は、３Ｄオブジェクト２０２、２０４及び２０６のうち２つ以上を、カメラ２０８に対するそれらのオブジェクト間の角距離が所与の角閾値未満であるとき、グループ化するように構成されてもよい。例えば、α２が角閾値未満である場合、可視化エンジン１３４は、３Ｄオブジェクト２０４及び２０６をグループ化するようになる。
【００３６】
[0038]本発明のさらに別の実施形態では、可視化エンジン１３４は、３Ｄオブジェクト２０２、２０４及び２０６のうち２つ以上を、これらの３Ｄオブジェクト間の直線距離、カメラ２０８に対するこれらの３Ｄオブジェクト間の角距離、又は、各３Ｄオブジェクトとカメラ２０８の間の距離の任意の組み合わせに基づいて、グループ化するように構成されてもよい。
【００３７】
[0039]表示のために画像をレンダリングするとき、可視化エンジン１３４は、３Ｄオブジェクトのグループを、そのグループを表す単一の３Ｄオブジェクトとして表してもよい。例えば、３Ｄオブジェクト２０２及び２０４をグループ化するとき、可視化エンジン１３４は、そのグループを表す単一の３Ｄオブジェクトをレンダリングすることができる。このように、可視化エンジン１３４は、多数の３Ｄオブジェクトを有する３Ｄシーンの複雑さを低減することができる。可視化エンジン１３４は、任意の数の３Ｄオブジェクトを、それらの３Ｄオブジェクトに関連付けられた幅広い種類の空間特性に基づいて共にグループ化できること、及び、上記の例は例示のためのものにすぎないことは、当業者には理解されよう。
【００３８】
[0040]図２の３Ｄシーン２００を再度参照すると、クエリエンジン１３６は、３Ｄオブジェクト２０２、２０４及び２０６のうち１つ又は複数を、それらのオブジェクトに関連付けられた空間特性に基づいて識別するように構成される。この技術によって、クエリエンジン１３６は、エンドユーザが、検索基準に合致する特定の３Ｄオブジェクトを決定するために、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄオブジェクトの検索を実施できるようにする。例えば、エンドユーザは、カメラ２０８の特定の距離内に位置決めされた３Ｄオブジェクトを求めて検索することを望むことがある。その距離がδ５未満であるが、δ３及びδ４よりも大きい場合、クエリエンジン１３６は、エンドユーザのために３Ｄオブジェクト２０６を識別することができる。
【００３９】
[0041]クエリエンジン１３６はまた、それらの３Ｄオブジェクトの他の非空間特性に基づいて、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄオブジェクトの検索を実施するようにも構成される。例えば、クエリエンジン１３６は、１つ又は複数の３Ｄオブジェクトを、それらのオブジェクトの記述、それらのオブジェクトが可視化エンジン１３４によってグループ化されているかどうか、又は、とりわけ、それらの３Ｄオブジェクトが存在するスケールに基づいて、識別してもよい。クエリエンジン１３６はまた、１つ又は複数の３Ｄオブジェクトを、それらのオブジェクトに関連付けられた異なる特性の任意の組み合わせに基づいて識別してもよい。クエリエンジン１３６が１つ又は複数の３Ｄオブジェクトを識別した後、クエリエンジン１３６は、それらのオブジェクトの指示をエンドユーザに対して表示させてもよい。クエリエンジン１３６は、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄオブジェクトの検索を、幅広い種類の空間及び／又は非空間特性に基づいて実施できること、及び、上記の例は例示のためのものにすぎないことは、当業者には理解されよう。
【００４０】
[0042]マルチスケール３Ｄデータセット１３２を可視化且つ検索するための技術を提供することに加えて、マルチスケールデータエンジン１３０はまた、マルチスケール３Ｄデータセット１３２によって表された３Ｄ環境をナビゲートするための様々な技術をも提供する。具体的には、マルチスケールデータエンジン１３０内のナビゲーションエンジン１３８は、図３Ａ〜図９及び図１２に関連して以下でさらに詳細に説明するように、エンドユーザがその３Ｄ環境をナビゲートできるようにする、様々なナビゲーションＧＵＩを生成するように構成される。
【００４１】
[0043]図３Ａは、本発明の一実施形態による、３Ｄ環境のスクリーンショット３００を示す。スクリーンショット３００は、図２に関連して説明したように、カメラ２０８の視点から、可視化エンジン１３４によって生成されうる画像を表す。スクリーンショット３００は、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境を表し、表示デバイス１１０を介してエンドユーザに対して表示されてもよい。図示のように、スクリーンショット３００は、カーソル３０２、方向円錐（ｄｉｒｅｃｔｉｏｎ  ｃｏｎｅ）３０４、及び、３Ｄサムネイル画像３０６を含む。
【００４２】
[0044]ナビゲーションエンジン１３８は、３Ｄ環境内で画面外３Ｄオブジェクトを示すために、方向円錐３０４を生成するように構成される。図３Ａに示す例示的実施形態では、画面外オブジェクトは、スクリーンショット３００が取り込まれた視点の後ろに、右上に向かって存在する。エンドユーザがカーソル３０２を方向円錐３０４の上に乗せるとき、ナビゲーションエンジン１３８は、３Ｄサムネイル画像３０６を生成する。３Ｄサムネイル画像３０６は、画面外オブジェクトを表す（この場合、画面外オブジェクトは円環体である）。ナビゲーションエンジン１３８は、様々な視点から画面外オブジェクトを表すために、３Ｄサムネイル画像３０６を回転させてもよく、３Ｄサムネイル画像３０６を適切なサイズにスケールしてもよい。加えて、エンドユーザがカーソル３０２を使用して、方向円錐３０４を選択するとき、ナビゲーションエンジン１３８は、エンドユーザを、方向円錐３０４によって表された３Ｄオブジェクトへナビゲートしてもよく、すなわち、ナビゲーションエンジン１３８は、３Ｄオブジェクトが画面上にあるように、エンドユーザに関連付けられたカメラ位置を変更してもよい。ナビゲーションエンジン１３８はまた、図３Ｂに関連して以下でさらに詳細に説明するように、３Ｄオブジェクトのグループを表す方向円錐を生成するようにも構成される。
【００４３】
[0045]図３Ｂは、本発明の一実施形態による、３Ｄ環境のスクリーンショット３２０を示す。図３Ａのスクリーンショット３００と同様に、スクリーンショット３２０は、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境を表すために、可視化エンジン１３４によって生成されうる。図示のように、スクリーンショット３２０は、カーソル３０２、方向円錐３２４、及び、分割円板３２６を含む。分割円板は、円板部分３２６−１乃至３２６−５を含む。
【００４４】
[0046]ナビゲーションエンジン１３８は、３Ｄ環境内で画面外の３Ｄオブジェクトのグループを示すために、方向円錐３２４を生成するように構成される。画面外の３Ｄオブジェクトのグループは、例えば、可視化エンジン１３４によって生成されうる。図３Ｂに示す例示的実施形態では、画面外の３Ｄオブジェクトのグループは、スクリーンショット３２０が取り込まれた視点の後ろに、左上に向かって存在する。ナビゲーションエンジン１３８はまた、画面外グループ内に含まれた３Ｄオブジェクトの数を示すために、分割円板３２６を生成するようにも構成される。図示のように、分割円板３２６は、５個のオブジェクトが画面外グループ内に含まれることを示す。ナビゲーションエンジン１３８はまた、画面外オブジェクトの数を、方向円錐３２４及び／又は分割円板３２６と共に明示的に表示させてもよい。
【００４５】
[0047]一実施形態では、ナビゲーションエンジン１３８は、方向円錐３２４を、オブジェクトのグループに関連付けられていない他の方向円錐（例えば、図３Ａの方向円錐３０４など）に対して、一意の色及び／又はテクスチャで表示させてもよい。この技術によって、ナビゲーションエンジン１３８は、３Ｄオブジェクトのグループを示す方向円錐と、単一の３Ｄオブジェクトを示す方向円錐とを区別する。
【００４６】
[0048]エンドユーザがカーソル３０２を方向円錐３２４の上に乗せるとき、ナビゲーションエンジン１３８は、画面外グループ内の３Ｄオブジェクトを表す様々な３Ｄサムネイル画像を表示させてもよく、それらの３Ｄサムネイル画像を適切なサイズにスケールしてもよい。加えて、エンドユーザがカーソル３０２を使用して、方向円錐３２４を選択するとき、ナビゲーションエンジン１３８は、エンドユーザを、３Ｄオブジェクトのグループへナビゲートしてもよく、すなわち、ナビゲーションエンジン１３８は、３Ｄオブジェクトのグループが画面上にあるように、エンドユーザに関連付けられたカメラ位置を変更してもよい。
【００４７】
[0049]ナビゲーションエンジン１３８はまた、図４〜図９に関連して以下でさらに詳細に説明するように、異なる「ナビゲーションＧＵＩ」を生成するために、１つ又は複数の方向円錐、例えば、上記の１つ又は複数の方向円錐３０４及び／又は３２４を、様々な他のグラフィカル要素と共に組み込むようにも構成される。
【００４８】
[0050]図４は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット４００を示す。図示のように、スクリーンショット４００は、円錐の輪（ｃｏｎｅ  ｒｉｎｇ）４０２を含む。円錐の輪４０２は、前述したように、ナビゲーションエンジン１３８によって生成された「ナビゲーションＧＵＩ」である。円錐の輪４０２は、２次元（２Ｄ）円形境界４１４に沿って配置される方向円錐４０４、４０６、４０８、４１０及び４１２を含む。円形境界４１４は、円錐の輪４０２内の方向円錐の好ましい分布を示すためにのみ、スクリーンショット４００内に示され、一般に、エンドユーザにとって可視ではないことがある。
【００４９】
[0051]ナビゲーションエンジン１３８は、現在は画面外である３Ｄオブジェクト及び／又は３Ｄオブジェクトのグループ、すなわち、エンドユーザにとって可視ではない３Ｄオブジェクトを示すために、円錐の輪４０２を生成するように構成される。円錐の輪４０２内に含まれる各方向円錐は、それぞれ図３Ａ及び図３Ｂに関連して上述した方向円錐３０４又は方向円錐３２４に、実質的に類似している。例えば、方向円錐４０６、４０８及び４１０は、図３Ａの方向円錐３０４と同様の方式で、単一の画面外３Ｄオブジェクトを表す。加えて、方向円錐４０４及び４１２は、図３Ｂの方向円錐３２４と同様の方式で、画面外３Ｄオブジェクトのグループを表す。方向円錐３０４及び３２４の場合と同様に、エンドユーザは、カーソル３０２を円錐の輪４０２内の方向円錐のうち１つの上に乗せてもよく、それに応答して、ナビゲーションエンジン１３８は、１つ又は複数の３Ｄサムネイル画像を表示してもよい。さらに、エンドユーザは、円錐の輪４０２内の方向円錐のうち１つを選択してもよく、それに応答して、ナビゲーションエンジン１３８は、その方向円錐によって表された３Ｄオブジェクト又はオブジェクトのグループへ、エンドユーザをナビゲートしてもよい。
【００５０】
[0052]ナビゲーションエンジン１３８は、３Ｄ環境内の円錐の輪４０２を、エンドユーザから所与の距離で、すなわち、エンドユーザに関連付けられたカメラ位置から所与の距離で位置決めするように構成される。その距離は、エンドユーザから受け取られた入力に基づいて設定可能であってもよい。ナビゲーション１３８はまた、円錐の輪４０２を、設定可能な半径を有する円形境界４１４と共に生成するようにも構成される。一実施形態では、ナビゲーションエンジン１３８は、円錐の輪４０２内の各方向円錐の位置及び向きを、３Ｄ環境内のエンドユーザの現在位置に基づいて決定する。別の実施形態では、ナビゲーションエンジン１３８は、円錐の輪４０２内の各方向円錐の位置及び向きを、３Ｄ環境内の円錐の輪４０２の現在位置に基づいて決定してもよい。
【００５１】
[0053]さらに別の実施形態では、ナビゲーションエンジン１３８は、円錐の輪４０２内の各方向円錐の位置及び向きを、エンドユーザの位置の変化、及び／又は、円錐の輪４０２の位置の変化に応じて、動的に変更してもよい。ナビゲーションエンジン１３８が、円錐の輪４０２内の所与の方向円錐の位置を変更するとき、その方向円錐は一般に、円形境界４１４に沿って移動するように制約される。加えて、ナビゲーションエンジン１３８が、円錐の輪４０２内の所与の方向円錐の向きを変更するとき、その方向円錐は一般に、円錐の輪４０２の中心に向かって、又は中心から離れるようにポイントするように制約される。
【００５２】
[0054]ナビゲーションエンジン１３８は、画面上オブジェクトが画面外へ移動するとき、追加の方向円錐を円錐の輪４０２に追加するようにさらに構成される。この状況では、ナビゲーションエンジン１３８は、その画面外オブジェクトを示す方向円錐を追加する。一実施形態では、ナビゲーションエンジン１３８は、画面外オブジェクト及び画面上オブジェクトを共に示すために、円錐の輪４０２内に方向円錐を含めてもよい。この実施形態では、ナビゲーションエンジン１３８は、３Ｄオブジェクトが円形境界４１４内に存在するとき、円錐の輪４０２の中心に向かってポイントする方向円錐を提供してもよい。
【００５３】
[0055]別の実施形態では、ナビゲーションエンジン１３８は、３Ｄオブジェクト（又は、３Ｄオブジェクトのグループ）を、その３Ｄオブジェクト（又は、３Ｄオブジェクトのグループ）の位置に基づいて、方向円錐で示すかどうかを決定してもよい。例えば、所与の３Ｄオブジェクトがエンドユーザの現在位置から十分に遠い場合、ナビゲーションエンジン１３８は、円錐の輪４０２内にその３Ｄオブジェクトを示す方向円錐を含めないことがある。
【００５４】
[0056]図５に関連して以下でさらに詳細に説明するように、ナビゲーションエンジン１３８は、上記の円錐の輪４０２と同様の特性を有してもよい「円錐の球体（ｃｏｎｅ  ｓｐｈｅｒｅ）」ナビゲーションＧＵＩを生成するようにさらに構成される。
【００５５】
[0057]図５は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット５００を示す。図示のように、スクリーンショット５００は、円錐の球体５０２を含む。円錐の球体５０２は、ナビゲーションエンジン１３８によって生成されたナビゲーションＧＵＩであり、方向円錐５０４、５０６、５０８、５１０、５１２、５１４及び５１６を含む。円錐の球体５０２内に含まれる方向円錐は、３Ｄ球面境界５１８に沿って配置される。球面境界５１８は、円錐の球体５０２内の方向円錐の好ましい分布を示すためにのみ、スクリーンショット５００内に示され、一般に、エンドユーザにとって可視ではないことがある。
【００５６】
[0058]上述の円錐の輪４０２の場合と同様に、ナビゲーションエンジン１３８は、現在は画面外である３Ｄオブジェクト及び／又は３Ｄオブジェクトのグループ、すなわち、エンドユーザにとって可視ではない３Ｄオブジェクトを示すために、円錐の球体５０２を生成するように構成される。円錐の球体５０２内に含まれる各方向円錐は、それぞれ図３Ａ及び図３Ｂに関連して上述した方向円錐３０４又は方向円錐３２４に、実質的に類似している。例えば、方向円錐５０４、５０６、５１２、５１４及び５１６は、図３Ａの方向円錐３０４と同様の方式で、単一の画面外３Ｄオブジェクトを表す。加えて、方向円錐５０８及び５１０は、図３Ｂの方向円錐３２４と同様の方式で、画面外３Ｄオブジェクトのグループを表す。方向円錐３０４及び３２４の場合と同様に、エンドユーザは、カーソル３０２を円錐の輪４０２内の方向円錐のうち１つの上に乗せてもよく、それに応答して、ナビゲーションエンジン１３８は、１つ又は複数のサムネイル３Ｄ画像を表示してもよい。さらに、エンドユーザは、円錐の輪４０２内の方向円錐のうち１つを選択してもよく、それに応答して、ナビゲーションエンジン１３８は、その方向円錐によって表された３Ｄオブジェクト又はオブジェクトのグループへ、エンドユーザをナビゲートしてもよい。
【００５７】
[0059]ナビゲーションエンジン１３８は、３Ｄ環境内の円錐の球体５０２を、エンドユーザから所与の距離で、すなわち、エンドユーザに関連付けられたカメラ位置から所与の距離で位置決めするように構成される。その距離は、エンドユーザから受け取られた入力に基づいて設定可能であってもよい。ナビゲーション１３８はまた、円錐の球体５０２を、設定可能な半径を有する球面境界５１８と共に生成するようにも構成される。一実施形態では、ナビゲーションエンジン１３８は、円錐の球体５０２内の各方向円錐の位置及び向きを、３Ｄ環境内のエンドユーザの現在位置に基づいて決定する。別の実施形態では、ナビゲーションエンジン１３８は、円錐の球体５０２内の各方向円錐の位置及び向きを、３Ｄ環境内の円錐の球体５０２の現在位置に基づいて決定してもよい。
【００５８】
[0060]さらに別の実施形態では、ナビゲーションエンジン１３８は、円錐の球体５０２内の各方向円錐の位置及び向きを、エンドユーザの位置の変化、及び／又は、円錐の球体５０２の位置の変化に応じて、動的に変更してもよい。ナビゲーションエンジン１３８が、円錐の球体５０２内の所与の方向円錐の位置を変更するとき、その方向円錐は一般に、球面境界５１８に沿って移動するように制約される。加えて、ナビゲーションエンジン１３８が、円錐の球体５０２内の所与の方向円錐の向きを変更するとき、その方向円錐は一般に、円錐の球体５０２の中心に向かって、又は中心から離れるようにポイントするように制約される。
【００５９】
[0061]ナビゲーションエンジン１３８は、画面上オブジェクトが画面外へ移動するとき、追加の方向円錐を円錐の球体５０２に追加するようにさらに構成される。この状況では、ナビゲーションエンジン１３８は、その画面外オブジェクトを示す方向円錐を追加する。一実施形態では、ナビゲーションエンジン１３８は、画面外オブジェクト及び画面上オブジェクトを共に示すために、円錐の球体５０２内に方向円錐を含めてもよい。この実施形態では、ナビゲーションエンジン１３８は、３Ｄオブジェクトが球面境界５１８内に存在するとき、円錐の球体５０２の中心に向かってポイントする方向円錐を提供してもよい。
【００６０】
[0062]別の実施形態では、ナビゲーションエンジン１３８は、３Ｄオブジェクト（又は、３Ｄオブジェクトのグループ）を、その３Ｄオブジェクト（又は、３Ｄオブジェクトのグループ）の位置に基づいて、方向円錐で示すかどうかを決定してもよい。例えば、所与の３Ｄオブジェクトがエンドユーザの現在位置から十分に遠い場合、ナビゲーションエンジン１３８は、その３Ｄオブジェクトを示す円錐の球体５０２内の方向円錐を含めないことがある。
【００６１】
[0063]ナビゲーションエンジン１３８は、図５に関連して以下でさらに詳細に説明するように、円錐の球体５０２の表面を２Ｄ平面に変換することによって、円錐の球体５０２の２Ｄ表現を生成するように構成される。
【００６２】
[0064]図６は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット６００を示す。図示のように、スクリーンショット６００は、グリッド６０２を含む。ナビゲーションエンジン１３８は、円錐の球体５０２の球面境界５１８を２Ｄ平面上に投影することによって、グリッド６０２を生成する。グリッド６０２は、方向円錐６０４、６０８、６１０、６１２及び６１６を含む。グリッド６０２内の方向円錐は、円錐の球体５０２の表面上に配置された方向円錐に直接対応してもよい。
【００６３】
[0065]方向円錐６０８、６１０及び６１６は、図３Ａの方向円錐３０４と同様に、単一の画面外３Ｄオブジェクトを表す。加えて、方向円錐６０８、６１４及び６２０はまた、それぞれ拡張底面６１０、６１６及び６１８をも含む。所与の方向円錐の周囲の拡張底面には、エンドユーザの現在位置から、その円錐に関連付けられた３Ｄオブジェクトまでの距離に基づいて、陰影が付けられる。このように、拡張底面６１０、６１６及び６１８は、エンドユーザの現在位置から、それらの拡張底面に対応する方向円錐に関連付けられた３Ｄオブジェクトまでの距離を示す。
【００６４】
[0066]方向円錐６０４及び６１２は、図３Ｂの方向円錐３２４と同様に、画面外３Ｄオブジェクトのグループを表す。方向円錐６０４及び６１２はまた、それぞれ分割円板６０６及び６１４をも含む。分割円板６０６は、円板部分６０６−１乃至６０６−４を含むが、分割円板６１４は、円板部分６１４−１及び６１４−２を含む。加えて、拡張底面６１０、６１６及び６１８のように、所与の方向円錐の周囲の分割円板には、その円錐に関連付けられた３Ｄオブジェクトまでの距離に基づいて、陰影が付けられる。このように、分割円板６０６及び６１４は、それらの分割円板に対応する方向円錐に関連付けられた３Ｄオブジェクトまでの距離を示す。一実施形態では、エンドユーザは、方向円錐６０４又は６１４のうち１つにズームインしてもよく、それに応答して、ナビゲーションエンジン１３８は次いで、その方向円錐によって表されたグループ内の３Ｄオブジェクトに対応する３Ｄサムネイル画像を表示する。
【００６５】
[0067]図４〜図６に関連して説明したナビゲーションＧＵＩは、図７〜図９に関連して以下でさらに詳細に説明するように、画面外に位置決めされる３Ｄオブジェクト及び３Ｄオブジェクトのグループの表現を表示するように、さらに拡張されてもよい。
【００６６】
[0068]図７Ａは、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット７００を示す。図示のように、スクリーンショット７００は、ミラーボール７０２を含む。ミラーボール７０２は、ナビゲーションエンジン１３８によって生成された別のナビゲーションＧＵＩである。ミラーボール７０２は、画面外オブジェクトの画像が現れることができる、反射表面７０４を有する。ミラーボール７０２の反射表面７０４は、ボロノイ領域７１０、７２０、７３０、７４０、７５０及び７６０に分割される。反射表面７０４上の各ボロノイ領域は、周囲の３Ｄ環境の異なる領域の反射画像を表示することができる。各ボロノイ領域はまた、そのボロノイ領域に対応する３Ｄ環境の領域内に存在する３Ｄオブジェクト又は３Ｄオブジェクトのグループの反射画像を表示することもできる。例えば、ボロノイ領域７６０は、画面外ボールの画像７６４を反射する。同様に、ボロノイ領域７５０は、画面外円環体の画像７５２を反射する。ナビゲーションエンジン１３８は、反射表面７０４によって反射されたあらゆる画像が同様のサイズを有するように、反射表面７０４によって反射された画像をスケールするように構成される。
【００６７】
[0069]所与のボロノイ領域が、３Ｄオブジェクト又は３Ｄオブジェクトのグループを含む３Ｄ環境の画像を反射するとき、ナビゲーションエンジン１３８は、そのボロノイ領域内の方向円錐を含む。図示のように、ボロノイ領域７２０は方向円錐７２２を含み、ボロノイ領域７４０は方向円錐７４２を含み、ボロノイ領域７５０は方向円錐７５２を含み、ボロノイ領域７６０は方向円錐７６２を含む。所与のボロノイ領域内の方向円錐は、それぞれ図３Ａ及び図３Ｂに関連して上述した方向円錐３０４又は方向円錐３２４に、実質的に類似していてもよい。
【００６８】
[0070]一実施形態では、ナビゲーションエンジン１３８は、ボロノイ領域内の方向円錐の高さを、ミラーボール７０２と、そのボロノイ領域に関連付けられた３Ｄオブジェクト若しくは３Ｄオブジェクトのグループ、及び／又は、３Ｄ環境内のエンドユーザのカメラ位置との間の距離に基づいて決定する。別の実施形態では、ナビゲーションエンジン１３８は、各ボロノイ領域に、ミラーボール７０２と、そのボロノイ領域に関連付けられた３Ｄオブジェクト若しくは３Ｄオブジェクトのグループ、及び／又は、３Ｄ環境内のエンドユーザのカメラ位置との間の距離に基づいて、陰影を付けるように構成される。例えば、図示のように、ボロノイ領域７４０及び７６０は陰影付きで現れ、対応する３Ｄオブジェクト又は３Ｄオブジェクトのグループがミラーボール７０２から比較的遠く離れていることを示す。
【００６９】
[0071]ナビゲーションエンジン１３８はまた、図７Ｂに関連して以下でさらに詳細に説明するように、エンドユーザが３Ｄオブジェクトのグループをナビゲートできるようにするために、３Ｄ環境内で複数のミラーボールを生成するようにも構成される。
【００７０】
[0072]図７Ｂは、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット７７０を示す。図示のように、スクリーンショット７７０は、ミラーボール群７８８を含む。ミラーボール群７８８は、ナビゲーションエンジン１３８によって生成された別のナビゲーションＧＵＩであり、３Ｄオブジェクト７７２に対して配置された親ミラーボール７７４及び子ミラーボール７７８を含む。一般に、ミラーボール群７８８は、エンドユーザが親ミラーボール７７４を介して、子ミラーボール７７８を見ることができるようにする。ミラーボール群７８８はまた、エンドユーザが子ミラーボール７７８を介して、３Ｄオブジェクト７７２を見ることもできるようにする。
【００７１】
[0073]ナビゲーションエンジン１３８は、より大きい３Ｄオブジェクトのグループの一部でありうる、３Ｄオブジェクト７７２に対して、その３Ｄオブジェクトのグループをよりよく見ることを可能にするために、親ミラーボール７７４及び子ミラーボール７７８を生成且つ位置決めするように構成される。補助線７８４は、親ミラーボール７７４と子ミラーボール７７８の間の親子関係を示すが、補助線７８６は、子ミラーボール７７８と３Ｄオブジェクト７７２の間の関係を示す。親ミラーボール７７４及び子ミラーボール７７８の各々は、図７Ａに関連して上述したミラーボール７０２に実質的に類似している。親ミラーボールは、ボロノイ領域７７６を含むが、子ミラーボールは、ボロノイ領域７８０を含む。図示のように、ボロノイ領域７８０は、３Ｄオブジェクト７７２の画像７８２を反射する。
【００７２】
[0074]ミラーボール群７８８を使用して、３Ｄ環境をナビゲートするとき、エンドユーザは典型的には、親ミラーボール７７４に依拠して、３Ｄオブジェクト及び３Ｄオブジェクトのグループを識別する。ナビゲーションエンジン１３８は、子ミラーボール７７８を使用して、３Ｄオブジェクトのグループを表すことを、親ミラーボール７７４に行わせるように構成される。したがって、ボロノイ領域７７６は、子ミラーボール７７８の画像を反射することができ、子ミラーボール７７８はさらに、３Ｄオブジェクト７７２を表すことができる。このように、ナビゲーションエンジン１３８は、親子ミラーボールの空間的階層を生成するように構成される。ナビゲーションエンジン１３８はまた、エンドユーザがその空間的階層をナビゲートできるようにもする。例えば、エンドユーザは、親ミラーボール７７４内で子ミラーボール７７８の反射画像を選択することができ、それに応答して、ナビゲーションエンジン１３８は、エンドユーザのカメラ位置を、子ミラーボール７７８の方へ向けられるように移動させるようにする。さらに、エンドユーザは次いで、画像７８２を選択することができ、それに応答して、ナビゲーションエンジン１３８は、エンドユーザのカメラ位置を、３Ｄオブジェクト７７２の方へ向けられるように移動させるようにする。一実施形態では、親ミラーボール７７４及び子ミラーボール７７８はそれぞれ、マルチスケール３Ｄデータセット１３２内の異なる３Ｄデータセットに対応する。
【００７３】
[0075]ナビゲーションエンジン１３８はまた、図８に関連して以下でさらに詳細に説明するように、ミラーボールの２Ｄ表現を、そのミラーボールの表面を２Ｄ空間に投影することによって生成するようにも構成される。
【００７４】
[0076]図８は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット８００を示す。図示のように、スクリーンショット８００は、展開表面８０２を含む。ナビゲーションエンジン１３８は、ミラーボールの反射表面を展開すること、及び、その反射表面を２Ｄ平面上に投影することによって、展開表面８０２を生成する。展開表面８０２は、球体の表面を広げるための、任意の技術的に実現可能なアルゴリズムを使用して、ミラーボールに基づいて生成されうることは、当業者には理解されよう。展開表面８０２は、ボロノイ領域８１０、８２０、８３０、８４０、８５０、８６０、８７０、８８０及び８９０を含む。ボロノイ領域８１０、８２０及び８８０は、方向円錐８１２、８２２及び８８２をそれぞれ含む。
【００７５】
[0077]展開表面８０２のボロノイ領域内に配置された所与の方向円錐は、そのボロノイ領域に関連付けられたオブジェクト又はオブジェクトのグループを示す。例えば、方向円錐８１２は、３Ｄオブジェクト８１４を示し、方向円錐８２２は、３Ｄオブジェクト８２４及び８２６を含む３Ｄオブジェクトのグループを示し、方向円錐８８２は、３Ｄオブジェクト８８４を示す。ナビゲーションエンジン１３８は、所与の方向円錐に関連付けられた所与の３Ｄオブジェクト又は３Ｄオブジェクトのグループを、その方向円錐の上の特定の高さで位置決めするように構成される。ナビゲーションエンジン１３８は、エンドユーザのカメラ位置と、３Ｄオブジェクト又は３Ｄオブジェクトのグループとの間の距離に基づいて、その高さを決定する。図７Ａに関連して上述したミラーボール７０２の場合と同様に、エンドユーザは、展開表面９０２を使用して、特定の３Ｄオブジェクト又は３Ｄオブジェクトのグループへナビゲートすることができる。
【００７６】
[0078]ナビゲーションエンジン１３８はまた、以下で図９でさらに詳細に説明するように、エンドユーザが３Ｄ環境の圧縮表現を見ることができるようにする、「アナモルフィックレンズ」ナビゲーションＧＵＩを生成するようにも構成される。
【００７７】
[0079]図９は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境のスクリーンショット９００を示す。図示のように、スクリーンショット９００は、アナモルフィックレンズ８０２、並びに、３Ｄオブジェクト８１４、８２４及び８６４を含む。アナモルフィックレンズ８０２の表面は、ボロノイ領域８１０、８２０、８３０、８４０、８５０及び８６０に分割される。各ボロノイ領域は、３Ｄ環境の異なる領域に対応する画像を表示することができる。ナビゲーションエンジン１３８は、アナモルフィックレンズ８０２に、水平及び垂直の両方で１８０度の視野内にある、３Ｄ環境の領域からの画像を表示させる。したがって、アナモルフィックレンズ８０２は、画面上３Ｄオブジェクト及び画面外３Ｄオブジェクトの両方の画像を表示することができる。
【００７８】
[0080]ボロノイ領域８１０は、３Ｄオブジェクト８１４の画像８１２を表示し、ボロノイ領域８２０は、３Ｄオブジェクト８２４の画像８２２を表示し、ボロノイ領域８５０は、画面外３Ｄオブジェクトの画像を表示し、ボロノイ領域８６０は、３Ｄオブジェクト８６４の画像８６２を表示する。ナビゲーションエンジン１３８は、各ボロノイ領域が、エンドユーザのカメラ位置から、そのボロノイ領域に関連付けられた３Ｄオブジェクト又は３Ｄオブジェクトのグループまでの距離に基づいて、陰影を付けられるようにするように構成される。例えば、３Ｄオブジェクト８２４は、エンドユーザのカメラ位置に比較的近く、そのため、ボロノイ領域８２０は淡く着色される。逆に、３Ｄオブジェクト８６４は、エンドユーザのカメラ位置から比較的遠く離れており、そのため、ボロノイ領域８６０には比例的に陰影が付けられる。
【００７９】
[0081]ナビゲーションエンジン１３８はまた、あらゆる画像が同様のサイズを有するように、各ボロノイ領域内の画像をスケールするようにも構成される。例えば、３Ｄオブジェクト８２４はかなり大きく見えるのに対し、３Ｄオブジェクト８１４はかなり小さく見えるが、それらの３Ｄオブジェクトに対応する画像（それぞれ、画像８２２及び８１２）は、同様のサイズに見える。一実施形態では、ナビゲーションエンジン１３８は、エンドユーザのカメラ位置の後ろに存在する３Ｄオブジェクト及び３Ｄオブジェクトのグループを表示するために、アナモルフィックレンズ８０２をミラーボール７０２と共に実装する。
【００８０】
[0082]ナビゲーションエンジン１３８は、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境をエンドユーザがナビゲートできるようにするとき、図３Ａ〜図９に関連して上述したナビゲーションＧＵＩのうち任意のもの、及び、それらの任意の組み合わせを実装してもよいことは、当業者には理解されよう。加えて、ナビゲーションエンジン１３８は、とりわけ、マルチスケール３Ｄデータセット１３２、マルチスケール３Ｄデータセット１３２内の特定の３Ｄデータセット、ユーザ入力及び／若しくはユーザの好み、又は、３Ｄ環境の現在のスケールに基づいて、特定のナビゲーションＧＵＩを選択してもよい。さらに、ナビゲーションエンジン１３８は、ナビゲーションＧＵＩのうち任意のものを共に関連付けることによって、３Ｄ環境内の親子関係の空間的階層を生成してもよい。
【００８１】
[0083]図１０は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２を可視化するための方法ステップのフローチャートである。これらの方法ステップは、図１Ａ及び図１Ｂのシステムに関連して説明されるが、これらの方法ステップを任意の順序で行うように構成されたいかなるシステムも、本発明の範囲内であることは、当業者には理解されよう。
【００８２】
[0084]図示のように、方法１０００はステップ１００２で開始し、そこで、マルチスケールデータエンジン１３０内の可視化エンジン１３４は、１つ又は複数の３Ｄオブジェクトを３Ｄ環境内で表示する。可視化エンジン１３４は、マルチスケール３Ｄデータセット１３２に基づいて、３Ｄ環境を生成する。ステップ１００４で、可視化エンジン１３４は、各３Ｄオブジェクト間の直線距離を決定する。ステップ１００６で、可視化エンジン１３４は、エンドユーザに関連付けられたカメラ位置に対する、各３Ｄオブジェクト間の角距離を決定する。実際には、可視化エンジン１３４は、そのカメラ位置の視点から表示するために、３Ｄ環境をレンダリングしてもよい。ステップ１００８で、可視化エンジン１３４は、各３Ｄオブジェクトと、エンドユーザに関連付けられたカメラ位置との間の距離を決定する。
【００８３】
[0085]ステップ１０１０で、可視化エンジン１３４は、３Ｄオブジェクト間の直線距離、カメラ位置に対する３Ｄオブジェクト間の角距離、及び／又は、３Ｄオブジェクトとカメラ位置の間の距離に基づいて、１つ又は複数のオブジェクトグループを決定する。ステップ１０１２で、可視化エンジン１３４は、オブジェクトグループを３Ｄ環境内で表示させる。方法１０００を実装することによって、可視化エンジン１３４は、可視の３Ｄオブジェクトの数を減らすことによって、３Ｄ環境を「片付ける」ことができる。
【００８４】
[0086]図１１は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２をクエリするための方法ステップのフローチャートである。これらの方法ステップは、図１Ａ及び図１Ｂのシステムに関連して説明されるが、これらの方法ステップを任意の順序で行うように構成されたいかなるシステムも、本発明の範囲内であることは、当業者には理解されよう。
【００８５】
[0087]図示のように、方法１１００はステップ１１０２で開始し、そこで、マルチスケールデータエンジン１３０内のクエリエンジン１３６は、所望の３Ｄオブジェクトのセットに関連付けられた１つ又は複数の空間特性を指定する、エンドユーザからのクエリを受け取る。空間特性は、例えば、カメラ位置までの最大距離でありうる。一実施形態では、クエリはまた、所望の３Ｄオブジェクトに関連付けられたカテゴリなど、非空間特性をも指定してもよい。ステップ１１０４で、クエリエンジン１３６は、クエリ内で指定された空間特性に合致するいかなる３Ｄオブジェクトをも識別する。それらの３Ｄオブジェクトは、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境内に存在する。ステップ１１０６で、クエリエンジン１３６は、識別された３Ｄオブジェクトの指示を表示させる。指示は、例えば、識別された３Ｄオブジェクトの周囲の輝きでありうる。方法１１００を実装することによって、クエリエンジン１３６は、指定された特性に合致する３Ｄオブジェクトをエンドユーザが識別できるようにする。
【００８６】
[0088]図１２は、本発明の一実施形態による、マルチスケール３Ｄデータセット１３２に基づいて、ナビゲーションＧＵＩを生成するための方法ステップのフローチャートである。これらの方法ステップは、図１Ａ及び図１Ｂのシステムに関連して説明されるが、これらの方法ステップを任意の順序で行うように構成されたいかなるシステムも、本発明の範囲内であることは、当業者には理解されよう。
【００８７】
[0089]図示のように、方法１２００はステップ１２０２で開始し、そこで、マルチスケールデータエンジン１３０内のナビゲーションエンジン１３８は、マルチスケール３Ｄデータセット１３２に関連付けられた３Ｄ環境内の現在のカメラ位置を受け取る。現在のカメラ位置を使用して、エンドユーザに対して表示するために３Ｄ環境の画像をレンダリングしてもよい。ステップ１２０４で、ナビゲーションエンジン１３８は、３Ｄ環境内で３Ｄオブジェクトのセットを識別する。３Ｄオブジェクトは、個々の３Ｄオブジェクト、又は、３Ｄオブジェクトのグループでありうる。ステップ１２０６で、ナビゲーションエンジン１３８は、３Ｄオブジェクトに関連付けられた１つ又は複数の空間特性を決定する。ステップ１２０８で、ナビゲーションエンジン１３８は、１つ又は複数のナビゲーションＧＵＩを、１つ又は複数の空間特性に基づいて表示させる。
【００８８】
[0090]エンドユーザがナビゲーションＧＵＩを使用して、３Ｄ環境中をナビゲートするとき、方法１２００が繰り返し実装されうることは、当業者には理解されよう。例えば、ナビゲーションエンジン１３８が、方法１２００を実装することによって、ナビゲーションＧＵＩを表示させた後、エンドユーザは、カメラを３Ｄ環境内の異なる位置へ移動させるために、ナビゲーションＧＵＩを操作してもよい。ナビゲーションエンジン１３８は次いで、方法１２００を再度実装することによって、別のナビゲーションＧＵＩを表示させてもよい。方法１２００をこのように１回又は複数回実装することによって、ナビゲーションエンジン１３８は、様々な異なるナビゲーションＧＵＩを表示させてもよい。
【００８９】
[0091]要するに、マルチスケールデータエンジンは、マルチスケール３Ｄデータセットにアクセスするように、且つ、そのマルチスケール３Ｄデータセットに基づいて３Ｄ環境を生成するように構成される。マルチスケールデータエンジンは、その環境内で様々な３Ｄオブジェクトをグループ化するために、３Ｄ環境を操作する。マルチスケールデータエンジンはまた、エンドユーザから受け取られた検索基準に合致する３Ｄオブジェクトを識別するために、３Ｄ環境の検索をも実施してもよい。加えて、マルチスケールデータエンジンは、エンドユーザが３Ｄ環境をナビゲートできるようにする、様々なナビゲーションＧＵＩを生成するように構成される。エンドユーザには、幅広い種類の異なるスケールで観測可能な特性を含む、複雑な３Ｄ環境と対話するための、様々な技術が提供されるので、有利である。そのような手法は、そのような３Ｄ環境の各別個のスケールに関連付けられる、視覚的に没入できる詳細でユーザを引き付けるためには、非常に重要である。
【００９０】
[0092]本発明の一実施形態は、コンピュータシステムで使用するためのプログラム製品として実装されてもよい。プログラム製品のプログラム（複数可）は、実施形態の機能（本明細書に記載の方法を含む）を定義し、様々なコンピュータ可読記憶媒体に含まれうる。例示的コンピュータ可読記憶媒体には、限定はされないが、（ｉ）情報が永続的に格納される、書き込み不可能な記憶媒体（例えば、ＣＤ−ＲＯＭドライブによって可読なＣＤ−ＲＯＭディスク、フラッシュメモリ、ＲＯＭチップ、又は、任意のタイプのソリッドステート不揮発性半導体メモリなど、コンピュータ内のリードオンリーメモリデバイス）、及び、（ｉｉ）変更可能な情報が格納される、書き込み可能な記憶媒体（例えば、ディスケットドライブ内のフロッピーディスク若しくはハードディスクドライブ、又は、任意のタイプのソリッドステートランダムアクセス半導体メモリ）が含まれる。
【００９１】
[0093]本発明を、上記で具体的な実施形態を参照して説明した。しかし、添付の特許請求の範囲に記載したような本発明のより広い精神及び範囲から逸脱することなく、様々な修正及び変更が行われうることは、当業者には理解されよう。上記の説明及び図面は、したがって、限定的な意味ではなく、例示的な意味で見なされるべきである。本発明を、以下の特許請求の範囲に記載する。
【図１Ａ】
0005592011.tif 000002
【図１Ｂ】
0005592011.tif 000003
【図２】
0005592011.tif 000004
【図３Ａ】
0005592011.tif 000005
【図３Ｂ】
0005592011.tif 000006
【図４】
0005592011.tif 000007
【図５】
0005592011.tif 000008
【図６】
0005592011.tif 000009
【図７Ａ】
0005592011.tif 000010
【図７Ｂ】
0005592011.tif 000011
【図８】
0005592011.tif 000012
【図９】
0005592011.tif 000013
【図１０】
0005592011.tif 000014
【図１１】
0005592011.tif 000015
【図１２】
0005592011.tif 000016