(57)【要約】限定されたリソースと、インターネットへの接続とを有する、モバイルデバイスにおいて、リアルタイムまたはオフライン３Ｄ再構成および走査の出力を効率的に更新および管理するための方法が、提供される。本方法は、同一３Ｄ再構成データを共有および更新する、単一ユーザアプリケーションまたはマルチユーザアプリケーションのいずれかにおいて、様々なモバイルＸＲアプリケーションに、新鮮、正確、かつ包括的３Ｄ再構成データを利用可能にする。本方法は、同時に、ローカル更新を可能にし、近傍一貫性を維持する、ブロックベースの３Ｄデータ表現と、ＸＲアプリケーションのための３Ｄデータを効率的に読み出し、事前にフェッチし、記憶する、多層キャッシュ機構とを含む。
2021507403.tif 000002
【特許請求の範囲】
【請求項１】
ポータブル電子システムであって、
センサであって、前記センサは、物理的世界内のオブジェクトについての３次元（３Ｄ）情報を捕捉するように構成される、センサと、
ローカルメモリと、
送受信機であって、前記送受信機は、コンピュータネットワークを経由した遠隔メモリとの通信のために構成される、送受信機と、
プロセッサであって、前記プロセッサは、少なくとも部分的に、前記物理的世界内のオブジェクトについての３Ｄ情報に基づいて、前記物理的世界の一部の３Ｄ表現を提供するためのコンピュータ実行可能命令を実行するように構成される、プロセッサと
を備え、
前記物理的世界の一部の３Ｄ表現は、複数のブロックを備え、前記複数のブロックは、バージョンを有し、各バージョンは、ある時点における前記物理的世界の一部のある領域内のオブジェクトを表す値を有し、
前記コンピュータ実行可能命令は、
前記物理的世界の一部に対応する前記複数のブロックのサブセットを識別することと、
（ｉ）前記ローカルメモリ内のブロックの以前に記憶されたバージョンにアクセスすること、または（ｉｉ）前記遠隔メモリ内のブロックの以前に記憶されたバージョンにアクセスすること、および／または（ｉｉｉ）少なくとも部分的に、前記物理的世界内のオブジェクトについての３Ｄ情報に基づいて、ブロックの新しいバージョンを生成することによって、前記ブロックのサブセットを表すブロックのバージョンを選択することと
を行うための命令を備える、ポータブル電子システム。
【請求項２】
前記プロセッサは、前記物理的世界の一部の３Ｄ表現をアプリケーションに提供するサービスを実装する、請求項１に記載のポータブル電子システム。
【請求項３】
前記アプリケーションは、前記ポータブル電子システム上で実行される、請求項２に記載のポータブル電子システム。
【請求項４】
前記ブロックのバージョンを選択するためのコンピュータ実行可能命令は、前記アプリケーションに提供するための前記ブロックの選択されたバージョンを決定するための命令を備える、請求項２に記載のポータブル電子システム。
【請求項５】
前記ブロックのサブセットを表すブロックのバージョンを選択することは、前記バージョンが記憶されて以降、ブロックメトリックの大きさが閾値を下回るとき、前記ローカルメモリ内のブロックの以前に記憶されたバージョンを選択することを含む、請求項１に記載のポータブル電子システム。
【請求項６】
前記ブロックメトリックの大きさは、前記ブロックの幾何学形状変化の程度を示す、請求項５に記載のポータブル電子システム。
【請求項７】
前記ブロックメトリックは、タイムスタンプである、請求項５に記載のポータブル電子システム。
【請求項８】
前記ブロックのサブセットを表すブロックのバージョンを選択することは、前記ローカルメモリ内の前記ブロックの対応するバージョンが存在しないとき、前記遠隔メモリ内のブロックの以前に記憶されたバージョンを選択することを含む、請求項１に記載のポータブル電子システム。
【請求項９】
前記ブロックのサブセットを表すブロックのバージョンを選択することは、前記ローカルメモリまたは前記遠隔メモリ内の前記ブロックの対応する最新のバージョンが存在しないとき、少なくとも部分的に、前記物理的世界内のオブジェクトについての３Ｄ情報に基づいて、ブロックの新しいバージョンを生成することを含む、請求項１に記載のポータブル電子システム。
【請求項１０】
前記サービスは、変化を示すメトリックが閾値を下回る前記物理的世界の一部に対応するブロックのバージョンを、前記メモリから、ローカルキャッシュまたはクラウドキャッシュにページングする、請求項２に記載のポータブル電子システム。
【請求項１１】
ブロックの新しいバージョンを生成することは、隣り合ったブロックの値に基づいて、ブロックの境界値を生成することを含む、請求項１に記載のポータブル電子システム。
【請求項１２】
前記プロセッサは、前記ポータブル電子システム上で実行されるアプリケーションプログラミングインターフェース（ＡＰＩ）を通して、情報を提供する、請求項１に記載のポータブル電子システム。
【請求項１３】
前記コンピュータ実行可能命令はさらに、
座標フレームを前記物理的世界の一部内に作成するための命令を備え、
前記複数のブロックの各ブロックは、前記座標フレームを使用して識別可能な前記物理的世界の一部の異なる領域内のオブジェクトを表す、請求項１に記載のポータブル電子システム。
【請求項１４】
前記コンピュータ実行可能命令はさらに、
前記３Ｄ情報をボクセル、ブリック、およびタイルに処理することであって、各ボクセルは、１つ以上の符号付き距離関数（ＳＤＦ）を備え、各ブリックは、１つ以上のボクセルを備え、各タイルは、１つ以上のブリックを備える、ことと、
１つ以上のタイルをメッシュに変換することによって、前記複数のブロックの各ブロックを生成することと
を行うための命令を備え、
前記３Ｄ情報は、タイルおよび／またはブロックに基づいて、前記ローカルメモリからページングされる、請求項１に記載のポータブル電子システム。
【請求項１５】
少なくとも１つの非一過性コンピュータ可読記憶媒体であって、前記少なくとも１つの非一過性コンピュータ可読記憶媒体は、複数のコンピュータ実行可能命令でエンコードされており、前記複数のコンピュータ実行可能命令は、少なくとも１つのプロセッサによって実行されると、物理的世界の３Ｄ表現を提供するための方法を実施し、前記方法は、
第１のユーザの第１の視野（ＦＯＶ）内の前記物理的世界の一部内のオブジェクトについての３Ｄ情報を捕捉することと、
前記物理的世界の一部を３Ｄ再構成データの第１の複数のブロックとして表すことであって、３Ｄ再構成データの各ブロックは、前記物理的世界の一部の所定のボリュームに対応する、ことと、
前記ユーザが、第２のＦＯＶを有するとき、前記３Ｄ再構成データの第１の複数のブロックのうちの少なくとも１つをキャッシュ内に存続させることであって、前記第２のＦＯＶは、前記第１のＦＯＶと異なる、ことと
を含む、少なくとも１つの非一過性コンピュータ可読記憶媒体。
【請求項１６】
前記３Ｄ再構成データの第１の複数のブロックのうちの存続される少なくとも１つは、前記第１のＦＯＶと前記第２のＦＯＶとの間の差異を表す、請求項１５に記載の方法。
【請求項１７】
前記３Ｄ再構成データの第１の複数のブロックは、メッシュ、点群、またはボクセルのフォーマットにある、請求項１５に記載の方法。
【請求項１８】
前記キャッシュは、前記第１のユーザ上のポータブル電子デバイスのローカルキャッシュ、または前記第１のユーザ上のポータブル電子デバイスによってアクセス可能なコンピュータネットワークの遠隔キャッシュである、請求項１５に記載の方法。
【請求項１９】
前記コンピュータネットワークの遠隔キャッシュは、第２のユーザからの３Ｄ再構成データの少なくとも１つのブロックを存続させる、請求項１８に記載の方法。
【請求項２０】
前記３Ｄ再構成データの第１の複数のブロックのうちの存続される少なくとも１つは、前記第１のユーザおよび前記第２のユーザの両方が、前記コンピュータネットワークの遠隔キャッシュからの３Ｄ再構成のマージされたブロックを要求し得るように、同一座標系に基づいて、前記第２のユーザからの３Ｄ再構成データの少なくとも１つのブロックとマージされる、請求項１９に記載の方法。
【請求項２１】
電子システムを動作させ、物理的世界内のオブジェクトについての情報を提供するための方法であって、前記電子システムは、アクティブメモリと、キャッシュメモリとを備え、前記電子システムは、前記物理的世界の３Ｄ再構成を複数のブロックとして表し、前記電子システムは、前記物理的世界の一部におけるユーザのアクションに基づくポータブルポインティング可能コンポーネントを備え、前記ポータブルポインティング可能コンポーネントは、少なくとも１つのセンサを備え、前記方法は、
少なくとも部分的に、前記少なくとも１つのセンサの出力に基づいて、前記ポータブルポインティング可能コンポーネントが将来的時間に向けられているであろう前記物理的世界の領域を算出することと、
前記算出された領域に基づいて、前記複数のブロックのブロックを選択することと
を含む、方法。
【請求項２２】
前記アクティブメモリが前記選択されたブロックを記憶するように、前記アクティブメモリ内に記憶される情報を更新することをさらに含む、請求項２１に記載の方法。
【請求項２３】
前記アクティブメモリ内に記憶される情報を更新することは、前記アクティブメモリから前記キャッシュメモリに、選択されなかったブロックを移動させることを含む、請求項２２に記載の方法。
【請求項２４】
前記電子システムは、アプリケーションインターフェースを通して、３Ｄ再構成データをアプリケーションに供給するためのサービスを実装し、
前記方法はさらに、前記ブロックのバージョンが最後に前記アプリケーションに供給されて以降の前記ブロックのそれぞれへの変化に基づいて、前記アクティブメモリから、アプリケーションプログラミングインターフェース（ＡＰＩ）を通して、アプリケーションに供給するためのブロックを選択することを含む、請求項２１に記載の方法。
【請求項２５】
前記選択されたブロックをコンピュータネットワークの遠隔メモリから要求することと、
前記キャッシュメモリが前記選択されたブロックを記憶するように、前記キャッシュメモリ内に記憶される情報を更新することと
をさらに含む、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、参照することによってその全体として本明細書に組み込まれる、２０１７年１２月２２日に出願され、「ＶＩＥＷＰＯＩＮＴ  ＤＥＰＥＮＤＥＮＴ  ＢＲＩＣＫ  ＳＥＬＥＣＴＩＯＮ  ＦＯＲ  ＦＡＳＴ  ＶＯＬＵＭＥＴＲＩＣ  ＲＥＣＯＮＳＴＲＵＣＴＩＯＮ」と題された、米国仮特許出願第６２／６１０，０００号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１７年１２月２２日に出願され、「ＭＵＬＴＩ−ＳＴＡＧＥ  ＢＬＯＣＫ  ＭＥＳＨ  ＳＩＭＰＬＩＦＩＣＡＴＩＯＮ  ＦＯＲ  ＭＵＬＴＩＰＬＥ  ＴＡＲＧＥＴＳ」と題された、米国仮特許出願第６２／６０９，９９０号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１７年１２月２２日に出願され、「ＣＡＣＨＩＮＧ  ＡＮＤ  ＵＰＤＡＴＩＮＧ  ＯＦ  ＤＥＮＳＥ  ３Ｄ  ＲＥＣＯＮＳＴＲＵＣＴＩＯＮ  ＤＡＴＡ  ＯＮ  ＭＯＢＩＬＥ  ＤＥＶＩＣＥＳ」と題された、米国仮特許出願第６２／６０９，９６２号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１７年１２月２２日に出願され、「ＭＥＴＨＯＤ  ＯＦ  ＯＣＣＬＵＳＩＯＮ  ＲＥＮＤＥＲＩＮＧ  ＵＳＩＮＧ  ＲＡＹＣＡＳＴ  ＡＮＤ  ＬＩＶＥ  ＤＥＰＴＨ」と題された、米国仮特許出願第６２／６０９，９７９号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１８年７月２４日に出願され、「ＶＩＥＷＰＯＩＮＴ  ＤＥＰＥＮＤＥＮＴ  ＢＲＩＣＫ  ＳＥＬＥＣＴＩＯＮ  ＦＯＲ  ＦＡＳＴ  ＶＯＬＵＭＥＴＲＩＣ  ＲＥＣＯＮＳＴＲＵＣＴＩＯＮ」と題された、米国仮特許出願第６２／７０２，７６１号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１８年７月２４日に出願され、「ＭＵＬＴＩ−ＳＴＡＧＥ  ＢＬＯＣＫ  ＭＥＳＨ  ＳＩＭＰＬＩＦＩＣＡＴＩＯＮ」と題された、米国仮特許出願第６２／７０２，７４０号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１８年７月２４日に出願され、「ＣＡＣＨＩＮＧ  ＡＮＤ  ＵＰＤＡＴＩＮＧ  ＯＦ  ＤＥＮＳＥ  ３Ｄ  ＲＥＣＯＮＳＴＲＵＣＴＩＯＮ  ＤＡＴＡ」と題された、米国仮特許出願第６２／７０２，７４９号の優先権および利益を主張する。本願はまた、参照することによってその全体として本明細書に組み込まれる、２０１８年７月２４日に出願され、「ＭＥＴＨＯＤ  ＯＦ  ＯＣＣＬＵＳＩＯＮ  ＲＥＮＤＥＲＩＮＧ  ＵＳＩＮＧ  ＲＡＹＣＡＳＴ  ＡＮＤ  ＬＩＶＥ  ＤＥＰＴＨ」と題された、米国仮特許出願第６２／７０２，７３６号の優先権および利益を主張する。
【０００２】
本願は、概して、３Ｄ世界再構成を使用して、場面をレンダリングする、クロスリアリティシステムに関する。
【背景技術】
【０００３】
コンピュータは、ヒューマンユーザインターフェースを制御し、ユーザによって知覚されるにつれて、ＸＲ環境の一部または全部がコンピュータによって生成される、Ｘリアリティ（ＸＲまたはクロスリアリティ）環境を作成し得る。これらのＸＲ環境は、ＸＲ環境の一部または全部が、部分的に、環境を説明するデータを使用して、コンピュータによって生成され得る、仮想現実（ＶＲ）、拡張現実（ＡＲ）、および複合現実（ＭＲ）環境であり得る。本データは、例えば、ユーザが、物理的世界の一部として、感知または知覚し、仮想オブジェクトと相互作用し得るようにレンダリングされ得る、仮想オブジェクトを説明し得る。ユーザは、例えば、頭部搭載型ディスプレイデバイス等のユーザインターフェースデバイスを通してレンダリングおよび提示されているデータの結果として、これらの仮想オブジェクトを体験し得る。データは、ユーザに見えるために表示され得る、またはユーザに聞こえるために再生される、オーディオを制御し得る、または触知的（または触覚的）インターフェースを制御し、ユーザが、仮想オブジェクトを感じるにつれて、ユーザが感知または知覚する、タッチ感覚を体験することを可能にし得る。
【０００４】
ＸＲシステムは、科学的可視化、医療訓練、工学設計、およびプロトタイプ化、遠隔操作およびテレプレゼンス、および個人的娯楽の分野に及ぶ、多くの用途のために有用であり得る。ＡＲおよびＭＲは、ＶＲと対照的に、物理的世界の実オブジェクトと関連して、１つ以上のオブジェクトを含む。実オブジェクトと相互作用する、仮想オブジェクトの体験は、概して、ＸＲシステムを使用する際、ユーザの享受を向上させ、また、物理的世界が改変され得る様子についての現実的かつ容易に理解可能な情報を提示する、種々の用途のための可能性を広げる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本願の側面は、３Ｄ再構成データをキャッシュおよび更新するための方法および装置に関する。本発明者らは、モバイルデバイス等の限定された算出リソースを伴うデバイス上で稠密３Ｄ再構成データをリアルタイムでキャッシュおよび更新する技法を認識および理解している。これらの技法は、ともに、別個に、または任意の好適な組み合わせにおいて、使用されてもよい。
【０００６】
いくつかの実施形態は、ポータブル電子システムに関する。ポータブル電子システムは、物理的世界内のオブジェクトについての３次元（３Ｄ）情報を捕捉するように構成される、センサと、ローカルメモリと、コンピュータネットワークを経由した遠隔メモリとの通信のために構成される、送受信機と、少なくとも部分的に、物理的世界内のオブジェクトについての３Ｄ情報に基づいて、物理的世界の一部の３Ｄ表現を提供するためのコンピュータ実行可能命令を実行するように構成される、プロセッサとを含む。物理的世界の一部の３Ｄ表現は、複数のブロックを備える。複数のブロックは、バージョンを有する。各バージョンは、ある時点における物理的世界の一部のある領域内のオブジェクトを表す、値を有する。コンピュータ実行可能命令は、物理的世界の一部に対応する、複数のブロックのサブセットを識別し、（ｉ）ローカルメモリ内のブロックの以前に記憶されたバージョンにアクセスする、または（ｉｉ）遠隔メモリ内のブロックの以前に記憶されたバージョンにアクセスし、および／または（ｉｉｉ）少なくとも部分的に、物理的世界内のオブジェクトについての３Ｄ情報に基づいて、ブロックの新しいバージョンを生成することによって、ブロックのサブセットを表す、ブロックのバージョンを選択するための命令を備える。
【０００７】
いくつかの実施形態では、プロセッサは、物理的世界の一部の３Ｄ表現をアプリケーションに提供する、サービスを実装する。
【０００８】
いくつかの実施形態では、アプリケーションは、ポータブル電子システム上で実行される。
【０００９】
いくつかの実施形態では、ブロックのバージョンを選択するためのコンピュータ実行可能命令は、アプリケーションに提供するためのブロックの選択されたバージョンを決定するための命令を備える。
【００１０】
いくつかの実施形態では、ブロックのサブセットを表す、ブロックのバージョンを選択するステップは、バージョンが記憶されて以降、ブロックメトリックの大きさが閾値を下回るとき、ローカルメモリ内のブロックの以前に記憶されたバージョンを選択するステップを含む。
【００１１】
いくつかの実施形態では、ブロックメトリックの大きさは、ブロックの幾何学形状変化の程度を示す。
【００１２】
いくつかの実施形態では、ブロックメトリックは、タイムスタンプである。
【００１３】
いくつかの実施形態では、ブロックのサブセットを表す、ブロックのバージョンを選択するステップは、ローカルメモリ内のブロックの対応するバージョンが存在しないとき、遠隔メモリ内のブロックの以前に記憶されたバージョンを選択するステップを含む。
【００１４】
いくつかの実施形態では、ブロックのサブセットを表す、ブロックのバージョンを選択するステップは、ローカルメモリまたは遠隔メモリ内のブロックの対応する最新のバージョンが存在しないとき、少なくとも部分的に、物理的世界内のオブジェクトについての３Ｄ情報に基づいて、ブロックの新しいバージョンを生成するステップを含む。
【００１５】
いくつかの実施形態では、サービスは、変化を示すメトリックが閾値を下回る、物理的世界の一部に対応するブロックのバージョンを、メモリから、ローカルキャッシュまたはクラウドキャッシュにページングする。
【００１６】
いくつかの実施形態では、ブロックの新しいバージョンを生成するステップは、隣り合ったブロックの値に基づいて、ブロックの境界値を生成するステップを含む。
【００１７】
いくつかの実施形態では、プロセッサは、ポータブル電子システム上で実行されるアプリケーションプログラミングインターフェース（ＡＰＩ）を通して、情報を提供する。
【００１８】
いくつかの実施形態では、ＡＰＩは、プッシュ配信タイプである。
【００１９】
いくつかの実施形態では、ＡＰＩは、プル配信タイプである。
【００２０】
いくつかの実施形態では、コンピュータ実行可能命令はさらに、座標フレームを物理的世界の一部内に作成するための命令を備える。複数のブロックの各ブロックは、座標フレームを使用して識別可能な物理的世界の一部の異なる領域内のオブジェクトを表す。
【００２１】
いくつかの実施形態では、コンピュータ実行可能命令はさらに、３Ｄ情報ボクセル、ブリック、およびタイルを処理し、１つ以上のタイルをメッシュに変換することによって、複数のブロックの各ブロックを生成するための命令を備える。各ボクセルは、１つ以上の符号付き距離関数（ＳＤＦ）を備える。各ブリックは、１つ以上のボクセルを備える。各タイルは、１つ以上のブリックを備える。３Ｄ情報は、タイルおよび／またはブロックに基づいて、ローカルメモリからページングされる。
【００２２】
いくつかの実施形態は、少なくとも１つのプロセッサによって実行されると、物理的世界の３Ｄ表現を提供するための方法を実施する、複数のコンピュータ実行可能命令でエンコードされた少なくとも１つの非一過性コンピュータ可読記憶媒体に関する。本方法は、第１のユーザの第１の視野（ＦＯＶ）内の物理的世界の一部内のオブジェクトについての３Ｄ情報を捕捉するステップと、物理的世界の一部を３Ｄ再構成データの第１の複数のブロックとして表すステップと、ユーザが第１のＦＯＶと異なる第２のＦＯＶを有するとき、３Ｄ再構成データの第１の複数のブロックのうちの少なくとも１つをキャッシュ内に存続させるステップとを含む。３Ｄ再構成データの各ブロックは、物理的世界の一部の所定のボリュームに対応する。
【００２３】
いくつかの実施形態では、３Ｄ再構成データの第１の複数のブロックのうちの存続される少なくとも１つは、第１のＦＯＶと第２のＦＯＶとの間の差異を表す。
【００２４】
いくつかの実施形態では、３Ｄ再構成データの第１の複数のブロックは、メッシュ、点群、またはボクセルのフォーマットにある。
【００２５】
いくつかの実施形態では、キャッシュは、第１のユーザ上のポータブル電子デバイスのローカルキャッシュ、または第１のユーザ上のポータブル電子デバイスによってアクセス可能なコンピュータネットワークの遠隔キャッシュである。
【００２６】
いくつかの実施形態では、コンピュータネットワークの遠隔キャッシュは、第２のユーザからの３Ｄ再構成データの少なくとも１つのブロックを存続させる。
【００２７】
いくつかの実施形態では、３Ｄ再構成データの第１の複数のブロックのうちの存続される少なくとも１つは、第１のユーザおよび第２のユーザの両方が、コンピュータネットワークの遠隔キャッシュからの３Ｄ再構成のマージされたブロックを要求し得るように、同一座標系に基づいて、第２のユーザからの３Ｄ再構成データの少なくとも１つのブロックとマージされる。
【００２８】
いくつかの実施形態は、電子システムを動作させ、物理的世界内のオブジェクトについての情報を提供するための方法に関する。電子システムは、アクティブメモリと、キャッシュメモリとを含む。電子システムは、物理的世界の３Ｄ再構成を複数のブロックとして表す。電子システムは、物理的世界の一部におけるユーザのアクションに基づく、ポータブルポインティング可能コンポーネントを備える。ポータブルポインティング可能コンポーネントは、少なくとも１つのセンサを備える。本方法は、少なくとも部分的に、少なくとも１つのセンサの出力に基づいて、ポータブルポインティング可能コンポーネントが将来的時間に向けられているであろう、物理的世界の領域を算出するステップと、算出された領域に基づいて、複数のブロックのブロックを選択するステップとを含む。
【００２９】
いくつかの実施形態では、本方法は、アクティブメモリが選択されたブロックを記憶するように、アクティブメモリ内に記憶される情報を更新するステップを含む。
【００３０】
いくつかの実施形態では、アクティブメモリ内に記憶される情報を更新するステップは、アクティブメモリからキャッシュメモリに、選択されなかったブロックを移動させるステップを含む。
【００３１】
いくつかの実施形態では、電子システムは、アプリケーションインターフェースを通して、３Ｄ再構成データをアプリケーションに供給するためのサービスを実装する。本方法はさらに、ブロックのバージョンが最後にアプリケーションに供給されて以降のブロックのそれぞれへの変化に基づいて、アクティブメモリから、アプリケーションプログラミングインターフェース（ＡＰＩ）を通して、アプリケーションに供給するためのブロックを選択するステップを含む。
【００３２】
いくつかの実施形態では、本方法はさらに、選択されたブロックをコンピュータネットワークの遠隔メモリから要求するステップと、キャッシュメモリが選択されたブロックを記憶するように、キャッシュメモリ内に記憶される情報を更新するステップとを含む。
【００３３】
前述の概要は、例証として提供され、限定することを意図するものではない。
【図面の簡単な説明】
【００３４】
添付の図面は、縮尺通りに描かれることを意図していない。図面では、種々の図に図示される、各同じまたはほぼ同じコンポーネントは、同様の数字で表される。明確性の目的のために、全てのコンポーネントが、全ての図面において標識されているわけではない。
【００３５】
【図１】図１は、いくつかの実施形態による、簡略化された拡張現実（ＡＲ）場面の実施例を図示する、スケッチである。
【００３６】
【図２】図２は、いくつかの実施形態による、視覚的オクリュージョン、物理学的ベースの相互作用、および環境推測を含む、例示的世界再構成ユースケースを示す、例示的な簡略化されたＡＲ場面のスケッチである。
【００３７】
【図３】図３は、いくつかの実施形態による、物理的世界と相互作用するＡＲコンテンツの体験を提供するように構成される、ＡＲシステム内のデータフローを図示する、概略図である。
【００３８】
【図４】図４は、いくつかの実施形態による、ＡＲディスプレイシステムの実施例を図示する、概略図である。
【００３９】
【図５Ａ】図５Ａは、いくつかの実施形態による、ユーザが物理的世界環境を通して移動するにつれてＡＲコンテンツをレンダリングする、ＡＲディスプレイシステムを装着しているユーザを図示する、概略図である。
【００４０】
【図５Ｂ】図５Ｂは、いくつかの実施形態による、視認光学系アセンブリおよび付帯コンポーネントを図示する、概略図である。
【００４１】
【図６】図６は、いくつかの実施形態による、世界再構成システムを使用するＡＲシステムを図示する、概略図である。
【００４２】
【図７Ａ】図７Ａは、いくつかの実施形態による、ボクセルに離散化された３Ｄ空間を図示する、概略図である。
【００４３】
【図７Ｂ】図７Ｂは、いくつかの実施形態による、単一視点に対する再構成範囲を図示する、概略図である。
【００４４】
【図７Ｃ】図７Ｃは、いくつかの実施形態による、単一位置における再構成範囲に対する知覚範囲を図示する、概略図である。
【００４５】
【図８】図８Ａ−Ｆは、いくつかの実施形態による、複数の点および視点から表面を視認する画像センサによって、物理的世界内の表面をボクセルモデルに再構成するステップを図示する、概略図である。
【００４６】
【図９】図９は、いくつかの実施形態による、ボクセルを含むブリックによって表される場面と、場面内の表面と、深度画像内の表面を捕捉する深度センサとを図示する、概略図である。
【００４７】
【図１０Ａ】図１０Ａは、８つのブリックによって表される３Ｄ空間を図示する、概略図である。
【００４８】
【図１０Ｂ】図１０Ｂは、図１０Ａのブリック内のボクセルグリッドを図示する、概略図である。
【００４９】
【図１１】図１１は、いくつかの実施形態による、立体表現階層を図示する、概略図である。
【００５０】
【図１２】図１２は、いくつかの実施形態による、コンピューティングシステムを動作させ、場面の３Ｄ再構成を生成する方法を図示する、フローチャートである。
【００５１】
【図１３】図１３は、いくつかの実施形態による、図１２における深度センサのカメラ錐台に対して複数のブリックの一部を間引く方法を図示する、フローチャートである。
【００５２】
【図１４】図１４は、いくつかの実施形態による、図１３におけるカメラ錐台許容試験を行う方法を図示する、フローチャートである。
【００５３】
【図１５】図１５は、いくつかの実施形態による、図１２における深度画像に対して第１の複数のブリックの一部を間引く方法を図示する、フローチャートである。
【００５４】
【図１６】図１６は、いくつかの実施形態による、図１５における第１の深度画像承認試験を行う方法を図示する、フローチャートである。
【００５５】
【図１７】図１７は、いくつかの実施形態による、図１５における第２の深度画像承認試験を行う方法を図示する、フローチャートである。
【００５６】
【図１８】図１８は、いくつかの実施形態による、図１７における最小ブリック値（ｂｍｉｎ）および最大ブリック値（ｂｍａｘ）に対して矩形内の全てのピクセルをカテゴリ化する方法によって使用される、テーブルを示す。
【００５７】
【図１９】図１９Ａ−Ｆは、いくつかの実施形態による、カメラ錐台に対してブリックを間引くステップを図示する、概略図である。
【００５８】
【図２０】図２０Ａ−Ｂは、いくつかの実施形態による、表面を含む深度画像に対してブリックを間引くステップを図示する、概略図である。
【００５９】
【図２１】図２１は、いくつかの実施形態による、平面抽出システムを図示する、概略図である。
【００６０】
【図２２】図２２は、いくつかの実施形態による、平面抽出に関する詳細とともに、図２１の平面抽出システムの一部を図示する、概略図である。
【００６１】
【図２３】図２３は、いくつかの実施形態による、ボクセルを含むブリックによって表される場面と、場面内の例示的平面データとを図示する、概略図である。
【００６２】
【図２４】図２４は、いくつかの実施形態による、図２１の平面データストアを図示する、概略図である。
【００６３】
【図２５】図２５は、いくつかの実施形態による、平面クエリが図２１の平面データストアに送信されるときの平面幾何学形状抽出を図示する、概略図である。
【００６４】
【図２６Ａ】図２６Ａは、いくつかの実施形態による、図２５の平面被覆点を生成するステップを図示する、概略図である。
【００６５】
【図２６Ｂ】図２６Ｂは、いくつかの実施形態による、例示的ラスタ化平面マスクから抽出され得る、種々の例示的平面幾何学形状表現を図示する、概略図である。
【００６６】
【図２７】図２７は、いくつかの実施形態による、場面に関するメッシュを示す。
【００６７】
【図２８Ａ】図２８Ａは、いくつかの実施形態による、外側矩形平面によって表される、図２７の場面を示す。
【００６８】
【図２８Ｂ】図２８Ｂは、いくつかの実施形態による、内側矩形平面によって表される、図２７の場面を示す。
【００６９】
【図２８Ｃ】図２８Ｃは、いくつかの実施形態による、多角形平面によって表される、図２７の場面を示す。
【００７０】
【図２９】図２９は、いくつかの実施形態による、図２７に示されるメッシュを平面化することによって雑音除去されたメッシュを伴う、図２７の場面を示す。
【００７１】
【図３０】図３０は、いくつかの実施形態による、メッシュによって表される環境のモデルを生成する方法を図示する、フローチャートである。
【００７２】
【図３１】図３１は、いくつかの実施形態による、４つのブロックによって物理的世界の一部の２Ｄ表現を図示する、概略図である。
【００７３】
【図３２】図３２Ａ−３２Ｄは、いくつかの実施形態による、多段階簡略化の間の例示的メッシュブロックのメッシュ進化を図示する、概略図である。
【００７４】
【図３３】図３３Ａおよび３３Ｂは、それぞれ、三角低減を通した簡略化の有無別の同一環境の表現を示す。
【００７５】
【図３４】図３４Ａおよび３４Ｂは、それぞれ、三角低減を通した簡略化の有無別の同一環境の拡大表現を示す。
【００７６】
【図３５】図３５Ａおよび３５Ｂは、それぞれ、平面化の有無別の同一環境の表現を示す。
【００７７】
【図３６】図３６Ａおよび３６Ｂは、それぞれ、接続解除された成分の除去を通した簡略化の有無別の同一環境の表現を示す。
【００７８】
【図３７】図３７は、いくつかの実施形態による、複数のユーザのための双方向Ｘリアリティ環境を可能にする、電子システムを図示する、概略図である。
【００７９】
【図３８】図３８は、いくつかの実施形態による、図３７における電子システムのコンポーネントの相互作用を図示する、概略図である。
【００８０】
【図３９】図３９は、いくつかの実施形態による、図３７における電子システムを動作させる方法を図示する、フローチャートである。
【００８１】
【図４０】図４０は、いくつかの実施形態による、物理的世界内のオブジェクトについての３Ｄ情報を捕捉し、物理的世界を図３９における３Ｄ再構成のブロックとして表す方法を図示する、フローチャートである。
【００８２】
【図４１】図４１は、いくつかの実施形態による、図３９におけるブロックのサブセットを表すブロックのバージョンを選択する方法を図示する、フローチャートである。
【００８３】
【図４２】図４２は、いくつかの実施形態による、図３７における電子システムを動作させる方法を図示する、フローチャートである。
【００８４】
【図４３Ａ】図４３Ａは、いくつかの実施形態による、メッシュブロックによって表される物理的世界の一部内に検出されている更新を図示する、簡略化された概略図である。
【００８５】
【図４３Ｂ】図４３Ｂは、いくつかの実施形態による、メッシュブロックを図示する、簡略化された概略図である。
【００８６】
【図４３Ｃ】図４３Ｃは、いくつかの実施形態による、２つの隣り合ったメッシュブロックの縁における亀裂を図示する、簡略化された概略図である。
【００８７】
【図４３Ｄ】図４３Ｄは、いくつかの実施形態による、隣接するメッシュブロックに重複するメッシュスカートを実装することによって包み隠されている、図４３Ｃにおける亀裂を図示する、簡略化された概略図である。
【００８８】
【図４４】図４４は、いくつかの実施形態による、４つのブロックによって物理的世界の一部の２Ｄ表現を図示する、概略図である。
【００８９】
【図４５】図４５は、いくつかの実施形態による、８つのブロックによって物理的世界の一部の３Ｄ表現を図示する、概略図である。
【００９０】
【図４６】図４６は、いくつかの実施形態による、図４５における３Ｄ表現を更新することによって取得される物理的世界の一部の３Ｄ表現を図示する、概略図である。
【００９１】
【図４７】図４７は、いくつかの実施形態による、ＡＲディスプレイシステムを装着している第１および第２のユーザによって視認可能な拡張世界の実施例を図示する、概略図である。
【００９２】
【図４８】図４８は、いくつかの実施形態による、ブロックの新しいバージョンを伴う、図４７の拡張世界を更新することによって取得される拡張世界の実施例を図示する、概略図である。
【００９３】
【図４９】図４９は、いくつかの実施形態による、オクルージョンレンダリングシステムを図示する、概略図である。
【００９４】
【図５０】図５０は、穴を伴う深度画像を図示する、概略図である。
【００９５】
【図５１】図５１は、いくつかの実施形態による、拡張現実環境におけるオクルージョンレンダリングの方法を図示する、フローチャートである。
【００９６】
【図５２】図５２は、いくつかの実施形態による、図５１におけるユーザによって装着される深度センサによって捕捉される深度情報から表面情報を生成するステップの詳細を図示する、フローチャートである。
【００９７】
【図５３】図５３は、いくつかの実施形態による、深度情報をフィルタリングし、図５２における深度マップを生成するステップの詳細を図示する、フローチャートである。
【００９８】
【図５４Ａ】図５４Ａは、表面によって占有されているボクセルおよび空のボクセルを識別するために、第１の視点からの深度カメラを用いて結像されている領域のスケッチである。
【００９９】
【図５４Ｂ】図５４Ｂは、表面によって占有されているボクセルおよび空のボクセルを識別するために、複数の視点からの深度カメラを用いて結像されており、深度カメラを用いて結像されなかった「穴」の領域内のボクセルの結果として、立体情報が利用可能ではない、「穴」を示す、領域のスケッチである。
【発明を実施するための形態】
【０１００】
本明細書に説明されるのは、拡張現実（ＡＲ）、複合現実（ＭＲ）、または仮想現実（ＶＲ）システムにおいて、３次元（３Ｄ）世界再構成を作成および使用するための方法および装置である。現実的ＡＲ／ＭＲ／ＶＲ体験をユーザに提供するために、ＡＲ／ＭＲ／ＶＲシステムは、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させるために、ユーザの物理的周囲を把握しなければならない。世界再構成は、ＡＲ／ＭＲ／ＶＲシステムの一部であるセンサを用いて収集される、それらの物理的周囲についての画像および情報深度から構築されてもよい。世界再構成は、次いで、そのようなシステムの複数のコンポーネントのいずれかによって使用されてもよい。例えば、世界再構成は、視覚的オクルージョン処理を実施する、物理学ベースの相互作用を算出する、または環境推測を実施する、コンポーネントによって使用されてもよい。
【０１０１】
オクルージョン処理は、仮想オブジェクトがユーザによって知覚されるべき場所のユーザのそのビューを遮断する、物理的世界内のオブジェクトが存在するため、ユーザにレンダリングおよび／または表示されるべきではない、その仮想オブジェクトの部分を識別する。物理学ベースの相互作用は、仮想オブジェクトがユーザに現れる場所または方法を決定するために算出される。例えば、仮想オブジェクトは、物理的オブジェクト上に静置している、虚空を通して移動している、または物理的オブジェクトの表面と衝突しているように現れるように、レンダリングされてもよい。世界再構成は、そこから物理的世界内のオブジェクトについての情報がそのような計算のために取得され得る、モデルを提供する。
【０１０２】
環境推測もまた、仮想オブジェクトをレンダリングする方法を算出する際に使用され得る情報を生成する過程において、世界再構成を使用してもよい。例えば、環境推測は、それらが窓ガラスまたはガラステーブルの上面であることを認識することによって、クリア表面を識別するステップを伴ってもよい。そのような識別から、物理的オブジェクトを含有する領域は、仮想オブジェクトをオクルードしないと分類され得るが、仮想オブジェクトと相互作用すると分類され得る。環境推測はまた、ユーザの視野に対して追跡され得る、定常オブジェクトを識別し、ユーザの視野の運動を算出する等、他の方法において使用される情報を生成してもよい。
【０１０３】
しかしながら、そのようなシステムを提供する際、有意な課題が存在する。実質的処理が、世界再構成を算出するために要求され得る。さらに、ＡＲ／ＭＲ／ＶＲシステムは、仮想オブジェクトをユーザの頭部、身体等に関連して位置付ける方法を正しく把握しなければならない。物理的環境に関連するユーザの位置が、変化するにつれて、物理的世界の関連部分もまた、変化し得、これは、さらなる処理を要求し得る。さらに、３Ｄ再構成データは、多くの場合、オブジェクトが物理的世界内で移動する（例えば、カップがテーブル上で移動する）につれて、更新されることが要求される。ユーザが体験している環境を表す、データへの更新は、世界再構成を実施しながら、他の機能を実施することが不可能であるため、ＡＲ／ＭＲ／ＶＲ環境を生成するコンピュータのコンピューティングリソースのあまり多くを使用せずに、迅速に実施されなければならない。さらに、そのデータを「消費」するコンポーネントによる再構成データの処理は、コンピュータリソースに関する需要を悪化させ得る。
【０１０４】
公知のＡＲ／ＭＲ／ＶＲシステムは、事前に定義された再構成ボリューム（例えば、所定のボクセルグリッド）内のみのリアルタイム世界再構成を起動するために、高算出コンピューティングパワー（例えば、ＧＰＵ）を要求する。本発明者らは、算出パワー（例えば、単一ＡＲＭコア）、メモリ（例えば、１ＧＢ未満）、およびネットワーク帯域幅（例えば、１００Ｍｂｐｓ未満）等、小使用量の算出リソースを用いて、正確な３Ｄ再構成データをリアルタイムで提供するように、ＡＲ／ＭＲ／ＶＲシステムを動作させるための技法を認識および理解している。これらの技法は、世界再構成を生成および維持するために要求される、処理を低減させるステップと、低算出オーバーヘッドを用いて、データを提供および消費するステップとに関する。
【０１０５】
これらの技法は、随時利用可能なセンサデータの部分を識別し、世界再構成を作成または更新する際に使用すること等によって、世界再構成を更新するときに処理されたデータの量を低減させるステップを含んでもよい。センサデータは、例えば、世界再構成内に表されるべきオブジェクトの表面の近傍にある可能性が高い、物理的世界の一部を表すかどうかに基づいて、選択されてもよい。
【０１０６】
いくつかの実施形態では、算出リソースは、世界再構成を表すデータを簡略化することによって、低減され得る。より単純である表現は、そのデータの処理、記憶、および／または管理およびその使用のためのリソースを低減させ得る。
【０１０７】
いくつかの実施形態では、算出リソースの使用は、別個に記憶され、読み出されるが、物理的世界の現実的表現を提供するように組み合わせられ得る、ブロック単位で、物理的世界を表すことによって、低減され得る。ブロックは、メモリ内で管理され、算出リソースを限定してもよく、いくつかの実施形態では、各ＡＲ／ＭＲ／ＶＲシステムが、世界再構成を構築するために殆ど処理を行わないように、同一物理的空間で動作するＡＲ／ＭＲ／ＶＲシステムを横断して、ブロックの共有を可能にしてもよい。
【０１０８】
いくつかの実施形態では、算出リソースの使用は、物理的世界についての情報にアクセスするとき、物理的世界の異なる表現の中から選択することによって、低減され得る。世界再構成は、例えば、異なるセンサから捕捉され、および／または異なるフォーマットで記憶される、物理的世界についての情報を含み得る。消費または提供することが最も単純なデータが、仮想オブジェクトをレンダリングするために世界再構成を使用する、コンポーネントに供給されてもよい。より単純であるデータが、利用不可能である場合、より高い算出負荷を生成し得る、異なるセンサを用いて入手されたデータが、アクセスされてもよい。実施例として、世界再構成は、深度センサを用いて収集された深度マップと、画像情報から算出されたメッシュとして記憶され得るような３Ｄ世界のより総合的表現とを含み得る。物理的世界についての情報は、利用可能である場合、深度マップに基づいてオクルージョン処理を行う、コンポーネントに供給されてもよい。深度マップ内に穴が存在する場合、それらの穴を充填するための情報が、メッシュから抽出されてもよい。いくつかの実施形態では、深度マップは、データがアクセスされる時間に深度センサによって捕捉されるにつれて物理的世界を表す、「ライブ」であってもよい。
【０１０９】
本明細書に説明されるような技法は、拡張現実場面を提供する、限定された算出リソースを伴う、ウェアラブルまたはポータブルデバイスを含む、多くのタイプのデバイスとともにまたは別個に、かつ多くのタイプの場面のために使用されてもよい。
【０１１０】
ＡＲシステム概要
【０１１１】
図１−２は、そのような場面を図示する。例証目的のために、ＡＲシステムは、ＸＲシステムの実施例として使用される。図３−８は、本明細書に説明される技法に従って動作し得る、１つ以上のプロセッサ、メモリ、センサ、およびユーザインターフェースを含む、例示的ＡＲシステムを図示する。
【０１１２】
図１を参照すると、ＡＲ場面４が、描写され、ＡＲ技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム８を特徴とする、物理的世界公園状設定６が見える。これらのアイテムに加え、ＡＲ技術のユーザはまた、物理的世界のコンクリートプラットフォーム８上に立っているロボット像１０と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ２とが「見える」と知覚するが、これらの要素（例えば、アバタキャラクタ２およびロボット像１０）は、物理的世界内には存在しない。ヒト視知覚および神経系の極端な複雑性に起因して、他の仮想または物理的世界画像要素の中における仮想画像要素の快適で、自然のように感じる、豊かな提示を促進する、ＡＲ技術を生産することは、困難である。
【０１１３】
そのようなＡＲ場面は、ユーザの周囲の物理的世界表面の表現を構築および更新し得る、世界再構成コンポーネントを含む、システムを用いて達成され得る。本表現は、レンダリングをオクルードするため、仮想オブジェクトを物理学ベースの相互作用状態に設置するため、および仮想キャラクタ経路計画およびナビゲーションのため、または物理的世界についての情報が使用される、他の動作のために、使用されてもよい。図２は、いくつかの実施形態による、視覚的オクルージョン２０２と、物理学ベースの相互作用２０４と、環境推測２０６とを含む、例示的世界再構成ユースケースを示す、ＡＲ場面２００の別の実施例を描写する。
【０１１４】
例示的場面２００は、壁、壁の片側上の書籍棚、部屋の角におけるフロアランプ、床、ソファ、および床上のコーヒーテーブルを有する、居間である。これらの物理的アイテムに加え、ＡＲ技術のユーザはまた、ソファの背後の壁上の画像、ドアを通して飛んで来た鳥、書籍棚から覗いているシカ、およびコーヒーテーブル上に設置された風車の形態における置物等の仮想オブジェクトを知覚する。壁上の画像に関して、ＡＲ技術は、壁の表面だけではなく、また、ランプ形状等の部屋内のオブジェクトおよび表面についての情報を要求し、これは、画像をオクルードし、仮想オブジェクトを正しくレンダリングしている。飛んで来た鳥に関して、ＡＲ技術は、現実的物理学を伴って鳥をレンダリングし、オブジェクトおよび表面または鳥が衝突する場合のそれらからの跳ね返りを回避するために、部屋の周囲の全てのオブジェクトおよび表面についての情報を要求する。シカに関して、ＡＲ技術は、床またはコーヒーテーブル等の表面についての情報を要求し、シカを設置すべき場所を算出する。風車に関して、システムは、テーブルと別個のオブジェクトであることを識別し得、移動可能であることを推測し得る一方、棚の角または壁の角は、定常であると推測され得る。そのような特異性は、種々の動作のそれぞれにおいて使用または更新される場面の部分に関する推測において使用され得る。
【０１１５】
場面は、視覚、音、および／またはタッチを含む、１つ以上のユーザ感覚を刺激し得る、ユーザインターフェースを含む、複数のコンポーネントを含む、システムを介して、ユーザに提示されてもよい。加えて、システムは、場面の物理的部分内のユーザの位置および／または運動を含む、場面の物理的部分のパラメータを測定し得る、１つ以上のセンサを含んでもよい。さらに、システムは、メモリ等の関連付けられたコンピュータハードウェアを伴う、１つ以上のコンピューティングデバイスを含んでもよい。これらのコンポーネントは、単一デバイスの中に統合されてもよい、または複数の相互接続されるデバイスを横断して分散されてもよい。いくつかの実施形態では、これらのコンポーネントの一部または全部は、ウェアラブルデバイスの中に統合されてもよい。
【０１１６】
図３は、いくつかの実施形態による、物理的世界３０６と相互作用するＡＲコンテンツの体験を提供するように構成される、ＡＲシステム３０２を描写する。ＡＲシステム３０２は、ディスプレイ３０８を含んでもよい。図示される実施形態では、ディスプレイ３０８は、ユーザがディスプレイを一対のゴーグルまたは眼鏡のようにその眼にわたって装着し得るように、ヘッドセットの一部としてユーザによって装着されてもよい。ディスプレイの少なくとも一部は、ユーザがシースルー現実３１０を観察し得るように、透明であってもよい。シースルー現実３１０は、ユーザが、ＡＲシステムのディスプレイおよびセンサの両方を組み込み、物理的世界についての情報を入手する、ヘッドセットを装着している場合、ユーザの視点に対応し得る、ＡＲシステム３０２の現在の視点内の物理的世界３０６の一部に対応してもよい。
【０１１７】
ＡＲコンテンツはまた、シースルー現実３１０上にオーバーレイされる、ディスプレイ３０８上に提示されてもよい。ＡＲコンテンツとシースルー現実３１０との間の正確な相互作用をディスプレイ３０８上に提供するために、ＡＲシステム３０２は、物理的世界３０６についての情報を捕捉するように構成される、センサ３２２を含んでもよい。
【０１１８】
センサ３２２は、深度マップ３１２を出力する、１つ以上の深度センサを含んでもよい。各深度マップ３１２は、複数のピクセルを有してもよく、それぞれ、深度センサに対する特定の方向における物理的世界３０６内の表面までの距離を表してもよい。未加工深度データは、深度センサから生じ、深度マップを作成し得る。そのような深度マップは、深度センサが新しい画像を形成し得る速度と同速で更新され得、これは、数百または数千回／秒であり得る。しかしながら、そのデータは、雑音があり、不完全であり、図示される深度マップ上に黒色ピクセルとして示される穴を有し得る。
【０１１９】
システムは、画像センサ等の他のセンサを含んでもよい。画像センサは、物理的世界を他の方法において表すように処理され得る、情報を入手してもよい。例えば、画像は、世界再構成コンポーネント３１６において処理され、物理的世界内のオブジェクトの接続される部分を表す、メッシュを作成してもよい。例えば、色および表面テクスチャを含む、そのようなオブジェクトについてのメタデータも同様に、センサを用いて入手され、世界再構成の一部として記憶されてもよい。
【０１２０】
システムはまた、物理的世界に対するユーザの頭部姿勢についての情報を入手してもよい。いくつかの実施形態では、センサ３１０は、頭部姿勢３１４を算出および／または決定するために使用され得る、慣性測定ユニットを含んでもよい。深度マップのための頭部姿勢３１４は、例えば、６自由度（６ＤｏＦ）を伴う、深度マップを捕捉するセンサの現在の視点を示し得るが、頭部姿勢３１４は、画像情報を物理的世界の特定の部分に関連させる、またはユーザの頭部上に装着されるディスプレイの位置を物理的世界に関連させるため等、他の目的のために使用されてもよい。いくつかの実施形態では、頭部姿勢情報は、画像内のオブジェクトを分析することから等、ＩＭＵから以外の方法において導出されてもよい。
【０１２１】
世界再構成コンポーネント３１６は、深度マップ３１２および頭部姿勢３１４および任意の他のデータをセンサから受信し、そのデータを再構成３１８の中に統合してもよく、これは、少なくとも、単一の組み合わせられた再構成であるように現れ得る。再構成３１８は、センサデータより完全かつ雑音が少なくあり得る。世界再構成コンポーネント３１６は、複数の視点からのセンサデータの経時的な空間および時間的平均を使用して、再構成３１８を更新してもよい。
【０１２２】
再構成３１８は、例えば、ボクセル、メッシュ、平面等を含む、１つ以上のデータフォーマットにおける、物理的世界の表現を含んでもよい。異なるフォーマットは、物理的世界の同一部分の代替表現を表してもよい、または物理的世界の異なる部分を表してもよい。図示される実施例では、再構成３１８の左側において、物理的世界の一部は、グローバル表面として提示され、再構成３１８の右側において、物理的世界の一部は、メッシュとして提示される。
【０１２３】
再構成３１８は、オクルージョン処理または物理学ベースの処理のために、物理的世界の表面表現を生産する等、ＡＲ機能のために使用されてもよい。本表面表現は、ユーザが移動する、または物理的世界内のオブジェクトが変化するにつれて、変化し得る。再構成３１８の側面は、例えば、世界座標内の変化するグローバル表面表現を生産する、コンポーネント３２０によって使用されてもよく、これは、他のコンポーネントによって使用されてもよい。
【０１２４】
ＡＲコンテンツは、本情報に基づいて、ＡＲアプリケーション３０４等によって、生成されてもよい。ＡＲアプリケーション３０４は、例えば、そのような視覚的オクルージョン、物理学ベースの相互作用、および環境推測等、物理的世界についての情報に基づいて、１つ以上の機能を実施する、ゲームプログラムであってもよい。異なるフォーマットにおけるデータを世界再構成コンポーネント３１６によって生産された再構成３１８からクエリすることによって、これらの機能を実施してもよい。いくつかの実施形態では、コンポーネント３２０は、物理的世界の着目領域内の表現が変化すると、更新を出力するように構成されてもよい。その着目領域は、例えば、ユーザの視野内の部分等のシステムのユーザの近傍における物理的世界の一部に近似するように設定されてもよい、またはユーザの視野内に生じるように投影（予測／決定）される。
【０１２５】
ＡＲアプリケーション３０４は、本情報を使用して、ＡＲコンテンツを生成および更新する。ＡＲコンテンツの仮想部分は、シースルー現実３１０と組み合わせて、ディスプレイ３０８上に提示され、現実的ユーザ体験を作成してもよい。
【０１２６】
いくつかの実施形態では、ＡＲ体験は、ウェアラブルディスプレイシステムを通して、ユーザに提供されてもよい。図４は、ウェアラブルディスプレイシステム８０（以降、「システム８０」と称される）の実施例を図示する。システム８０は、頭部搭載型ディスプレイデバイス６２（以降、「ディスプレイデバイス６２」と称される）と、ディスプレイデバイス６２の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイデバイス６２は、フレーム６４に結合されてもよく、これは、ディスプレイシステムユーザまたは視認者６０（以降、「ユーザ６０」と称される）によって装着可能であって、ディスプレイデバイス６２をユーザ６０の眼の正面に位置付けるように構成される。種々の実施形態によると、ディスプレイデバイス６２は、シーケンシャルディスプレイであってもよい。ディスプレイデバイス６２は、単眼または双眼であってもよい。いくつかの実施形態では、ディスプレイデバイス６２は、図３におけるディスプレイ３０８の実施例であってもよい。
【０１２７】
いくつかの実施形態では、スピーカ６６が、フレーム６４に結合され、ユーザ６０の外耳道に近接して位置付けられる。いくつかの実施形態では、示されない、別のスピーカが、ユーザ６０の別の外耳道に隣接して位置付けられ、ステレオ／調節可能音制御を提供する。ディスプレイデバイス６２は、有線導線または無線コネクティビティ６８等によって、ローカルデータ処理モジュール７０に動作可能に結合され、これは、フレーム６４に固定して取り付けられる、ユーザ６０によって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザ６０に除去可能に取り付けられる（例えば、リュック式構成において、ベルト結合式構成において）等、種々の構成において搭載されてもよい。
【０１２８】
ローカルデータ処理モジュール７０は、プロセッサと、不揮発性メモリ（例えば、フラッシュメモリ）等のデジタルメモリとを含んでもよく、両方とも、データの処理、キャッシュ、および記憶を補助するために利用されてもよい。データは、ａ）画像捕捉デバイス（カメラ等）、マイクロホン、慣性測定ユニット、加速度計、コンパス、ＧＰＳユニット、無線デバイス、および／またはジャイロスコープ等のセンサから捕捉された（例えば、フレーム６４に動作可能に結合される、または別様にユーザ６０に取り付けられ得る）データ、および／またはｂ）可能性として、処理または読出後、ディスプレイデバイス６２への通過のために、遠隔処理モジュール７２および／または遠隔データリポジトリ７４を使用して入手および／または処理された、データを含む。ローカルデータ処理モジュール７０は、これらの遠隔モジュール７２、７４が、相互に動作可能に結合され、ローカル処理およびデータモジュール７０へのリソースとして利用可能であるように、通信リンク７６、７８によって、有線または無線通信リンク等を介して、それぞれ、遠隔処理モジュール７２および遠隔データリポジトリ７４に動作可能に結合されてもよい。いくつかの実施形態では、図３における世界再構成コンポーネント３１６は、少なくとも部分的に、ローカルデータ処理モジュール７０内に実装されてもよい。例えば、ローカルデータ処理モジュール７０は、コンピュータ実行可能命令を実行し、少なくとも部分的に、データの少なくとも一部に基づいて、物理的世界表現を生成するように構成されてもよい。
【０１２９】
いくつかの実施形態では、ローカルデータ処理モジュール７０は、データおよび／または画像情報を分析および処理するように構成される、１つ以上のプロセッサ（例えば、グラフィック処理ユニット（ＧＰＵ））を含んでもよい。いくつかの実施形態では、ローカルデータ処理モジュール７０は、単一プロセッサ（例えば、シングルコアまたはマルチコアＡＲＭプロセッサ）を含んでもよく、これは、モジュール７０の算出予算を限定するが、より小型のデバイスを可能にするであろう。いくつかの実施形態では、世界再構成コンポーネント３１６は、単一ＡＲＭコアの残りの算出予算が、例えば、メッシュを抽出する等の他の使用のためにアクセスされ得るように、単一ＡＲＭコア未満の算出予算を使用して、物理的世界表現をリアルタイムで非所定の空間上に生成し得る。
【０１３０】
いくつかの実施形態では、遠隔データリポジトリ７４は、デジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータは、記憶され、全ての算出は、ローカルデータ処理モジュール７０内で実施され、遠隔モジュールからの完全に自律的使用を可能にする。世界再構成は、例えば、本リポジトリ７４内に全体または部分的に記憶されてもよい。
【０１３１】
いくつかの実施形態では、ローカルデータ処理モジュール７０は、バッテリ８２に動作可能に結合される。いくつかの実施形態では、バッテリ８２は、市販のバッテリ等、リムーバブル電源である。他の実施形態では、バッテリ８２は、リチウムイオンバッテリである。いくつかの実施形態では、バッテリ８２は、電源に繋ぎ、リチウムイオンバッテリを充電する必要なく、またはシステム８０をシャットオフし、バッテリを交換する必要なく、ユーザ６０がより長い期間にわたってシステム８０を動作させ得るように、システム８０の非動作時間の間にユーザ６０によって充電可能な内部リチウムイオンバッテリと、リムーバブルバッテリとの両方を含む。
【０１３２】
図５Ａは、ユーザ３０が物理的世界環境３２（以降、「環境３２と称される」）を通して移動するにつれてＡＲコンテンツをレンダリングする、ＡＲディスプレイシステムを装着している、ユーザ３０を図示する。ユーザ３０は、ＡＲディスプレイシステムを位置３４に位置付け、ＡＲディスプレイシステムは、マッピングされた特徴に対する姿勢関係または指向性オーディオ入力等の位置３４に対するパス可能世界（例えば、物理的世界内の実オブジェクトへの変化に伴って記憶および更新され得る、物理的世界内の実オブジェクトのデジタル表現）の周囲情報を記録する。位置３４は、データ入力３６に集約され、少なくとも、例えば、図３の遠隔処理モジュール７２上での処理によって実装され得る、パス可能世界モジュール３８によって処理される。いくつかの実施形態では、パス可能世界モジュール３８は、世界再構成コンポーネント３１６を含んでもよい。
【０１３３】
パス可能世界モジュール３８は、ＡＲコンテンツ４０がデータ入力３６から決定されるような物理的世界内に配置され得る場所および方法を決定する。ＡＲコンテンツは、ユーザインターフェースを介して、物理的世界およびＡＲコンテンツの表現の両方を提示することによって、物理的世界内に「設置」され、ＡＲコンテンツは、物理的世界内のオブジェクトと相互作用しているかのようにレンダリングされ、物理的世界内のオブジェクトは、ＡＲコンテンツが、適切であるとき、それらのオブジェクトのユーザのビューを曖昧にしているかのように提示される。いくつかの実施形態では、ＡＲコンテンツは、固定要素４２（例えば、テーブル）の一部を再構成（例えば、再構成３１８）から適切に選択し、ＡＲコンテンツ４０の形状および位置を決定することによって、設置されてもよい。実施例として、固定要素は、テーブルであってもよく、仮想コンテンツは、そのテーブル上にあるように現れるように位置付けられてもよい。いくつかの実施形態では、ＡＲコンテンツは、視野４４内の構造の中に設置されてもよく、これは、現在の視野または推定される将来的視野であってもよい。いくつかの実施形態では、ＡＲコンテンツは、物理的世界のマッピングされたメッシュモデル４６に対して設置されてもよい。
【０１３４】
描写されるように、固定要素４２は、物理的世界内の任意の固定要素のための代用品としての役割を果たし、これは、ユーザ３０が、システムがユーザ３０にそれが見える度に固定要素４２にマッピングする必要なく、固定要素４２上のコンテンツを知覚し得るように、パス可能世界モジュール３８内に記憶されてもよい。固定要素４２は、したがって、前のモデル化セッションからのマッピングされたメッシュモデルである、または別個のユーザから決定されるが、但し、複数のユーザによる将来的参照のために、パス可能世界モジュール３８上に記憶されてもよい。したがって、パス可能世界モジュール３８は、ユーザ３０のデバイスが、最初に、環境３２をマッピングすることなく、以前にマッピングされた環境およびディスプレイＡＲコンテンツから環境３２を認識し、算出プロセスおよびサイクルを節約し、任意のレンダリングされたＡＲコンテンツの待ち時間を回避し得る。
【０１３５】
物理的世界のマッピングされたメッシュモデル４６は、ＡＲディスプレイシステムによって作成されてもよく、ＡＲコンテンツ４０と相互作用し、それを表示するための適切な表面およびメトリックは、再マッピングまたはモデル化する必要なく、ユーザ３０または他のユーザによる将来的読出のために、パス可能世界モジュール３８内にマッピングおよび記憶されることができる。いくつかの実施形態では、データ入力３６は、地理的場所、ユーザ識別、および現在のアクティビティ等の入力であって、パス可能世界モジュール３８に、利用可能な１つ以上の固定要素の固定要素４２、固定要素４２上に最後に設置されたＡＲコンテンツ４０、およびその同一コンテンツを表示すべきかどうか（そのようなＡＲコンテンツは、ユーザが特定のパス可能世界モデルを視認しているかどうかにかかわらず、「持続的」コンテンツである）を示す。
【０１３６】
図５Ｂは、視認光学系アセンブリ４８および付帯コンポーネントの概略を図示する。ユーザの眼４９に配向されると、いくつかの実施形態では、２つの眼追跡カメラ５０は、眼形状、眼瞼オクルージョン、瞳孔方向およびユーザの眼４９上の閃光等のユーザの眼４９のメトリックを検出する。いくつかの実施形態では、飛行時間センサ等の深度センサ５１が、中継信号を世界に放出し、所与のオブジェクトまでの距離を決定する。いくつかの実施形態では、世界カメラ５２が、周辺を上回るビューを記録し、環境３２をマッピングし、ＡＲコンテンツに影響を及ぼし得る入力を検出する。カメラ５３はさらに、ユーザの視野内の物理的世界画像の具体的タイムスタンプを捕捉してもよい。世界カメラ５２、カメラ５３、および深度センサ５１はそれぞれ、５４、５５、および５６の個別の視野を有し、図３Ａに描写される物理的世界環境３２等の物理的世界場面からデータを収集し、記録する。
【０１３７】
慣性測定ユニット５７は、視認光学系アセンブリ４８の移動および配向を決定してもよい。いくつかの実施形態では、各コンポーネントは、少なくとも１つの他のコンポーネントに動作可能に結合される。例えば、深度センサ５１は、ユーザの眼４９が見ている実際の距離に対して測定された遠近調節の確認として、眼追跡カメラ５０に動作可能に結合される。
【０１３８】
視認光学系アセンブリ４８内のこれらのセンサからの情報は、システム内のプロセッサのうちの１つ以上のものに結合されてもよい。プロセッサは、ユーザに物理的世界内のオブジェクトと相互作用する仮想コンテンツを知覚させるようにレンダリングされ得る、データを生成してもよい。そのレンダリングは、物理的および仮想の両方のオブジェクトを描写する画像データを生成することを含む、任意の好適な方法で実装されてもよい。他の実施形態では、物理的および仮想コンテンツは、ユーザが物理的世界を通して見る、ディスプレイデバイスの不透明度を変調させることによって、１つの場面に描写されてもよい。不透明度は、仮想オブジェクトの外観を作成し、また、ユーザに仮想オブジェクトによってオクルードされる物理的世界内のオブジェクトが見えないように遮断するように、制御されてもよい。コンテンツがユーザに提示される方法にかかわらず、物理的世界のモデルは、仮想オブジェクトの形状、位置、運動、および可視性を含む、物理的オブジェクトによって影響され得る仮想オブジェクトの特性が、正しく算出され得るように要求される。いくつかの実施形態では、モデルは、物理的世界の再構成、例えば、再構成３１８を含んでもよい。
【０１３９】
そのモデルは、ユーザのウェアラブルデバイス上のセンサから収集されたデータから作成されてもよい。但し、いくつかの実施形態では、モデルは、複数のユーザによって収集されたデータから作成されてもよく、これは、全てのユーザから遠隔のコンピューティングデバイス内に集約されてもよい（かつ「クラウド内」にあってもよい）。
【０１４０】
モデルは、少なくとも部分的に、世界再構成システム、例えば、図６にさらに詳細に描写される図３の世界再構成コンポーネント３１６によって作成されてもよい。世界再構成コンポーネント３１６は、物理的世界の一部のための表現を生成、更新、および記憶し得る、知覚モジュール１６０を含んでもよい。いくつかの実施形態では、知覚モジュール１６０は、センサの再構成範囲内の物理的世界の一部を複数のボクセルとして表してもよい。各ボクセルは、物理的世界内の所定のボリュームの３Ｄ立方体に対応し、ボクセルによって表されるボリューム内に表面が存在するかどうかを示す、表面情報を含んでもよい。ボクセルは、その対応するボリュームが、物理的オブジェクトの表面を含むと決定されたか、空であると決定されたか、またはセンサを用いてまだ測定されておらず、したがって、その値が未知であるかを示す、値を割り当てられてもよい。値は、空または未知であると決定されたボクセルが、明示的に記憶される必要がないことを示し、ボクセルの値は、空または未知であると決定されたボクセルに関する情報を記憶しないことを含む、任意の好適な方法でコンピュータメモリ内に記憶され得ることを理解されたい。
【０１４１】
図７Ａは、ボクセル１０２に離散化される、３Ｄ空間１００の実施例を描写する。いくつかの実施形態では、知覚モジュール１６０は、着目オブジェクトを決定し、着目オブジェクトの特徴を捕捉し、冗長情報を回避するために、ボクセルのボリュームを設定してもよい。例えば、知覚モジュール１６０は、壁、天井、床、および大家具等のより大きいオブジェクトおよび表面を識別するように構成されてもよい。故に、ボクセルのボリュームは、比較的に大サイズ、例えば、４ｃｍ３の立方体に設定されてもよい。
【０１４２】
ボクセルを含む、物理的世界の再構成は、立体モデルと称され得る。立体モデルを作成するための情報は、センサが物理的世界を中心として移動するにつれて、経時的に作成されてもよい。そのような運動は、センサを含む、ウェアラブルデバイスのユーザが動き回るにつれて、発生し得る。図８Ａ−Ｆは、物理的世界を立体モデルの中に再構成する実施例を描写する。図示される実施例では、物理的世界は、表面の一部１８０を含み、これは、図８Ａに示される。図８Ａでは、第１の場所におけるセンサ１８２は、視野１８４を有し得、その中で、表面の一部１８０は、可視である。
【０１４３】
センサ１８２は、深度センサ等の任意の好適なタイプであってもよい。しかしながら、深度データは、画像センサから、または他の方法において、導出されてもよい。知覚モジュール１６０は、データをセンサ１８２から受信し、次いで、図８Ｂに図示されるように、複数のボクセル１８６の値を設定し、視野１８４内のセンサ１８２によって可視の表面の一部１８０を表してもよい。
【０１４４】
図８Ｃでは、センサ１８２は、第２の場所に移動し、視野１８８を有し得る。図８Ｄに示されるように、ボクセルのさらなるグループが、可視となり、これらのボクセルの値は、センサ１８２の視野１８８に進入した表面の一部の場所を示すように設定されてもよい。これらのボクセルの値は、表面のための立体モデルに追加されてもよい。
【０１４５】
図８Ｅでは、センサ１８２はさらに、第３の場所に移動し、視野１９０を有し得る。図示される実施例では、表面の付加的部分が、視野１９０内で可視となる。図８Ｆに示されるように、ボクセルのさらなるグループが、可視となり得、これらのボクセルの値は、センサ１８２の視野１９０に進入した表面の一部の場所を示すように設定されてもよい。これらのボクセルの値は、表面のための立体モデルに追加されてもよい。図６に示されるように、本情報は、存続される世界の一部として、立体情報１６２ａとして記憶されてもよい。色またはテクスチャ等の表面についての情報もまた、記憶されてもよい。そのような情報は、例えば、立体メタデータ１６２ｂとして記憶されてもよい。
【０１４６】
存続される世界表現のための情報を生成することに加え、知覚モジュール１６０は、ＡＲシステムのユーザの周囲の領域の変化のインジケーションを識別および出力してもよい。そのような変化のインジケーションは、存続される世界の一部として記憶される立体データへの更新をトリガする、またはＡＲコンテンツを生成し、ＡＲコンテンツを更新する、コンポーネント３０４をトリガする等の他の機能をトリガしてもよい。
【０１４７】
いくつかの実施形態では、知覚モジュール１６０は、符号付き距離関数（ＳＤＦ）モデルに基づいて、変化を識別してもよい。知覚モジュール１６０は、例えば、深度マップ１６０ａおよび頭部姿勢１６０ｂ等のセンサデータを受信し、次いで、センサデータをＳＤＦモデル１６０ｃの中に融合させるように構成されてもよい。深度マップ１６０ａは、直接、ＳＤＦ情報を提供してもよく、画像は、ＳＤＦ情報になるように処理されてもよい。ＳＤＦ情報は、その情報を捕捉するために使用されるセンサからの距離を表す。それらのセンサは、ウェアラブルユニットの一部であってもよいため、ＳＤＦ情報は、ウェアラブルユニットの目線、したがって、ユーザの目線から物理的世界を表し得る。頭部姿勢１６０ｂは、ＳＤＦ情報が物理的世界内のボクセルに関連することを可能にし得る。
【０１４８】
図６に戻って参照すると、いくつかの実施形態では、知覚モジュール１６０は、知覚範囲内の物理的世界の一部のための表現を生成、更新、および記憶してもよい。知覚範囲は、少なくとも部分的に、センサの再構成範囲に基づいて決定され得、これは、少なくとも部分的に、センサの観察範囲の限界に基づいて決定され得る。具体的実施例として、アクティブＩＲパルスを使用して動作する、アクティブ深度センサは、ある距離の範囲にわたって確実に動作し、センサの観察範囲を作成し得、これは、数センチメートルまたは数十センチメートル〜数メートルであってもよい。
【０１４９】
図７Ｂは、視点１０６を有するセンサ１０４に対する、再構成範囲を描写する。視点１０６内の３Ｄ空間の再構成は、センサ１０４によって捕捉されたデータに基づいて構築されてもよい。図示される実施例では、センサ１０４は、４０ｃｍ〜５ｍの観察範囲を有する。いくつかの実施形態では、センサの再構成範囲は、その観察限界に近いセンサ出力が、より雑音が多く、不完全で、かつ不正確であり得るため、センサの観察範囲より小さくなるように決定され得る。例えば、４０ｃｍ〜５ｍの図示される実施例では、対応する再構成範囲は、１〜３ｍに設定されてもよく、本範囲外の表面を示す、センサを用いて収集されたデータは、使用されなくてもよい。
【０１５０】
いくつかの実施形態では、知覚範囲は、センサの再構成範囲より大きくてもよい。物理的世界についてのデータを使用する、コンポーネント１６４が、現在の再構成範囲内の物理的世界の一部外の知覚範囲内の領域についてのデータを要求する場合、その情報は、存続される世界１６２から提供されてもよい。故に、物理的世界についての情報は、クエリによって容易にアクセス可能であってもよい。いくつかの実施形態では、ＡＰＩが、そのようなクエリに応答し、ユーザの現在の知覚範囲についての情報を提供するように提供されてもよい。そのような技法は、既存の再構成にアクセスするために必要とされる時間を低減させ、改良されたユーザ体験を提供し得る。
【０１５１】
いくつかの実施形態では、知覚範囲は、ユーザ場所を中心とする境界ボックスに対応する、３Ｄ空間であってもよい。ユーザが、移動するにつれて、コンポーネント１６４によってクエリ可能であり得る、知覚範囲内の物理的世界の一部も、ユーザに伴って移動し得る。図７Ｃは、場所１１２を中心とする境界ボックス１１０を描写する。境界ボックス１１０のサイズは、ユーザが非合理的速度で移動し得ないため、合理的拡大を伴ってセンサの観察範囲を封入するように設定され得ることを理解されたい。図示される実施例では、ユーザによって装着されるセンサは、５ｍの観察限界を有する。境界ボックス１１０は、２０ｍ３の立方体として設定される。
【０１５２】
図６に戻って参照すると、世界再構成コンポーネント３１６は、知覚モジュール１６０と相互作用し得る、付加的モジュールを含んでもよい。いくつかの実施形態では、存続される世界モジュール１６２は、知覚モジュール１６０によって入手されたデータに基づいて、物理的世界のための表現を受信してもよい。存続される世界モジュール１６２はまた、物理的世界の表現の種々のフォーマットを含んでもよい。例えば、ボクセル等の立体メタデータ１６２ｂが、メッシュ１６２ｃおよび平面１６２ｄとともに記憶されてもよい。いくつかの実施形態では、深度マップ等の他の情報も、保存され得る。
【０１５３】
いくつかの実施形態では、知覚モジュール１６０は、例えば、メッシュ１６０ｄ、平面、および意味論１６０ｅを含む、種々のフォーマットにおいて、物理的世界のための表現を生成する、モジュールを含んでもよい。これらのモジュールは、表現が生成された時間における１つ以上のセンサの知覚範囲内のデータおよび以前の時間において捕捉されたデータおよび存続される世界１６２内の情報に基づいて、表現を生成してもよい。いくつかの実施形態では、これらのコンポーネントは、深度センサを用いて捕捉された深度情報に作用してもよい。しかしながら、ＡＲシステムは、視覚センサを含んでもよく、単眼または双眼視覚情報を分析することによって、そのような表現を生成してもよい。
【０１５４】
いくつかの実施形態では、これらのモジュールは、下記に説明されるように、ブロックまたはタイルによって表される領域等の物理的世界の領域に作用してもよい。それらのモジュールは、ブロックまたはタイルまたは物理的世界の他のサブ領域を、知覚モジュール１６０がそのサブ領域内の物理的世界の変化を検出すると、更新するようにトリガされてもよい。そのような変化は、例えば、ＳＤＦモデル１６０ｃ内の新しい表面を検出すること、またはサブ領域を表す十分な数のボクセルの値を変化させる等の他の基準によって検出されてもよい。
【０１５５】
世界再構成コンポーネント３１６は、物理的世界の表現を知覚モジュール１６０から受信し得る、コンポーネント１６４を含んでもよい。物理的世界についての情報は、例えば、アプリケーションからの使用要求に従って、これらのコンポーネントによってプル配信されてもよい。いくつかの実施形態では、情報は、事前に識別された領域の変化または知覚範囲内の物理的世界表現の変化のインジケーション等を介して、使用コンポーネントにプッシュ配信されてもよい。コンポーネント１６４は、例えば、ゲームプログラム、および視覚的オクルージョン、物理学ベースの相互作用、および環境推測のための処理を実施する、他のコンポーネントを含んでもよい。
【０１５６】
コンポーネント１６４からのクエリに応答して、知覚モジュール１６０は、物理的世界のための表現を１つ以上のフォーマットにおいて送信してもよい。例えば、コンポーネント１６４が、使用が視覚的オクルージョンまたは物理学ベースの相互作用のためであることを示すとき、知覚モジュール１６０は、表面の表現を送信してもよい。コンポーネント１６４が、使用が環境推測のためであることを示すとき、知覚モジュール１６０は、物理的世界のメッシュ、平面、および意味論を送信してもよい。
【０１５７】
いくつかの実施形態では、知覚モジュール１６０は、情報をフォーマットし、コンポーネント１６４を提供する、コンポーネントを含んでもよい。そのようなコンポーネントの実施例は、レイキャスティングコンポーネント１６０ｆであってもよい。使用コンポーネント（例えば、コンポーネント１６４）は、例えば、特定の視点からの物理的世界についての情報をクエリしてもよい。レイキャスティングコンポーネント１６０ｆは、その視点からの視野内の物理的世界データの１つ以上の表現から選択してもよい。
【０１５８】
高速立体再構成のための視点依存ブリック選択
【０１５９】
前述の説明から理解されるはずであるように、知覚モジュール１６０またはＡＲシステムの別のコンポーネントは、データを処理し、物理的世界の一部の３Ｄ表現を作成してもよい。処理されるべきデータは、少なくとも部分的に、カメラ錐台および／または深度画像に基づいて、３Ｄ再構成ボリュームの一部を間引き、平面データを抽出および存続させ、近傍一貫性を維持しながらローカル更新を可能にする、ブロック単位で、３Ｄ再構成データを捕捉、存続、および更新し、オクルージョンデータをアプリケーションに提供し、オクルージョンデータが１つ以上の深度データソースの組み合わせから導出される、そのような場面を生成し、および／または多段階メッシュ簡略化を実施することによって低減され得る。
【０１６０】
世界再構成システムは、物理的世界の複数の視点からのセンサデータを経時的に統合してもよい。センサの姿勢（例えば、位置および配向）が、センサを含むデバイスが移動されるにつれて追跡されてもよい。センサのフレーム姿勢およびそれが他の姿勢にどのように関連するかが、把握されるにつれて、物理的世界のこれらの複数の視点はそれぞれ、単一の組み合わせられた再構成の中にともに融合されてもよい。再構成は、空間および時間的平均化（すなわち、複数の視点からのデータを経時的に平均化する）を使用することによって、オリジナルセンサデータより完全かつ雑音が少なくなり得る。
【０１６１】
再構成は、例えば、ライブ深度データ等の未加工データ、ボクセル等の融合された立体データ、およびメッシュ等の算出されたデータを含む、異なるレベルの精巧さのデータを含有してもよい。
【０１６２】
いくつかの実施形態では、ＡＲおよびＭＲシステムは、規則的ボクセルグリッドを伴う、３Ｄ場面を表し、各ボクセルは、符号付き距離フィールド（ＳＤＦ）値を含有してもよい。ＳＤＦ値は、ボクセルが再構築されるべき場面内の表面の内側または外側にあるかどうかと、ボクセルから表面までの距離とを説明する。場面の所望のボリュームを表す、３Ｄ再構成データを算出することは、大量のメモリおよび処理電力を要求する。これらの要件は、３Ｄ再構成のために要求される変数の数が、処理される深度画像の数に伴って３乗で成長するため、より大きい空間を表す場面に関して増加する。
【０１６３】
本明細書に説明されるのは、処理を低減させる効率的方法である。いくつかの実施形態によると、場面は、１つ以上のブリックによって表されてもよい。各ブリックは、複数のボクセルを含んでもよい。場面の３Ｄ再構成を生成するように処理されたブリックは、画像センサの視野（ＦＯＶ）から導出された錐台および／または深度センサを用いて作成された場面の深度画像（または「深度マップ」）に基づいて、場面を表すブリックのセットを間引くことによって選択されてもよい。
【０１６４】
深度画像は、それぞれ、場面内の表面までの距離を表す、１つ以上のピクセルを有してもよい。これらの距離は、画像センサから出力されたデータが、選択的に処理され得るように、画像センサに対する位置に関連し得る。画像データは、画像センサの視点（または「視野点」）から可視であろう表面を含有する３Ｄ場面の一部を表す、それらのブリックのために処理されてもよい。残りのブリックの一部または全部の処理は、省略されてもよい。そのようなアプローチを用いることで、選択されたブリックは、それについて画像センサの出力が有用な情報を提供する可能性が低いブリックを間引くことによって達成され得る、新しい情報を含有する可能性が高いものとなり得る。画像センサから出力されたデータは、それらのブリックが、虚空または表面の背後のいずれかにあって、したがって、画像センサからの画像に描写されないため、深度マップによって示される表面より画像センサに近い、またはそこから遠いかのいずれかである、ブリックについての有用な情報を提供する可能性が低い。
【０１６５】
いくつかの実施形態では、１つ以上の基準が、処理するためブリックのセットを効率的に選択するために適用されてもよい。ブリックの初期セットは、画像センサの錐台内のものに限定されてもよい。錐台の外側の多数のブリックは、次いで、間引かれてもよい。３Ｄ再構成を更新するためのよりコンピュータリソース集約的処理が、次いで、間引くことに続いて処理するために承認されたブリックのサブセット上で実施されてもよい。故に、更新されるべき場面の３Ｄ表現は、低減された数のボクセル上での処理を使用してより効率的に算出される。
【０１６６】
処理におけるさらにより多くの低減は、深度画像に基づいてブリックを間引くことによって達成され得る。いくつかの実施形態によると、ブリックの間引および／または承認は、初期セット内の各ブリックのシルエットを深度画像の中に投影することによって実施されてもよい。そのような間引は、ブリックが、深度画像が表面の近傍に示す、場面の一部に対応するかどうかに基づいてもよい。単に、全体的に表面の正面または全体的にその背後にあると識別され得る、ブリックは、間引かれてもよい。いくつかの実施形態では、そのような決定は、効率的に行われ得る。例えば、深度マップの中へのブリックの投影の周囲の境界ボックスが、深度画像の２Ｄ平面と略垂直であり得る、ｚ−座標方向に沿った最大ブリック値および最小ブリック値を決定するために使用されてもよい。深度マップ内のピクセルによって表される距離に対するこれらの最大および最小ブリック値を比較することによって、ブリックは、間引かれ、および／またはさらなる処理のために承認されてもよい。そのような処理は、深度画像内に反映されるように、表面と交差し、および／または深度画像内に反映されるように、表面の正面にある、初期処理のためのブリックの選択をもたらし得る。いくつかの実施形態では、そのような処理は、中実表面の正面にあるブリックと穴のあいた表面の正面にあるブリック（すなわち、それに対して深度センサが表面までの距離を確実に測定することが不可能であった領域を表す、ブリック）とを区別し得る。
【０１６７】
いくつかの実施形態では、間引／承認基準は、算出上の立体再構成のための処理アルゴリズムがブリックの特性のために調整され得るように、さらなる処理のために承認されるブリックの一部または全部の分類をもたらし得る。いくつかの実施形態では、異なる処理が、ブリックが、表面と交差するか、中実表面の正面にあるか、または穴のあいた表面の正面にあると分類されるかに基づいて、選択されてもよい。
【０１６８】
図９は、ｙ−座標およびｚ−座標と平行な平面に沿った場面４００の断面図を示す。ＸＲシステムは、ボクセル５０４のグリッドによって、場面４００を表し得る。従来のＸＲシステムは、ボクセルのグリッドから生成された３Ｄ再構成が、場面の変化を反映させ得るように、画像センサまたは深度センサであり得る、センサ４０６によって捕捉された全ての新しい深度画像に基づいて、ボクセルのグリッドの各ボクセルを更新し得る。本方式における更新は、有意な算出リソースを消費し、また、例えば、算出が重くなることによって生じる待ち時間に起因して、アーチファクトをＸＲシステムの出力に生じさせ得る。
【０１６９】
本明細書に説明されるのは、例えば、少なくとも部分的に、画像センサ４０６のカメラ錐台４０４および／または画像センサによって捕捉された深度画像に基づいて、ボクセル５０４のグリッドの一部を間引くことによって、小使用量の算出リソースを用いて、正確な３Ｄ再構築データを提供する技法である。
【０１７０】
図示される実施例では、画像センサ４０６は、場面４００の表面４０２を含む、深度画像（図示せず）を捕捉する。深度画像は、場面４００内のある参照点と表面との間の距離を捕捉する、任意の便宜的方法において、コンピュータメモリ内に記憶されてもよい。いくつかの実施形態では、深度画像は、図９に図示されるように、ｘ−軸およびｙ−軸と平行な平面内の値として表され得、参照点は、座標系の原点である。Ｘ−Ｙ平面内の場所は、参照点に対する方向に対応し得、それらのピクセル場所における値は、参照点から平面内の座標によって示される方向における表面の最近傍までの距離を示し得る。そのような深度画像は、ｘ−軸およびｙ−軸と平行な平面におけるピクセルのグリッド（図示せず）を含んでもよい。各ピクセルは、画像センサ４０６から表面４０２までの特定の方向における距離を示してもよい。いくつかの実施形態では、深度センサは、特定の方向における表面までの距離を測定することが不可能であり得る。そのような条件は、例えば、表面が画像センサ４０６の範囲外にある場合に生じ得る。いくつかの実施形態では、深度センサは、反射されたエネルギーに基づいて距離を測定する、アクティブ深度センサであってもよいが、表面は、正確な測定のために、十分なエネルギーを反射させない場合がある。故に、いくつかの実施形態では、深度画像は、「穴」を有し得、それに対して値が割り当てられない、ピクセルが存在する。
【０１７１】
いくつかの実施形態では、深度画像の参照点は、変化してもよい。そのような構成は、深度画像が、３Ｄ場面全体を通して表面を表すことを可能にし、特定の基準点に対して所定かつ限定された角度の範囲を有する、部分に限定され得ない。そのような実施形態では、深度画像は、画像センサ４０６が６自由度（６ＤＯＦ）を通して移動するにつれて、表面までの距離を示し得る。これらの実施形態では、深度画像は、複数の参照点毎に、ピクセルのセットを含んでもよい。これらの実施形態では、深度画像の一部は、画像データが捕捉された時間に画像センサ４０６が向いている、方向および／または配向を表す、「カメラ姿勢」に基づいて選択されてもよい。
【０１７２】
画像センサ４０６は、カメラ錐台４０４によって表され得る、視野（ＦＯＶ）を有してもよい。いくつかの実施形態では、描写される無限カメラ錐台は、画像センサ４０６が提供し得る最大深度４１０および／または画像センサ４０６が提供し得る最小深度４１２を仮定することによって、有限３Ｄ台形プリズム４０８に低減され得る。３Ｄ台形プリズム４０８は、６つの平面によって区切られた凸面多面体であってもよい。
【０１７３】
いくつかの実施形態では、１つ以上のボクセル５０４は、ブリック５０２にグループ化されてもよい。図１０Ａは、８つのブリック５０２を含む、場面４００の一部５００を図示する。図１０Ｂは、８３ボクセル５０４を含む、例示的ブリック５０２を図示する。図９に戻って参照すると、場面４００は、１つ以上のブリックを含んでもよく、そのうちの１６個が、図４に描写される図に図示される。各ブリックは、ブリック識別、例えば、［００００］−［００１５］によって識別可能であり得る。
【０１７４】
図１１は、いくつかの実施形態において実装される、立体表現階層を描写する。いくつかの実施形態では、そのような立体表現階層は、データ転送のための待ち時間を低減させ得る。いくつかの実施形態では、物理的世界のボクセルグリッドは、その上でコンポーネント３０４が実行される、プロセッサ等、ＡＲコンテンツを算出するプロセッサのための記憶アーキテクチャの構造に準拠するようにマッピングされてもよい。１つ以上のボクセルは、「ブリック」にグループ化されてもよい。１つ以上のブリックは、「タイル」にグループ化されてもよい。タイルのサイズは、プロセッサにローカルの記憶媒体のメモリページに対応してもよい。タイルは、メモリ管理アルゴリズムに従って、使用量または予期される使用量に基づいて、無線接続等を経由して、ローカルメモリと遠隔メモリとの間で移動されてもよい。
【０１７５】
いくつかの実施形態では、知覚モジュール１６０と存続される世界モジュール１６２との間のアップロードおよび／またはダウンロードは、１つの動作において、複数のタイル上で実施されてもよい。１つ以上のタイルは、「ＲＡＭタイルセット」にグループ化されてもよい。ＲＡＭタイルセットのサイズは、ユーザによって装着されるセンサの範囲の再構成内の領域に対応してもよい。１つ以上のＲＡＭタイルセットは、「グローバルタイルセット」にグループ化されてもよい。グローバルタイルセットのサイズは、世界再構成システムの知覚範囲（例えば、知覚モジュール１６０のための知覚範囲）に対応してもよい。
【０１７６】
図１２は、いくつかの実施形態による、コンピューティングシステムを動作させ、場面の３Ｄ再構成を生成する方法６００を図示する、フローチャートである。方法６００は、１つ以上のブリック（例えば、ブリック５０２）を伴う場面（例えば、場面４００）を表すステップから開始してもよく、各ブリックは、１つ以上のボクセル（例えば、ボクセル５０４）を含む。各ブリックは、場面の一部を表してもよい。ブリックは、画像センサ（例えば、画像センサ４０６）の姿勢が変化する場合でも、同一ブリックが場面内の同一ボリュームを表すように、持続的座標系に対して識別可能であってもよい。
【０１７７】
行為６０４では、方法６００は、深度画像（例えば、表面４０２を含む、深度画像）を深度センサ（例えば、深度センサ４０６）から捕捉してもよい。深度センサは、例えば、ＩＲ放射を伝送し、反射のための飛行時間を測定する、アクティブ深度センサであってもよい。各そのような測定は、特定の方向における深度センサから表面までの距離を表す。その深度情報は、ブリックによって表されるものと同一ボリュームを表し得る。
【０１７８】
行為６０６では、方法６００は、１つ以上のブリックからのブリックの低減されたセットである、第１の１つ以上のブリックを生産するように、カメラ錐台（例えば、カメラ錐台４０４から導出される有限３Ｄ台形プリズム４０８）に対して１つ以上のブリックの一部を間引いてもよい。そのような間引は、処理されている画像データが入手された時間における画像センサの視野外の場面の部分を表す、ブリックを排除し得る。その画像データは、したがって、ブリックを作成または更新する際に有用な情報を含有する可能性が低い。
【０１７９】
行為６０８では、方法６００は、第１の１つ以上のブリックからのブリックの低減されたセットである、第２の１つ以上のブリックを生産するように、深度画像に対して第１の１つ以上のブリックの一部を間引いてもよい。行為６１０では、方法６００は、第２の１つ以上のブリックに基づいて、場面の３Ｄ再構成を生成してもよい。
【０１８０】
図９に戻って参照すると、深度画像によって捕捉された表面４０２および対応するカメラ姿勢を前提として、画像センサ４０６と表面４０２との間のボクセルが、空である場合がある。ボクセルが、画像センサ４０６からより遠く表面４０２の背後にあるほど、ボクセルがオブジェクトの内側または虚空を表す確実性が低くなり得る。確実性の程度は、加重関数によって表されてもよく、これは、表面４０２までの距離に基づいて、ボクセル更新を加重する。表面４０２の背後にある（画像センサ４０２からより遠く離れた）ボクセルが、閾値を上回る加重関数を有するとき、ボクセルは、無更新またはゼロ更新（例えば、ゼロ変化に伴う更新）となり得る。また、カメラ錐台４０４の中にない、全てのボクセルは、本深度画像のために更新または調査されなくてもよい。
【０１８１】
方法６００は、立体深度画像融合の処理速度のみを改良するだけではなく、また、メモリ記憶を殆ど消費し得ず、これは、方法６００がウェアラブルハードウェア上で起動することを可能にする。例えば、１ｃｍ３ボクセルサイズおよびボクセルあたり８バイト（距離値のための４バイトおよび加重値のための４バイト）を伴う、５ｍ×５ｍ×３ｍの小再構成ボリュームは、すでに、約６００ＭＢを要求するであろう。方法６００は、切り捨て閾値に対する表面までのその距離によって、ブリックをカテゴリ化することができる。例えば、方法６００は、空ブリックのためにメモリ空間を配分しないように、空ブリック（例えば、間引かれるブリックまたは切り捨て閾値を超える表面から離れたブリック）を識別することができる。方法６００はまた、負の切り捨て閾値および加重１の一定距離値によって、これらのブリックを記憶するように、切り捨て閾値によって、表面から離れたブリックを識別することができる。方法６００はまた、正の切り捨て閾値の一定ＳＤＦ値であるが、可変加重を伴う、これらのブリックを記憶するように、ゼロと切り捨て閾値との間の表面までの距離を有する、ブリックを識別することができる。単一値を伴うブリックに関して一定である、距離または加重値を記憶することは、ゼロエントロピフィールドのためのエントロピベースの圧縮であり得る。
【０１８２】
方法６００は、ボクセル更新の間、「表面の任意の部分を含有しない」とブリックにフラグを付けることを可能にし得、これは、ブリックの処理を有意に加速させることができる。その処理は、例えば、ブリックによって表される場面の一部の画像をメッシュに変換することを含んでもよい。
【０１８３】
図１３は、いくつかの実施形態による、画像センサ４０６のカメラ錐台４０４に対して１つ以上のブリックの一部を間引く例示的方法６０６を示す。方法６０６は、立方体軸整合境界ボックス（ＡＡＢＢ）を見出し、カメラ錐台４０４を含有するステップから開始してもよい。ＡＡＢＢは、１つ以上のブリックを場面内に含有してもよい。方法６０６は、ＡＡＢＢを１つ以上のサブＡＡＢＢに分割するステップ（行為７０４）と、カメラ錐台承認試験を行うステップ（行為７０６）とを含んでもよい。方法６０６が、行為７０８において、サブＡＡＢＢがブリックのサイズに達することを決定する場合、方法６０６は、第１の１つ以上のブリックを生産してもよい（行為７１０）。方法６０６が、行為７０８において、サブＡＡＢＢがブリックのサイズより大きいことを決定する場合、方法６０６は、サブＡＡＢＢがブリックのサイズに達するまで、行為７０４−７０８を繰り返してもよい。
【０１８４】
例えば、カメラ錐台４０４に対応する３Ｄ台形プリズム４０８を前提として、ＡＡＢＢは、３Ｄ台形プリズム４０８を含有する辺長の２乗を用いて、一定時間内に見出され得る。ＡＡＢＢは、８つのサブＡＡＢＢに分割されてもよい。８つのサブＡＡＢＢはそれぞれ、カメラ錐台４０４との交点に関して試験されてもよい。サブＡＡＢＢが、カメラ錐台４０４と交差しないと決定されると、本サブＡＡＢＢに対応するブリックは、間引かれてもよい。間引かれたブリックは、さらなる処理のために否認されてもよい。サブＡＡＢＢが、カメラ錐台４０４と交差すると決定されると、サブＡＡＢＢは、サブＡＡＢＢの８つのサブＡＡＢＢにさらに分割されてもよい。次いで、サブＡＡＢＢの８つのサブＡＡＢＢはそれぞれ、カメラ錐台４０４との交点に関して試験されてもよい。分割および試験の反復は、サブＡＡＢＢが単一ブリックに対応するまで継続する。カメラ錐台４０４がＡＡＢＢと交差するかどうかを決定するために、２ステップ試験が、行われてもよい。第１に、ＡＡＢＢの少なくとも１つの角点が、カメラ錐台４０４を区切る平面のそれぞれの内側にあるかどうか試験されてもよい。第２に、カメラ錐台４０４と交差しないが、部分的に内側にあると正しくなく分類される（例えば、錐台の縁上の１つのみの角点を有する）、ＡＡＢＢのいくつかの場合が、捕捉され得るように、カメラ錐台４０４の全ての角点がＡＡＢＢの内側にあるかどうか試験されてもよい。
【０１８５】
本２ステップ試験の望ましい副産物は、カメラ錐台４０４と交差するブリック毎に、完全または部分的にのみ、カメラ錐台４０４の内側にあるかどうかが把握され得ることである。完全にカメラ錐台４０４の内側にあるブリックに関して、後の個々のボクセル更新において、カメラ錐台４０４の内側にあるかどうかのボクセル毎の試験は、スキップされ得る。
【０１８６】
図１４は、いくつかの実施形態による、カメラ錐台承認試験を行う例示的方法７０６を示す。方法７０６は、カメラ錐台４０４を区切る平面のそれぞれに対して１つ以上のサブＡＡＢＢのそれぞれを試験することによって開始してもよい（行為８０２）。行為８０４では、方法７０６は、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の外側にあるかどうかを決定してもよい。行為８０６では、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の外側にあることが決定される場合、方法７０６は、本試験されるサブＡＡＢＢによって含有される全てのブリックを間引いてもよい。行為８０８では、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の外側にないことが決定される場合、方法７０６は、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の内側にあるかどうかを決定してもよい。
【０１８７】
行為８１０では、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の内側にあることが決定される場合、方法７０６は、試験されるサブＡＡＢＢによって含有される全てのブリックを第１の１つ以上のブリックに追加してもよい。行為７０８では、試験されるサブＡＡＢＢが完全にカメラ錐台４０４の内側にないことが決定される（試験されるサブＡＡＢＢがカメラ錐台４０４と交差することを示し得る）場合、方法７０６は、試験されるサブＡＡＢＢがブリックのサイズに達するかどうかを決定してもよい。
【０１８８】
行為８１４では、試験されるサブＡＡＢＢがブリックのサイズと等しいことが決定される場合、方法７０６はさらに、カメラ錐台４０４の全ての角点が試験されるサブＡＡＢＢの内側にあるかどうかを決定してもよい。カメラ錐台４０４の全ての角点が試験されるサブＡＡＢＢの内側にあることが決定される場合、方法７０６は、試験されるサブＡＡＢＢのブリックを間引いてもよい（行為８０６）。カメラ錐台の全ての角点が試験されるサブＡＡＢＢのブリックの内側にあるわけではないことが決定される場合、方法７０６は、試験されるサブＡＡＢＢのブリックを第１の１つ以上のブリックに追加してもよい（行為８１０）。
【０１８９】
図１５は、いくつかの実施形態による、深度画像に対する第１の１つ以上のブリックの一部を間引く例示的方法６０８を示す。方法６０８は、第１の１つ以上のブリック毎に、第１の深度画像承認試験を行うことによって開始してもよい（行為９０２）。行為９０４では、方法８０８は、試験されるブリックが第１の深度画像承認試験によって承認されるかどうかを決定してもよい。試験されるブリックが第１の深度画像承認試験によって承認されることが決定される（試験されるブリックが場面内の表面と交差することを示し得る）場合、方法６０８は、可変インクリメントを選択されたボクセルに適用し（行為９０６）、試験されるブリックを第２の１つ以上のブリックに追加してもよい（行為９１４）。
【０１９０】
行為９０８では、試験されるブリックが第１の深度画像承認試験によって承認されないことが決定される場合、方法６０８は、試験されるブリックに関する第２の深度画像承認試験を行ってもよい（行為９０８）。行為９１０では、試験されるブリックが第２の深度画像承認試験によって承認されるかどうか決定される。試験されるブリックが第２の深度画像承認試験によって承認されることが決定される（試験されるブリックが、場面内の中実または穴のあいた背景の正面にあることを示し得る）場合、方法６０８は、一定インクリメントを全てまたは選択されたボクセルに適用し（行為９１２）、試験されるブリックを第２の１つ以上のブリックに追加してもよい（行為９１４）。試験されるブリックが第２の深度画像承認試験によっても承認されないことが決定される場合、方法６０８は、試験されるブリックを間引いてもよい（行為９１６）。
【０１９１】
図１６は、いくつかの実施形態による、第１の深度画像承認試験を行う例示的方法９０２を示す。試験されるべきブリック毎に、方法９０２は、ｚ−座標と平行方向に沿った最小ブリック値（ｂｍｉｎ）および最大ブリック値（ｂｍａｘ）を決定することによって開始してもよい（行為１００２）。ｂｍｉｎ値およびｂｍａｘ値は、パティングされ、積分閾値を考慮してもよく、それを超える深度値は、ブリック内のボクセルに対する一定更新を示す。行為１００４では、方法９０２は、ブリックの角を深度画像の中に投影することによって、試験されるブリックの角の２Ｄピクセル位置を算出してもよい。行為１００６では、方法９０２は、ブリックの角の２Ｄピクセル位置の凸包を構築することによって、矩形を算出してもよい。行為１００８では、方法９０２は、矩形内の各ピクセルをｂｍｉｎ値およびｂｍａｘ値に対して試験してもよい。行為１０１０では、方法９０２は、矩形内の全てのピクセルがｂｍｉｎ値とｂｍａｘ値との間の深度値を有するかどうかを決定してもよい。矩形内の全てのピクセルがｂｍｉｎ値とｂｍａｘ値との間の深度値を有することが決定される場合、方法９０２は、ブリックを承認してもよい（行為１０１２）。矩形内の全てのピクセルがｂｍｉｎ値とｂｍａｘ値との間の深度値を有してはいないことが決定される場合、方法９０２は、ブリックのための第２の深度画像承認試験を行ってもよい（行為９０８）。
【０１９２】
図１７は、いくつかの実施形態による、第２の深度画像承認試験を行う例示的方法９０８を示す。方法９０８は、行為１１０２において、矩形内の全てのピクセルをｂｍｉｎ値およびｂｍａｘ値に対してカテゴリ化することによって開始してもよい。行為１１０４では、方法９０８は、例えば、図１８に示されるテーブルを使用することによって、試験されるブリックが中実または穴のあいた背景の正面にあるかどうかを決定してもよい。試験されるブリックが中実または穴のあいた背景の正面にあることが決定される場合、方法９０８は、ブリックを承認してもよい（行為１１０６）。試験されるブリックが中実または穴のあいた背景の正面にないことが決定される場合、行為９１６において、方法９０８は、ブリックを間引いてもよい。
【０１９３】
図１９Ａ−Ｆは、カメラ錐台１９２に対して場面１９０を表すブリックを間引く実施例を描写する。図１９Ａでは、場面１９０は、図示される実施例では、単一ＡＡＢＢ１９４ａによって表され、これは、１６×１６ブリックを含む。図１９Ｂでは、単一ＡＡＢＢ１９４ａは、それぞれ、８×８ブリックを含む、４つのサブＡＡＢＢ１９４ｂに分割される。カメラ錐台承認試験（例えば、方法７０６）を行った後、４つのサブＡＡＢＢ１９４ｂのうちの１つが、カメラ錐台承認試験に不合格になり、したがって、不合格になったサブＡＡＢＢ１９４ｂ内の８×８ブリックは、間引かれ、白色ブリックとして図示される。図１９Ｃでは、カメラ錐台承認試験に合格した３つのサブＡＡＢＢ１９４はそれぞれさらに、それぞれ、４×４ブリックを含む、４つのサブＡＡＢＢ１９４ｃに分割される。カメラ錐台承認試験（例えば、方法７０６）を行った後、１６のサブＡＡＢＢ１９４ｃのうちの８つが、カメラ錐台承認試験に不合格になり、したがって、不合格になったサブＡＡＢＢ１９４ｃ内のブリックは、間引かれ、白色ブリックとして図示される。同様に、図１９Ｄでは、サブＡＡＢＢ１９４ｄは、２×２ブリックを含む。図１９Ｅでは、サブＡＡＢＢ１９４ｅは、単一ブリックを含み、したがって、カメラ錐台試験に合格したサブＡＡＢＢ１９４ｅおよび個別のブリックは、第１の複数のブリックとして生産され、図１９Ｆでは、灰色ブリック１９６ｆとして図示される。図示される実施例では、間引が実施されない場合、世界再構成コンポーネントは、２５６ブリックの全てを算出するであろう。カメラ錐台に対するブリック間引を用いることで、世界再構成コンポーネントは、第１の複数のブリック、すなわち、３４ブリックのみを算出する必要があり、したがって、結果をはるかに高速でレンダリングするであろう。
【０１９４】
図２０Ａは、例えば、方法６０８を行うことによって、表面２２０を含む深度画像に対して３４ブリック１９６ｆをさらに間引く、実施例を描写する。図２０Ｂは、深度画像に対する間引の結果を描写し、３４ブリック１９６ｆのうち１２ブリック２２２ａが第１の深度画像承認試験（例えば、方法９０４）に合格し、３４ブリック１９６ｆのうち９ブリック２２２ｂが第２の深度画像承認試験（例えば、方法９１０）に合格し、最後に、表面２２０を備える深度画像に対する間引後、３４ブリック１９６ｆのうち１３ブリック２２２ｃが間引かれたことを示す。その結果、図示される実施例では、深度画像に対するブリック間引を用いることで、世界再構成コンポーネントによって算出されるブリックの数はさらに、２１ブリックまで低減される。また、世界再構成コンポーネントの算出速度も、ブリックの低減された数によってだけではなく、また、第１および第２の深度画像承認試験の結果としてのブリックの分類によっても加速され得ることを理解されたい。例えば、図１５に関して議論されるように、一定インクリメントが、第１の深度画像承認試験に不合格であったが、第２の深度画像承認試験に合格した、９ブリック２２２ｂに適用されてもよい。一定インクリメントを一括して適用することもさらに、可変インクリメントを各ボクセルに適用することと比較して、算出速度を改良し得る。場面内の幾何学形状（例えば、平面）、例えば、仮想画面を設置するための壁および／または仮想ロボットをナビゲートするための床が、アプリケーションをサポートするために、ＸＲシステムにおいて取得され得る。場面の幾何学形状の一般的表現は、メッシュであって、これは、頂点および縁を有する、接続された三角形のグループを備え得る。従来、場面内の幾何学形状は、場面のためのメッシュを生成し、メッシュ内の幾何学形状を検索することによって取得されており、これは、処理のための時間、例えば、数秒を要し、異なるクエリによって要求される幾何学形状間の関係を示さない。例えば、第１のクエリは、テーブル平面に関するものであり得る。第１のクエリに応答して、システムは、テーブル平面を見出し、腕時計をテーブル平面上に残し得る。次いで、第２のクエリは、腕時計に関するものであり得る。第２のクエリに応答して、システムは、第１のクエリに対する応答から、テーブル平面がテーブル平面であるかどうかのインジケーションが存在しないため、全ての可能性として考えられるテーブル平面を見出し、腕時計を見出すまで、腕時計が各テーブル平面上に存在するかどうかをチェックし得る。
【０１９５】
本明細書に説明されるのは、幾何学形状抽出システムである。いくつかの実施形態では、幾何学形状抽出システムは、カメラおよび／またはセンサを用いて、場面を走査しながら、幾何学形状を抽出してもよく、これは、高速の効率的抽出を可能にし、動的環境変化に適応することができる。いくつかの実施形態では、幾何学形状抽出システムは、抽出された幾何学形状をローカルおよび／または遠隔メモリ内に存続させてもよい。存続される幾何学形状は、例えば、異なるタイムスタンプにおける、および／または異なるアプリケーションからからの、異なるクエリが、存続される幾何学形状を共有し得るように、一意の識別を伴ってもよい。いくつかの実施形態では、幾何学形状抽出システムは、個々のクエリに従って、幾何学形状の異なる表現をサポートしてもよい。平面は、以下の図２１−２９の説明では、例示的幾何学形状として使用される。幾何学形状抽出システムは、平面の代わりに、またはそれに加え、例えば、円筒形、立方体、線、角、またはガラス表面または穴等の意味論を含む、他の幾何学形状を検出し、後続処理において使用してもよいことを理解されたい。いくつかの実施形態では、幾何学形状抽出に関して本明細書に説明される原理は、オブジェクト抽出および同等物に適用可能であってもよい。
【０１９６】
図２１は、いくつかの実施形態による、平面抽出システム１３００を示す。平面抽出システム１３００は、深度融合１３０４を含んでもよく、これは、複数の深度マップ１３０２を受信してもよい。複数の深度マップ１３０２は、深度センサを装着している１人以上のユーザによって作成され、および／またはローカル／遠隔メモリからダウンロードされてもよい。複数の深度マップ１３０２は、同一表面の複数視点を表してもよい。複数の深度マップ間には、差異が存在し得、これは、深度融合１３０４によって解消されてもよい。
【０１９７】
いくつかの実施形態では、深度融合１３０４は、少なくとも部分的に、方法６００に基づいて、ＳＤＦ１３０６を生成してもよい。メッシュブリック１３０８は、例えば、マーチングキューブアルゴリズムを対応するブリック（例えば、図２３におけるブリック［００００］−［００１５］）にわたって適用することによって、ＳＤＦ１３０６から抽出されてもよい。平面抽出１３１０は、メッシュブリック１３０８内の平面表面を検出し、少なくとも部分的に、メッシュブリック１３０８に基づいて、平面を抽出してもよい。平面抽出１３１０はまた、少なくとも部分的に、対応するメッシュブリックに基づいて、ブリック毎に、サーフェルを抽出してもよい。サーフェルは、サーフェルを記憶することがメッシュよりメモリ空間を消費しないように、メッシュ内の頂点を含み得るが、近傍頂点を接続する縁を含まない。平面データ記憶１３１２は、抽出された平面およびサーフェルを存続させ得る。
【０１９８】
いくつかの実施形態では、ＸＲアプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）によって送信され得る、平面クエリ１３１４によって、平面データ記憶１３１２から平面を要求および取得し得る。例えば、アプリケーションは、平面抽出システム１３００に、その位置についての情報を送信し、その近傍（例えば、５メートル半径内）の全ての平面について尋ね得る。平面抽出システム１３００は、次いで、その平面データ記憶１３１２を検索し、選択された平面をアプリケーションに送信し得る。平面クエリ１３１４は、アプリケーションが平面を必要とする場所、アプリケーションが必要とする平面の種類、および／または平面が見えるべき様子（例えば、水平または垂直または角度付けられるかどうかであって、これは、平面データ記憶内の平面のプリミティブ法線をチェックすることによって決定され得る）等の情報を含んでもよい。
【０１９９】
図２２は、いくつかの実施形態による、平面抽出１３１０に関する詳細を図示する、平面抽出システム１３００の部分１４００を示す。平面抽出１３１０は、メッシュブリック１３０８のそれぞれをサブブリック１４０２に分割することを含んでもよい。平面検出１４０４は、サブブリック１４０２毎に行われてもよい。例えば、平面検出１４０４は、サブブリック内の各メッシュ三角形のプリミティブ法線を比較して、所定の閾値より小さいプリミティブ正常差を伴うそれらのメッシュ三角形を１つのメッシュ三角形にマージし、所定の面積値より大きい面積を伴うメッシュ三角形を平面として識別してもよい。
【０２００】
図２３は、いくつかの実施形態による、ボクセルを含む、ブリック［００００］−［００１５］によって表される、場面１５００と、場面内のブリック平面１５０２、グローバル平面１５０４、およびサーフェル１５０６を含む、例示的平面データとを図示する、概略図である。図２３は、４つのサブブリック１５０８に分割されている、ブリック［００１１］を図示する。メッシュブリックは、任意の好適な数のサブブリックに分割されてもよいことを理解されたい。平面検出１４０４によって検出された平面の粒度は、サブブリックのサイズによって決定され得る一方、ブリックのサイズは、立体３Ｄ再構成データを記憶する、ローカル／遠隔メモリの粒度によって決定され得る。
【０２０１】
図２２に戻って参照すると、平面検出１４０４は、少なくとも部分的に、メッシュブリック内のサブブリック毎に検出された平面に基づいて、メッシュブリック毎にブリック平面（例えば、ブリック平面１５０２）を決定してもよい。平面検出１４０４はまた、１つを上回るブリックに延在する、グローバル平面（例えば、グローバル平面１５０４）を決定してもよい。
【０２０２】
いくつかの実施形態では、平面抽出１３１０は、少なくとも部分的に、平面検出１４０４によって検出された平面に基づいて、平面データ記憶１３１２内に記憶される、既存のブリック平面および／またはグローバル平面を更新し得る、平面更新１４０６を含んでもよい。平面更新１４０６は、場面のリアルタイム変化が平面データ記憶１３１２内に存続されるように、付加的ブリック平面を追加し、既存のブリック平面のうちのいくつかを除去し、および／または既存のブリック平面のうちのいくつかを、平面検出１４０４によって検出され、同一ブリックに対応する、ブリック平面と置換することを含んでもよい。平面更新１４０６はまた、例えば、ブリック平面が既存のグローバル平面に隣接して検出されるとき、平面検出１４０４によって検出されたブリック平面を既存のグローバル平面に集約することを含んでもよい。
【０２０３】
いくつかの実施形態では、平面抽出１３１０はさらに、平面マージおよび分割１４０８を含んでもよい。平面マージは、例えば、ブリック平面が、追加され、２つのグローバル平面を接続するとき、複数のグローバル平面を１つの大きいグローバル平面にマージしてもよい。平面分割は、例えば、グローバル平面の中央におけるブリック平面が除去されるとき、１つのグローバル平面を複数のグローバル平面に分割してもよい。
【０２０４】
図２４は、いくつかの実施形態による、平面データ記憶１３１２内のデータ構造を示す。平面ＩＤ１６１２によってインデックス化されたグローバル平面１６１４は、データ構造の最高レベルにあり得る。各グローバル平面１６１４は、１つのブリック平面がブリック毎に存続され得る一方、グローバル平面の縁が対応するブリックのためのブリック平面として認定されないとき、グローバル平面が正確に提示され得るように、複数のブリック平面および対応するグローバル平面に隣接するブリックのサーフェルを含んでもよい。いくつかの実施形態では、グローバル平面に隣接するブリックのサーフェルが、グローバル平面を正確に提示するために十分であろうため、場面内の全てのブリックのサーフェルの代わりに存続される。例えば、図２３に図示されるように、グローバル平面１５０４は、ブリック［０００８］−［００１０］および［０００６］を横断して延在する。ブリック［０００６］は、グローバル平面１５０４の一部ではない、ブリック平面１５０２を有する。平面データ記憶１３１２内のデータ構造を用いることで、平面クエリがグローバル平面１５０４を要求するとき、ブリック［０００６］および［００１２］のサーフェルが、グローバル平面１５０４がブリック［０００６］および［００１２］の中に延在するかどうかを決定するためにチェックされる。図示される実施例では、サーフェル１５０６は、グローバル平面１５０４がブリック［０００６］の中に延在することを示す。
【０２０５】
図２４に戻って参照すると、グローバル平面１６１４は、対応するブリック平面１６１０と双方向に関連付けられてもよい。ブリックは、ブリックＩＤ１６０２によって識別可能であり得る。ブリックは、少なくとも１つの平面を含む、平面ブリック１６０４と、平面を含まない、非平面ブリック１６０６とに分割されてもよい。平面ブリックおよび非平面ブリックの両方に関するサーフェルは、ブリックが平面を含むかどうかではなく、ブリックがグローバル平面に隣接するかどうかに応じて、存続されてもよい。平面は、平面クエリ１３１４が存在するかどうかにかかわらず、ＸＲシステムが場面を観察する間、平面データ記憶１３１２内に継続的に存続され得ることを理解されたい。
【０２０６】
図２５は、いくつかの実施形態による、アプリケーションが平面クエリ１３１４を平面データ記憶１３１２に送信するとき、アプリケーションの使用のための平面を抽出し得る、平面幾何学形状抽出１７０２を示す。平面幾何学形状抽出１７０２は、ＡＰＩとして実装されてもよい。平面クエリ１３１４は、要求される平面幾何学形状表現、例えば、外側矩形平面、内側矩形平面、または多角形平面を示してもよい。平面クエリ１３１４に従って、平面検索１７０４は、平面データ記憶１３１２内の平面データを検索および取得し得る。
【０２０７】
いくつかの実施形態では、平面被覆点１７０６からのラスタ化が、平面被覆点を生成し得る。実施例は、図２６Ａに図示される。それぞれ、ブリック平面１８０２を有する、４つのブリック［００００］−［０００３］が存在する。平面被覆点１８０６（または「ラスタ化点」）は、ブリック平面の境界点をグローバル平面１８０４上に投影することによって生成される。
【０２０８】
図２５に戻って参照すると、平面被覆点１７０６からのラスタ化はまた、平面被覆点からラスタ化平面マスクを生成し得る。平面クエリ１３１４によって要求される平面幾何学形状表現に従って、内側矩形平面表現、外側矩形平面表現、および多角形平面表現が、それぞれ、内側矩形抽出１７０８、外側矩形抽出１７１０、および多角形抽出１７１２によって抽出され得る。いくつかの実施形態では、アプリケーションは、平面クエリの送信から数ミリ秒以内に要求される平面幾何学形状表現を受信することができる。
【０２０９】
例示的ラスタ化平面マスク１８１４は、図２６Ｂに図示される。ラスタ化平面マスクから、種々の平面幾何学形状表現が、生成され得る。図示される実施例では、多角形１８１２が、マスク内の平面被覆点のいずれも多角形の外側にないように、ラスタ化平面マスクの平面被覆点のうちのいくつかを接続することによって生成される。外側矩形１８０８は、外側矩形１８０８がラスタ化平面マスク１８１４を囲繞する最小矩形であるように生成される。内側矩形１８１０は、内側矩形が個別のグループを囲繞する最小矩形であるように、「１」を２つの平面被覆点を伴うブリックに、「０」を２つの平面被覆点を伴わないブリックに割り当て、ラスタ化グリッドを形成し、「１」としてマークされ、ブリックの縁と平行な線内に整合される、ブリックのグループを決定し（例えば、ブリック［０００１］、［０００５］、［０００９］、および［０００１３］をグループとして、ブリック［００１３］−［００１５］をグループとして）、決定されたグループ毎に、１つの内側矩形を生成することによって生成される。
【０２１０】
図２７は、いくつかの実施形態による、場面１９００に関するメッシュを示す。図２８Ａ−Ｃは、いくつかの実施形態による、それぞれ、外側矩形平面、内側矩形平面、および多角形平面によって表される、場面１９００を示す。
【０２１１】
図２９は、場面１９００のあまり雑音がない３Ｄ表現を図示し、これは、抽出された平面データ、例えば、図２８Ａ−Ｃに図示される平面に基づいて、図２７に示されるメッシュを平面化することによって取得される。
【０２１２】
多段階ブロックメッシュ簡略化
【０２１３】
いくつかの実施形態では、表現が、オクルージョン処理またはＸＲ環境内のオブジェクト間の相互作用の物理学の算出等のレンダリング機能において記憶または使用される前に、処理が、ＸＲ環境の表現の複雑性を低減させるために採用されてもよい。例えば、メッシュ化コンポーネント１６０ｄは、存続される世界１６２内にメッシュ１６２ｃとして記憶する前に、メッシュまたは部分メッシュの一部を簡略化し得る。
【０２１４】
そのような処理は、ＸＲ環境の表現上で動作を段階的に実施することを伴い得る。それらの段階は、領域ベースの動作に先行する、およびそれに続く、簡略化動作を含んでもよい。領域ベースの動作は、簡略化動作のように、ＸＲ環境の表現の複雑性を低減させ得る。動作を本方式において段階化することによって、ＸＲ環境の簡略化された表現を生産するための総処理は、ＸＲ環境の表現の品質を維持しながら、低減され得る。その結果、ＸＲ環境が、頻繁に更新され、より現実的環境をユーザに提示すること等によって、ＸＲシステムの性能を改良し得るように、簡略化された高品質表現が、頻繁に更新され得る。
【０２１５】
ＸＲ環境は、物理的世界を表してもよく、ＸＲ環境を表すデータは、１つ以上のセンサによって捕捉されてもよい。しかしながら、本明細書に説明されるような技法は、環境を表すデータのソースにかかわらず、ＸＲ環境に適用されてもよい。いくつかの実施形態では、ＸＲ環境は、１つ以上の点および点のサブセットによって定義された三角形等の多角形を含む、メッシュによって表されてもよい。領域ベースの動作に先行する、第１の簡略化動作は、環境の表現の複雑性を低減させ得る。メッシュは、例えば、メッシュ内のそのような多角形の数を低減させることによって簡略化され得る。具体的実施例として、第１の簡略化動作は、三角形低減アルゴリズムを採用してもよく、これは、ＸＲ環境を表すために使用される三角形の数を低減させ得る。
【０２１６】
領域ベースの動作は、１つ以上の形状を検出し得る、形状検出動作であってもよい。一般的形状検出動作は、検出された形状が平面である、平面化動作である。検出された平面は、オブジェクトまたはオブジェクトの一部を表し得る。平面の検出は、ＸＲ環境をレンダリングするための処理を簡略化し得る。ＸＲ環境内にレンダリングされている移動オブジェクトは、例えば、平面と衝突する際、容易に算出可能な方法において移動し得る。故に、平面を識別することは、環境の同一部分を表す複数の多角形に基づいて算出を実施することと比較して、移動オブジェクトの後続レンダリングを簡略化し得る。円筒形、立方体、線、角、またはガラス表面または穴等の意味論を含む、他の形状も、平面の代わりに、またはそれに加え、後続処理において検出および使用されてもよい。そのような動作は、検出された形状の表面を表す、多角形をグループ化し得る。
【０２１７】
領域ベースの動作に続く、第２の簡略化動作もさらに、表現内の多角形の数をさらに低減させること等によって、環境の表現を簡略化し得る。第２の簡略化動作は、領域ベースの動作によって検出された各領域内の多角形の数を低減させることに焦点を当て得る。
【０２１８】
そのような処理は、物理的環境内で収集されたセンサデータを処理し、メッシュをコンテンツを生成するアプリケーションに提供する、メッシュ化サービスを可能にし得る。いくつかの実施形態では、処理は、仮想環境内の仮想オブジェクトの簡略化された表現を提供してもよい。
【０２１９】
仮想現実（ＶＲ）、拡張現実（ＡＲ）、および複合現実（ＭＲ）システム等のＸＲシステムでは、３次元（３Ｄ）メッシュデータは、多くの場合、例えば、環境内の物理的オブジェクトに基づいて、グラフィック／ゲームエンジン内の仮想コンテンツをオクルードする、またはゲームエンジンの物理学エンジン内の仮想オブジェクトのための有効剛体衝突を算出することを含む、複数の目的のために使用される。いくつかの実施形態では、メッシュのための要件は、メッシュの異なる使用に関して異なる場合があり、簡略化されたメッシュは、多くのそのような使用のために好適であり得、いくつかの簡略化技法は、いくつかの使用にとって、その他より好適である。
【０２２０】
故に、本明細書に説明されるような処理は、複数の簡略化技法および／または簡略化されたメッシュの意図される使用に基づいて構成され得る簡略化技法のいずれかを用いて実装されてもよい。簡略化されたメッシュを、異なる方法においてメッシュを使用し得る、複数のクライアントアプリケーションに提供する、メッシュ化サービスの有用性は、本明細書に説明されるような処理を使用して改良され得る。各クライアントアプリケーションは、異なるレベルの簡略化を伴うメッシュを要求し得る。いくつかの実施形態では、メッシュ化サービスにアクセスするアプリケーションは、標的簡略化またはそれに提供されるためのメッシュを規定してもよい。本明細書に説明されるようなメッシュ簡略化方法は、例えば、仮想コンテンツオクルージョン、物理学シミュレーション、または環境幾何学形状可視化を実施するものを含む、複数のクライアントアプリケーションのために役立ち得る。本明細書に説明されるメッシュ処理は、短待ち時間を有し得、異なる使用（例えば、平坦化された表面、可変三角形数）のための動作を最適化／バイアスし得るという点で柔軟であり得る。
【０２２１】
本明細書に説明されるようなメッシュ簡略化方法は、リアルタイム性能（例えば、オンザフライ（リアルタイム）で環境変化をサポートするための短待ち時間）、ローカル更新能力（例えば、最後の更新以降変化したメッシュの部分を刷新する）、および平面化された表面（例えば、ロバストな物理学シミュレーションをサポートするために平坦化された平面表面）を提供し得る。
【０２２２】
いくつかの実施形態では、ＸＲ環境の表現は、複数のブロックにセグメント化されてもよく、その一部または全部は、並行して処理されてもよい。いくつかの実施形態では、結果として生じるブロックは、次いで、再組み合わせされてもよい。いくつかの実施形態では、ブロックは、隣接するブロックに重複する、「スカート」を用いて定義されてもよい。スカートは、組み立て直されるブロックの界面により少ないおよび／またはあまり顕著ではない途絶を伴って、ブロックの組み合わせ直しを可能にする。
【０２２３】
故に、いくつかの実施形態では、メッシュ簡略化方法は、メッシュブロックセグメント化、事前簡略化、メッシュ平面化、および事後簡略化を含んでもよい。プロセスを加速するために、グローバルメッシュは、最初に、メッシュブロックが並行してハンドリング（例えば、処理）され得るように、成分メッシュのブロックにセグメント化されてもよい。次いで、メッシュブロックは、隣接するブロック間の境界にわたるスカートを用いて、延在されてもよい。スカート付きメッシュブロックを用いることで、簡略化が、個々のメッシュブロック上で行われ得る一方、グローバルメッシュは、トポロジ的に接続解除されるが、視覚的にシームレスであり得る。
【０２２４】
いくつかの実施形態では、メッシュ簡略化方法は、簡略化処理平面認識を行うこと等によって、ＸＲ環境内のオブジェクトの相互作用を表すために簡略化されたメッシュを使用する、アプリケーションによる使用のために好適となり得る。メッシュを簡略化するために、３ステップ簡略化プロセスが、実装されてもよい。メッシュは、最初に、比較的に多標的三角形数を使用して、中程度に事前簡略化され得る。次いで、平面面積が、領域成長アルゴリズムによって検出され得る。メッシュは、対応する三角形を検出された平面に投影することによって平面化され得る。いくつかの実施形態では、メッシュは、平面（またはプリミティブ）法線を検出された平面と略垂直および平行に調節することによって正則化されてもよい。その後、事後簡略化プロセスが、平面化されたメッシュにわたって起動され得る。事後簡略化処理は、検出された平面面積により焦点を当て、例えば、各検出された平面面積のメッシュを簡略化し、１つ以上のメトリックの標的値によって示され得るような所望のレベルの複雑性（例えば、複雑性のメトリック）に達し得る。
【０２２５】
図３０は、いくつかの実施形態による、メッシュによって表される環境のモデルを生成する方法３０００を図示する。いくつかの実施形態では、方法３０００は、ＸＲプラットフォーム上のメッシュ化サービス上で実施されてもよい。方法３０００は、行為３００２において、環境を表す入力メッシュから開始してもよい。いくつかの実施形態では、入力メッシュは、三角形の数によって示され得る、高分解能を有し得る。入力メッシュは、再構成システム（例えば、立体３Ｄ再構成システム）によって生成されてもよく、入力メッシュは、３Ｄ再構成データを含んでもよい。
【０２２６】
いくつかの実施形態では、再構成システムは、１つ以上のセンサによって捕捉された環境の３Ｄ情報のデータ階層を作成し得る、環境の立体３Ｄ表現を生成してもよい。例えば、センサは、深度カメラであってもよく、これは、深度カメラの個別の姿勢（すなわち、カメラ姿勢）を用いて、環境の３Ｄ情報、例えば、深度画像のストリームを捕捉し得る。環境の３Ｄ情報は、ボクセルグリッドの中に処理されてもよい。各ボクセルは、ボクセルが環境内のオブジェクトの幾何学形状の内側または外側にあるかどうかを説明する、１つ以上の符号付き距離関数（ＳＤＦ）を含有してもよい。ボクセルは、「ブリック」にグループ化されてもよい。各ブリックは、例えば、８３ボクセル等、立方体ボリューム内に複数のボクセルを含んでもよい。ブリックは、「タイル」にさらにグループ化されてもよい。各タイルは、複数のブリックを含んでもよい。
【０２２７】
タイルのサイズは、コンピューティングデバイス内のメモリ動作を促進するように選択されてもよい。サイズは、例えば、そのようなデータを処理するデバイスのアクティブメモリ内に維持される、環境についての情報の量に基づいて選択されてもよい。システムは、例えば、通常、デバイスのローカルにある、アクティブメモリと、不揮発性メモリまたはクラウド内の遠隔メモリ等のより多くの待ち時間を有する、他のメモリとの間でタイルをやりとりしてもよい。１つ以上の全体または部分的タイルは、「ブロック」をメッシュまたは環境の他の表現において表す、情報を含有し得る。
【０２２８】
いくつかの実施形態では、立体３Ｄ再構成システムは、入力メッシュ３００２を、トポロジ的に接続されたグローバルメッシュとして生成してもよい。いくつかの実施形態では、立体３Ｄ再構成システムは、入力メッシュ３００２を、視覚的にシームレスであるが、トポロジ的に接続解除される、グローバルメッシュとして生成してもよい。例えば、トポロジ的に接続解除されたグローバルメッシュは、それぞれ、ブロックから生成される、複数のメッシュブロックから成ってもよい。
【０２２９】
再構成システムは、環境の実質的詳細を捕捉するように構成されてもよく、これは、システムが、その特性に比較的に小差異を有する、表現の隣接する部分を区別することを可能にする。異なる性質の隣接する領域は、異なる表面として識別され、システムが環境内の多数の表面を識別する結果をもたらし得る。しかしながら、そのようなシステムは、多くのアプリケーションのために不必要であるが、それにかかわらず処理される、詳細を捕捉し得る。例えば、再構成システムは、矩形を成す２つの三角形が、メッシュをメッシュ化サービスから要求するクライアントアプリケーションのための壁の十分な表現であろうとき、多くの三角形を伴う凹凸を壁上に不必要に提示し得る。いくつかの実施形態では、アプリケーションは、メッシュをメッシュ化サービスから要求するとき、要求されるメッシュの標的簡略化レベルを規定してもよい。その標的簡略化レベルは、圧縮の程度、単位面積あたりの三角形の数、または任意の他の好適な方法において表され得る。
【０２３０】
方法３０００は、入力メッシュから、クライアントアプリケーションにとって十分である、環境のモデルを効率的に生成し得る。行為３００４では、入力メッシュは、それぞれ、環境の立体３Ｄ表現のデータ階層内のブロックに対応し得る、１つ以上の第１のメッシュブロックにセグメント化されてもよい。
【０２３１】
各第１のメッシュブロックは、環境の一部を表し得、複雑性のメトリック（例えば、メッシュ分解能）の第１の値を有し得る。いくつかの実施形態では、メッシュブロックの複雑性のメトリックは、メッシュブロック内の三角形の数を示す。いくつかの実施形態では、処理は、順次および／または並行して、メッシュブロック上で実施されてもよい。しかしながら、本明細書に説明されるような簡略化処理は、メッシュ全体または任意の好適な部分（例えば、１つ以上のメッシュブロック）に適用されてもよい。
【０２３２】
行為３００６は、複数のメッシュブロックのそれぞれ上で実施される、サブプロセスを表す。サブ処理は、処理がメッシュブロックの一部または全部のために並行して容易に実施され得るように、独立して、複数のメッシュブロック上で実施されてもよい。サブプロセスは、全てのメッシュブロックまたはさらなる処理のために選択されたメッシュブロックのサブセット上で実施されてもよい。メッシュブロックのサブセットは、少なくとも部分的に、その上で簡略化されたメッシュを要求するアプリケーションが実行される、デバイスの視野に基づいて、選択されてもよい。
【０２３３】
行為３００６では、第１のメッシュブロックのうちのいくつかが、例えば、第１のメッシュブロック内に説明されるオブジェクトまたは第１のメッシュブロックの場所に基づいて、選択されてもよい。選択された第１のメッシュブロック毎に、多段階簡略化が、実施されてもよい。いくつかの実施形態では、選択された第１のメッシュブロック上の多段階簡略化は、並行して実施されてもよく、その結果、選択された第１のメッシュブロック上の簡略化は、ほぼ同一時点で完了され得るが、これは、選択された第１のメッシュブロックの各メッシュブロックの複雑性のメトリックに依存し得る。
【０２３４】
多段階簡略化は、事前簡略化動作、領域ベースの動作（例えば、平面化動作）、および事後簡略化動作を含んでもよい。いくつかの実施形態では、多段階簡略化は、クライアントアプリケーションからの入力値に基づいて実施されてもよい。入力値は、クライアントアプリケーションによって要求されるメッシュ複雑性（例えば、メッシュ分解能）を示し得る。クライアントアプリケーションからの入力値は、選択された第１のメッシュブロック毎に同一または異なってもよい。
【０２３５】
行為３０１２では、事前簡略化動作は、選択された第１のメッシュブロック上で実施され、第２のメッシュブロックを生成してもよい。事前簡略化動作は、ブロックの複雑性を低減させ得る。メッシュブロックのために、事前簡略化は、メッシュブロック内の多角形の数を低減させ得る。いくつかの実施形態では、行為３０１２における事前簡略化の量は、構成可能であってもよい。標的値が、例えば、行為３０１２において、例えば、クライアントアプリケーションによって、処理への入力として提供されてもよい。標的値は、１つ以上の規定または所定のメトリックの単一値または複数の値であってもよい。１つ以上のメトリックは、例えば、絶対三角形数、初期三角形数のパーセンテージ、および／または簡略化されたメッシュとオリジナルメッシュ（例えば、入力メッシュ３００２）との間の平均二乗距離を測定し得る、二次誤差メトリックを含んでもよい。
【０２３６】
標的値は、任意の好適な方法で提供されてもよい。方法３０００のインスタンスは、例えば、標的値とともに事前に構成されてもよい。いくつかの実施形態では、標的値は、方法３０００を実施する、メッシュをメッシュ化サービスから要求するアプリケーションによって、ＡＰＩを通して、供給されてもよい。例えば、行為３０１２のための標的値は、レンダリング機能（例えば、要求側アプリケーション）によって要求される最終標的であってもよい。いくつかの実施形態では、入力として提供される標的値は、調節または上書きされ、十分なデータが後続処理のためにメッシュ内に残っていることを確実にしてもよい。例えば、行為３０１４における処理は、最小数の三角形を要求し得、アプリケーションによって提供される標的値は、標的値が最小数の三角形を下回る場合、その最小値によって置換されてもよい。
【０２３７】
そのような実施形態では、事前簡略化されたメッシュは、依然として、オリジナルブロックのセグメント化入力メッシュの領域の全部または大部分を含有したまま、領域ベースの動作の間、オリジナルブロックのセグメント化された入力メッシュより高速で、事前簡略化されたメッシュが処理され得るように、１つ以上のメトリックの値を有してもよい。
【０２３８】
１つ以上のメトリックの値を制御しない場合、簡略化されたメッシュは、あまりに粗雑であって、非均一に分散され、および／または続く領域ベースの動作において要求される、オリジナルブロックのセグメント化された入力メッシュの多くの領域を喪失し得る。
【０２３９】
行為３０１２において生産された第２のメッシュブロックは、複雑性のメトリックの第２の値を有してもよく、これは、複雑性のメトリックの第１の値未満であってもよい。いくつかの実施形態では、行為３０１２の事前簡略化動作は、三角形低減アルゴリズムを使用して実施されてもよい。
【０２４０】
行為３０１４では、形状検出動作は、第２のメッシュブロック上で実施され、第３のメッシュブロックを生成してもよい。平面化動作は、実施例として図示される。第３のメッシュブロックは、複雑性のメトリックの第３の値を有してもよい。いくつかの実施形態では、複雑性のメトリックの第３の値は、複雑性のメトリックの第２の値と同一であってもよい。いくつかの実施形態では、複雑性のメトリックの第３の値は、複雑性のメトリックの第２の値未満であってもよい。平面化動作は、例えば、領域成長アルゴリズムを使用して、第２のメッシュブロック内の平面面積を検出し、検出された平面面積のメッシュを対応する平面に投影し、検出された平面面積の平面法線を対応する平面と略垂直であるように調節し、例えば、標的三角形数に基づいて、対応する平面のそれぞれ上の投影されたメッシュを簡略化することを含んでもよい。いくつかの実施形態では、検出された平面面積の平面法線は、検出された平面面積のメッシュを対応する平面に投影する前に調節されてもよい。
【０２４１】
行為３０１６では、事後簡略化動作が、第３のメッシュブロック上で実施され、第４のメッシュブロックを生成してもよい。いくつかの実施形態では、行為３０１４における処理は、望ましくは、方法３０００から出力されることになる簡略化されたメッシュ内で要求されるものを上回る分解能を伴うメッシュ上で実施され得る。いくつかの実施形態では、行為３０１６における処理は、行為３０１２に供給されたものと同一または異なる標的であり得る、１つ以上のメトリックの標的値によって示され得るような所望のレベルの複雑性（例えば、複雑性のメトリック）に達するように、メッシュブロック全体を簡略化してもよい。いくつかの実施形態では、行為３０１６における事後簡略化動作は、行為３０１４における平面化動作によって検出された各平面内の多角形の数を低減させることに焦点を当て得る。
【０２４２】
第４のメッシュブロックは、複雑性のメトリックの第４の値を有してもよく、これは、複雑性のメトリックの第３の値未満であってもよい。いくつかの実施形態では、複雑性のメトリックの第３の値と複雑性のメトリックの第４の値との間のパーセンテージ低減は、複雑性のメトリックの第１の値と複雑性のメトリック第２の値のとの間のパーセンテージ低減を上回ってもよい。いくつかの実施形態では、複雑性のメトリックの第３の値と複雑性のメトリックの第４の値との間のパーセンテージ低減は、複雑性のメトリックの第１の値と複雑性のメトリックの第２の値との間のパーセンテージ低減を少なくとも２倍上回ってもよい。いくつかの実施形態では、行為３０１６の事後簡略化動作は、三角形低減アルゴリズムを使用して実施されてもよい。いくつかの実施形態では、行為３０１６の事後簡略化動作は、行為３０１２の事前簡略化動作と同一簡略化アルゴリズムを使用して実施されてもよい。
【０２４３】
行為３００８では、簡略化された選択ブロックは、行為３００６におけるように同様に処理された他の選択メッシュブロックと組み合わせられてもよく、および／または未選択ブロックとともに環境の新しいメッシュの中に組み合わせられてもよい。行為３０１０では、環境の新しいメッシュが、クライアントアプリケーションに提供されてもよい。いくつかの実施形態では、環境の新しいメッシュは、簡略化されたメッシュと称され得る。
【０２４４】
いくつかの実施形態では、行為３００８は、スキップされてもよい。簡略化されたメッシュブロックは、直接、クライアントアプリケーションに送信されてもよく、そこでは、メッシュブロックは、視覚的にシームレスであるが、トポロジ的に接続解除され得る。
【０２４５】
図３１は、いくつかの実施形態による、環境のメッシュ表現３１００をメッシュブロックにセグメント化する実施例を図示する。メッシュ表現３１００は、４つのメッシュブロック、すなわち、メッシュブロックＡ−Ｄにセグメント化されてもよい。いくつかの実施形態では、メッシュブロックは、環境に属する物理的世界内の同一ボリュームを伴う、領域に対応してもよい。いくつかの実施形態では、メッシュブロックは、環境に属する物理的世界内の異なるボリュームを伴う、領域に対応してもよい。例えば、物理的世界が、オフィスの部屋であるとき、オフィスの部屋は、それぞれ、１立方フィートであり得る、領域に分割されてもよい。１つのブロックは、オフィスの部屋の１つの領域の３Ｄ表現を含んでもよい。
【０２４６】
環境のメッシュ表現３１００は、２次元（２Ｄ）で図示されるが、環境は、３Ｄメッシュ表現によって対応して表される、３次元であってもよいことを理解されたい。環境のメッシュ表現３１００は、４つのメッシュブロックの組み合わせとして図示されるが、環境は、例えば、２つ、３つ、５つ、６つ、またはそれを上回る、任意の好適な数のメッシュブロックによって表されてもよいことを理解されたい。
【０２４７】
表現３１００は、例えば、実線３１１０によって図示される、４つの部分、すなわち、部分３１０２、３１０４、３１０６、および３１０８にセグメント化されてもよい。いくつかの実施形態では、部分３１０２、３１０４、３１０６、および３１０８は、それぞれ、メッシュブロックＡ−Ｄとして指定されてもよい。
【０２４８】
メッシュブロックは、更新されたとき、更新されなかった隣接するブロックと界面接触し続け得る。その結果、メッシュブロック間の境界における途絶が、生じ得る。隣接するブロックによって表される領域が、途絶を有する場合、融合されたメッシュは、後続処理では、隣接するブロック間に亀裂が存在することを示すと解釈され得る。いくつかの実施形態では、物理的世界空間の表現内のそのような亀裂は、無限深度を伴う空間として解釈され得る。したがって、空間は、実際には、特徴ではなく、物理的世界の表現のアーチファクトとなり得る。そのような融合されたメッシュを使用して、物理的世界内のオブジェクトの表現を生成する、任意のアプリケーションは、出力を正しく生成し得ない。例えば、仮想キャラクタを物理的世界内の表面上にレンダリングする、アプリケーションは、そのキャラクタが亀裂を通して落下するかのように現れるようにレンダリングし得、これは、オブジェクトの所望の外観を作成しないであろう。
【０２４９】
そのような亀裂の外観を低減させるために、いくつかの実施形態では、隣接するブロックの一部は、物理的世界の同一領域を表してもよい。例えば、隣接するブロック間の界面領域は、隣接するブロックのそれぞれの一部によって表されてもよく、これは、詳細のレベルを考慮する（ＬＯＤ）（例えば、その部分がユーザの視野から外に移動するにつれて、物理的世界の一部の３Ｄ再構成の複雑性を減少させる）、容易な独立更新および／またはレンダリングを可能にし得る。１つのブロックが、更新され、その隣接するブロックが、更新されない場合でも、融合されたメッシュは、ブロックの両方から界面領域を表すデータを組み合わせることによって表されてもよい。具体的実施例として、更新されたブロックと隣接するブロックを融合させるとき、物理学エンジンは、例えば、その重複領域内で観察可能であるべき隣接するブロックのうちの１つに基づいて、隣接するブロックの重複領域を決定してもよい。ブロックベースのデータ構造が、ブロックが更新されると、更新されなかった隣接するブロックと界面接触し続けるであろうように、スカート、ジッパ、または隣接するブロック間の界面領域を表すための任意の他の好適な方法とともに採用されてもよい。そのようなアプローチは、隣接するブロック間の亀裂を「包み隠す」外観を有し得る。したがって、ブロックは、隣接するブロックから独立して更新されてもよい。
【０２５０】
図３１に図示される実施例では、部分３１０２、３１０４、３１０６、および３１０８の境界における領域は、破線３１１２によって図示されるスカートとして指定されてもよい。いくつかの実施形態では、メッシュブロックＡ−Ｄはそれぞれ、部分３１０２、３１０４、３１０６、および３１０８のうちの１つと、対応するスカートとを含んでもよい。例えば、メッシュブロックＢは、部分３１０４と、ブロックが単一メッシュの中に接続されるとき、メッシュブロック間の亀裂が包み隠され得るように、メッシュブロックＡ、Ｃ、およびＤの近傍のメッシュブロックＢの境界部分と重複する、スカート３１１４とを含んでもよい。メッシュブロックＡ、Ｃ、およびＤもまた、対応するスカートを含んでもよい。故に、単一の接続された３Ｄメッシュ表現をアプリケーションに返す前に、プロセッサは、メッシュブロック間の任意の亀裂を包み隠し得る。
【０２５１】
いくつかの実施形態では、スカートを含む、ブロックメッシュが、グローバルメッシュにトポロジ的に接続されるように組み合わせられずに、直接、アプリケーションに送信されてもよい。アプリケーションは、ブロックメッシュから成る、グローバルメッシュを有してもよく、これは、視覚的にシームレスであるが、トポロジ的に接続解除され得る。
【０２５２】
図３２Ａ−３２Ｄは、いくつかの実施形態による、多段階簡略化の間の例示的メッシュブロック３２０１のメッシュ進化を図示する。メッシュブロック３２０１は、頂点３２０６と、縁３２０８と、面３２１０とを含んでもよい。各面は、法線を有し得、これは、例えば、図３２Ａでは、ｘ、ｙ、ｚとして示される、複数の座標によって表されてもよい。
【０２５３】
事前簡略化動作が、メッシュブロック３２０１上で実施され、メッシュブロック３２０２を生成してもよい。縁圧潰変換が、使用されてもよい。図示される実施例では、メッシュブロック３２０２は、メッシュブロック３２０１の面の数を１０から８に低減させる。メッシュブロック３２０２の結果として生じる面はそれぞれ、対応する法線のセット（例えば、ｘ１、ｙ１、ｚ１；ｘ２、ｙ２、ｚ２；…ｘ８、ｙ８、ｚ８）を有し得る。
【０２５４】
平面化動作が、メッシュブロック３２０２上で実施され、メッシュブロック３２０３を生成してもよい。平面化動作は、例えば、面の平面（またはプリミティブ）法線に基づいて、メッシュ３２０２内の平面面積を検出することを含んでもよい。第１の面３２１２の平面法線ｘ１、ｙ１、ｚ１および第２の面３２１４の平面法線ｘ２、ｙ２、ｚ２の値が、比較されてもよい。第１および第２の面の平面法線の比較結果は、平面法線間の角度（例えば、ｘ１とｘ２との間の角度）を示し得る。比較結果が、閾値内であるとき、第１および第２の平面が同一平面面積上にあることが決定され得る。図示される実施例では、平面３２１２、３２１４、３２１６、および３２１８は、平面３２２８に対応する第１の平面面積上にあるものとして決定され得、平面３２２０、３２２２、３２２４、および３２２６は、平面３２３０に対応する第２の同一平面面積上にあるものとして決定され得る。
【０２５５】
平面化動作はまた、平面３２１２、３２１４、３２１６、および３２１８の縁によって形成される三角形を破線３２３２によって図示されるような平面３２２８に投影し、平面３２２０、３２２２、３２２４、および３２２６の縁によって形成される三角形を破線３２３４によって図示されるような平面３２３０に投影することを含んでもよい。平面化動作はまた、平面３２１２、３２１４、３２１６、および３２１８のための平面法線を平面３２２８のための平面法線（ｘ＿ａ、ｙ＿ａ、ｚ＿ａ）と同一であるように調節し、平面３２２０、３２２２、３２２４、および３２２６のための平面法線が平面３２３０のための平面法線（ｘ＿ｂ、ｙ＿ｂ、ｚ＿ｂ）と同一であるように調節することを含んでもよい。
【０２５６】
事後簡略化動作が、メッシュブロック３２０３上で実施され、メッシュブロック３２０４を生成してもよい。図示される実施例では、メッシュブロック３２０４は、メッシュブロック３２０３の面の数を８から４に低減させる。
【０２５７】
図３３Ａおよび３３Ｂ−３６Ａおよび３６Ｂは、簡略化の効果を図示し、簡略化の適用の有無別の物理的世界の同一部分を並べて示す。これらの図は、簡略化が、処理される必要があるより少ないデータを提供しながら、ＡＲシステムを動作させるための使用可能情報を提供することが可能であることのグラフィカル例証を提供する。
【０２５８】
図３３Ａおよび３３Ｂは、それぞれ、三角形低減を通した簡略化の有無別の同一環境の表現を示す。そのような処理は、図３０における事前簡略化および事後簡略化ブロック３０１２および３０１６において実施され得る、処理の実施例である。
【０２５９】
図３４Ａおよび３４Ｂは、それぞれ、三角形低減を通した簡略化の有無別の同一環境の拡大表現を示す。
【０２６０】
３５Ａおよび３５Ｂは、それぞれ、平面化の有無別の同一環境の表現を示す。そのような処理は、図３０における平面化ブロック３０１４において実施され得る、処理の実施例である。
【０２６１】
３６Ａおよび３６Ｂは、それぞれ、接続解除された成分の除去を通した簡略化の有無別の同一環境の表現を示す。そのような処理は、図３０におけるブロック３０１４において実施され得る、領域ベースの動作の代替実施形態の実施例である。
【０２６２】
稠密３Ｄ再構成データのキャッシュおよび更新
【０２６３】
いくつかの実施形態では、３Ｄ再構成データは、ブロック単位で、捕捉、存続、および更新され得、これは、近傍一貫性を維持しながら、ローカル更新を可能にし得る。ブロックベースの３Ｄ再構成データ表現は、単一デバイスおよびマルチデバイスアプリケーションの両方を含む、ＡＲおよびＭＲアプリケーションのために、効率的に、３Ｄデータを読み出し、事前にフェッチし、記憶する、多層キャッシュ機構と併用されてもよい。例えば、立体情報１６２ａおよび／またはメッシュ１６２ｃ（図６）が、ブロック単位で記憶され得る。使用コンポーネント１６４は、本ブロックベースの表現を使用して、物理的世界についての情報を受信してもよい。同様に、知覚コンポーネント１６０が、そのような情報をブロック単位で記憶し、読み出してもよい。
【０２６４】
これらの技法は、限定された算出リソースを伴う、ポータブルデバイスの能力を拡張させ、ＡＲおよびＭＲコンテンツを高現実性を伴って提示する。そのような技法は、例えば、限定されたリソースと、インターネットへの接続（連続または非連続）とを有する、モバイルデバイス内における、リアルタイムまたはオフライン再構成および走査の出力を効率的に更新および管理するために使用されてもよい。本技法は、同一３Ｄ再構成データを共有および更新する、単一デバイスアプリケーションまたはマルチデバイスアプリケーションのいずれかにおいて、様々なモバイルＡＲおよびＭＲアプリケーションに、最新、正確、そして包括的な３Ｄ再構成データを利用可能にする。これらの３Ｄ再構成データは、メッシュ、点群、ボクセル、および同等物を含む、任意の好適なフォーマットにあってもよい。
【０２６５】
いくつかのＡＲおよびＭＲシステムは、随時、処理されている３Ｄ再構成データの量を限定することによって、ＭＲおよびＡＲ場面の提示を簡略化することを試みている。３Ｄ情報を捕捉するために使用されるセンサは、センサの視野の周囲の境界ボリュームを限定し得る、最大再構成範囲を有し得る。３Ｄ再構成データの量を低減させるために、いくつかの再構成システムは、センサの視野の近傍の面積のみをアクティブ作業メモリ内に保持し、他のデータを二次記憶装置内に記憶する。例えば、センサの視野の近傍の面積は、ＣＰＵメモリ内に記憶される一方、他のデータは、ローカルキャッシュ（例えば、ディスク）またはネットワークを経由して遠隔記憶装置（例えば、クラウド内）に存続される。
【０２６６】
ＣＰＵメモリ内に記憶される情報を生成する算出コストは、限定される場合でも、依然として、比較的に高くあり得る。いくつかのＡＲおよびＭＲシステムは、ＣＰＵメモリ内に記憶するための情報を選択するために、再構成システムにそれまでに見えていた環境のグローバル表現を継続的に再算出し、これは、双方向用途のために法外に高価となり得る。いくつかのアプローチを使用して、接続された表現に対するローカル更新のみを算出する、他のＡＲおよびＭＲシステムも同様に、既存のメッシュを分解し、同じ境界を伴う別のメッシュを計算し、メッシュ部分を再接続することを要求するため、特に、簡略化されたメッシュに関して、高価であり得る。
【０２６７】
いくつかの実施形態では、３Ｄ再構成データは、ブロックにセグメント化されてもよい。３Ｄ再構成データは、ブロックに基づいて、記憶媒体間で伝送されてもよい。例えば、ブロックは、アクティブメモリからページングされ、ローカルまたは遠隔キャッシュに存続されてもよい。システムは、ウェアラブルデバイス（例えば、頭部搭載型ディスプレイデバイス）と関連付けられたアクティブメモリが、ウェアラブルデバイスのユーザの視野内の物理的世界の３Ｄ再構成の一部を表すブロックを記憶する、ページングアルゴリズムを実装してもよい。ウェアラブルデバイスは、ウェアラブルデバイスのユーザの視野と連動して、物理的世界の一部についてのデータを捕捉してもよい。物理的世界が、ユーザの視野内で変化するにつれて、物理的世界のその領域を表すブロックは、アクティブメモリ内にあり得、そこから、それらは、容易に更新されることができる。ユーザの視野が、変化するにつれて、ユーザの視野から外に移動する、物理的世界の領域を表す、ブロックは、ユーザの視野の中に入って来た物理的世界の領域を表すブロックがアクティブメモリの中にロードされ得るように、キャッシュに移動されてもよい。
【０２６８】
いくつかの実施形態では、座標フレームが、３Ｄ再構築されるべき物理的世界の一部のために作成されてもよい。物理的世界の一部の３Ｄ表現内の各ブロックは、座標フレームを使用して識別可能な物理的世界の異なる領域に対応してもよい。
【０２６９】
いくつかの実施形態では、ブロックが、更新されると、更新されたブロックは、更新されない可能性がある、隣接するブロックと界面接触し続け得る。隣接するブロックによって表される領域が、重複しない場合、隣接するブロックの融合されたメッシュ内に亀裂が存在し得る。いくつかの実施形態では、物理的世界空間の表現内のそのような亀裂は、無限深度を伴う空間として解釈され得る。したがって、空間は、実際には、特徴ではなく、物理的世界の表現のアーチファクトとなり得る。そのような融合されたメッシュを使用して、物理的世界内のオブジェクトの表現を生成する、任意のアプリケーションは、出力を正しく生成しない場合がある。例えば、仮想キャラクタを物理的世界内の表面上にレンダリングするアプリケーションは、そのキャラクタが亀裂を通して落下するかのように現れるようにレンダリングし得、これは、オブジェクトの所望の外観を作成しないであろう。したがって、いくつかの実施形態では、隣接するブロックの一部は、物理的世界の同一領域、例えば、隣接するブロック間の界面を表してもよく、これは、詳細のレベル（ＬＯＤ）を考慮する（例えば、その部分がユーザの視野から外に移動するにつれて、物理的世界の一部の３Ｄ再構成の複雑性を減少させる）、容易な独立更新および／またはレンダリングを可能にし得る。例えば、ブロックが、更新されるとき、その隣接するブロックが、更新されない場合がある。更新されたブロックと隣接するブロックを融合させるとき、物理学エンジンは、例えば、その重複領域内で観察可能であるべき隣接するブロックのうちの１つに基づいて、隣接するブロックの重複領域を決定してもよい。ブロックベースのデータ構造が、ブロックが更新されると、更新されなかった隣接するブロックと界面接触し続けるであろうように、スカート、ジッパ、または隣接するブロック間の界面を表すための任意の他の好適な方法とともに採用されてもよい。そのようなアプローチは、隣接するブロック間の亀裂を「包み隠す」外観を有し得る。したがって、変化したブロックは、隣接するブロックから独立して更新されてもよい。
【０２７０】
いくつかの実施形態では、これらの技法は、ＡＲおよび／またはＭＲ「プラットフォーム」内で使用されてもよく、これは、１人以上のユーザによって装着されるセンサからデータを受信し、処理する。本センサデータは、３Ｄ再構成データを作成および更新し、ユーザによって遭遇される物理的世界の一部を表すために使用されてもよい。再構成サービスは、センサが、データを捕捉および更新すると、物理的世界の３Ｄ表現を継続的に再構築し得る。１つ以上の技法が、物理的世界の変化によって影響されるブロックを決定するために使用されてもよく、それらのブロックは、更新されてもよい。本３Ｄ再構成データは、次いで、３Ｄ再構成データを使用して、場面をレンダリングし、物理的世界内に位置付けられる、またはその中のオブジェクトと相互作用する、仮想現実オブジェクトを描写する、アプリケーションに提供されてもよい。本データは、アプリケーションプログラミングインターフェース（ＡＰＩ）を通して、アプリケーションに提供されてもよい。ＡＰＩは、関連部分が変化するとき、データをアプリケーションにプッシュ配信するか、または最新情報に関するアプリケーションからの要求に応答してかのいずれかである、プッシュ配信またはプル配信インターフェースであってもよい。
【０２７１】
プル配信インターフェースの実施例では、アプリケーションが、物理的世界の３Ｄ再構成データを要求すると、再構成サービスは、アプリケーションに提供される必要がある、各ブロックの適切なバージョンを決定し、再構成サービスが、最新ブロックから開始することを可能にし得る。再構成サービスは、例えば、以前に存続されていたブロックを検索してもよい。単一デバイスシステムは、単一デバイスが、物理的世界についての３Ｄ再構成データに寄与することを可能にし得る。単一デバイスシステムでは、要求される物理的世界の領域が、アクティブ面積（例えば、デバイスの現在の視野内の面積）外にある、または延在する場合、存続されるブロックが、その面積がデバイスの視野外に移動するとき、存続されるブロックが存続されて以降、更新されていないであろうため、直接、最新ブロックとして使用されてもよい。他方では、マルチデバイスシステムは、複数のデバイスが、ブロックのクラウド存続またはピアツーピアローカルキャッシュ共有等を用いて、物理的世界についての３Ｄ再構成データに寄与することを可能にしてもよい。各デバイスは、存続され得る、そのアクティブ面積内の領域を更新してもよい。マルチデバイスシステムは、異なるデバイスによって生成されたブロックが座標フレームを使用して識別可能であるように、座標フレームを作成してもよい。したがって、第１のデバイスのためのデータを生成するアプリケーションによって要求されるブロックは、それらの更新が第１のデバイスによって行われた任意のバージョン後に行われた場合、他のデバイスからの更新に基づいてもよい。第１のデバイスおよび他のデバイスからのデータを使用して構築されるブロックは、座標フレームを使用することによって、マージされてもよい。
【０２７２】
選択されたブロックは、任意の好適なフォーマットにおける、物理的世界についての３Ｄ再構成データを提供するために使用されてもよいが、メッシュが、本明細書の好適な表現の実施例として使用される。メッシュは、画像データを処理し、オブジェクトの縁等の環境内の着目点を識別することによって作成されてもよい。これらの点は、接続され、メッシュを形成してもよい。同一オブジェクトまたはその一部と関連付けられたメッシュ内の点、従来的には、３つの点のグループは、オブジェクトまたはその一部の表面を定義する。点のグループと併せて記憶される情報は、環境内の表面を説明する。本情報は、次いで、環境に対して情報をレンダリングおよび／または表示するために、様々な方法で使用されてもよい。選択されたブロックは、任意の好適な方法において、３Ｄ再構成データを提供するために使用されてもよい。いくつかの実施形態では、最新ブロックが、供給されてもよい。いくつかの実施形態では、最新ブロックは、ブロックの更新が要求されるかどうかを決定するために使用されてもよい。
【０２７３】
例えば、いくつかの実施形態では、マルチデバイスシステムにおいて、アプリケーションによって要求されるブロックが、識別されると、再構成サービスは、他のデバイスによって存続されるブロックをチェックし、任意の有意な更新が存在するかどうかを決定し（例えば、幾何学形状変化の大きさの閾値またはタイムスタンプを介して）、メッシュ化を変化したブロック上で再起動し、次いで、これらの更新されたメッシュブロックを存続させてもよい。
【０２７４】
いくつかの実施形態では、アプリケーションによって要求されるブロックのセットが、識別されるとき、アプリケーションが、接続されたメッシュを要求する場合、ブロックのセットは、スカートおよびジッパ等の任意の好適な技法を使用して、トポロジ的に接続される、または視覚的にシームレスであるが、トポロジ的に接続解除され得る、グローバルメッシュの中に処理されてもよい。
【０２７５】
いくつかの実施形態では、アプリケーション（例えば、グラフィック／ゲームエンジン）は、ブロック変化が生じると、その内部ブロック（例えば、アクティブメモリおよび／またはローカルキャッシュ内に記憶されるブロック）を更新してもよい。再構成サービスは、アプリケーションが有するブロックを把握し得、したがって、視野内ブロック更新として、スカート／ジッパとの正しい重複を維持するためにエンジン内で更新される必要がある、他の（例えば、近傍）ブロックを計算することができる。
【０２７６】
いくつかの実施形態では、ＡＲおよび／またはＭＲプラットフォームが、例えば、モバイルデバイス上に、ＡＲおよび／またはＭＲアプリケーションの実行をサポートするために実装されてもよい。ユーザインターフェース上で実行される、またはそれを通した提示のためのデータを生成する、アプリケーションは、物理的世界を表す３Ｄ再構成データを要求し得る。その３Ｄ再構成データは、ユーザがその視野を変化させるにつれたデバイスの視野内の物理的世界を表す３Ｄ再構成データで更新され得る、デバイス上のアクティブメモリから供給されてもよい。アクティブメモリ内の３Ｄ再構成データは、モバイルデバイスのためのアクティブ面積を表し得る。いくつかの実施形態では、デバイスのアクティブ面積外の３Ｄ再構成データは、デバイス上の、または短待ち時間接続を伴うデバイスに結合される、ローカルキャッシュ内等、他のメモリ内に記憶されてもよい。いくつかの実施形態では、デバイスのアクティブ面積外の３Ｄ再構成データもまた、より長い待ち時間接続を経由してデバイスにアクセス可能である、クラウド内等の遠隔キャッシュ内に記憶されてもよい。ユーザが、その視野を変化させるにつれて、プラットフォームは、キャッシュから３Ｄ再構成データにアクセス／それをロードし、アクティブメモリに追加し、ユーザの視野の中に移動した領域を表してもよい。プラットフォームは、ユーザの視野外に移動した領域を表す他のデータをキャッシュに移動させてもよい。
【０２７７】
デバイスの視野の中に移動する領域と、デバイスの視野外に移動する他の領域とをもたらし得る、デバイスの移動の予測が、アクティブメモリとキャッシュとの間の３Ｄ再構成データの転送を開始するために使用されてもよい。移動の予測は、例えば、アクティブメモリの中および／またはそこから外への転送のための３Ｄ再構成データを選択するために使用されてもよい。いくつかの実施形態では、予測される移動は、３Ｄ再構成データを遠隔キャッシュから読み出す、またはそこに転送することによって、３Ｄ再構成データをローカルキャッシュの中および／またはそこから外に転送するために使用されてもよい。ユーザの予測される移動に基づく、ローカルキャッシュと遠隔キャッシュとの間の３Ｄ再構成データの交換は、３Ｄ再構成データが、アクティブメモリの中に移動するための短待ち時間を伴って利用可能になることを確実にし得る。
【０２７８】
物理的世界の領域がブロックを用いて表される、実施形態では、ブロックの転送の開始は、ユーザの視野の中に入ることが予測される面積を表すブロックを事前に要求することを伴い得る。例えば、プラットフォームが、センサまたは他のデータに基づいて、ユーザが特定の方向に特定の速度で歩いていることを決定する場合、ユーザの視野の中に入る可能性が高い領域を識別し、これらの面積を表すブロックをモバイルデバイス上のローカルキャッシュに転送してもよい。モバイルデバイスが、眼鏡のセット等のウェアラブルデバイスである場合、運動を予測することは、ユーザの頭部の場所、方向、および／または回転を示す、センサデータを受信することを伴い得る。
【０２７９】
図３７は、いくつかの実施形態による、複数のユーザのための双方向Ｘ現実環境を可能にする、システム３７００を図示する。システム３７００は、１つ以上の高帯域幅インターフェース３７１５を通して接続される、１つ以上のコンピュータサーバ３７１０から成る、コンピューティングネットワーク３７０５を含んでもよい。コンピューティングネットワーク内のサーバは、共同設置される必要はない。１つ以上のサーバ３７１０はそれぞれ、プログラム命令を実行するための１つ以上のプロセッサを含んでもよい。サーバはまた、プログラム命令と、プログラム命令の指示下でサーバによって行われているプロセスによって使用および／または生成される、データとを記憶するために、メモリを含む。システム３７００は、例えば、ＡＲディスプレイシステム８０（例えば、図３Ｂにおける視認光学系アセンブリ４８）を含む、１つ以上のデバイス３７２０を含んでもよい。
【０２８０】
コンピューティングネットワーク３７０５は、１つ以上のデータネットワーク接続３７３０を経由して、データをサーバ３７１０間およびサーバとデバイス３７２０との間で通信する。そのようなデータネットワークの実施例は、限定ではないが、例えば、一般に、インターネットと称される、そのようなネットワークの多くの相互接続を含む、モバイルおよび有線の両方の、あらゆるタイプのパブリックおよびプライベートデータネットワークを含む。特定の媒体、トポロジ、またはプロトコルが、図によって含意されるように意図されていない。
【０２８１】
いくつかの実施形態では、デバイスは、直接、コンピューティングネットワーク３７０５またはサーバ３７１０のいずれかと通信するために構成されてもよい。いくつかの実施形態では、デバイス３７２０は、データを処理するために、および／またはデータをネットワーク３７０５と１つ以上のデバイス３７２０との間で通信するために、ローカルゲートウェイ３７４０を通して、遠隔サーバ３７１０と、随意に、他のデバイスおよびＡＲディスプレイシステムとローカルで通信してもよい。
【０２８２】
図示されるように、ゲートウェイ３７４０は、別個のハードウェアコンポーネントとして実装され、これは、ソフトウェア命令を実行するためのプロセッサと、ソフトウェア命令およびデータを記憶するためのメモリとを含む。ゲートウェイは、コンピューティングネットワーク３７０５を備えるサーバ３７１０と通信するために、データネットワークとのその独自の有線および／または無線接続を有する。いくつかの実施形態では、ゲートウェイ３７４０は、ユーザによって装着または搬送される、デバイス３７２０と統合されることができる。例えば、ゲートウェイ３７４０は、インストールされ、デバイス３７２０内に含まれるプロセッサ上で起動する、ダウンロード可能ソフトウェアアプリケーションとして実装されてもよい。ゲートウェイ３７４０は、一実施形態では、１人以上のユーザに、データネットワーク３７３０を介して、コンピューティングネットワーク３７０５へのアクセスを提供する。いくつかの実施形態では、ゲートウェイ３７４０は、通信リンク７６および７８を含んでもよい。
【０２８３】
サーバ３７１０はそれぞれ、例えば、データおよびソフトウェアプログラムを記憶するための作業メモリおよび記憶装置と、プログラム命令を実行するためのマイクロプロセッサと、グラフィックプロセッサと、グラフィック、画像、ビデオ、オーディオ、およびマルチメディアファイルをレンダリングおよび生成するための他の特殊プロセッサとを含む。コンピューティングネットワーク３７０５はまた、サーバ３７１０によってアクセス、使用、または作成される、データを記憶するためのデバイスを含んでもよい。いくつかの実施形態では、コンピューティングネットワーク３７０５は、遠隔処理モジュール７２と、遠隔データリポジトリ７４とを含んでもよい。
【０２８４】
サーバ上、随意に、デバイス３７２０およびゲートウェイ３７４０上で起動する、ソフトウェアプログラムが、デジタル世界（本明細書では、仮想世界とも称される）を生成するために使用され、それを用いて、ユーザは、デバイス３７２０と相互作用する。デジタル世界は、ユーザが体験および相互作用するために、デバイス３７２０を通してユーザに提示され得る、仮想の非存在エンティティ、環境、および条件を説明および／または定義する、データおよびプロセスによって表される。例えば、ユーザによって視認または体験されている場面内でインスタンス化されると、物理的に存在するように現れるであろう、いくつかのタイプのオブジェクト、エンティティ、またはアイテムは、その外観、その挙動、ユーザがそれと相互作用することが許可される方法、および他の特性の説明を含んでもよい。仮想世界（仮想オブジェクトを含む）の環境を作成するために使用されるデータは、例えば、仮想環境を定義および／または説明するために使用される、大気データ、地形データ、天候データ、温度データ、場所データ、および他のデータを含んでもよい。加えて、仮想世界の動作を統制する、種々の条件を定義する、データは、例えば、仮想世界（仮想オブジェクトを含む）の動作を統制する、種々の条件を定義および／または作成するために使用され得る、物理法則、時間、空間関係、および他のデータを含んでもよい。
【０２８５】
デジタル世界のエンティティ、オブジェクト、条件、特性、挙動、または他の特徴は、一般的に、本明細書では、文脈によって別様に示されない限り、オブジェクト（例えば、デジタルオブジェクト、仮想オブジェクト、レンダリングされた物理的オブジェクト等）と称されるであろう。オブジェクトは、限定ではないが、建物、植物、車両、人々、動物、生物、機械、データ、ビデオ、テキスト、写真、および他のユーザを含む、任意のタイプの生物または無生物オブジェクトであってもよい。オブジェクトはまた、物理的世界内に実際に存在する、アイテム、挙動、または条件についての情報を記憶するために、デジタル世界内に定義されてもよい。エンティティ、オブジェクト、またはアイテムを説明または定義する、またはその現在の状態を記憶する、データは、概して、本明細書では、オブジェクトデータと称される。本データは、サーバ３７１０によって、または実装に応じて、ゲートウェイ３７４０またはデバイス３７２０によって処理され、オブジェクトのインスタンスをインスタンス化し、ユーザがデバイス３７２０を通して体験するための適切な様式において、オブジェクトをレンダリングする。
【０２８６】
デジタル世界を開発および／またはキュレートする、プログラマは、オブジェクトおよびそれらがインスタンス化される条件を作成または定義する。しかしながら、デジタル世界は、他者が、オブジェクトを作成または修正することを可能にすることができる。いったんオブジェクトが、インスタンス化されると、オブジェクトの状態は、デジタル世界を体験している１人以上のユーザによって、改変、制御、または操作されることが許可されてもよい。
【０２８７】
例えば、一実施形態では、デジタル世界の開発、制作、および管理は、概して、１人以上のシステム管理プログラマによって提供される。いくつかの実施形態では、これは、デジタル世界内の筋書、テーマ、およびイベントの開発、設計、および／または実行、および、例えば、映画、デジタル、ネットワーク、モバイル、拡張現実、およびライブエンターテインメント等の種々の形態のイベントおよびメディアを通したストーリー性の分布を含んでもよい。システム管理プログラマはまた、デジタル世界およびそれと関連付けられたユーザコミュニティの技術的管理、調整、およびキュレーション、およびネットワーク管理人によって典型的に実施される、他のタスクをハンドリングし得る。
【０２８８】
ユーザは、概して、デバイス３７２０として指定される、あるタイプのローカルコンピューティングデバイスを使用して、１つ以上のデジタル世界と相互作用する。そのようなデバイスの実施例として、限定ではないが、スマートフォン、タブレットデバイス、ヘッドアップディスプレイ（ＨＵＤ）、ゲーム用コンソール、またはデータを通信し、インターフェースまたはディスプレイをユーザに提供することが可能な任意の他のデバイス、およびそのようなデバイスの組み合わせが挙げられる。いくつかの実施形態では、デバイス３７２０は、例えば、キーボード、マウス、ジョイスティック、ゲーム用コントローラ、触覚的インターフェースデバイス、運動捕捉コントローラ、オーディオ機器、音声機器、プロジェクタシステム、３Ｄディスプレイ、およびホログラフィック３Ｄコンタクトレンズ等のローカル周辺または入力／出力コンポーネントを含む、またはそれと通信してもよい。
【０２８９】
図３８は、いくつかの実施形態による、電子システム３８００を図示する、概略図である。いくつかの実施形態では、システム３８００は、図３７のシステム３７００の一部であってもよい。システム３８００は、第１のデバイス３８１０（例えば、第１のユーザの第１のポータブルデバイス）と、第２のデバイス３８２０（例えば、第２のユーザの第２のポータブルデバイス）とを含んでもよい。デバイス３８１０および３８２０は、例えば、図３７のデバイス３７２０およびＡＲディスプレイシステム８０であってもよい。デバイス３８１０および３８２０は、それぞれ、ネットワーク３８０４ａおよび３８０４ｂを通して、クラウドキャッシュ３８０２と通信してもよい。いくつかの実施形態では、クラウドキャッシュ３８０２は、図３７の１つ以上のサーバ３７１０のメモリ内に実装されてもよい。ネットワーク３８０４ａおよび３８０４ｂは、図３７のデータネットワーク３７３０および／またはローカルゲートウェイ３７４０の実施例であってもよい。
【０２９０】
デバイス３８１０および３８２０は、個々のＡＲシステム（例えば、デバイス３７２０）であってもよい。いくつかの実施形態では、デバイス３８１０および３８２０は、その個別のユーザによって装着される、ＡＲディスプレイシステムを含んでもよい。いくつかの実施形態では、デバイス３８１０および３８２０のうちの一方は、ユーザによって装着されるＡＲディスプレイシステムであってもよく、他方は、ユーザによって保持されるスマートフォンであってもよい。２つのデバイス３８１０および３８２０が、実施例に図示されるが、システム３８００は、１つ以上のデバイスを含んでもよく、１つ以上のデバイスが、同一タイプのＡＲシステムまたは異なるタイプのＡＲシステムを動作させてもよいことを理解されたい。
【０２９１】
デバイス３８１０および３８２０は、ポータブルコンピューティングデバイスであってもよい。第１のデバイス３８１０は、例えば、プロセッサ３８１２と、ローカルキャッシュ３８１４と、１つ以上のＡＲアプリケーション３８１６とを含んでもよい。プロセッサ３８１２は、コンピュータ実行可能命令を実行し、少なくとも部分的に、１つ以上のセンサ（例えば、図３Ｂの深度センサ５１、世界カメラ５２、および／または慣性測定ユニット５７）を用いて収集されたデータに基づいて、物理的世界の一部の３Ｄ表現（例えば、３Ｄ再構成データ）を提供するように構成される、コンピューティング部分３８１２ａを含んでもよい。
【０２９２】
コンピューティング部分３８１２ａは、物理的世界を１つ以上のブロックとして表してもよい。各ブロックは、オブジェクトを物理的世界の異なる領域内に表してもよい。各領域は、対応するボリュームを有してもよい。いくつかの実施形態では、ブロックは、同一ボリュームを伴う領域を表してもよい。いくつかの実施形態では、ブロックは、異なるボリュームを伴う領域を表してもよい。例えば、物理的世界が、オフィスの部屋であるとき、オフィスの部屋は、各々が１立方フィートであり得る、立方体に分割されてもよい。１つのブロックは、オフィスの部屋の１立方フィートの３Ｄ表現（例えば、３Ｄ再構成データ）を含んでもよい。いくつかの実施形態では、オフィスの部屋は、種々のボリュームを伴う領域に分割されてもよく、各ボリュームは、各領域の３Ｄ表現のデータサイズが類似し得るように、類似量の３Ｄ情報（例えば、３Ｄ再構成データ）を含んでもよい。その表現は、仮想オブジェクトが物理的オブジェクトによってオクルードされるかどうかを決定するためのオクルージョン処理、または物理的世界内の物理的オブジェクトと相互作用するとき、仮想オブジェクトが移動または変形すべき方法を決定するための物理学処理等のさらなる処理を促進するようにフォーマットされてもよい。ブロックは、例えば、角等の物理的世界内のオブジェクトの特徴が、メッシュブロック内の点になる、またはメッシュブロックを作成するための点として使用される、メッシュブロックとしてフォーマットされてもよい。メッシュ内の点間の接続は、物理的オブジェクトの同一表面上の点のグループを示し得る。
【０２９３】
各ブロックは、１つ以上のバージョンを有してもよく、各バージョンは、ある時点からのデータに基づいてその対応する領域を表す、データ（例えば、ボクセル等の立体３Ｄ再構成データ、および／または個別のブロックによって表される領域内の表面を表し得るメッシュ）を含有する。コンピューティング部分３８１２ａは、物理的世界内のオブジェクトが変化したことを示すデータまたはそこから物理的世界のより正確な表現が作成され得る付加的データ等の付加的データが利用可能になるにつれて、ブロックの新しいバージョンを作成してもよい。付加的データは、デバイス（例えば、デバイス３８１０および／または３８２０）上のセンサから生じてもよい。いくつかの実施形態では、付加的データは、遠隔センサから生じてもよく、例えば、ネットワーク接続を経由して、取得されてもよい。
【０２９４】
プロセッサ３８１２はまた、デバイスの視野内のブロックを記憶するように構成され得る、アクティブメモリ３８１２ｂを含んでもよい。いくつかの実施形態では、アクティブメモリ３８１２ｂは、デバイスの視野外のブロックを記憶してもよい。いくつかの実施形態では、アクティブメモリ３８１２ｂは、デバイスの視野内のブロックに隣接する、ブロックを記憶してもよい。いくつかの実施形態では、アクティブメモリ３８１２ｂは、デバイスの視野内にあることが予測される、ブロックを記憶してもよい。いくつかの実施形態では、プロセッサ３８１２は、その時間にデバイスの視野内にある場合、ブロックをアクティブメモリ３８１２ｂ内に維持する。視野は、センサのうちの１つ以上のものの面積を結像することによって決定されてもよい。いくつかの実施形態では、視野は、デバイスのユーザに提示されている、またはＡＲシステムを使用せずに平均的ユーザが知覚し得る、物理的世界の量によって決定されてもよい。視野は、したがって、物理的世界内のユーザの場所およびデバイスのウェアラブルコンポーネントの配向に依存し得る。
【０２９５】
プロセッサ３８１２は、ユーザが移動するにつれて、ブロックがデバイス３８１０の視野外になる場合、ブロックを非アクティブとして処理してもよい。非アクティブブロックは、アクティブメモリからキャッシュにページングされてもよい。キャッシュは、ローカルキャッシュまたは遠隔キャッシュであってもよい。図３８の実施形態では、ブロックは、最初に、ローカルゲートウェイ３８１８ｂを通して、ローカルキャッシュ３８１４にページングされる。いくつかの実施形態では、ローカルキャッシュ３８１４は、唯一の利用可能なキャッシュであってもよい。
【０２９６】
いくつかの実施形態では、ネットワークを経由してアクセス可能な遠隔キャッシュが存在してもよい。図示される実施形態では、ネットワーク３８０４ａを通してアクセスされる、クラウドキャッシュ（例えば、遠隔キャッシュ）３８０２は、遠隔キャッシュの実施例である。プロセッサ３８１２は、ブロックがローカルキャッシュ３８１４とクラウドキャッシュ３８０２との間で移動されるときを管理してもよい。例えば、ローカルキャッシュ３８１４が、満杯であるとき、プロセッサ３８１２は、ネットワーク３８０４ａを通して、ブロックをクラウドキャッシュ３８０２にページングしてもよい。ローカルキャッシュ３８１４内のブロックは、クラウドキャッシュ内のブロックより短い待ち時間を伴って、場面をレンダリングするためにアクセス可能であるため、プロセッサ３８１２は、ローカルキャッシュ３８１４内にアクティブになる可能性が最も高いブロックを保つように意図される、アルゴリズムを使用して、ローカルキャッシュ３８１４の外部にページングされるべきブロックを選択してもよい。そのようなアルゴリズムは、アクセスの時間に基づいてもよい。いくつかの実施形態では、アルゴリズムは、デバイスの視野を変化させるであろう、デバイスの運動の予測に基づいてもよい。
【０２９７】
場面をレンダリングする、アプリケーション（例えば、コンピュータゲーム）は、レンダリングされるべき場面に影響を及ぼす、物理的世界の一部を表す情報を取得してもよい。アプリケーション３８１６は、ローカルゲートウェイ３８１８ａを通して、アクティブブロックをアクティブメモリ３８１２ｂから取得してもよい。いくつかの実施形態では、ローカルゲートウェイ３８１８ａは、プロセッサ３８１２がアプリケーション３８１６のための「サービス」を実装するように、アプリケーションプログラミングインターフェース（ＡＰＩ）として実装されてもよい。物理的世界のデータがメッシュとして表される、実施形態では、そのサービスは、「メッシュ化サービス」であってもよい。ＡＰＩは、プッシュ配信またはプル配信インターフェースとして実装されてもよい、または両方の属性を有してもよい。プル配信インターフェースでは、例えば、アプリケーション３８１６は、それに関してデータを要求する、物理的世界の一部を示してもよく、サービスは、それらの部分のデータを供給してもよい。プッシュ配信システムでは、例えば、サービスは、そのようなデータが変化する、または利用可能になるとき、物理的世界の一部についてのデータを供給してもよい。
【０２９８】
それについてのデータが供給される、物理的世界の一部は、デバイスの視野内のデータまたはデバイスの視野の閾値距離内の物理的世界の一部を表すデータ等、アプリケーション３８１６が関連することを示した部分に限定されてもよい。プル配信／プッシュ配信システムでは、アプリケーション３８１６は、物理的世界の一部に関するデータを要求してもよく、サービスは、要求される部分に関するデータに加え、データが変化した任意の隣接する部分を供給してもよい。情報を変化したものに限定するために、サービスは、物理的世界を説明するブロックを維持することに加え、アプリケーション３８１６のそれぞれに提供されたブロックのバージョンを追跡してもよい。物理的世界の表現が更新される部分およびその更新が生じた場所を決定するための動作は、任意の好適な方法において、アプリケーション３８１６とサービスとの間にパーティション化されてもよい。同様に、更新されたデータが物理的世界の表現の中に組み込まれる場所も、任意の好適な方法において、パーティション化されることができる。
【０２９９】
いくつかの実施形態では、再構成サービスは、センサがデータを捕捉および更新すると、物理的世界の３Ｄ表現を継続的に再構築してもよい。本データは、次いで、３Ｄ再構成データを使用して、場面をレンダリングし、物理的世界と、物理的世界内のオブジェクト内に位置付けられる、またはそれと相互作用する、仮想現実オブジェクトとの両方を描写する、アプリケーション３８１６に提供されてもよい。本データは、関連部分が変化すると、データをアプリケーション３８１６にプッシュ配信する、プッシュ配信インターフェースとして、または最新情報のためのアプリケーション３８１６からの要求に応答するプル配信インターフェースとして、または両方として実装され得る、ＡＰＩを通して、アプリケーション３８１６に提供されてもよい。
【０３００】
例えば、アプリケーション３８１６は、デバイスの現在の場所およびその中にデバイスが面している方向によって定義された原点に対して１０メートルの距離にわたって４５度視認角度を構成する物理的世界の一部のメッシュ表現に作用してもよい。本領域が、変化する、または本領域内の物理的変化を示すデータが、利用可能になるにつれて、メッシュが、本面積を表すように算出されてもよい。そのメッシュは、サービスによって供給されるデータに基づいて、アプリケーション３８１６内で算出されてもよい、またはサービス内で算出され、アプリケーション３８１６に提供されてもよい。いずれの場合も、サービスは、メッシュの算出を簡略化する、物理的世界内の情報を記憶してもよい。本明細書に説明されるように、ジッパ、スカートを伴う、または隣接するブロック間の亀裂の「包み隠し」を促進するための他の技法を用いて実装される、ブロックが、物理的世界の表現の変化した部分のみの処理を可能にするように、使用されてもよい。物理的世界の表現の変化した部分は、次いで、物理的世界の前の表現内の対応する部分に取って代わり得る。
【０３０１】
場面をユーザにレンダリングするためにアプリケーション３８１６によって使用されるべきメッシュを生成するために使用される、物理的世界の一部の表現に効率的にアクセスすることは、コンピュータリソースを低減させ、ＸＲシステムを、限定されたコンピューティングリソースを伴うポータブルデバイスまたは他のデバイス上に容易に実装され得るようにし、ＸＲ場面が物理的世界により良好に合致するため、より現実的ユーザ体験をもたらし得る。故に、本明細書のいずれかに説明されるように、ブロック間の亀裂の包み隠しを促進するためのスカート、ジッパ、または他の技法を用いて、ブロックを使用する代わりに、またはそれに加え、ブロックをアクティブメモリおよび／またはローカルキャッシュ内外にページングするために使用される、アルゴリズムが、任意の所与の時間にメッシュを算出するために必要とされるブロックへのアクセス時間を低減させるように選択されてもよい。
【０３０２】
図３８の例示的実施形態では、ゲートウェイ３８１８ａは、プル配信インターフェースである。ＡＲアプリケーション３８１６が、物理的世界の領域についての情報を要求するが、領域を表すブロックが、アクティブメモリ３８１２ｂ内にないとき、プロセッサ３８１２は、ローカルキャッシュ３８１４内に存続されるブロックを検索してもよい。プロセッサ３８１２が、アクティブメモリ３８１２ｂおよびローカルキャッシュ３８１４の両方内にブロックを見出すことができない場合、プロセッサ３８１２は、クラウドキャッシュ３８０２内に存続されるブロックを検索してもよい。アクティブメモリ３８１２ｂへのアクセスは、ローカルキャッシュ３８１４内のデータへのアクセス（クラウドキャッシュ３８０２内のデータへのアクセスより短い待ち時間である）より短い待ち時間であるため、メッシュを生成する際の全体的速度は、ブロックをそれらが要求される前にアクティブメモリにロードする、またはそれらが要求される前にクラウドキャッシュ３８０２からローカルキャッシュ３８１４に移動させる、ページングアルゴリズムを実装するサービスによって増加され得る。
【０３０３】
第１のデバイス３８１０と同様に、第２のデバイス３８２０は、コンピューティング部分３８２２ａおよびアクティブメモリ３８２２ｂを有する、プロセッサ３８２２と、ローカルキャッシュ３８２４と、１つ以上のＡＲアプリケーション３８２６とを含んでもよい。ＡＲアプリケーション３８２６は、ローカルゲートウェイ３８２８ａを通して、プロセッサ３８２２と通信してもよい。ローカルキャッシュ３８２４は、ローカルゲートウェイ３８２８ｂを通して、プロセッサ３８２２と通信してもよい。
【０３０４】
故に、クラウドキャッシュ３８０２は、デバイス３８１０および３８２０の両方から伝送されるブロックを存続させてもよい。第１のデバイス３８１０は、第２のデバイス３８２０から捕捉および伝送されたクラウドキャッシュ３８０２内のブロックにアクセスしてもよい。同様に、第２のデバイス３８２０は、第１のデバイス３８１０から捕捉および伝送されたクラウドキャッシュ３８０２内のブロックにアクセスしてもよい。
【０３０５】
デバイス３８０１および３８０２は、ポータブルＡＲデバイスの実施例として提供される。任意の好適なデバイス、例えば、スマートフォンが同様に、使用および実施されてもよい。
【０３０６】
図３９は、いくつかの実施形態による、システム（例えば、システム３７００）を動作させる方法３９００を図示する、フローチャートである。行為３９０２では、デバイスは、物理的世界内のオブジェクトを含む、物理的世界についての３Ｄ情報を捕捉し、物理的世界を３Ｄ再構成データを含むブロックとして表してもよい。いくつかの実施形態では、３Ｄ再構成データは、単一システムによって捕捉され、そのシステムに関する情報のみをレンダリングするために使用されてもよい。いくつかの実施形態では、３Ｄ再構成データは、複数のシステムによって捕捉され、複数のシステムうちの任意の１つまたは任意の他のシステムに関する情報をレンダリングするために使用されてもよい。これらの実施形態では、複数のシステムからの３Ｄ再構成データは、組み合わせられ、複数のシステムまたは任意の他のシステムにアクセス可能にされてもよい。
【０３０７】
例えば、それぞれ、ＡＲシステムを装着している、何人かのユーザが、倉庫を活用する間、そのデバイスを拡張モードに設定してもよい。各デバイスのセンサは、倉庫内のオブジェクト（例えば、テーブル、窓、ドア、床、天井、壁）を含む、センサの視野内の倉庫の３Ｄ情報（例えば、深度マップ、画像、および同等物を含む、３Ｄ再構成データ）を捕捉してもよい。各デバイスは、倉庫を対応するボリュームを有する領域にセグメント化し、個々の領域をブロックとして表してもよい。ブロックは、バージョンを有してもよい。ブロックの各バージョンは、ある時点における物理的世界のある領域内のオブジェクトを表す、値を有してもよい。
【０３０８】
アプリケーションが、物理的世界についての情報を要求すると、物理的世界のその部分を表すためのブロックのバージョンが、選択され、その情報を生成するために使用されてもよい。そのような選択処理は、任意の好適なプロセッサによって実施される、または任意の好適なプロセッサを横断して分散されてもよいが、いくつかの実施形態によると、その処理は、その上でデータを要求するアプリケーションが実行されている、デバイスにおいてローカルで行われてもよい。
【０３０９】
故に、行為３９０４では、プロセッサ（例えば、プロセッサ３８１２または３８２２）が、３Ｄ再構成データに関するアプリケーション（例えば、ＡＲアプリケーション３８１６または３８２６）からの要求に応答してもよい。いくつかの実施形態では、アプリケーションが、３Ｄ再構成データを要求するかどうかにかかわらず、デバイスは、物理的世界についての３Ｄ再構成データを含む、３Ｄ情報を捕捉し続け、物理的世界を３Ｄ再構成データのブロックとして表してもよい。その３Ｄ再構成データは、ブロックの新しいバージョンを作成するために使用されてもよい。
【０３１０】
アプリケーションが、３Ｄ再構成データを要求する場合、処理は、行為３９０６に進んでもよく、そこで、プロセッサは、要求に従って３Ｄ再構成データを送達するために要求される、物理的世界の一部に対応するブロックのサブセットを識別してもよい。ブロックの識別は、例えば、センサ（例えば、深度センサ５１、世界カメラ５２、慣性測定ユニット５７、全地球測位システム、および／または同等物）によって収集されたデータに基づいてもよい。マルチデバイスシステムは、物理的世界の対応する部分と関連付けられる、異なるデバイスによって生成されたブロックが、どのデバイスがそのブロックによって表される物理的世界の一部を再構築するための３Ｄ再構成データを提供したかどうかにかかわらず、共通座標フレームを使用して作成され得るように、共通座標フレームを作成してもよい。共通座標フレームが作成され得る方法の一実施例として、同一の一般的近傍内のデバイスからのデータが、処理するために、同一サーバまたは１つ以上のサーバにルーティングされてもよい。そこで、各デバイスからのデータは、最初に、デバイス特有の座標フレーム内に表されてもよい。いったんデバイスのそれぞれからの十分なデータが、物理的世界の共通部分内の特徴を識別するために集められると、それらの特徴は、相関され、１つのデバイス特有の座標フレームから他の座標フレームへの変換を提供してもよい。これらのデバイス特有の座標フレームのうちの１つは、共通座標フレームおよび他の座標フレーム間の変換として指定され得、その座標フレームは、データをデバイス特有の座標フレームから共通座標フレームとして指定される座標フレームに変換するために使用されてもよい。それによって共通座標フレームが作成される、具体的機構にかかわらず、いったん作成されると、第１のデバイスのためのデータを生成する、アプリケーションによって要求される３Ｄ再構成データは、それらの更新が第１のデバイスによって行われる任意のバージョン後に行われた場合、他のデバイスからの更新に基づいてもよい。第１のデバイスおよび他のデバイスの両方からのブロックは、例えば、共通座標フレームを使用することによって、マージされてもよい。
【０３１１】
行為３９０６における具体的処理は、要求の性質に依存し得る。いくつかの実施形態では、３Ｄ再構成データを要求する、アプリケーションが、ブロックについてのその独自の情報を維持し、具体的ブロックを要求する場合、行為３９０４における３Ｄ再構成データのための要求は、ブロックの具体的サブセットへの参照を含んでもよく、行為３９０６におけるブロックのサブセットを識別するステップは、ブロックの具体的サブセットに対応する、ブロックのサブセットを決定するステップを含んでもよい。いくつかの実施形態では、行為３９０４における３Ｄ再構成データのための要求は、アプリケーションがその上で実行されているデバイスの視野への参照を含んでもよく、行為３９０６におけるブロックのサブセットを識別するステップは、デバイスの参照される視野に対応する、ブロックのサブセットを決定するステップを含んでもよい。
【０３１２】
ブロックが識別／決定される様式にかかわらず、行為３９０８では、プロセッサは、ブロックのサブセットのブロックのバージョンを選択してもよい。本選択は、１つ以上の基準に基づいてもよい。基準は、例えば、利用可能なソースからのブロックの直近のバージョンに基づいてもよい。図示される実施形態では、ブロックのバージョンは、アクティブメモリ、ローカルキャッシュ、または遠隔キャッシュ内に記憶されてもよい。行為３９０８は、例えば、利用可能である場合、アクティブメモリ内のバージョンを選択する、またはそうではない場合、利用可能である場合、ローカルキャッシュ内のバージョンを選択するステップ、または利用可能である場合、遠隔キャッシュからのバージョンを選択するステップを含んでもよい。ブロックのいずれのバージョンも、利用可能ではない場合、選択は、例えば、センサ（例えば、深度センサ５１、世界カメラ５２、および／または慣性測定ユニット５７）を用いて収集されたデータ（例えば、３Ｄ再構成データ）等から、ブロックを生成するステップを伴ってもよい。ブロック選択のためのアルゴリズムが、背景プロセス、可能性として考えられる場所のそれぞれ内に記憶されるブロックバージョン等を管理するように、システム内で使用されてもよい。例示的管理プロセスは、図４１に関連して下記に説明される。
【０３１３】
行為３９１０では、プロセッサは、アプリケーションに、選択されたブロックのバージョンに基づいて、情報を提供してもよい。行為３９１０における処理は、単に、ブロックをアプリケーションに提供するステップを伴ってもよく、これは、アプリケーションがブロックを直接使用するとき、適切であり得る。アプリケーションが、メッシュを受信する場合、行為３９１０における処理は、メッシュをブロックおよび／またはブロックのサブセットから生成し、メッシュまたはメッシュの任意の好適な部分をアプリケーションに提供するステップを伴ってもよい。
【０３１４】
図４０は、いくつかの実施形態による、物理的世界内のオブジェクトについての３Ｄ情報を捕捉し、物理的世界を３Ｄ再構成データのブロックとして表す、詳細を図示する、フローチャートである。いくつかの実施形態では、図４０は、図３９の行為３９０２の詳細を図示する、フローチャートである。行為４００２では、システム（例えば、システム３７００）の１つ以上のセンサ（例えば、深度センサ５１、世界カメラ５２、慣性測定ユニット５７、および／または同等物）が、物理的世界内のオブジェクトを含む、物理的世界内のオブジェクトについての３Ｄ情報を捕捉する。
【０３１５】
行為４００４では、システムのプロセッサ（例えば、プロセッサ３８１２または３８２２）が、１つ以上のセンサによって捕捉された３Ｄ情報に基づいて、物理的世界の３Ｄ再構成データを含む、ブロックのバージョンを作成してもよい。いくつかの実施形態では、各ブロックは、メッシュの１つ以上の部分としてフォーマットされてもよい。いくつかの実施形態では、物理的世界の他の表現が、使用されてもよい。
【０３１６】
ブロックは、物理的世界の領域についての情報が任意のデバイスによって捕捉される度、ブロックの新しいバージョンが記憶され得るように、バージョンを有してもよい。ブロックの各バージョンは、ある時点における物理的世界のある領域内のオブジェクトを表す値を含む、３Ｄ再構成データを有してもよい。いくつかの実施形態では、そのような処理は、デバイス上でローカルで実施され、ブロックの新しいバージョンがアクティブメモリ内に記憶される結果をもたらしてもよい。いくつかの実施形態では、マルチデバイスシステムにおいて、類似処理が、その遠隔キャッシュ内で利用可能な各ブロックの直近のバージョンが、任意のデバイスによって要求されるときに供給されるように、ブロックのバージョンを管理し得る、サーバ（例えば、図３７のサーバ３７１０）内で実施されてもよい。
【０３１７】
ブロックは、その多くが不変であろう、物理的世界を表すため、物理的世界の対応する領域を表す新しい３Ｄ再構成データが利用可能となるとき、ブロックの新しいバージョンが、必ずしも作成されるとは限らない。むしろ、ブロックのバージョンを管理するステップは、それらの物理的世界の領域を表すブロックの最後のバージョン以降、変化を正当とするための十分な変化が存在するかどうかを決定するために、物理的世界を表す３Ｄ再構成データの処理を伴い得る。いくつかの実施形態では、十分な変化は、最後のバージョンが記憶されて以降、ブロックメトリックの大きさが閾値を上回ることによって示されてもよい。
【０３１８】
いくつかの実施形態では、他の基準が、ブロックが要求されるとき、ブロック内のデータの完全性または正確度を示す、メトリックの最低値を有する、バージョン等、現在のバージョンとして供給されるブロックのバージョンを決定するために適用されてもよい。類似処理は、各デバイス上で実施され、ブロックのバージョンがデバイス上のローカルキャッシュ内に記憶される結果をもたらしてもよい。
【０３１９】
１つ以上の技法が、各デバイス上のサービスに利用可能なブロックのバージョンを管理するために使用されてもよい。例えば、すでに算出されたブロックの容認可能バージョンが存在する場合、センサデータからブロックの新しいバージョンを作成するのではなく、プロセッサは、以前に記憶されたブロックにアクセスしてもよい。そのようなアクセスは、ブロックのバージョンの記憶を効率的に管理することによって実施されてもよい。行為４００６では、デバイスのプロセッサは、物理的世界の３Ｄ再構成データのブロックのバージョンをアクティブメモリ（例えば、アクティブメモリ３８１２ｂまたは３８２２ｂ）からページングしてもよい。ページングは、例えば、そのデバイスの視野の関数として、アクティブメモリ／ローカルキャッシュ／クラウドキャッシュ内のブロックを継続的に更新するように、プロセッサがセンサデータにアクセスするステップを含んでもよい。デバイスの視野が、変化すると、新しい視野に対応するブロックが、ローカルキャッシュおよび／またはクラウドキャッシュからアクティブメモリの中に転送（例えば、ページング）されてもよく、新しい視野のすぐ外の面積に対応するブロック（例えば、新しい視野内のブロックに隣接するブロック）は、アクティブメモリおよび／またはクラウドキャッシュからローカルキャッシュに転送（例えば、ページング）されてもよい。例えば、行為４００８では、プロセッサによって外部にページングされるブロックのバージョンは、ローカルメモリ（例えば、ローカルキャッシュ３８１４または３８２４）および／または遠隔メモリ（例えば、クラウドキャッシュ３８０２）内に存続されてもよい。いくつかの実施形態では、ブロックの各新しいバージョンが、例えば、デバイス上に作成されるにつれて、そのバージョンは、他のユーザがそれにアクセスし得るように、遠隔メモリに送信されてもよい。
【０３２０】
図４１は、いくつかの実施形態による、ブロックのサブセットを表す、ブロックのバージョンの選択を実施するための例示的プロセスを図示する、フローチャートである。いくつかの実施形態では、図４１は、図３９の行為３９０８の詳細を図示する、フローチャートである。ブロックのサブセット内の各ブロックのバージョンを選択するために、行為４１０２では、プロセッサ（例えば、プロセッサ３８１２または３８２２）は、最新バージョンがアクティブメモリ（例えば、アクティブメモリ３８１２ｂまたは３８２２ｂ）内に記憶されているかどうかをクエリしてもよい。いくつかの実施形態では、バージョンが最新であるかどうかは、バージョンに結び付けられた値（例えば、幾何学形状変化の大きさ、タイムスタンプ、および同等物）とセンサ（例えば、深度センサ５１、世界カメラ５２、および／または慣性測定ユニット５７）を用いて収集されたデータを比較することによって決定されてもよい。いくつかの実施形態では、現在のセンサデータとアクティブメモリ内に記憶されるブロックのバージョンとの間の比較が、行われてもよい。例えば、物理的世界の変化またはアクティブメモリ内のバージョンの品質を表し得る、差異の程度に基づいて、アクティブメモリ内のバージョンは、最新と見なされ得る。
【０３２１】
最新バージョンが、アクティブメモリ内に記憶されている場合、処理は、行為４１０４に進み、そこで、最新バージョンが、選択される。最新バージョンが、アクティブメモリ内に記憶されていない場合、処理は、行為４１０６に進み、そこで、プロセッサは、最新バージョンがローカルメモリ（例えば、ローカルキャッシュ３８１４または３８２４）内に記憶されているかどうかクエリしてもよい。そのクエリは、行為４１０２と関連して説明される上記に説明される基準または任意の他の好適な基準を使用して実施されてもよい。最新バージョンが、ローカルメモリ内に記憶されている場合、行為４１０８において、最新バージョンが、選択される。
【０３２２】
最新バージョンが、ローカルメモリ内に記憶されていない場合、行為４１１０において、プロセッサは、最新バージョンが遠隔メモリ（例えば、クラウドキャッシュ３８０２）内に記憶されているかどうかクエリしてもよい。そのクエリはまた、行為４１０２に関連して上記に説明される基準または任意の他の好適な基準を使用して実施されてもよい。最新バージョンが、遠隔メモリ内に記憶されている場合、行為４１１２において、最新バージョンが、選択される。
【０３２３】
最新バージョンが、遠隔メモリ内に記憶されていない場合、処理は、行為４１１４に進んでもよく、そこで、デバイスのプロセッサは、センサによって捕捉された３Ｄ情報（例えば、３Ｄ再構成データ）に基づいて、ブロックの新しいバージョンを生成してもよい。いくつかの実施形態では、行為４１１６において、プロセッサは、新しいバージョンを伴うブロックの近傍ブロックを識別し、ブロックの新しいバージョンに従って、識別された近傍ブロックを更新してもよい。
【０３２４】
図４２は、いくつかの実施形態による、システムを動作させる方法４２００を図示する、フローチャートである。方法４２００では、デバイスがそれらのブロックを要求すると、ブロックをアクティブメモリおよび／またはローカルキャッシュの中にプル配信するのではなく、ページングが、デバイス運動に基づくデバイスの視野の投影に基づいて、管理されてもよい。
【０３２５】
行為３９０２と同様に、行為４２０２では、デバイス上のセンサが、物理的世界内のオブジェクトを含む、物理的世界についての３Ｄ情報を捕捉し、物理的世界を３Ｄ再構成データを含むブロックとして表してもよい。
【０３２６】
行為４２０４では、プロセッサ（例えば、プロセッサ３８１２または３８２２）が、少なくとも部分的に、センサの出力に基づいて、ポータブルポインティング可能コンポーネント（例えば、深度センサ５１、世界カメラ５２、および／または慣性測定ユニット５７）が将来的時間に向けられているであろう、物理的世界の領域を算出してもよい。いくつかの実施形態では、プロセッサは、慣性センサからの運動データまたは捕捉された画像の分析結果に基づいて、算出してもよい。単純計算では、例えば、高速結果を得るために、プロセッサは、ユーザの頭部の平行移動および回転に基づいて、算出してもよい。より包括的アルゴリズムを適用する際、プロセッサは、場面内のオブジェクトに基づいて、算出してもよい。例えば、アルゴリズムは、壁またはテーブルに向かって歩いているユーザが、壁またはテーブルを通して歩いて行く可能性が低いことを考慮してもよい。
【０３２７】
行為４２０６では、プロセッサは、算出された領域に基づいて、ブロックを選択してもよい。行為４２０８では、プロセッサは、アクティブメモリ（例えば、アクティブメモリ３８１２ｂまたは３８２２ｂ）を選択されたブロックで更新してもよい。いくつかの実施形態では、プロセッサは、図４１のフローチャートに基づいて、ブロックを選択してもよい。行為４２１０では、プロセッサは、ブロックのバージョンがアプリケーションに最後に供給されて以降のブロックのそれぞれへの変化に基づいて、アクティブメモリからブロックを選択し、例えば、ＡＰＩを通して、アプリケーション（例えば、アプリケーション３８１６または３８２６）に供給してもよい。
【０３２８】
いくつかの実施形態では、行為４２０６において、プロセッサは、選択されたブロックを遠隔メモリ（例えば、クラウドキャッシュ３８０２）から要求し、ローカルキャッシュが選択されたブロックを記憶するように、ローカルキャッシュ（例えば、３８１４または３８２４）内に記憶される情報を更新してもよい。行為４２０６は、図３９に説明される行為３９０８に類似してもよい。
【０３２９】
上記に説明されるようなブロックベースの処理は、３Ｄ表現の一部が別個に処理され、次いで、他のブロックと組み合わせられることを可能にする、ブロックに基づいてもよい。いくつかの実施形態によると、ブロックは、ブロックが変化されると、変化された表現が、大部分にわたって、または全体的に、他のブロックへの界面におけるブロックの値を維持するように、フォーマットされてもよい。そのような処理は、変化および不変ブロックに基づいて、容認不可能なアーチファクトをレンダリングされた場面内に作成せずに、ブロックの変化されたバージョンが変化されなかった隣接するブロックのバージョンと併用されることを可能にする。図４３Ａ−４８は、そのようなブロックを図示する。
【０３３０】
物理的世界の３Ｄ表現は、センサによって捕捉された物理的世界の３Ｄ情報の３Ｄ再構成データ階層を作成し得る、立体３Ｄ再構成によって提供されてもよい。例えば、センサは、深度カメラであってもよく、これは、物理的世界の３Ｄ情報、例えば、深度カメラの個別の姿勢（すなわち、カメラ姿勢）を伴う深度画像のストリームを捕捉してもよい。物理的世界の３Ｄ情報は、ボクセルグリッドの中に処理されてもよい。各ボクセルは、ボクセルが物理的世界内のオブジェクトの幾何学形状の内側または外側にあるかどうかを説明する、１つ以上の符号付き距離関数（ＳＤＦ）を含有してもよい。ボクセルは、「ブリック」にグループ化されてもよい。各ブリックは、例えば、８３ボクセル等、立方体ボリューム内に複数のボクセルを含んでもよい。ブリックは、「タイル」にさらにグループ化されてもよい。各タイルは、複数のブリックを含んでもよい。
【０３３１】
いくつかの実施形態では、ボクセルグリッドは、メモリ構造に準拠するようにマッピングされてもよい。タイルは、記憶媒体のメモリページに対応してもよい。タイルのサイズは、例えば、使用中の記憶媒体のメモリページのサイズに応じて、可変であってもよい。故に、３Ｄ再構成データは、タイルに基づいて、記憶媒体（例えば、デバイスのアクティブメモリおよび／またはローカルメモリおよび／またはクラウド内の遠隔メモリ）間で伝送されてもよい。いくつかの実施形態では、１つ以上のタイルは、ブロックを生成するように処理されてもよい。ブロックは、例えば、１つ以上のタイル内の少なくとも１つのボクセルが変化すると、更新されてもよい。
【０３３２】
ブロックは、必ずしも、タイルに対応するように限定されるとは限らない。いくつかの実施形態では、ブロックは、１つ以上のブリック、１つ以上のボクセル、または１つ以上のＳＤＦサンプル、および同等物から生成されてもよい。ブロックは、物理的世界の任意の好適なパーティションであってもよい。ブロックは、必ずしも、メッシュのフォーマットに限定されるとは限らない。ブロックは、３Ｄ再構成データの任意の好適なフォーマットにあってもよい。
【０３３３】
図４３Ａ−Ｄは、メッシュブロック４３０２によって表される例示的物理的世界４３００を図示する。各メッシュブロック４３０２は、メッシュブロックの所定のボリュームに対応する、ボクセル４３０４から抽出されてもよい。図示される実施例では、各ブロックは、低レベル再構成モデル内のボクセルの立方体領域（例えば、１ｍ３）の出力であってもよい。各メッシュブロック４３０２は、世界メッシュの一部を含有してもよく、独立して処理されてもよい。これは、環境内で移動される新しい面積またはモノを探索するときに変化されるいくつかのブロックの結果としての高速ローカル更新に伴う、スケーラビリティを可能にし得る。図示される実施例では、既存の表面４３１０の正面に設置された新しいオブジェクト４３０８を有する、メッシュブロック４３０６を除き、メッシュブロックに対する変化は存在しない。この場合、ＡＲシステムは、メッシュブロック４３０６のみを更新する必要があり、これは、世界のためのメッシュ全体を恣意的に更新することと比較して、有意な算出パワーをセーブし得る。
【０３３４】
図４３Ｂは、いくつかの実施形態による、メッシュブロックを図示する、簡略化された概略図である。図示される実施例では、メッシュブロックは、内部から見て、全結合メッシュを有し得、これは、頂点が複数の三角形によって共有されることを意味する。
【０３３５】
他方では、個々のメッシュブロックは、接続されない、独立メッシュであってもよい。図４３Ｃは、いくつかの実施形態による、２つの隣接するメッシュブロックの縁に存在し得る、亀裂を図示する、簡略化された概略図である。図４４Ｄは、いくつかの実施形態による、隣接するメッシュブロックに重複するメッシュスカートを実装することによって包み隠されている、図４３Ｃにおける亀裂を図示する、簡略化された概略図である。
【０３３６】
図４４は、いくつかの実施形態による、２Ｄセグメント化において、物理的世界の一部の表現４４００を図示する、概略図である。２Ｄ表現４４００は、４つのブロックのセット、すなわち、ブロックＡ−Ｄを接続することによって取得されてもよい。表現４４００は、例えば、実線４４１０によって図示される、４つのブロック、すなわち、ブロック４４０２、４４０４、４４０６、および４４０８にセグメント化されてもよい。いくつかの実施形態では、ブロック４４０２、４４０４、４４０６、および４４０８は、それぞれ、ブロックＡ−Ｄとして指定されてもよい。アプリケーションは、オクルージョン試験および物理的エンジン内における物理的効果の生成等のさらなる処理のために、メッシュのフォーマットにおける３Ｄ再構成データを所望し得る。いくつかの実施形態では、ブロックのセットは、メッシュのフォーマットにあってもよく、これは、デバイス（例えば、デバイス３８１０、３８２０）、ネットワーク（例えば、クラウドキャッシュ３８０２を含む、クラウド）、または離散アプリケーション（例えば、アプリケーション３８１６、３８２６）によって生成されてもよい。
【０３３７】
いくつかの実施形態では、ブロック４４０２、４４０４、４４０６、および４４０８の境界における領域は、例えば、破線４４１２によって図示されるスカートであってもよい。いくつかの実施形態では、ブロックＡ−Ｄはそれぞれ、ブロックと、対応するスカートとを含んでもよい。例えば、ブロックＢは、ブロック４４０４と、ブロックがグローバルメッシュの中に接続されるとき、ブロック間の亀裂が包み隠され得るように、ブロックＢの近傍ブロックＡ、Ｃ、およびＤの境界部分と重複する、スカート４４１４とを含んでもよい。ブロックＡ、Ｃ、およびＤはまた、対応するスカートを含んでもよい。故に、３Ｄ再構成データを含むブロックをアプリケーションに返す前に、プロセッサは、ブロック間の任意の亀裂を包み隠してもよい。
【０３３８】
いくつかの実施形態では、グローバルメッシュは、トポロジ的に接続されたグローバルメッシュであってもよい。例えば、ブロックのセット内の隣接するブロックは、線４４１０等のブロック境界内のメッシュ頂点を共有してもよい。いくつかの実施形態では、グローバルメッシュは、スカートおよびジッパ等の任意の好適な技法を使用して、視覚的にシームレスであり得るが、トポロジ的に接続解除される。
【０３３９】
スカートを採用する方法が、図示されるが、ジッパ等の他の方法も、変化されたブロックが不変の隣接するブロックと組み合わせられることを可能にするために使用されてもよい。図示される実施例では、物理的世界の一部は、４つの２Ｄブロックによって表されるが、物理的世界の一部は、任意の好適な数の２Ｄおよび／または３Ｄブロック、例えば、２つ、３つ、５つ、６つまたはそれよりも多くものによって表されてもよいことを理解されたい。各ブロックは、物理的世界内の空間に対応してもよい。いくつかの実施形態では、物理的世界の一部の２Ｄおよび／または３Ｄ表現内のブロックは、物理的世界内の同一サイズ（例えば、面積／ボリューム）の空間に対応してもよい。いくつかの実施形態では、物理的世界の一部の２Ｄおよび／または３Ｄ表現内のブロックは、物理的世界内の異なるサイズの空間に対応してもよい。
【０３４０】
図４５は、いくつかの実施形態による、物理的世界の一部の３Ｄ表現４５００を図示する、概略図である。２Ｄ表現４４００と同様に、３Ｄ表現４５００は、８つのブロック、すなわち、ブロックＡ−Ｈを接続することによって取得されてもよい。いくつかの実施形態では、ブロックＡ−Ｈは、相互に排他的である、例えば、重複される領域を有していなくてもよい。いくつかの実施形態では、ブロックＡ−Ｈは、近傍ブロックに重複する領域（例えば、スカート４５１６）を有してもよい。いくつかの実施形態では、ブロックＡ−Ｈはそれぞれ、バージョンを有してもよい。ブロックの各バージョンは、ある時点における物理的世界のある領域内のオブジェクトを表す、値を有してもよい。図示される実施例では、３Ｄ表現４５００は、ブロックＡ−Ｈのバージョン、すなわち、ブロックＡのバージョン４５０２、ブロックＢのバージョン４５０４、ブロックＣのバージョン４５１４、ブロックＤのバージョン４５１２、ブロックＥのバージョン４５３４、ブロックＦのバージョン４５０６、ブロックＧのバージョン４５０８、およびブロックＨのバージョン４５１０を含む。ブロックＡのバージョン４５０２は、値４５１８を含んでもよく、ブロックＢのバージョン４５０４は、値４５２２を含んでもよく、ブロックＣのバージョン４５１４は、値４５２８を含んでもよく、ブロックＤのバージョン４５１２は、値４５３２を含んでもよく、ブロックＥのバージョン４５３４は、値４５２０を含んでもよく、バージョン４５０６は、値４５２４を含んでもよく、バージョン４５０８は、値４５２６を含んでもよく、バージョン４５１０は、値４５３０を含んでもよい。
【０３４１】
図４６は、いくつかの実施形態による、３Ｄ表現４５００を更新することによって取得される物理的世界の一部の３Ｄ表現４６００を図示する、概略図である。３Ｄ表現４５００と比較して、３Ｄ表現４６００は、情報４６３０を含む、ブロックＨの新しいバージョン４６１０を有し得る。情報４６３０は、情報４５３０と異なり得る。例えば、第１のデバイスは、ブロックＨのバージョン４５１０を遠隔メモリ内に存続させてもよい。ブロックＨのバージョン４５１０は、空表面を伴うテーブルに対応する、情報４５３０を含んでもよい。第１のデバイスが、面積から離れた後（例えば、第１のデバイスの視野が、もはやブロックＨを含まない）、第２のデバイスは、仮想および／または物理的ボックスをテーブルの表面上に設置し、ブロックＨのバージョン４６１０を遠隔メモリ内に存続させてもよい。ブロックＨのバージョン４６１０は、仮想および／または物理的ボックスを伴うテーブルに対応する、情報４６３０を含んでもよい。第１のデバイスが、戻る場合、第１のデバイスは、ブロックＨのバージョン４６１０およびバージョン４５１０を含む、ブロックＨの利用可能なバージョンから、視認するためのブロックＨのバージョン４６１０を選択することが可能であり得る。
【０３４２】
図４７は、第１のデバイス４７０２（例えば、デバイス３８１０）および第２のデバイス４７１２（例えば、デバイス３８２０）によって視認可能な拡張世界４７００を図示する、概略図である。第１および第２のデバイスは、拡張モードで動作するＡＲディスプレイシステム４７０４および４７１４（例えば、ＡＲディスプレイシステム８０）を含んでもよい。拡張世界４７００は、４つのブロック、すなわち、ブロックＡ−Ｄを接続することによって取得されてもよい。図示される実施例では、拡張世界４７００は、ブロックＡ−Ｄのバージョン、すなわち、ブロックＡのバージョン４７０２Ａ、ブロックＢのバージョン４７０２Ｂ、ブロックＣのバージョン４７０２Ｃ、およびブロックＤのバージョン４７０２Ｄを含む。第１のデバイス４７０２は、第１の方向４７０６を見ており、第１の視野（ＦＯＶ）４７０８を有し得る。図示される実施例では、第１のＦＯＶは、ブロックＢのバージョン４７０２ＢおよびブロックＤのバージョン４７０２Ｄを含む。第２のデバイス４７０４のプロセッサ（例えば、３８１２）は、第１のＦＯＶに対応するブロックＢおよびＤを識別し、ブロックＢのバージョン４７０２ＢおよびブロックＤのバージョン４７０２Ｄを選択するためのコンピュータ実行可能命令を含んでもよい。第２のデバイス４７１４は、第２の方向４７１６を見ており、第２のＦＯＶ４７１８を有し得る。図示される実施例では、第２のＦＯＶは、ブロックＣのバージョン４７０２ＣおよびブロックＤのバージョン４７０２Ｄを含む。第２のデバイス４７１４のプロセッサ（例えば、３８２２）は、第２のＦＯＶに対応するブロックＣおよびＤを識別し、ブロックＣのバージョン４７０２ＣおよびブロックＤのバージョン４７０２Ｄを選択するためのコンピュータ実行可能命令を含んでもよい。
【０３４３】
図４８は、いくつかの実施形態による、拡張世界４７００をブロックの新しいバージョンで更新することによって取得される拡張世界４８００を図示する、概略図である。拡張世界４７００と比較して、拡張世界４８００は、バージョン４７０２Ｃと異なるブロックＣのバージョン４８０２Ｃおよびバージョン４７０２Ｄと異なるブロックＤのバージョン４８０２Ｄを含んでもよい。第１のデバイス４７０２は、第３の方向４８０６を見ており、第３のＦＯＶ４８０８を有し得る。図示される実施例では、第３のＦＯＶは、ブロックＣのバージョン４８０２ＣおよびブロックＤのバージョン４８０２Ｄを含む。第１のデバイス４７０２のプロセッサは、例えば、ＦＯＶの変化および／または第１のデバイス４７０２のセンサを用いて収集された情報に基づいて、アプリケーションを提供するためのバージョン４７０２Ｃ、４８０２Ｃ、４７０２Ｄ、および４８０２Ｄを決定するためのコンピュータ実行可能命令を含んでもよい。いくつかの実施形態では、第１のデバイス４７０２のプロセッサは、ブロックＣおよびＤの対応する最新バージョンがローカルメモリ（例えば、ローカルキャッシュ３８１４、３８２４）または遠隔メモリ（例えば、クラウドキャッシュ３８０２）内に存在しないとき、ブロックＣのバージョン４８０２ＣおよびブロックＤのバージョン４８０２Ｄを生成するためのコンピュータ実行可能命令を含んでもよい。いくつかの実施形態では、第１のデバイス４７０２は、そのＦＯＶの変化（例えば、第１のＦＯＶ４７０８から第３のＦＯＶ４８０８）を推定し、推定に基づいて、ブロックＣを選択し、ブロックＣのバージョンをプロセッサにより近いメモリに記憶する（例えば、ブロックＣのバージョンを遠隔メモリからローカルキャッシュまたはローカルキャッシュからアクティブメモリに移動させる）ことが可能であり得る。
【０３４４】
レイキャスティングおよびライブ深度を使用したオクルージョンレンダリングの方法
【０３４５】
ＡＲおよびＭＲ場面がユーザに提示される、現実性は、オクルージョンデータを、そのような場面を生成するアプリケーションに提供することによって、向上され得、オクルージョンデータは、１つ以上の深度データソースの組み合わせから導出される。オクルージョンデータは、場面内の物理的オブジェクトの表面を表し得、そこから場面がレンダリングされるべき視点からの距離および表面を示す、深度データ等による、任意の好適な方法においてフォーマットされてもよい。例えば、使用コンポーネント１６４は、オクルージョンデータを知覚モジュール１６０（図６）から受信してもよい。
【０３４６】
しかしながら、いくつかの実施形態では、１つのデータソースは、直接、深度カメラと物理的世界内の実オブジェクトとの間の位置を感知および捕捉する、１つ以上の深度カメラであってもよい。深度カメラからのデータは、直接、使用コンポーネント１６４に提供されてもよい、または間接的に、知覚モジュール１６０等を通して提供されてもよい。１つ以上の深度カメラは、物理的世界の変化を捕捉するために十分に高いが、処理に負担をかけないように十分に低い、フレームレートにおいて、物理的世界の即時ビューを提供してもよい。いくつかの実施形態では、フレームレートは、５フレーム／秒、１０フレーム／秒、１２フレーム／秒、１５フレーム／秒、２０フレーム／秒、２４フレーム／秒、３０フレーム／秒、および同等物であってもよい。いくつかの実施形態では、フレームレートは、５フレーム／秒未満であってもよい。いくつかの実施形態では、フレームレートは、３０フレーム／秒を上回ってもよい。故に、いくつかの実施形態では、フレームレートは、１〜５フレーム／秒、５〜１０フレーム／秒、１０〜１５フレーム／秒、１５〜２０フレーム／秒、または２０〜３０フレーム／秒、および同等物の範囲内であってもよい。
【０３４７】
データの第２のソースは、物理的世界の視覚的表現を捕捉し得る、立体視的カメラであってもよい。深度カメラからの深度データおよび／または視覚的カメラからの画像データは、物理的世界内の実オブジェクトを表す点を抽出するように処理されてもよい。立体視カメラ等の視覚的カメラからの画像は、物理的世界の３次元（３Ｄ）再構成を算出するために処理されてもよい。いくつかの実施形態では、深度データは、例えば、深層学習技法を使用して、視覚的カメラからの画像から生成されてもよい。３Ｄ再構成の一部または全部は、オクルージョンデータ前に算出されてもよく、メモリ内に記憶されてもよい。いくつかの実施形態では、３Ｄ再構成は、必要に応じて、記憶された３Ｄ再構成にアクセスし得る、オクルージョン処理のための深度情報を生成する、任意のプロセスから独立して、プロセスによって、コンピュータメモリ内に維持されてもよい。いくつかの実施形態では、３Ｄ再構成は、メモリ内に維持されてもよく、その一部は、例えば、３Ｄ再構成の一部に対応する物理的世界の変化が存在する、深度情報に基づいて算出されたインジケーションに応答して、更新されてもよい。いくつかの実施形態では、第２のデータソースは、物理的世界の３Ｄ再構成の中へのレイキャスティングによって実装され、低レベル３Ｄ再構成データ（例えば、レイキャスティング点群）を取得してもよい。レイキャスティングを用いることで、第２のデータソースからのデータは、オクルージョンデータ内の任意の穴を充填し、２つ（以上の）ソースからのデータが統合されたことを可能にするように選択されてもよい。
【０３４８】
いくつかの実施形態によると、深度データおよび／または画像データおよび／または３Ｄ再構成の低レベルデータは、ＡＲまたはＭＲシステムのユーザに対して配向されてもよい。そのような配向は、例えば、ユーザによって装着されるセンサからのデータを使用することによって、達成されてもよい。センサは、例えば、頭部搭載型ディスプレイデバイス／ユニット上に装着されてもよい。
【０３４９】
オクルージョンデータが１つを上回る深度データソースから生成され得る、システムでは、システムは、複数の深度データソースのそれぞれからのデータによって表される、３Ｄ領域の部分を識別する、フィルタを含んでもよい。フィルタは、１つ以上の基準を適用し、第２のデータソースからのデータが収集されるべき領域の部分を識別してもよい。これらの基準は、深度データの信頼性のインジケーションであり得る。別の基準は、深度データが収集されて以降の領域の一部内で検出された変化であってもよい。
【０３５０】
３Ｄ領域の表現の異なる部分のためのデータを提供するための複数の深度データソース間の選択は、処理時間を低減させ得る。例えば、第２のデータソースを用いた場合より少ない処理が、オクルージョンデータを第１のデータソースを用いて収集されたデータから導出するために要求されるとき、選択は、第１のデータソースからのデータに有利に働くが、第１のソースからのデータが利用不可能または容認不可能であるとき、第２のソースからのデータを使用してもよい。具体的実施例として、第１のデータソースは、深度カメラであってもよく、第２のデータソースは、立体視的カメラであってもよい。立体視カメラからのデータは、物理的世界の３Ｄ再構成としてフォーマットされてもよい。いくつかの実施形態では、３Ｄ再構成は、オクルージョンデータが要求される前に算出されてもよい。代替として、または加えて、３Ｄ再構成は、オクルージョンデータが要求されるとき、再算出されてもよい。いくつかの実施形態では、基準が、３Ｄ再構成が再算出されるべきであるかどうかを決定するために適用されてもよい。
【０３５１】
いくつかの実施形態では、本オクルージョンデータは、アプリケーションプログラミングインターフェース（ＡＰＩ）を通して、ＸＲ場面をレンダリングするであろうコンピューティングデバイス上で実行されるアプリケーションに、オクルージョンデータを提供する、サービスによって算出される。サービスは、アプリケーションと同一コンピューティングデバイス上で実行されてもよい、または遠隔コンピュータ上で実行されてもよい。サービスは、第１のデータソースからのデータのためのフィルタ、および／または第１のデータソースからの、フィルタリングされたデータに基づいて、第２のデータソースからのデータを選択的にフェッチするためのエンジン等、本明細書で議論されるコンポーネントのうちの１つ以上のものを含んでもよい。サービスはまた、第１のデータソースからのフィルタリングされたデータおよび第２のデータソースからの選択されたデータを組み合わせ、オクルージョンデータを生成するためのコンポーネントを含んでもよい。
【０３５２】
オクルージョンデータは、物理的世界内の表面を表す、任意の好適な方法においてフォーマットされてもよい。例えば、オクルージョンデータは、表面の深度バッファとしてフォーマットされ、物理的世界内の表面の場所を識別するデータを記憶してもよい。本オクルージョンデータは、次いで、任意の好適な方法において使用されてもよい。いくつかの実施形態では、オクルージョンデータは、実オブジェクトによってオクルードされる仮想オブジェクトを有することを所望する、１つ以上のアプリケーションに提供されてもよい。いくつかの実施形態では、オクルージョンデータは、仮想オブジェクトを１つ以上の場所にレンダリングするためにオクルージョンデータのためのオクルージョンサービスを要求する、アプリケーションのためのシステムによって作成された深度フィルタとしてフォーマットされてもよい。深度フィルタは、それらの場所における仮想オブジェクトが物理的世界内の表面によってオクルードされるであろうため、アプリケーションが仮想オブジェクトのための画像情報をレンダリングすべきではない場所を識別してもよい。「オクルージョンデータ」は、物理的世界内の表面についての情報を提供するための好適なフォーマットにあってもよく、オクルージョン処理のために使用される必要はないことを理解されたい。いくつかの実施形態では、オクルージョンデータは、物理的世界の場面内の表面の表現に基づいて処理を実施する、任意のアプリケーションにおいて使用されてもよい。
【０３５３】
本明細書に説明されるようなアプローチは、アプリケーションが、メッシュデータを使用し、オクルージョン処理を実施する、従来のＡＲおよびＭＲシステムより短い待ち時間を伴って、および／またはより少ないコンピューティングリソースを使用して、オクルージョンデータを提供する。メッシュデータは、複数回、またはマーチングキューブアルゴリズム、メッシュ簡略化、および三角形数限界の適用を含む、コスト集約的ステップを用いて、画像センサによって抽出された幾何学的データを処理することによって取得されてもよい。メッシュデータは、計算するために数百ミリ秒〜数秒かかり得、最新メッシュを有することの遅延は、環境が、動的に変化しており、アプリケーションが、古くなったメッシュを使用して、場面をレンダリングするとき、可視アーチファクトにつながり得る。これらのアーチファクトは、例えば、仮想コンテンツが、仮想コンテンツが実オブジェクトの背後にレンダリングされることが想定される実オブジェクトの上部に重畳されて現れる際に明らかになり、これは、そのようなアプリケーションのユーザにとっての知覚／没入感を破壊し、ユーザに３Ｄ深度知覚のための正しくないキューを提供する。
【０３５４】
オクルージョン処理のためにメッシュを使用するアプリケーションが、最新メッシュを有するために、アプリケーションは、メッシュに関して継続的にクエリする（有意な連続処理を生じさせる）、または変化が存在するかどうかを決定し、次いで、新しいメッシュに関してクエリするための機構を利用するか（全体的処理を低減させるが、依然として、物理的世界の変化とそれらの変化を反映させるメッシュがアプリケーションに到着する時間との間に長い待ち時間を有するであろう）のいずれかを行う必要がある。
【０３５５】
オクルージョンのために、メッシュの代わりに、直接、３Ｄ再構成データの低レベルデータ（例えば、点群）およびライブ深度データを利用することによって、環境内で生じる変化とオクルージョンデータ内に反映される時間との間の待ち時間を減少させ、物理的世界とのより近い同期、故に、より高い知覚される視覚的品質を維持することが可能である。
【０３５６】
いくつかの実施形態では、物理的環境のリアルタイム深度マップが、深度センサ（例えば、深度カメラ）から取得されてもよい。深度マップ内の各ピクセルは、環境内の３Ｄ点から捕捉された離散距離測定に対応してもよい。いくつかの実施形態では、これらの深度カメラは、リアルタイムレートで、点のセットを含む、深度マップを提供し得る。しかしながら、深度マップは、深度カメラが、ある領域を表すセンサデータを入手することが不可能である、またはある領域を表す正しくないまたは信頼性がないデータを入手することから生じ得る、穴を有し得る。いくつかの実施形態では、深度センサが、赤外線（ＩＲ）光を使用する場合、穴は、例えば、ＩＲ光をあまり良好にまたは全く反射させない、物理的環境内の材料または構造から生じ得る。いくつかの実施形態では、穴は、例えば、光を深度センサに向かって反射させない、斜入射角における非常に薄い構造または表面から生じ得る。深度センサはまた、高速で移動するとき、モーションブラーを被り得、これはまた、欠測データにつながり得る。さらに、深度マップ内の「穴」は、任意の他の理由から、オクルージョン処理において使用するために好適ではない、深度マップの領域を表す。そのような穴は、深度マップを処理して、深度マップ内の点または領域間の接続性の欠如を検出する等、任意の好適な処理を使用して、検出されてもよい。別の実施例として、穴は、深度マップの領域に関する品質メトリックを算出し、低品質メトリックを伴う領域を穴として処理する、処理を使用して、検出されてもよい。１つのそのようなメトリックは、物理的世界内の同一場所を表す深度マップ内のピクセルに関する画像毎変動であってもよい。閾値を超える、そのような変動を伴うピクセルは、穴として分類されてもよい。いくつかの実施形態では、穴は、品質メトリックが閾値を下回るピクセルのクラスタに関する所定の統計的基準を満たす、ピクセルによって識別されてもよい。
【０３５７】
いくつかの実施形態では、深度マップは、最初に、「フィルタリング」され、穴を識別してもよい。次いで、そこから場面が穴にレンダリングされるであろう、視点からの光線が、決定されてもよい。それらの光線は、深度センサだけではなく、それ以外のセンサも使用して作成される、物理的世界の３Ｄ表現の中に「キャスティング」され、穴の領域を表すデータを識別してもよい。物理的世界の３Ｄ表現は、例えば、立体視的カメラからのデータから作成された３Ｄ再構成であってもよい。そのようなレイキャスティングによって識別される、３Ｄ再構成からのデータは、深度マップに追加され、それによって、穴を充填してもよい。
【０３５８】
３Ｄ再構成は、穴が識別されると、画像センサデータから算出されてもよい。代替として、３Ｄ再構成の一部または全部は、事前に算出され、メモリ内に記憶されてもよい。３Ｄ再構成は、必要に応じて、その記憶される３Ｄ再構成にアクセスし得る、オクルージョン処理のための深度情報を生成する、任意のプロセスから独立して、プロセスによって、例えば、コンピュータメモリ内に維持されてもよい。さらなる代替として、３Ｄ再構成は、メモリ内に維持されてもよいが、その一部は、３Ｄ再構成の一部に対応する物理的世界の変化が存在することの深度情報に基づいて算出されたインジケーションに応答して、更新されてもよい。
【０３５９】
ＸＲシステムでは、光線は、ユーザの眼視線と同一姿勢を有してもよい。下記に説明されるような例示的システムでは、深度マップも同様に、深度センサが、ユーザによって装着され得、眼の近傍のユーザの頭部上に搭載され得るため、ユーザの同一眼視線を用いて入手されてもよい。３Ｄ再構成データを形成するために使用される視覚的カメラも同様に、画像およびそれらの画像から導出されるデータが、深度マップに対して定義された光線が視覚的画像から算出された３Ｄ再構成の中にキャスティングされることを可能にする、座標系に関連し得るように、ユーザによって装着されてもよい。同様に、ユーザによって装着され、および／またはセンサと関連付けられる、慣性測定ユニットおよび／または他のセンサは、視覚的カメラの姿勢にかかわらず、データを提供し、座標変換を実施し、データを３Ｄ表現に追加し、深度マップに対して定義された光線を３Ｄ再構成に関連させてもよい。
【０３６０】
いくつかの実施形態では、ユーザの焦点または関連仮想コンテンツ設置情報は、レイキャスティングを誘導し、高品質オクルージョンをオブジェクト境界において取得するために、より稠密光線を深度途絶場所に、処理要件を減少させるために、疎隔光線をビュー内のオブジェクトの中心にキャスティングすることによって、それを画像空間内に適応させ得る。レイキャスティングは、加えて、法線および位置等のローカル３Ｄ表面情報を与え得、これは、深度情報を用いて、改良された時間ワーピング処理を可能にし、典型的レンダリングエンジンにおいてレンダリングまたは光線トレースされる必要がある、欠測可視ピクセルを緩和させるために使用され得る。時間ワーピングは、ディスプレイに送信する前に、レンダリングされた画像を修正し、レンダリングと表示との間で生じるように算出される、頭部移動を補正する、ＸＲにおける技法である。いくつかの実施形態では、時間ワーピングは、深度マップからのデータと、深度マップ内の穴を充填するためのデータを生成するために使用され得る、物理的世界の３Ｄ表現とを同期させるために使用されてもよい。両データソースからのデータは、表示時に算出された姿勢を表すように時間ワーピングされてもよい。いくつかの実施形態では、３Ｄ表現からのデータは、データが深度マップを用いて捕捉された時間において算出された姿勢を表すために時間ワーピングされてもよい。
【０３６１】
いくつかの実施形態では、時間ワーピング等の高度な特徴は、レイキャスティングからの３Ｄローカル表面情報を利用してもよい。コンテンツフレームが、物理的世界オクルージョンを伴わずに、または浸食された深度結像を伴ってレンダリングされるとき、時間ワーピングは、以前にオクルードされた全ての欠測可視ピクセルを充填し得る。したがって、レンダリングエンジンがピクセルを充填する必要がなく、より厳密ではなく切り離されたレンダリングアプリケーション（またはより独立した時間ワーピング）を可能にし得る。
【０３６２】
上記に説明されるような処理は、多くの好適な形態のハードウェアプロセッサ内において、多くの好適なセンサを用いて入手され、多くの好適なインターフェース上に提示される、データ上で実施されてもよい。センサ、処理、およびユーザインターフェースを含む、好適なシステムの実施例は、下記に提示される。図示される実施形態では、「サービス」が、コンピュータ実行可能命令を用いて、ＸＲシステムの一部として実装されてもよい。それらの命令の実行は、１つ以上のプロセッサを制御し、センサデータにアクセスし、次いで、深度情報を生成し、ＸＲシステム上で実行されるアプリケーションに供給してもよい。それらの命令は、ＸＲ場面をユーザに提示するアプリケーションを実行する、同一プロセッサまたは同一デバイス上、またはコンピュータネットワークを経由してユーザデバイスによってアクセスされる、遠隔デバイス上で実行されてもよい。
【０３６３】
図４９は、いくつかの実施形態による、オクルージョンレンダリングシステム４９００を図示する。オクルージョンレンダリングシステム４９００は、再構成フィルタ４９０２を含んでもよい。再構成フィルタ４９０２は、深度情報４９０４を受信してもよい。いくつかの実施形態では、深度情報４９０４は、深度カメラによって捕捉された深度画像のシーケンスであってもよい。いくつかの実施形態では、深度情報４９０４は、例えば、単一カメラに基づく運動からの構造を使用して、および／または２つのカメラに基づく立体算出を使用して、視覚的カメラによって捕捉された画像のシーケンスから導出されてもよい。図５０は、いくつかの実施形態による、深度画像５０００を図示する。いくつかの実施形態では、表面情報は、深度情報から生成されてもよい。表面情報は、深度カメラおよび／または視覚的カメラを備える、頭部搭載型ディスプレイデバイスの視野（ＦＯＶ）内の物理的オブジェクトまでの距離を示してもよい。表面情報は、場面およびＦＯＶが変化するにつれて、リアルタイムで更新されてもよい。
【０３６４】
深度情報の第２のソースは、３Ｄ再構成４９０８として図示される。３Ｄ再構成４９０８は、物理的世界の３Ｄ表現を含んでもよい。物理的世界の３Ｄ表現は、コンピュータメモリ内に作成および／または維持されてもよい。いくつかの実施形態では、３Ｄ表現は、例えば、単一カメラに基づく運動からの構図を使用して、および／または２つのカメラに基づく立体算出を使用して、視覚的カメラによって捕捉された画像から生成されてもよい。いくつかの実施形態では、３Ｄ表現は、深度カメラによって捕捉された深度画像から生成されてもよい。例えば、３Ｄ再構成４９０８は、世界原点に対する深度カメラの姿勢と組み合わせて、深度情報４９０４を使用して、作成および／または更新されてもよい。その表現は、例えば、カメラを装着しているユーザが物理的世界を見回すにつれて、経時的に構築および修正され得る。いくつかの実施形態では、深度情報４９０４はまた、物理的世界の３Ｄ表現を生成するために使用されてもよい。３Ｄ再構成４９０８は、３Ｄボクセルを含む、立体再構成であってもよい。いくつかの実施形態では、各３Ｄボクセルは、空間の立方体（例えば、０．５メートル×０．５メートル×０．５メートル）を表してもよく、各３Ｄボクセルは、空間のその立方体の中の実世界内の表面に関連し、および／またはそれを説明する、データを含んでもよい。
【０３６５】
世界の３Ｄ再構成４９０８は、任意の好適な方法において記憶されてもよい。いくつかの実施形態では、３Ｄ再構成４９０８は、物理的世界内のオブジェクトの特徴を表す、点「群」として記憶されてもよい。いくつかの実施形態では、３Ｄ再構成４０８は、メッシュとして記憶されてもよく、点のグループは、表面を表す、三角形の頂点を定義する。いくつかの実施形態では、３Ｄ再構成４９０８は、部屋レイアウト検出システムおよび／またはオブジェクト検出等の他の技法を使用して生成されてもよい。いくつかの実施形態では、いくつかの技法は、３Ｄ再構成４９０８を生成するために、ともに使用されてもよい。例えば、オブジェクト検出が、物理的世界内の既知の物理的オブジェクトのために使用されてもよく、３Ｄモデル化が、物理的世界内の未知の物理的オブジェクトのために使用されてもよく、部屋レイアウト検出システムもまた、壁および床等の物理的世界内の境界を識別するために使用されてもよい。
【０３６６】
再構成フィルタ４９０２は、深度情報４９０４に基づいて深度マップを生産するための、コンピュータ実行可能命令を含んでもよい。深度マップは、１つ以上のピクセルを含んでもよい。各ピクセルは、物理的世界内の表面の点までの距離を示してもよい。いくつかの実施形態では、再構成フィルタ４９０２は、深度情報４９０４およびレイキャスティングエンジン４９０６からのデータを合成してもよい。いくつかの実施形態では、再構成フィルタ４９０２は、少なくとも部分的に、レイキャスティングエンジン４９０２からのデータに基づく、深度情報４９０４から、および／または深度情報４９０４およびレイキャスティングエンジン４９０６からのデータの合成から、雑音を低減または除去してもよい。いくつかの実施形態では、再構成フィルタ４９０２は、深層学習技法を使用して、深度情報４９０４をアップアンプリングしてもよい。
【０３６７】
再構成フィルタ４９０２は、品質メトリックに基づいて、深度マップの領域を識別してもよい。例えば、ピクセルの品質メトリックが、閾値を上回るとき、ピクセルは、正しくないまたは雑音として決定され得る。正しくないまたは雑音ピクセルを含有する、深度マップの領域は、穴（例えば、穴５００２）と称され得る。
【０３６８】
図５４Ａおよび５４Ｂは、深度マップが複数の深度画像から構築される、実施形態における、穴が深度マップにもたらされ得る方法の代替実施例を提供する。図５４Ａは、表面によって占有されるボクセルおよび空のボクセルを識別するために、深度カメラを用いて第１の視点から結像される、領域のスケッチである。図５４Ｂは、表面によって占有されるボクセルおよび空のボクセルを識別するために、深度カメラを用いて複数の視点から結像される、領域のスケッチである。図５４Ｂは、複数のカメラ画像からのデータを融合させることによって、表面によって占有される、または空であると決定された複数のボクセルを図示する。しかしながら、領域５４２０内のボクセルは、結像されていない。領域５４２０は、位置５４２２における深度カメラを用いて結像され得るが、カメラは、その場所に移動していない。故に、領域５４２０は、立体情報が利用可能ではない、観察空間である。ＡＲシステムは、それを装着しているユーザを誘導し、観察空間を走査させ得る。
【０３６９】
図４９に戻って参照すると、再構成フィルタ４９０２は、レイキャスティングエンジン４９０６に、穴の場所について知らせ得る。レイキャスティングエンジン４９０６は、ユーザの姿勢を前提として、物理的世界のビューを生成してもよく、穴を深度マップから除去し得る。データは、現在の時間における、物理的世界のユーザの現在のビューの部分、または時間ワーピングが、それまでにデータが時間ワーピングされるべき時間において使用される場所を表し得る。レイキャスティングエンジン４９０６は、１つ以上の２Ｄ画像、例えば、眼あたり１つの画像を生成してもよい。いくつかの実施形態では、再構成フィルタ４９０２は、閾値距離を超える仮想オブジェクトの場所から離間される深度マップの領域を、これらの領域が仮想オブジェクトのためのオクルージョン試験に関連し得ないため、除去してもよい。
【０３７０】
ユーザの姿勢を前提として、物理的世界のビューを生成する、レイキャスティングエンジン４９０６は、任意の好適な技法によって実装されてもよい。いくつかの実施形態では、レイキャスティングエンジン４９０６は、レイキャスティングアルゴリズムを３Ｄ再構成４９０８上で実装し、それからデータを抽出してもよい。レイキャスティングアルゴリズムは、ユーザの姿勢を入力としてとってもよい。レイキャスティングエンジン４９０６は、光線を仮想カメラから物理的世界の３Ｄ再構成４９０８にキャスティングし、深度マップから欠測する表面情報（例えば、穴）を取得してもよい。レイキャスティングエンジン４９０６は、オブジェクト境界における高品質オクルージョンを取得するために、稠密光線を物理的世界内の物理的オブジェクトの境界に、処理要件を減少させるために、疎隔光線を物理的オブジェクトの中心領域にキャスティングしてもよい。レイキャスティングエンジン４９０６は、次いで、レイキャスティング点群を再構成フィルタ４９０２に提供してもよい。レイキャスティングエンジン４９０６は、実施例として図示される。いくつかの実施形態では、レイキャスティングエンジン４９０６は、メッシュ化エンジンであってもよい。メッシュ化エンジンは、メッシュ化アルゴリズムを３Ｄ再構成４９０８上で実装し、例えば、三角形および三角形の接続性を含む、それからのデータを抽出してもよい。メッシュ化アルゴリズムは、ユーザの姿勢を入力としてとってもよい。
【０３７１】
再構成フィルタ４９０２は、深度情報４９０４およびレイキャスティングエンジン４９０６からのデータを合成し、レイキャスティングエンジン４９０６からのレイキャスティング点群からのデータを用いて、深度情報４９０４からの深度マップ内の穴を補償してもよい。いくつかの実施形態では、深度マップの分解能は、改良され得る。本方法は、高分解能深度画像を疎隔または低分解能深度画像から生成するために使用されてもよい。
【０３７２】
再構成フィルタ４９０２は、更新された深度マップをオクルージョンサービス４９１０に提供してもよい。オクルージョンサービス４９１０は、更新された深度マップおよび場面内の仮想オブジェクトの場所についての情報に基づいて、オクルージョンデータを算出してもよい。オクルージョンデータは、物理的世界内の表面の深度バッファであってもよい。深度バッファは、ピクセルの深度を記憶してもよい。いくつかの実施形態では、オクルージョンサービス４９１０は、アプリケーション４９１２とインターフェースをとってもよい。いくつかの実施形態では、オクルージョンサービス４９１０は、グラフィックシステムとインターフェースをとってもよい。これらの実施形態では、グラフィックシステムは、深度バッファをアプリケーションに４９１２にエクスポーズしてもよく、深度バッファは、オクルージョンデータで事前に充填される。
【０３７３】
オクルージョンサービス４９１０は、オクルージョンデータを１つ以上のアプリケーション４９１２に提供してもよい。いくつかの実施形態では、オクルージョンデータは、ユーザの姿勢に対応してもよい。いくつかの実施形態では、オクルージョンデータは、ピクセル毎表現であってもよい。いくつかの実施形態では、オクルージョンデータは、メッシュ表現であってもよい。アプリケーション４９１２は、コンピュータ実行可能命令を実行し、オクルージョンデータに基づいて、仮想オブジェクトを場面内にレンダリングするように構成されてもよい。いくつかの実施形態では、オクルージョンレンダリングは、アプリケーション４９１２の代わりに、別個のグラフィックシステムによって行われてもよい。別個のグラフィックシステムは、時間ワーピング技法を使用してもよい。
【０３７４】
いくつかの実施形態では、再構成フィルタ４９０２、レイキャスティングエンジン４９０６、およびオクルージョンサービス４９１０は、遠隔サービス、例えば、遠隔処理モジュール７２であってもよく、３Ｄ再構成４９０８は、遠隔メモリ、例えば、遠隔データリポジトリ７４内に記憶されてもよく、アプリケーション４９１２は、ＡＲディスプレイシステム８０上にあってもよい。
【０３７５】
図５１は、いくつかの実施形態による、拡張現実（ＡＲ）環境内のオクルージョンレンダリングの方法５１００を図示する。行為５１０２では、深度情報が、例えば、頭部搭載型ディスプレイデバイス上の深度センサ（例えば、深度センサ５１）から捕捉されてもよい。深度情報は、頭部搭載型ディスプレイデバイスと物理的オブジェクトとの間の距離を示してもよい。行為５１０４では、表面情報が、深度情報から生成されてもよい。表面情報は、頭部搭載型ディスプレイデバイスおよび／または頭部搭載型ディスプレイデバイスのユーザの視野（ＦＯＶ）内の物理的オブジェクトまでの距離を示してもよい。表面情報は、場面およびＦＯＶが変化するにつれて、リアルタイムで更新されてもよい。行為５１０６では、レンダリングするための仮想オブジェクトの部分は、場面内の仮想オブジェクトの表面情報および場所についての情報から算出されてもよい。
【０３７６】
図５２は、いくつかの実施形態による、行為５１０４の詳細を図示する。行為５２０２では、深度情報が、フィルタリングされ、深度マップを生成してもよい。深度マップは、１つ以上のピクセルを含んでもよい。各ピクセルは、物理的オブジェクトの点までの距離を示してもよい。行為５２０４では、物理的オブジェクトの３Ｄ再構成の低レベルデータが、例えば、３Ｄ再構成４９０８から選択的に入手されてもよい。行為５２０６では、表面情報は、深度マップおよび物理的オブジェクトの３Ｄ再構成の選択的に入手された低レベルデータに基づいて生成されてもよい。
【０３７７】
図５３は、いくつかの実施形態による、行為５２０２の詳細を図示する。行為５３０２では、深度マップの領域のための品質メトリックが、決定されてもよい。品質メトリックは、深度マップの領域が正しくないまたは雑音が多いかどうかを示してもよい。行為５３０４では、深度マップ内の穴は、例えば、閾値と比較することによって、品質メトリックに基づいて識別されてもよい。行為５３０６では、識別された穴が、深度マップから除去されてもよい。
【０３７８】
結論
【０３７９】
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。
【０３８０】
一実施例として、実施形態は、拡張（ＡＲ）環境に関連して説明される。本明細書に説明される技法の一部または全部は、ＭＲ環境、またはより一般的には、他のＸＲ環境およびＶＲ環境内に適用されてもよいことを理解されたい。
【０３８１】
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク（クラウド等）、離散アプリケーション、および／またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
【０３８２】
そのような改変、修正、および改良は、本開示の一部であることが意図され、本開示の精神および範囲内であると意図される。さらに、本開示の利点が示されるが、本開示の全ての実施形態が、全ての説明される利点を含むわけではないことを理解されたい。いくつかの実施形態は、本明細書およびいくつかの事例において有利として説明される任意の特徴を実装しなくてもよい。故に、前述の説明および図面は、一例にすぎない。
【０３８３】
本開示の前述の実施形態は、多数の方法のいずれかにおいて実装されることができる。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装されてもよい。ソフトウェア内に実装されるとき、ソフトウェアコードが、単一コンピュータ内に提供される、または複数のコンピュータ間に分散されるかどうかにかかわらず、任意の好適なプロセッサまたはプロセッサの集合上で実行されることができる。そのようなプロセッサは、いくつか挙げると、ＣＰＵチップ、ＧＰＵチップ、マイクロプロセッサ、マイクロコントローラ、またはコプロセッサ等、当技術分野において公知の市販の集積回路コンポーネントを含む、集積回路コンポーネント内の１つ以上のプロセッサとともに、集積回路として実装されてもよい。いくつかの実施形態では、プロセッサは、ＡＳＩＣ等のカスタム回路内に、またはプログラマブル論理デバイスを構成することから生じる半カスタム回路内に実装されてもよい。さらなる代替として、プロセッサは、市販、半カスタム、またはカスタムかどうかにかかわらず、より大きい回路または半導体デバイスの一部であってもよい。具体的実施例として、いくつかの市販のマイクロプロセッサは、１つまたはそれらのコアのサブセットがプロセッサを構成し得るように、複数のコアを有する。但し、プロセッサは、任意の好適なフォーマットにおける回路を使用して実装されてもよい。
【０３８４】
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの形態のうちのいずれかで具現化され得ることを理解されたい。加えて、コンピュータは、携帯情報端末（ＰＤＡ）、スマートフォン、または任意の好適な携帯用または固定電子デバイスを含む、概してコンピュータと見なされないが好適な処理能力を伴う、デバイスで具現化されてもよい。
【０３８５】
また、コンピュータは、１つ以上の入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザインターフェースを提示するために使用されることができる。ユーザインターフェースを提供するために使用され得る、出力デバイスの実施例は、出力の視覚的提示のためのプリンタまたはディスプレイ画面、または出力の可聴提示のためのスピーカまたは他の音生成デバイスを含む。ユーザインターフェースのために使用され得る、入力デバイスの実施例は、キーボード、およびマウス、タッチパッド、およびデジタル化タブレット等のポインティングデバイスを含む。別の実施例として、コンピュータは、発話認識を通して、または他の可聴フォーマットにおいて、入力情報を受信してもよい。図示される実施形態では、入力／出力デバイスは、コンピューティングデバイスと物理的に別個として図示される。しかしながら、いくつかの実施形態では、入力および／または出力デバイスは、プロセッサと同一ユニットまたはコンピューティングデバイスの他の要素の中に物理的に統合されてもよい。例えば、キーボードは、タッチスクリーン上のソフトキーボードとして実装され得る。いくつかの実施形態では、入力／出力デバイスは、コンピューティングデバイスから完全に接続解除され、無線接続を通して機能的に統合されてもよい。
【０３８６】
そのようなコンピュータは、企業ネットワークまたはインターネット等、ローカルエリアネットワークまたは広域ネットワークとしての形態を含む、任意の好適な形態の１つ以上のネットワークによって相互接続されてもよい。そのようなネットワークは、任意の好適な技術に基づいてもよく、任意の好適なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク、または光ファイバネットワークを含んでもよい。
【０３８７】
また、本明細書で概説される種々の方法およびプロセスは、種々のオペレーティングシステムまたはプラットフォームのうちのいずれか１つを採用する、１つ以上のプロセッサ上で実行可能である、ソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの好適なプログラミング言語および／またはプログラミングまたはスクリプト作成ツールのうちのいずれかを使用して、書き込まれてもよく、また、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードまたは中間コードとしてコンパイルされてもよい。
【０３８８】
本側面では、本開示は、１つ以上のコンピュータまたは他のプロセッサ上で実行されるときに、上記で議論される種々の実施形態を実装する方法を行う、１つ以上のプログラムで符号化される、コンピュータ可読記憶媒体（または複数のコンピュータ可読媒体）（例えば、コンピュータメモリ、１つ以上のフロッピー（登録商標）ディスク、コンパクトディスク（ＣＤ）、光学ディスク、デジタルビデオディスク（ＤＶＤ）、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイまたは他の半導体デバイス内の回路構成、または他の有形コンピュータ記憶媒体）として具現化されてもよい。前述の実施例から明白なように、コンピュータ可読記憶媒体は、非一過性形態においてコンピュータ実行可能命令を提供するために十分な時間の間、情報を留保し得る。そのようなコンピュータ可読記憶媒体または複数の媒体は、前述のように、その上に記憶される１つまたは複数のプログラムが、本開示の種々の側面を実装するように１つ以上の異なるコンピュータまたは他のプロセッサ上にロードされ得るように、トランスポータブルであることができる。本明細書で使用されるように、用語「コンピュータ可読記憶媒体」は、製造（すなわち、製造品）または機械と見なされ得るコンピュータ可読媒体のみを包含する。いくつかの実施形態では、本開示は、伝搬信号等のコンピュータ可読記憶媒体以外のコンピュータ可読媒体として具現化されてもよい。
【０３８９】
用語「プログラム」または「ソフトウェア」は、前述のように、本開示の種々の側面を実装するようにコンピュータまたは他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的意味において本明細書で使用される。加えて、本実施形態の一側面によると、実行されると、本開示の方法を行う、１つ以上のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はないが、本開示の種々の側面を実装するように、いくつかの異なるコンピュータまたはプロセッサの間でモジュール様式において分散され得ることを理解されたい。
【０３９０】
コンピュータ実行可能命令は、１つ以上のコンピュータまたは他のデバイスによって実行される、プログラムモジュール等の多くの形態であってもよい。概して、プログラムモジュールは、特定のタスクを行う、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態では、所望に応じて、組み合わせられる、または分散されてもよい。
【０３９１】
また、データ構造は、任意の好適な形態でコンピュータ可読媒体に記憶されてもよい。例証を簡単にするために、データ構造は、データ構造内の場所を通して関係付けられるフィールドを有することが示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ可読媒体内の場所を伴うフィールドのために記憶装置を割り当てることによって、達成されてもよい。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構の使用を通すことを含む、任意の好適な機構が、データ構造のフィールド内の情報の間の関係を確立するために使用されてもよい。
【０３９２】
本開示の種々の側面は、単独で、組み合わせて、または前述の実施形態に具体的に議論されない種々の配列において使用されてもよく、したがって、その用途は、前述の説明に記載される、または図面に図示されるコンポーネントの詳細および配列に限定されない。例えば、一実施形態に説明される側面は、他の実施形態に説明される側面と任意の様式で組み合わせられてもよい。
【０３９３】
また、本開示は、その実施例が提供されている、方法として具現化されてもよい。方法の一部として行われる作用は、任意の好適な方法で順序付けられてもよい。故に、例証的実施形態では、連続作用として示されるが、いくつかの作用を同時に行うことを含み得る、作用が図示されるものと異なる順序で行われる、実施形態が構築されてもよい。
【０３９４】
請求項要素を修飾するための請求項における「第１の」、「第２の」、「第３の」等の順序の用語の使用は、単独では、別の要素と比べた１つの請求項要素のいかなる優先順位、先行、または順序、または方法の行為が行われる時間順序も含意しないが、順序の用語は、請求項要素を区別するために、（順序の用語の使用のためであるが）ある名前を有する１つの請求項要素と、同一の名前を有する別の要素を区別する標識としてのみ使用される。
【０３９５】
また、本明細書で使用される語句および専門用語は、説明目的のためのものであって、限定と見なされるべきではない。本明細書の「〜を含む」、「〜を備える」、または「〜を有する」、「〜を含有する」、「〜を伴う」、およびその変形の使用は、その後列挙されたアイテムおよびその均等物および付加的アイテムを包含することを意味する。
【図１】
2021507403.tif 000003
【図２】
2021507403.tif 000004
【図３】
2021507403.tif 000005
【図４】
2021507403.tif 000006
【図５Ａ】
2021507403.tif 000007
【図５Ｂ】
2021507403.tif 000008
【図６】
2021507403.tif 000009
【図７Ａ】
2021507403.tif 000010
【図７Ｂ】
2021507403.tif 000011
【図７Ｃ】
2021507403.tif 000012
【図８Ａ】
2021507403.tif 000013
【図８Ｂ】
2021507403.tif 000014
【図８Ｃ】
2021507403.tif 000015
【図８Ｄ】
2021507403.tif 000016
【図８Ｅ】
2021507403.tif 000017
【図８Ｆ】
2021507403.tif 000018
【図９】
2021507403.tif 000019
【図１０Ａ】
2021507403.tif 000020
【図１０Ｂ】
2021507403.tif 000021
【図１１】
2021507403.tif 000022
【図１２】
2021507403.tif 000023
【図１３】
2021507403.tif 000024
【図１４】
2021507403.tif 000025
【図１５】
2021507403.tif 000026
【図１６】
2021507403.tif 000027
【図１７】
2021507403.tif 000028
【図１８】
2021507403.tif 000029
【図１９Ａ】
2021507403.tif 000030
【図１９Ｂ】
2021507403.tif 000031
【図１９Ｃ】
2021507403.tif 000032
【図１９Ｄ】
2021507403.tif 000033
【図１９Ｅ】
2021507403.tif 000034
【図１９Ｆ】
2021507403.tif 000035
【図２０Ａ】
2021507403.tif 000036
【図２０Ｂ】
2021507403.tif 000037
【図２１】
2021507403.tif 000038
【図２２】
2021507403.tif 000039
【図２３】
2021507403.tif 000040
【図２４】
2021507403.tif 000041
【図２５】
2021507403.tif 000042
【図２６Ａ】
2021507403.tif 000043
【図２６Ｂ】
2021507403.tif 000044
【図２７】
2021507403.tif 000045
【図２８Ａ】
2021507403.tif 000046
【図２８Ｂ】
2021507403.tif 000047
【図２８Ｃ】
2021507403.tif 000048
【図２９】
2021507403.tif 000049
【図３０】
2021507403.tif 000050
【図３１】
2021507403.tif 000051
【図３２Ａ】
2021507403.tif 000052
【図３２Ｂ】
2021507403.tif 000053
【図３２Ｃ】
2021507403.tif 000054
【図３２Ｄ】
2021507403.tif 000055
【図３３】
2021507403.tif 000056
【図３４】
2021507403.tif 000057
【図３５】
2021507403.tif 000058
【図３６】
2021507403.tif 000059
【図３７】
2021507403.tif 000060
【図３８】
2021507403.tif 000061
【図３９】
2021507403.tif 000062
【図４０】
2021507403.tif 000063
【図４１】
2021507403.tif 000064
【図４２】
2021507403.tif 000065
【図４３Ａ】
2021507403.tif 000066
【図４３Ｂ】
2021507403.tif 000067
【図４３Ｃ】
2021507403.tif 000068
【図４３Ｄ】
2021507403.tif 000069
【図４４】
2021507403.tif 000070
【図４５】
2021507403.tif 000071
【図４６】
2021507403.tif 000072
【図４７】
2021507403.tif 000073
【図４８】
2021507403.tif 000074
【図４９】
2021507403.tif 000075
【図５０】
2021507403.tif 000076
【図５１】
2021507403.tif 000077
【図５２】
2021507403.tif 000078
【図５３】
2021507403.tif 000079
【図５４Ａ】
2021507403.tif 000080
【図５４Ｂ】
2021507403.tif 000081
【国際調査報告】
2021507403.tif 000082
2021507403.tif 000083
2021507403.tif 000084