JP2023514796A - 物理物体による拡張現実内の仮想物体のオクルージョン - Google Patents

物理物体による拡張現実内の仮想物体のオクルージョン Download PDF

Info

Publication number
JP2023514796A
JP2023514796A JP2022534366A JP2022534366A JP2023514796A JP 2023514796 A JP2023514796 A JP 2023514796A JP 2022534366 A JP2022534366 A JP 2022534366A JP 2022534366 A JP2022534366 A JP 2022534366A JP 2023514796 A JP2023514796 A JP 2023514796A
Authority
JP
Japan
Prior art keywords
user
hand
virtual object
image
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022534366A
Other languages
English (en)
Inventor
スティーブ ジョン クローセット,
ウォーレン アンドリュー ハント,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2023514796A publication Critical patent/JP2023514796A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Abstract

一実施形態において、方法は、1つまたは複数のコンピュータ機器によって、ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることを含む。この方法は、少なくともイメージから、手の仮想物体表現を生成することを含む。仮想物体表現は、仮想環境において規定される。この方法は、仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体に基づいて、仮想環境のイメージをユーザの視点からレンダリングすることを含む。イメージは、ユーザの視点から視認可能な仮想物体表現の一部に対応する一組のピクセルを含む。この方法は、ヘッドマウントディスプレイの一組の発光体に対して、イメージを表示する命令を与えることを含む。イメージ中の一組のピクセルは、1つまたは複数の位置の発光体を非発光にする。【選択図】図6

Description

本開示は一般的に、人工現実環境用のグラフィックスの生成に関する。
人工現実感は、ユーザへの提示前に何らかの調整がなされた現実の一形態であって、たとえば仮想現実感(VR)、拡張現実感(AR)、複合現実感(MR)、混成現実感、またはこれらの何らかの組み合わせおよび/もしくは派生物を含み得る。人工現実感コンテンツとしては、完全生成コンテンツまたは取り込みコンテンツ(たとえば、現実世界の写真)と組み合わされた生成コンテンツが挙げられ得る。人工現実感コンテンツとしては、ビデオ、オーディオ、触覚フィードバック、またはこれらの何らかの組み合わせが挙げられ、これらのいずれかが単一のチャネルまたは複数のチャネルで提示され得る(視聴者に3次元効果を与える立体ビデオ等)。人工現実感は、たとえば人工現実感におけるコンテンツの生成および/または人工現実感における使用(たとえば、人工現実感における活動の実行)がなされるアプリケーション、製品、付属品、サービス、またはこれらの何らかの組み合わせと関連付けられている場合がある。人工現実感コンテンツを提供する人工現実感システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、独立型HMD、モバイル機器もしくはコンピュータシステム、または1人もしくは複数の視聴者に人工現実感コンテンツを提供可能なその他任意のハードウェアプラットフォームを含む、さまざまなプラットフォーム上で実装され得る。
本発明は、添付の特許請求の範囲に記載の方法、コンピュータ可読非一過性記憶媒体、およびシステムを対象とする。
特定の実施形態においては、人工現実感システムの1つまたは複数のコンピュータシステムによってある方法が実行される。これらのコンピュータシステムは、ヘッドマウントディスプレイまたは非携帯型のコンピュータシステムにおいて具現化されていてもよい。この方法は、ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることを含む。イメージは、ユーザの環境をさらに含んでいてもよい。イメージは、ヘッドマウントディスプレイの1つまたは複数のカメラにより生成されるようになっていてもよい。この方法は、少なくともイメージから、仮想環境において規定されたユーザの手の仮想物体表現を生成することを含んでいてもよい。ユーザの手の仮想物体表現は、仮想環境中のユーザの手の検出姿勢に基づいて作成された環境中のユーザの手を表す3次元メッシュに基づいて生成されるようになっていてもよい。この方法は、手の仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体に基づいて、仮想環境のイメージを仮想環境中のユーザの視点からレンダリングすることを含んでいてもよい。仮想環境中の視点は、実環境中のユーザの視点と仮想環境中のユーザの視点との間の対応関係に基づいて決定されるようになっていてもよい。レンダリングイメージは、ユーザの視点から視認可能な手の仮想物体表現の一部に対応する一組のピクセルを含んでいてもよい。一組のピクセルは、ユーザの手の仮想物体表現の少なくとも一部がユーザの視点から仮想環境中の他の仮想物体の前方となるものと判定することにより決定されるようになっていてもよい。この方法は、ヘッドマウントディスプレイの一組の発光体に対して、仮想環境のイメージを表示する命令を与えることであり、手の仮想物体表現の一部に対応するイメージ中の一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、仮想環境のイメージを表示する命令を与えることを含んでいてもよい。ヘッドマウントディスプレイの非発光の発光体は、ユーザの環境からの光を点灯し続けてユーザにより知覚されるようにしてもよい。
本発明に係る方法の一実施形態においては、非発光の特定位置の発光体が、ユーザの環境からの光を当該特定位置でユーザに対して点灯し続けるようになっていてもよい。
本発明に係る方法の一実施形態においては、ユーザの手を含むイメージが、ユーザの視点からのユーザの環境をさらに含んでいてもよい。
本発明に係る方法の一実施形態においては、少なくともイメージから、ユーザの手の仮想物体表現を生成することが、ユーザの手を含むイメージから決定されたユーザの手の姿勢に基づいて、ユーザの手の仮想物体表現の仮想環境中の位置を決定することを含んでいてもよい。
本発明に係る方法の一実施形態においては、ユーザの手の仮想物体表現のテクスチャが、発光体を非発光にする命令に対応していてもよい。
本発明に係る方法の一実施形態においては、ユーザの手の仮想物体表現が、仮想環境の背景とも関連付けられた色と関連付けられていてもよい。
本発明に係る方法の一実施形態においては、仮想環境のイメージをユーザの視点からレンダリングすることが、ユーザの手の仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体がユーザの視点から視認可能であるかを判定することを含んでいてもよい。また、この方法は、ユーザの視点を起点および方向の基準とする光線を仮想環境に投影することと、仮想環境において、ユーザの手の仮想物体表現との光線の交差点を決定することであり、光線が仮想環境中の別の物体と交差する前に仮想物体表現と交差する、仮想物体表現との光線の交差点を決定することと、によって、手の仮想物体表現の少なくとも一部が仮想環境中の少なくとも1つの他の仮想物体の前方となる1つまたは複数の位置を決定することをさらに含んでいてもよい。
本発明に係る方法の一実施形態においては、少なくともイメージから、ユーザの手の仮想物体表現を生成することが、
少なくともイメージから、手の姿勢を決定することと、
少なくともイメージおよび姿勢から、手の仮想物体表現の三角メッシュを生成することと、
少なくともイメージから、ユーザの視点からの手の距離を決定することと、
手の三角メッシュに基づいて、手の決定した距離からの手の1つまたは複数の位置の変化を示す高さマップを生成することと、
を含んでいてもよい。また、この方法は、高さマップに基づいて、特定位置の他の仮想物体と関連付けられた距離および高さマップに対して、手の距離および手の仮想物体表現と関連付けられた高さマップを比較することと、比較に基づいて、手の仮想物体表現が視点に最も近い物体であるものと判定することと、によって、手の仮想物体表現が仮想環境中の別の仮想物体の前方となる1つまたは複数の位置を決定することをさらに含んでいてもよい。
本発明に係る方法の一実施形態においては、仮想環境のイメージを表示する命令がさらに、少なくとも1つの他の仮想物体の一部がユーザの視点からユーザの手の仮想物体表現の前方となる1つまたは複数の位置で発光体を発光させるようにしてもよい。
本発明に係る方法の一実施形態においては、コンピュータ機器のうちの1つまたは複数がヘッドマウントディスプレイにおいて具現化されていてもよく、コンピュータ機器のうちの1つまたは複数が別個のコンピュータ機器である。また、この方法は、利用可能なコンピュータリソースの1つまたは複数のメトリックに基づいて、ヘッドマウントディスプレイのコンピュータ機器と別個のコンピュータ機器との間で当該方法のステップを配分することをさらに含んでいてもよい。
本発明に係る方法の一実施形態においては、イメージが、ヘッドマウントディスプレイの第1のカメラにより生成されるようになっていてもよく、ユーザの手の仮想物体表現を生成することが、ヘッドマウントディスプレイの第2のカメラにより生成された第2のイメージにアクセスすることと、イメージおよび第2のイメージに基づいて、ユーザの手をユーザの視点に対してローカライズすることと、をさらに含んでいてもよい。また、ユーザの手の仮想物体表現を生成することが、位置がユーザの手の位置に対応するアレイを生成することと、手の1つまたは複数の位置とユーザの視点との間の距離の値をアレイに格納することと、アレイをユーザの手の仮想物体表現と関連付けることと、をさらに含んでいてもよい。この代替または追加として、ヘッドマウントディスプレイの第2のカメラが、デプス検知カメラであってもよい。
一態様において、本発明は、実行された場合に、上述のような方法、または、
ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることと、
少なくともイメージから、仮想環境において規定されたユーザの手の仮想物体表現を生成することと、
手の仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体に基づいて、ユーザの視点から視認可能な手の仮想物体表現の一部に対応する一組のピクセルを含む仮想環境のイメージをユーザの視点からレンダリングすることと、
ヘッドマウントディスプレイの一組の発光体に対して、仮想環境のイメージを表示する命令を与えることであり、手の仮想物体表現の一部に対応するイメージ中の一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、仮想環境のイメージを表示する命令を与えることと、
を実行するように動作可能なソフトウェアを具現化した1つまたは複数のコンピュータ可読非一過性記憶媒体を対象とする。
コンピュータ可読非一過性記憶媒体の一実施形態においては、非発光の特定位置の発光体が、ユーザの環境からの光を当該特定位置でユーザに対して点灯し続けるようになっていてもよい。
本発明の実施形態は、人工現実感システムを含んでいてもよいし、人工現実感システムと併せて実現されるようになっていてもよい。人工現実感は、ユーザへの提示前に何らかの調整がなされた現実の一形態であって、たとえば仮想現実感(VR)、拡張現実感(AR)、複合現実感(MR)、混成現実感、またはこれらの何らかの組み合わせおよび/もしくは派生物を含み得る。人工現実感コンテンツとしては、完全生成コンテンツまたは取り込みコンテンツ(たとえば、現実世界の写真)と組み合わされた生成コンテンツが挙げられる。人工現実感コンテンツとしては、ビデオ、オーディオ、触覚フィードバック、またはこれらの何らかの組み合わせが挙げられ、これらのいずれかが単一のチャネルまたは複数のチャネルで提示され得る(視聴者に3次元効果を与える立体ビデオ等)。また、特定の実施形態において、人工現実感は、たとえば人工現実感におけるコンテンツの生成および/または人工現実感における使用(たとえば、人工現実感における活動の実行)がなされるアプリケーション、製品、付属品、サービス、またはこれらの何らかの組み合わせと関連付けられている場合がある。人工現実感コンテンツを提供する人工現実感システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、独立型HMD、モバイル機器もしくはコンピュータシステム、または1人もしくは複数の視聴者に人工現実感コンテンツを提供可能なその他任意のハードウェアプラットフォーム等、さまざまなプラットフォーム上で実装され得る。
本発明に係るシステムは、1つまたは複数のプロセッサと、プロセッサのうちの1つまたは複数に結合され、プロセッサのうちの1つまたは複数により実行された場合に、上述のような方法、または、
ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることと、
少なくともイメージから、仮想環境において規定されたユーザの手の仮想物体表現を生成することと、
手の仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体に基づいて、ユーザの視点から視認可能な手の仮想物体表現の一部に対応する一組のピクセルを含む仮想環境のイメージをユーザの視点からレンダリングすることと、
ヘッドマウントディスプレイの一組の発光体に対して、仮想環境のイメージを表示する命令を与えることであり、手の仮想物体表現の一部に対応するイメージ中の一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、仮想環境のイメージを表示する命令を与えることと、
を当該システムに実行させるように動作可能な命令を含む1つまたは複数のコンピュータ可読非一過性記憶媒体と、を備えていてもよい。
本発明に係るシステムの一実施形態においては、非発光の特定位置の発光体が、ユーザの環境からの光を当該特定位置でユーザに対して点灯し続けるようになっていてもよい。
本明細書に開示の実施形態は例示に過ぎず、本開示の範囲がこれらに限定されることはない。特定の実施形態は、本明細書に開示の実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含んでいてもよいし、一部を含んでいてもよいし、これらを含んでいなくてもよい。本発明に係る実施形態は特に、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲に開示しているが、ある請求カテゴリ(たとえば、方法)に記載の如何なる特徴も、別の請求カテゴリ(たとえば、システム)において同様に請求可能である。添付の特許請求の範囲における従属または前方参照は、形式的な理由で選定しているに過ぎない。ただし、任意の先行請求項に対する意図的な前方参照(特に、マルチ従属)の結果としての如何なる主題も同様に請求可能であるため、請求項およびその特徴の任意の組み合わせを開示するとともに、添付の特許請求の範囲において選定した従属に関わらずこれを請求可能である。請求可能な主題は、添付の特許請求の範囲に記載の特徴の組み合わせのみならず、特許請求の範囲の特徴のその他任意の組み合わせを含み、特許請求の範囲に記載の各特徴は、特許請求の範囲のその他任意の特徴または他の特徴の組み合わせと結合可能である。さらに、本明細書に記載または図示の実施形態および特徴はいずれも、別個の請求項における請求ならびに/または本明細書に記載もしくは図示の任意の実施形態もしくは特徴あるいは添付の特許請求の範囲の特徴のいずれかとの任意の組み合わせでの請求が可能である。
例示的な人工現実感システムを示した図である。 ヘッドセットシステムの例示的なアイディスプレイシステムを示した図である。 表示エンジンのシステム図である。 人工現実感システムを通して見られる例示的なイメージを示した図である。 人工現実感システムを通して見られる例示的なイメージを示した図である。 人工現実感システムを通して見られる例示的なイメージを示した図である。 人工現実感システムを通して見られる例示的なイメージを示した図である。 仮想物体オクルージョンを検出する間のユーザの手の視覚的表現を示した図である。 仮想環境のイメージを生成する視覚的表現を示した図である。 仮想環境のイメージを生成する視覚的表現を示した図である。 拡張現実内の仮想物体の現実世界物体オクルージョンを提供する例示的な方法を示した図である。 拡張現実内の仮想物体の現実世界物体オクルージョンを提供する例示的な方法を示した図である。 例示的なコンピュータシステムを示した図である。
特定の実施形態においては、人工現実感システムの1つまたは複数のコンピュータシステムによってある方法が実行される。これらのコンピュータシステムは、ヘッドマウントディスプレイまたは非携帯型のコンピュータシステムにおいて具現化されていてもよい。この方法は、ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることを含む。イメージは、ユーザの環境をさらに含んでいてもよい。イメージは、ヘッドマウントディスプレイの1つまたは複数のカメラにより生成されるようになっていてもよい。この方法は、少なくともイメージから、仮想環境において規定されたユーザの手の仮想物体表現を生成することを含んでいてもよい。ユーザの手の仮想物体表現は、仮想環境中のユーザの手の検出姿勢に基づいて作成された環境中のユーザの手を表す3次元メッシュに基づいて生成されるようになっていてもよい。この方法は、手の仮想物体表現および仮想環境中の少なくとも1つの他の仮想物体に基づいて、仮想環境のイメージを仮想環境中のユーザの視点からレンダリングすることを含んでいてもよい。仮想環境中の視点は、実環境中のユーザの視点と仮想環境中のユーザの視点との間の対応関係に基づいて決定されるようになっていてもよい。レンダリングイメージは、ユーザの視点から視認可能な手の仮想物体表現の一部に対応する一組のピクセルを含んでいてもよい。一組のピクセルは、ユーザの手の仮想物体表現の少なくとも一部がユーザの視点から仮想環境中の他の仮想物体の前方となるものと判定することにより決定されるようになっていてもよい。この方法は、ヘッドマウントディスプレイの一組の発光体に対して、仮想環境のイメージを表示する命令を与えることであり、手の仮想物体表現の一部に対応するイメージ中の一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、仮想環境のイメージを表示する命令を与えることを含んでいてもよい。ヘッドマウントディスプレイの非発光の発光体は、ユーザの環境からの光を点灯し続けてユーザにより知覚されるようにしてもよい。
本開示は、特定の実施形態において、ユーザに提示される仮想環境に物理物体を関連付ける、という課題に関する。拡張現実(AR)内では、実環境上の拡張レイヤとして仮想環境がユーザに表示され得る。これは、仮想環境中の視点に対する実環境中の視点の対応関係またはマッピングを生成することによってなされ得る。本開示の実施形態は、拡張現実内の仮想物体の物理物体(たとえば、ユーザの手)によるオクルージョンを効率的にレンダリングするタスクに関する。AR機器(たとえば、ヘッドマウントディスプレイ(HMD)等)を通してユーザの手が見える場合、ユーザは当然のことながら、ユーザの視線上の仮想物体の前方にあるはずの各手の部分がユーザの手の後方の仮想物体を遮蔽するものと予想する。逆に、ユーザの視線上で仮想物体の背後にある各手の如何なる部分も当然のことながら、仮想物体により遮蔽されることが予想される。たとえば、手に物体を握っている場合は、手の一部が物体の背後となり得る。ユーザは、手の背後の物体の部分が表示されるべきではないと予想し得るため、遮蔽された物体の前方にユーザ自身の物理的な手を見られるようになる。仮想物体の前方のユーザ自身の物理的な手または仮想物体と相互作用するユーザ自身の物理的な手のビューをユーザに提示することは、ユーザが拡張現実環境を快適に感じるための補助となり得る。たとえば、本開示の実施形態は、ユーザの乗り物酔いまたはシミュレーション酔いを抑えるのに役立ち得る。
現在のAR技術では、これらの課題を効率的に解決できない。ARエクスペリエンスを提示するための一般的な一手法において、ユーザは、標準的な画面(たとえば、スマートフォン画面)を通して環境を視認する。仮想環境は、カメラにより取り込まれた環境のイメージに重畳される。これには、環境のイメージを高速に取り込んで処理する必要があることから、かなりの演算リソースを必要とするため、モバイル機器のバッテリを急速に消耗させることになる。また、この種のエクスペリエンスは、小さな画面を通して環境を視認するに過ぎず、ユーザにとって特に没入感があるわけではない。関連の一手法において、仮想環境中の仮想物体の操作にユーザの手を使用可能な程度まで、利用可能なカメラ技術を用いてユーザの手を正確に検出することは、多くの現行システムには困難である。本明細書に開示のように、仮想環境中のユーザの手および当該環境においてユーザの手によりもたらされる効果を正確にモデル化し、これらの効果に基づいて仮想環境をレンダリングするための高度な技術が不足している。別の一例として、人工現実感システム用の現在のレンダリング手法では、ユーザが相当な長時間にわたって仮想環境を快適に体験できるような十分に高いフレームレートおよび品質レベルとして、ほとんどの仮想環境をレンダリングすることができない。本明細書に記載の通り、複合または拡張現実感エクスペリエンスに対しては、高フレームレートが特に好都合と考えられる。仮想物体とユーザの実環境との並置によって、ユーザは、レンダリングの技術的な不具合を直ちに判別可能となるためである。本明細書に記載の手法は、すべての技術的問題に対処する以上のものである。
本開示においては、ユーザの手の一例を与えるが、本明細書に記載の手法は他種の物体にも使用可能である。このような他の物体としては、ユーザの身体の他の部分、ユーザが保持する物体(たとえば、ペン等の指示具)、ユーザによる通過が指定された特定の物体(たとえば、ユーザの子またはペット)、ユーザもしくはARヘッドセットの提供者による通過が指定された一般の物体(たとえば、車両、他人)、ならびにその他多くの物体が挙げられる。実物体の通過(たとえば、手のオクルージョン)を可能にするため、ARヘッドセット(たとえば、HMD)上の1つまたは複数のカメラは、オクルージョンが判定される物体を含むシーンのイメージを取り込む。そして、コンピュータ機器(本明細書に記載の通り、HMDにおいて具現化されてもよいし、HMDと有線または無線で連通していてもよい)がハンドトラッキングアルゴリズムを実行することにより、イメージ中の手を検出する。そして、イメージ中の手の特徴(指および関節等)の位置が決定される。手の指および関節の検出位置に基づいて、手の仮想物体表現(たとえば、ユーザの手のように見える3次元メッシュ)が生成される。
コンピュータ機器は、ユーザの手から実環境中のユーザの視点までの距離を決定する。コンピュータ機器は、手の仮想物体表現から仮想環境中のユーザの視点までの距離に対して上記距離を相関させる。また、コンピュータ機器は、手のさまざまな領域の高さ情報を格納するグリッドを生成する。コンピュータ機器は、イメージおよび3次元メッシュから、手の各点の高さ(たとえば、手の平均もしくは中央高さまたは基準点に対する手の特定点の高さ)を決定する。決定された高さは、手のその他の部分に対する手の当該各点の位置を示す。この高さは、決定された距離との組み合わせにより、ユーザに対する手のさまざまな部分の厳密な位置を決定するのに使用可能である。
仮想環境をレンダリングしてユーザに提示する間、いずれの仮想物体よりもユーザに近い手の部分は、ユーザが視認できるようにする一方、少なくとも1つの仮想物体の背後にある手の部分は、遮蔽されるものとする。ユーザの実際の物理的な手は、ARシステムのHMDを通してユーザに視認可能とすることができる。特定の実施形態において、仮想環境中の仮想物体を表示するHMDの発光コンポーネント(たとえば、LED)は、実環境からの光がHMDを通過してユーザの眼に達し得るように、選択的に無効化可能である。すなわち、コンピュータ機器は、レンダリングイメージにおいて、手が現れる切り取りエリアを生成する。これにより、たとえば、ユーザの実際の物理的な親指の位置に対応するディスプレイの位置を照射しないように発光体に指示することにより、HMDを通してユーザが親指を視認できるようにし得る。発光体がオフされるため、その背後の如何なる仮想物体の部分も表示されない。
現実世界の物体オクルージョンを適正にレンダリングするため、物体の一部(たとえば、ユーザの手の一部)に対応する発光体は、手の当該部分が仮想環境中の如何なる仮想物体よりも実環境中のユーザに近い場合、オフされるか、または、発光しないように指示され、ユーザと手の当該部分との間に仮想物体が存在する場合、オンされるものとする。仮想環境中の仮想物体よりも実環境中のユーザから離れた物体の部分(たとえば、手の指)は、仮想物体を表示する発光体によって、仮想物体の背後にあるものとして示される。たとえば、現実世界の物体および仮想物体までの距離は、ハンドトラッキングアルゴリズムにより決定されるため、比較可能である。仮想物体の距離は、ARシステム上で実行され、ARシステムおよびHMDで利用可能なアプリケーションまたはシーンにより把握される。
ユーザの手の仮想物体表現および手の位置の既知の高さを所与として、ユーザが視認可能となるべき手の部分は、以下のようにHMDによって視認可能となり得る。ユーザの現在の姿勢(たとえば、位置および向き)に基づいて、仮想環境を示すフレームが30fps等の第1のフレームレートで基本レンダリングコンポーネントによりレンダリングされる。フレームのレンダリングの一部として、(1)3次元メッシュに基づく手の2次元不透明テクスチャおよび(2)手の高さマップ、という2つの項目が生成される。2次元テクスチャは、仮想物体表現に対する平面物体表現のテクスチャとして保存される(本開示の全体を通して、「サーフェス」とも称する)。これらの動作は、HMDにより実行されるようになっていてもよいし、HMDハードウェアと連通した別個のコンピュータ機器(たとえば、クラウドコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはモバイル機器)により実行されるようになっていてもよい。発光体は、テクスチャに対して特別に指定された色を使用することによって、発光しないように容易に指示可能である。ARにおいては、実環境からの光の通過を可能にするデフォルトの背景を有するのが望ましいと考えられる。このように、仮想物体が実環境に現れる際の没入感を大幅に向上可能である。したがって、背景は、発光体を発光させない指示に変換される色と関連付けられていてもよい。特定の実施形態においては、この色を「不透明黒」と称する場合もあるが、これは、たとえば当該テクスチャと関連付けられた物体の背後の光が透けて見えないことを意味する。仮想物体表現(たとえば、平面物体)は、このような色と関連付けられて、手を視認可能な場所のピクセルに対応するLEDをオフ(すなわち、非発光)にするようになっていてもよい。
その後、HMDは、過去に生成されたフレーム(たとえば、30fpsで生成されたフレーム)に基づいて、200fps等の第2のフレームレートでサブフレームをレンダリングする。各サブフレームについて、ARシステムは、ユーザの姿勢(主要な30fpsフレームの生成に用いられた姿勢と異なる可能性もある)に基づいて、仮想環境中の個々のピクセルまたはピクセルのタイルごとに、ユーザの現在の視点から仮想環境に1本または複数本の光線を投影することによって、基本視認性テストを実行するようにしてもよい。光線は、個々のピクセルの場合の光線であり、タイルの場合はピラミッドとして概念化されていてもよい。特定の実施形態において、仮想環境は、仮想物体の数が制限されていてもよい。たとえば、ARシステムは、仮想環境中の離散物体(ユーザの手を表すように生成された物体を含む)の数を制限するようにしてもよい。いくつかの実施形態においては、ある範囲のフレームにわたって同様に移動すると予測される複数の物体が一体的にグループ化されていてもよい。仮想物体は、対応する高さマップ情報を有する平面物体により表されていてもよい。投射光線は、ユーザの手に対応するサーフェスと交差する場合、関連するテクスチャをサンプリングしてサブフレームをレンダリングする。テクスチャが不透明黒であり、発光体が発光しないことを示すことから、実際の物理的な手は、透明なHMDの非発光エリアを通して視認可能である。
特定の実施形態において、ARシステムは、高さマップに基づくサーフェスごとのピクセル当たり高さテストをサポートしていてもよい。この場合、仮想物体の前方にある手の部分は、ピクセルレベルの解像度で仮想物体を遮蔽し得る。一方、仮想物体の背後にある同じ手のピクセルは、ディスプレイ中の仮想物体の個々のピクセルにより遮蔽され得る。高さマップを用いた実施形態において、ピクセル当たり高さテストは、ユーザの視点までの実物体または仮想物体のデプスと、高さマップに記録された差分と、に基づいて判定される。仮想物体に関するピクセル当たり高さを使用することによって、手のオクルージョンの見え方が大幅に改善される。
特定の実施形態において、ピクセル当たり高さ情報は、(たとえば、利用可能な演算リソースの制約により)利用不可能な場合もある。このような場合は、仮想物体表現のみにより、平面物体として手が表されるようになっていてもよい。上述の通り、平面物体のデプス(たとえば、平面物体から仮想環境中のユーザの視点までの距離)は、既知である。特定の実施形態においては、平面上の場所ごとに、数学的変換を用いてデプスが決定され得る。実物体の仮想物体表現(たとえば、平面物体)および仮想物体(それ自体がサーフェスにより表され得る)は、順序が物体のデプスに基づくサーフェスの順序付きグループ化を形成する。したがって、端部に対応する平面物体は、各平面の前方または背後にある。
上述の通り、高さマップを用いて仮想物体の実物体オクルージョンを決定すると、電力消費が増大し得る。たとえば、HMDが高さマップを生成する場合は、かなりのリソースが消費され得る。別の例として、HDMが別のコンピュータ機器により生成される場合は、高さマップのHMDへの送信が必要となり得る。ARシステムは、利用可能な電力に基づいて、高さマップを使用するか、および、高さマップの使用方法を決定するようにしてもよい。十分な電力が利用可能な場合は、高さマップを生成して送信することができる。利用可能な電力が不十分な場合、特にユーザの視点までの仮想物体の距離が大きな場合は、高さマップなしの平面の使用でも、手のオクルージョンの妥当な見え方を生成するのに十分となり得る。
特定の実施形態において、基本レンダリング機器(たとえば、HMD以外のコンピュータ機器)は、HMDよりも処理能力が高く、電力消費が多くてもよい。したがって、基本レンダリング機器は、本明細書に記載の技術の特定の部分を実行するようにしてもよい。たとえば、基本レンダリング機器は、ハンドトラッキング演算を実行するとともに、手の3次元メッシュ、2次元不透明テクスチャ、および高さマップを生成するようにしてもよい。たとえば、基本レンダリング機器は、HMDのカメラにより生成されたイメージを受信し、特定のタスクに対してより効率的または効果的となるように設計された特別なコンピュータハードウェアを用いて、必要な処理を実行するようにしてもよい。ただし、HMDは、十分は処理力および電力を有する場合、(たとえば、それ自体の搭載コンピュータコンポーネントを用いて)上記ステップのうちの1つまたは複数を実行することにより、レイテンシを抑えることができる。特定の実施形態においては、本明細書に記載のステップのすべてがHMD上で実行される。
図1Aは、例示的な人工現実感システム100を示している。特定の実施形態において、人工現実感システム100は、ヘッドセットシステム110(HMDにおいて具現化されていてもよい)、ボディウェアラブルコンピュータシステム120、クラウドコンピュータ環境130中のクラウドコンピュータシステム132等を具備していてもよい。特定の実施形態において、ヘッドセットシステム110は、データバス114を通して2つのアイディスプレイシステム116Aおよび116Bに接続された表示エンジン112を具備していてもよい。ヘッドセットシステム110は、ユーザの頭部に装着されて人工現実感または拡張現実感をユーザに与え得るヘッドマウントディスプレイ(HMD)を含むシステムであってもよい。ヘッドセットシステム110は、軽量で携帯性に優れるように設計されていてもよい。結果として、ヘッドセットシステムは、その電源(たとえば、バッテリ)で利用可能な電力が制限されている場合もある。表示エンジン112は、(たとえば、200Hz以上のリフレッシュレートのサポートに適した)比較的高いデータレートで、データバス114を通してアイディスプレイシステム116Aおよび116Bに表示データを提供するようにしてもよい。表示エンジン112は、1つまたは複数の制御ブロック、テクセルメモリ、変換ブロック、ピクセルブロック等を具備していてもよい。テクセルメモリに格納されたテクセルは、ピクセルブロックによりアクセスされ、アイディスプレイシステム116Aおよび116Bに提供されて表示されるようになっていてもよい。記載の表示エンジン112に関するその他の情報については、2019年10月1日に出願された米国特許出願第16/657,820号、2019年9月27日に出願された米国特許出願第16/586,590号、および2019年9月27日に出願された米国特許出願第16/586,598号に見出され得るが、これらを参照により本明細書に援用する。
特定の実施形態において、ボディウェアラブルコンピュータシステム120は、ユーザの身体に着用されるようになっていてもよい。特定の実施形態において、ボディウェアラブルコンピュータシステム120は、ユーザの身体に着用されないコンピュータシステム(たとえば、ラップトップ、デスクトップ、モバイルコンピュータシステム)であってもよい。ボディウェアラブルコンピュータシステム120は、1つもしくは複数のGPU、1つもしくは複数のスマートビデオデコーダ、メモリ、プロセッサ、ならびに他のモジュールを具備していてもよい。ボディウェアラブルコンピュータシステム120は、表示エンジン112以外の演算リソースを有していてもよいが、他の実施形態においては、その電源(たとえば、バッテリ)の電力が依然として制限されている場合もある。ボディウェアラブルコンピュータシステム120は、無線接続144を通してヘッドセットシステム110に結合されていてもよい。クラウドコンピュータシステム132は、高性能コンピュータ(たとえば、サーバ)を具備していてもよく、また、無線接続142を通してボディウェアラブルコンピュータシステム120と連通していてもよい。いくつかの実施形態において、クラウドコンピュータシステム132は、無線接続(図示せず)を通してヘッドセットシステム110とさらに連通していてもよい。ボディウェアラブルコンピュータシステム120は、(たとえば、30Hz以上のリフレッシュレートのサポートに適した)標準的なデータレートでレンダリングするデータを生成するようにしてもよい。表示エンジン112は、ボディウェアラブルコンピュータシステム120から受信したデータをアップサンプリングして、より高いフレームレート(たとえば、200Hz以上)でアイディスプレイシステム116Aおよび116Bにより表示されるフレームを生成するようにしてもよい。
図1Bは、ヘッドセットシステム110の例示的なアイディスプレイシステム(たとえば、116Aまたは116B)を示している。特定の実施形態において、アイディスプレイシステム116Aは、ドライバ154、瞳ディスプレイ156等を具備していてもよい。表示エンジン112は、(たとえば、200Hz以上のリフレッシュレートのサポートに適した)高いデータレートで、瞳ディスプレイ156、データバス114、およびドライバ154に表示データを提供するようにしてもよい。
図2は、表示エンジン112のシステム図である。特定の実施形態において、表示エンジン112は、制御ブロック210、変換ブロック220Aおよび220B、ピクセルブロック230Aおよび230B、表示ブロック240Aおよび240B等を具備していてもよい。表示エンジン112の構成要素のうちの1つまたは複数が高速バス、共有メモリ、またはその他の任意好適な方法によって通信するように構成されていてもよい。図2に示すように、表示エンジン112の制御ブロック210は、変換ブロック220Aおよび220B、ピクセルブロック230Aおよび230B、ならびに表示ブロック240Aおよび240Bと連通するように構成されていてもよい。本明細書においてさらに詳しく説明する通り、この連通には、データの他、制御信号、割り込み、および他の命令を含んでいてもよい。
特定の実施形態において、制御ブロック210は、ボディウェアラブルコンピュータシステム(たとえば、図1Aの120)から入力を受信し、表示エンジン112のパイプラインを初期化して、表示のためのレンダリングを完了するようにしてもよい。特定の実施形態において、制御ブロック210は、ボディウェアラブルコンピュータシステムから第1のデータレートまたはフレームレートでデータおよび制御パケットを受信するようにしてもよい。データおよび制御パケットには、テクスチャデータおよび位置データを含む1つもしくは複数のデータ構造ならびに付加的なレンダリング命令等の情報を含んでいてもよい。特定の実施形態において、データ構造には、2次元レンダリング情報を含んでいてもよい。本明細書においては、データ構造を「サーフェス」と称する場合もある。制御ブロック210は、必要に応じて表示エンジン112の1つまたは複数の他のブロックにデータを分配するようにしてもよい。制御ブロック210は、表示される1つまたは複数のフレームのパイプライン処理を開始するようにしてもよい。特定の実施形態において、アイディスプレイシステム116Aおよび116Bはそれぞれ、それ自体の制御ブロック210を備えていてもよい。特定の実施形態においては、アイディスプレイシステム116Aおよび116Bのうちの1つまたは複数が制御ブロック210を共有するようにしてもよい。
特定の実施形態において、変換ブロック220Aおよび220Bは、人工現実感シーンにおいて表示されるサーフェスの初期視認性情報を決定するようにしてもよい。一般的に、変換ブロック220Aおよび220Bは、表示されるイメージ中のピクセル場所を起点の基準とする光線を投影するとともに、ピクセルブロック230Aおよび230Bに送るフィルタコマンド(たとえば、双線形等の種類の補間技術に基づくフィルタリング)を生成するようにしてもよい。変換ブロック220Aおよび220Bは、ユーザの実環境または仮想環境中のユーザの現在の視点に基づいて、光線投影を実行するようにしてもよい。ユーザの視点は、1つまたは複数のカメラ(たとえば、モノクロ、フルカラー、デプス検知)、慣性計測ユニット、アイトラッカ、および/または任意好適なトラッキング/ローカライズアルゴリズム(たとえば、サーフェスが位置決めされ、ピクセルブロック230Aおよび230Bに送る結果を生成可能な環境および/または仮想シーン中の同時ローカライズ・マッピング(SLAM))等、ヘッドセットのセンサを用いて決定されるようになっていてもよい。
一般的に、特定の実施形態によれば、変換ブロック220Aおよび220Bはそれぞれ、4段階のパイプラインを備えていてもよい。変換ブロック220Aまたは220Bの段階は、以下のように進み得る。光線投影器は、タイルと称する1つまたは複数の整列したピクセルのアレイに対応する光線束を放出するようにしてもよい(たとえば、各タイルは、16×16の整列したピクセルを含んでいてもよい)。光線束は、人工現実感シーンに入る前に、1つまたは複数の歪みメッシュに従って、ワーピングされるようになっていてもよい。歪みメッシュは、少なくともヘッドセットシステム110のアイディスプレイシステム116Aおよび116Bに起因する幾何学的歪み効果を補正するように構成されていてもよい。特定の実施形態において、変換ブロック220Aおよび220Bは、各タイルの境界ボックスをサーフェスの境界ボックスと比較することによって、各光線束がシーン中のサーフェスと交差するかを判定するようにしてもよい。光線束は、物体と交差しない場合、破棄されるようになっていてもよい。タイル-サーフェス交差が検出され、対応するタイル-サーフェス対がピクセルブロック230Aおよび230Bに受け渡される。
一般的に、特定の実施形態によれば、ピクセルブロック230Aおよび230Bは、タイル-サーフェス対から色値を決定して、ピクセル色値を生成するようにしてもよい。各ピクセルの色値は、制御ブロック210により受信・格納されたサーフェスのテクスチャデータからサンプリングされるようになっていてもよい。ピクセルブロック230Aおよび230Bは、変換ブロック220Aおよび220Bからタイル-サーフェス対を受信するとともに、双線形フィルタリングをスケジューリングするようにしてもよい。ピクセルブロック230Aおよび230Bは、タイル-サーフェス対ごとに、投射タイルがサーフェスと交差する場所に対応する色値を用いて、タイルに対応するピクセルの色情報をサンプリングするようにしてもよい。特定の実施形態において、ピクセルブロック230Aおよび230Bは、ピクセルごとに、赤、緑、および青の色成分を別々に処理するようにしてもよい。特定の実施形態において、本明細書に記載の通り、ピクセルブロックは、サーフェスと関連付けられた色(たとえば、色および不透明度)に基づいて、1つまたは複数の処理のショートカットを採用するようにしてもよい。特定の実施形態において、第1のアイディスプレイシステム116Aの表示エンジン112のピクセルブロック230Aは、第2のアイディスプレイシステム116Bの表示エンジン112のピクセルブロック230Bと独立かつ並列に進行するようになっていてもよい。その後、ピクセルブロックは、その色決定結果を表示ブロックに出力するようにしてもよい。
一般的に、表示ブロック240Aおよび240Bは、ピクセルブロック230Aおよび230Bからピクセル色値を受信し、データのフォーマットを変換しディスプレイにより適するようにし(たとえば、ディスプレイがスキャンライン表示におけるような特定のデータフォーマットを必要とする場合)、1つまたは複数の輝度補正をピクセル色値に適用し、ディスプレイへの出力のためにピクセル色値を準備してもよい。表示ブロック240Aおよび240Bは、表示ブロック240Aおよび240Bは、ピクセルブロック230Aおよび230Bにより生成されたタイル順ピクセル色値を物理的ディスプレイに求められ得るスキャンラインまたは行順データへと変換するようにしてもよい。輝度補正には、任意の必要な輝度補正、ガンママッピング、およびディザリングを含んでいてもよい。表示ブロック240Aおよび240Bは、補正されたピクセル色値を直接、物理的ディスプレイ(たとえば、ドライバ154を介して図1Bの瞳ディスプレイ156)に出力するようにしてもよいし、多様なフォーマットにて、表示エンジン112の外部のブロックに出力するようにしてもよい。たとえば、アイディスプレイシステム116Aおよび116Bまたはヘッドセットシステム110は、バックエンド色処理の別途カスタマイズ、ディスプレイに対するより広いインターフェースのサポート、または表示速度もしくは忠実度の最適化のための付加的なハードウェアまたはソフトウェアを備えていてもよい。
特定の実施形態において、制御ブロック210は、マイクロコントローラ212、テクセルメモリ214、メモリコントローラ216、I/O通信用のデータバス217、入力ストリームデータ205用のデータバス218等を具備していてもよい。メモリコントローラ216およびマイクロコントローラ212は、I/O通信用のデータバス217を通して、システムの他のモジュールと結合されていてもよい。マイクロコントローラ212は、データバス217を通して、位置データおよびサーフェス情報等の制御パッケージを受信するようにしてもよい。入力ストリームデータ205は、マイクロコントローラ222により設定された後のボディウェアラブルコンピュータシステムから制御ブロック210への入力であってもよい。入力ストリームデータ205は、メモリコントローラ216によって所要のテクセルフォーマットに変換され、テクセルメモリ214に格納されるようになっていてもよい。特定の実施形態において、テクセルメモリ214は、スタティックランダムアクセスメモリ(SRAM)であってもよい。
特定の実施形態において、ボディウェアラブルコンピュータシステムは、入力ストリームデータ205をメモリコントローラ216に送信するようにしてもよく、メモリコントローラ216は、入力ストリームデータを所要フォーマットのテクセルに変換して、スウィズルパターンでテクセルメモリ214に格納するようにしてもよい。これらのスウィズルパターンで編成されたテクセルメモリによれば、1回の読み取り動作によって、タイル(たとえば、「タイル」は、16×16ピクセルのブロック等、ピクセルの整列ブロックを表す)と関連付けられたすべてのピクセルの少なくとも1つの色成分(たとえば、赤、緑、および/または青)の決定に必要な(たとえば、4×4テクセルブロック中の)テクセルをピクセルブロック230Aおよび230Bにより読み出し可能となり得る。結果として、表示エンジン112は、テクセルアレイが適当なパターンで格納されていない場合にテクセルアレイの読み取りおよび組み立てに通常必要となる過剰な多重化動作を回避可能となるため、表示エンジン112およびヘッドセットシステム全体の演算リソース要件および電力消費を抑えることができる。
特定の実施形態において、ピクセルブロック230Aおよび230Bは、テクセルメモリ212から読み出されたテクセルに基づいて、表示用のピクセルデータを生成するようにしてもよい。メモリコントローラ216は、2つの256ビットデータバス204Aおよび204Bそれぞれを通して、ピクセルブロック230Aおよび230Bに結合されていてもよい。ピクセルブロック230Aおよび230Bは、各変換ブロック220Aおよび220Bからタイル-サーフェス対202Aおよび202Bを受信するとともに、タイルと関連付けられたすべてのピクセルの少なくとも1つの色成分の決定に必要なテクセルを識別するようにしてもよい。ピクセルブロック230Aおよび230Bは、メモリコントローラ216ならびに256ビットデータバス204Aおよび204Bを通して、テクセルメモリ214から識別したテクセル(たとえば、4×4テクセルアレイ)を並列に読み出すようにしてもよい。たとえば、タイルと関連付けられたすべてのピクセルの少なくとも1つの色成分の決定に必要な4×4テクセルアレイは、1つのメモリブロックに格納されるとともに、1回のメモリ読み取り動作によって読み出されるようになっていてもよい。ピクセルブロック230Aおよび230Bは、複数のサンプルフィルタブロック(たとえば、色成分ごとに1つ)を用いて、さまざまなテクセル群の補間を並列に実行することにより、対応するピクセルの対応する色成分を決定するようにしてもよい。各眼に対するピクセル値203Aおよび203Bは、表示ブロック240Aおよび240Bに送られて、それぞれがアイディスプレイシステム116Aおよび116Bにより表示される前に、さらに処理されるようになっていてもよい。
特定の実施形態において、人工現実感システム100、特に、ヘッドセットシステム110は、ユーザに対する拡張現実環境のレンダリングに用いられるようになっていてもよい。拡張現実環境は、仮想要素がユーザの実環境またはその一部の上に現れるように、ユーザに対してレンダリングされた仮想現実環境の要素(たとえば、仮想現実物体)を含んでいてもよい。たとえば、ユーザは、本明細書に開示の技術の特徴を具現化したHMD(たとえば、ヘッドセットシステム110)を装着していてもよい。HMDは、ユーザの環境からの光をユーザの眼に対して普通に点灯し続け得るディスプレイを包含していてもよい。ただし、ディスプレイの発光コンポーネント(たとえば、LED、OLED、マイクロLED等)がディスプレイ中の特定の位置で発光する場合は、LEDの色がユーザの環境上に重畳されるようになっていてもよい。このため、ディスプレイの発光体が発光する場合は仮想物体がユーザの実環境の前方に現れ得る一方、特定の位置の発光コンポーネントが非発光の場合は、ユーザの環境がディスプレイを通して当該位置で視認可能となり得る。これは、環境を再レンダリングするためのカメラの使用なく実現されるようになっていてもよい。この手順は、人工現実感システム100を使用するユーザの没入感および快適性を向上させると同時に、仮想環境のレンダリングに要する演算能力およびバッテリ消費を低減可能である。
特定の実施形態においては、選択的に発光したディスプレイの使用によって、仮想環境中の仮想物体とのユーザの相互作用を容易化するようにしてもよい。たとえば、ユーザの手の位置が追跡されるようになっていてもよい。従来のシステムにおいて、ユーザの手を仮想環境中に表す唯一の方法は、ハンドトラッキングシステムであっても、手の何らかの仮想表現を生成してレンダリングすることである。これは、多くの使用シナリオにおいて、不適当と考えられる。たとえば、職場環境において、ユーザが物体と相互作用する場合には、ユーザの手自体を視認可能となるのが望ましいと考えられる。たとえば、アーティストは、仮想絵筆等のツールを保持している場合に、それぞれの手を見るようにするのが望ましいと考えられる。本明細書においては、このように高度な表示を可能にする技術を開示する。
図3Aは、人工現実感表示システムを通してユーザが自身の手を見る例を示したユーザのヘッドセット内ビューの一例を示している。ヘッドセット内ビュー300は、仮想物体304のビューおよびユーザの物理的な手302のビューを含む合成(たとえば、複合)現実感ディスプレイを示している。ユーザは、仮想物体304のボタンを押そうとしている。このため、ユーザの手302は、仮想物体304の部分よりもユーザの視点に近い。これは、ボタン(たとえば、エレベータのボタン)を押そうとした場合に、エレベータのボタンおよびパネルの部分の前方に手が現れるように、ユーザの普通の直感と一致する。
図3Bは、同じシーンの代替ビューを示している。図3Aがユーザのヘッドセット内ビュー300を示しているのに対して、図3Bは、ヘッドセットシステムの発光コンポーネントにより表示されたピクセル310のみを示している。これらのピクセルは、仮想物体304の表現を含む。ただし、表示システム中の発光した如何なる発光体によっても、仮想物体304が環境に重畳して表示されることになるため、仮想物体304のレンダリングは、(図3Aのように)ディスプレイによってユーザの手を表示可能となるように修正の必要がある。このため、仮想物体304のレンダリングは、ユーザの手の形状を忠実にトレースする切り取りを含むように修正される。仮想環境の表示に際しては、切り取り部が非発光ピクセル領域312として処理される。言い換えると、仮想物体304の色を普通に表示することになる発光コンポーネントは、その代わりとして、発光しないように指示される。その結果としての印象は、ユーザの環境の光を透過させ得るため、図3Aに示す合成効果が得られる。
図4Aは、ユーザのヘッドセット内ビューの別の例を示している。図4Aにおいて、ヘッドセット内ビュー400は、指を巻き付けることによって仮想物体404と相互作用するユーザを示している。ユーザの物理的な手402のビューは、ユーザの手の一部(たとえば、ユーザの手の掌の近く)を遮蔽するとともに、ユーザの手402(たとえば、ユーザの指)によって部分的に遮蔽された仮想物体404を示している。ユーザは、本明細書に記載の部分的レンダリング技術によって、物体を物理的に感じていなくても、仮想物体404を保持していることをより直感的に理解可能となり得る。
図4Bは、図4Aに示すシーンの代替ビューを示している。図3Bと同様に、図4Bは、ヘッドセットシステムの発光コンポーネントにより表示されたピクセル410のみを示している。これらのピクセルは、仮想物体404の表現を含む。仮想物体404のうち、仮想環境および実環境のヘッドセット内ビューにおいてユーザの手により遮蔽された領域は、表示されていない(たとえば、仮想物体は、非発光ピクセル領域412を含む)。なお、図4Bは、シーン中のユーザの手の場所を決定し、ユーザの手を常に表示するだけでは不十分となることを示している。ここで、図4Aおよび図4Bに示したものの反例を考える。ユーザの手が常に、任意の仮想物体の前方に現れるようになされると、人工現実感システム100は、ユーザの手の一部が仮想物体404により遮蔽された図4Aに示すようなシナリオをレンダリングできなくなる。そこで、仮想物体と相互作用する複合現実環境においてユーザの手を正確に表示するには、ユーザの手の個々の部分のデプス(たとえば、当該点とユーザの視点との間の距離)を追跡して、仮想物体のデプスと比較する必要がある。
図5は、仮想物体を遮蔽するユーザの手の部分または仮想物体により遮蔽されるユーザの手の部分を決定する際のユーザの手のイメージの処理に関するグラフィカル表現を示している。図5は、本開示において使用されるユーザの手およびその仮想表現のイメージの状態を生成する方法を示すものと了解され得る。図5に示す例は、図3Aおよび図3Bの例の続きである。ヘッドセットシステム110の1つまたは複数のカメラによって、ユーザの物理的な手の1つまたは複数のイメージ302が取り込まれる。コンピュータシステム(いくつかの実施形態においては、ヘッドセットシステム110またはボディウェアラブルコンピュータシステム120を含んでいてもよい)がハンドトラッキングアルゴリズムを実行し、ユーザの手の上のさまざまな離散場所の相対的な位置に基づいて、ユーザの手の姿勢を決定する。たとえば、ハンドトラッキングアルゴリズムは、指先、関節、掌、手の甲、およびユーザの手の他の明確な部分の場所を検出するようにしてもよい。また、コンピュータシステムは、ユーザの手のデプス(たとえば、カメラにより表される通り、ユーザの手と視点との間の距離)を決定するようにしてもよい。
コンピュータシステムは、決定した姿勢から、手の3Dメッシュ502を生成する。3Dメッシュは、ユーザの手の仮想物体表現を含んでいてもよい。特定の実施形態において、3Dメッシュは、没入型人工現実感シーンにおいてユーザの手の表現をレンダリングするのに生成され得る3Dメッシュに類似していてもよい。また、コンピュータシステムは、3Dメッシュの高さグリッド504のオーバーレイを生成する。コンピュータシステムは、3Dメッシュに基づいて高さグリッドを生成するようにしてもよい。たとえば、コンピュータシステムは、(たとえば、ユーザの掌等のランドマーク位置に基づいて)手の固定平面を決定するようにしてもよい。コンピュータシステムは、3Dメッシュに基づいて固定平面からの変化を決定することにより、特定の位置(たとえば、指先、関節等)のデプスが固定平面のデプスから逸脱しているものと判定するようにしてもよい。これらの点における変化は、高さグリッドに格納されていてもよい。また、コンピュータシステムは、既知の距離(たとえば、追跡位置)を補間して推定距離を決定することにより、3Dメッシュの位置における高さを計算するようにしてもよい。
上述の通り、3Dメッシュ502および高さグリッド504は、ボディウェアラブルコンピュータシステム120およびヘッドセットシステム110の利用可能な演算リソースおよび電力リソースに基づいて、ボディウェアラブルコンピュータシステム120により生成されるようになっていてもよい。人工現実感システム100は、レンダリングレイテンシおよびグラフィカル品質といった検討事項を人工現実感システム100に関わるコンピュータシステムの演算応力、メモリ可用性、電力可用性等のリソースの可用性とバランスさせようとしてもよい。たとえば、人工現実感システム100は、手の追跡、3Dメッシュ502の生成、および高さグリッド504の生成等のタスクをどのコンピュータシステムが取り扱うかを積極的に管理するようにしてもよい。人工現実感システム100は、ヘッドセットシステムが十分なバッテリ電力およびプロセッサ可用性を有するものと判定して、ヘッドセットシステム110にこれらのステップの実行を指示するようにしてもよい。特定の実施形態においては、レンダリングプロセスのうちの可能な限り多くをヘッドセットシステム110が取り扱えるようにして、ヘッドセットシステム110とボディウェアラブルコンピュータシステム120との間のデータ転送によりもたらされるレイテンシを抑えるのが好ましいと考えられる。
3Dメッシュ502および高さグリッド504は、フレームレンダリング器506に受け渡されるようになっていてもよい。特定の実施形態において、フレームレンダリング器は、ボディウェアラブルコンピュータシステム120において具現化されていてもよいし、ヘッドセットシステム110よりも利用可能な演算リソースが多い別のコンピュータ機器において具現化されていてもよい。フレームレンダリング器506は、3Dメッシュ502の境界に基づく2次元仮想物体プリミティブを含むサーフェス表現へと3Dメッシュ502を変換するようにしてもよい。サーフェスには、ユーザの手の2Dテクスチャ508を含んでいてもよい。特定の実施形態において、2Dテクスチャ508は、ユーザの手を表すものとしてサーフェスにフラグ付けする特定の色と関連付けられていてもよい。特定の実施形態において、テクスチャの色は、不透明黒として指定されていてもよく、これは、テクスチャの「表示」に際して、いずれの発光コンポーネントも発光せず、仮想環境のレンダリングに際して、(たとえば、仮想物体からの)光がサーフェスを通過できないものとすることを意味する。また、サーフェスは、高さグリッド504の位置および任意の補間位置を当該サーフェスの特定位置にマッピングする高さマップ510と関連付けられていてもよい。特定の実施形態においては、2Dテクスチャ508および高さマップ510の位置間に(たとえば、ピクセル当たりのレベルの)直接的な対応関係が存在していてもよく、高さグリッド504は、処理の必要性から、より粗い解像度を有していてもよい。フレームレンダリング器506は、これらのステップを実行するのと同時に、仮想環境中の仮想物体のサーフェス表現を生成するようにしてもよい。フレームレンダリング器506は、仮想環境中のユーザの視点に基づいて、サーフェス表現を生成するようにしてもよい。たとえば、ヘッドセットシステム110は、当該ヘッドセットシステム110による仮想環境中のユーザの向きの決定を可能にする多様なセンサを具備していてもよい。フレームレンダリング器506は、適当に位置決めされた2Dサーフェスを用いてユーザの視点に基づく3D物体を表現可能である、という考えにより、サーフェスの生成に際して、この向き情報を使用するようにしてもよい。2Dテクスチャ508および高さマップ510を含む生成サーフェスは、サブフレームレンダリング器512に受け渡されるようになっていてもよい。
サブフレームレンダリング器512は、ユーザの手の仮想物体表現(たとえば、サーフェス)の基本視認性判定の実行を担い得る。本明細書においてさらに詳しく説明する通り、基本視認性判定には、仮想シーンへの光線投影を実行することと、光線のいずれかについて、ユーザの手のサーフェス表現が最初に交差するサーフェスであるかを判定することと、を含んでいてもよい。これは、ユーザの手が仮想環境中の仮想物体のその他の部分を遮蔽するため、ユーザに対して表示されるはずであることを示す。サブフレームレンダリング器512は、フレームレンダリング器506よりも高いレートでフレーム(たとえば、表示されるイメージ)を生成し得ることから、このような名称となっている。たとえば、フレームレンダリング器506が1秒当たり60フレームでデータを生成可能な場合、サブフレームレンダリング器512は、1秒当たり200フレームでデータを生成可能である。サブフレームレンダリング器512は、その基本視認性判定の実行に際して、(たとえば、フレームレンダリング器506からのデータ受信により更新された)ユーザの更新視点を使用することにより、(たとえば、対応するサーフェスの見え方を修正することによって)任意の仮想物体の視認性および位置決めを微調節するようにしてもよい。特定の実施形態においては、レイテンシをさらに抑えるため、フレームを出力する表示システムに対して可能な限り近くなるように、サブフレームレンダリング器512がヘッドセットシステム110において具現化されていてもよい。これは、ユーザの(たとえば、頭部または眼の)動きと(その動きを含む)ユーザに表示されるイメージとの間のレイテンシを抑えることになる。
図6は、本明細書に論じる実施形態に係る、ユーザの仮想シーンのイメージを生成するプロセスを示している。図6は、図3A、図3B、および図5に示す例を基礎として続くものである。まず、ヘッドセットシステム110のカメラがユーザの環境のイメージを取り込む。このイメージには、シーン中の仮想物体を遮蔽する物体(ユーザの手等)を含む。これと同時に、ヘッドセットシステム110は、第1のユーザ姿勢600を決定する。第1のユーザ姿勢600は、(たとえば、SLAMまたは別のローカライズ技術を用いて)取り込んだ1つまたは複数のイメージにより決定されるようになっていてもよい。第1のユーザ姿勢600は、ヘッドセットシステムの1つまたは複数の搭載センサ(たとえば、慣性計測ユニット)に基づいて決定されるようになっていてもよい。たとえばヘッドセットシステム110またはボディウェアラブルコンピュータシステム120が取り込んだイメージを使用して、ハンドトラッキングを実行するとともに、3Dメッシュ502および高さグリッド504を生成するようにしてもよい。第1のユーザ姿勢600、3Dメッシュ502、および高さグリッド504は、フレームレンダリング器506に受け渡されるようになっていてもよい。
上述の通り、フレームレンダリング器506は、3Dメッシュ502および高さグリッド504に基づいて、フレーム602に用いられるユーザの手のサーフェス仮想物体表現を生成するようにしてもよい。このサーフェスには、2D不透明テクスチャ508、高さマップ510、および仮想環境においてユーザの手を表すのに必要な他の情報(環境中のユーザの手の場所、サーフェスの境界等)を含んでいてもよい。また、フレームレンダリング器506は、仮想環境中の他の仮想物体604を表すサーフェスを生成するようにしてもよい。フレームレンダリング器506は、この情報の生成に必要な計算を実行することにより、第1のフレームレート(たとえば、60fps)をサポートするようにしてもよい。フレームレンダリング器は、これらすべての情報を(たとえば、フレームレンダリング器506がボディウェアラブルコンピュータにおいて具現化されている場合は、無線接続によって)サブフレームレンダリング器512に受け渡すようにしてもよい。
サブフレームレンダリング器512は、仮想物体604のサーフェスおよびユーザの手の仮想物体表現を受信するようにしてもよい。サブフレームレンダリング器512は、仮想シーン606中のサーフェスの視認性判定を実行するようにしてもよい。サブフレームレンダリング器512は、第2のユーザ姿勢608を決定するようにしてもよい。第2のユーザ姿勢608は、第1のユーザ姿勢600と異なっていてもよい。第1のユーザ姿勢600が生成フレームごとに更新されても、ユーザは、わずかに移動し得るためである。ユーザの姿勢の更新を考慮しないと、人工現実感システム100の使用中にユーザの不快感が大幅に増大する可能性がある。視認性判定には、ヘッドセットシステム110のディスプレイ中の位置および第2のユーザ姿勢608を複数の光線(たとえば、光線610a、610b、610c、および610d)それぞれの起点の基準とする第2のユーザ姿勢608に基づいて、仮想環境への光線投影を実行することを含んでいてもよい。特定の実施形態において、光線投影は、表示エンジン112の変換ブロック220Aおよび220Bにより実行される光線投影に類似していてもよいし、当該光線投影が実行されるようになっていてもよい。
サブフレームレンダリング器512は、視認性判定に用いられる光線ごとに、当該光線を仮想環境に投影し、当該光線が仮想環境中のサーフェスと交差するかを判定するようにしてもよい。特定の実施形態においては、サーフェス当たりのレベルでデプステスト(たとえば、最初に交差するサーフェスの決定)が実行されるようになっていてもよい。すなわち、各サーフェスは、サブフレームレンダリング器512(または、変換ブロック220Aおよび220B)による交差サーフェスの迅速な識別を可能にする高さまたはデプス値を1つだけ有していてもよい。たとえば、サブフレームレンダリング器512は、光線610aを仮想環境に投影し、仮想物体304に対応するサーフェスと当該光線が最初に交差するものと判定するようにしてもよい。サブフレームレンダリング器512は、光線610bを仮想環境に投影し、ユーザの手に対応するサーフェス612の近くの点で当該光線が仮想物体304と交差するものと判定するようにしてもよい。サブフレームレンダリング器は、光線610cを仮想環境に投影し、ユーザの手に対応するサーフェス612と当該光線が最初に交差するものと判定するようにしてもよい。サブフレームレンダリング器512は、光線610dを仮想環境に投影し、仮想環境中の如何なる物体とも当該光線が交差しないものと判定するようにしてもよい。
環境に投射された各光線は、ユーザに表示されるイメージの1つまたは複数のピクセルに対応していてもよい。光線に対応するピクセルには、交差するサーフェスに基づいて色値が割り当てられていてもよい。たとえば、光線610aおよび610bと関連付けられたピクセルには、(たとえば、サーフェスと関連付けられたテクスチャ値のサンプリングにより)仮想物体304に基づいて、色値が割り当てられていてもよい。光線610cと関連付けられたピクセルには、サーフェス612に基づいて、色値が割り当てられていてもよい。特定の実施形態において、色値は、不透明(たとえば、混じり気なし、または、光が通過)ならびに暗もしくは黒の両者として指定されることにより、最終的にレンダリングイメージを表示することになるディスプレイの発光コンポーネントに対して命令を与えるようにしてもよい。光線610dと関連付けられたピクセルには、デフォルト色が割り当てられていてもよい。特定の実施形態において、デフォルト色は、サーフェス612に用いられる値に類似していてもよいし、これと同じ値が与えられていてもよい。このデフォルト色は、表示する仮想物体が存在しない場合(たとえば、空きスペースが存在する場合)にユーザの環境を視認可能となるように選定されるようになっていてもよい。
光線それぞれの色値の決定をサブフレームレンダリング器512が利用して、表示するイメージを作成するようにしてもよい。特定の実施形態において、これには、表示エンジン112のピクセルブロック230Aおよび230Bならびに表示ブロック240Aおよび240Bが実行する適当なステップを含んでいてもよい。サブフレームレンダリング器512は、決定されたピクセル色値を合成して、ユーザに表示するサブフレーム614を作成するようにしてもよい。サブフレームには、ユーザの手の切り取りを含むように現れる仮想物体616の表現を含んでいてもよい。この切り取りは、ヘッドセットシステムの表示コンポーネントにより表示された場合、ユーザの手がサーフェス612の適所に実際に現れ得るようにしてもよい。これにより、ユーザは、それぞれの実際の手が仮想物体616と相互作用することを知覚可能となる。
図7は、本明細書に論じる実施形態に係る、ユーザの仮想シーンのイメージを生成するプロセスを示している。図7は、図4Aおよび図4Bに示す例を基礎として続くものである。まず、ヘッドセットシステム110のカメラがユーザの環境のイメージを取り込む。このイメージには、シーン中の仮想物体を遮蔽する物体(ユーザの手等)を含む。これと同時に、ヘッドセットシステム110は、第1のユーザ姿勢700を決定する。たとえばヘッドセットシステム110またはボディウェアラブルコンピュータシステム120が取り込んだイメージを使用して、ハンドトラッキングを実行するとともに、3Dメッシュ701および対応する高さグリッドを生成するようにしてもよい。第1のユーザ姿勢700、3Dメッシュ701、および対応する高さグリッドは、フレームレンダリング器506に受け渡されるようになっていてもよい。
上述の通り、フレームレンダリング器506は、3Dメッシュ701および高さグリッドに基づいて、フレーム702に用いられるユーザの手のサーフェス(仮想物体表現)を生成するようにしてもよい。このサーフェスには、2D不透明テクスチャ706、高さマップ708、および仮想環境においてユーザの手を表すのに必要な他の情報(環境中のユーザの手の場所、サーフェスの境界等)を含んでいてもよい。また、フレームレンダリング器506は、仮想環境中の他の仮想物体404を表すサーフェスを生成するようにしてもよい。フレームレンダリング器506は、この情報の生成に必要な計算を実行することにより、第1のフレームレート(たとえば、60fps)をサポートするようにしてもよい。フレームレンダリング器は、これらすべての情報を(たとえば、フレームレンダリング器506がボディウェアラブルコンピュータにおいて具現化されている場合は、無線接続によって)サブフレームレンダリング器512に受け渡すようにしてもよい。
サブフレームレンダリング器512は、仮想物体404のサーフェスおよびユーザの手の仮想物体表現を受信するようにしてもよい。サブフレームレンダリング器512は、仮想シーン716中のサーフェスの視認性判定を実行するようにしてもよい。サブフレームレンダリング器512は、第2のユーザ姿勢710を決定するようにしてもよい。第2のユーザ姿勢710は、第1のユーザ姿勢700と異なっていてもよい。第1のユーザ姿勢700が生成フレームごとに更新されても、ユーザは、わずかに移動し得るためである。ユーザの姿勢の更新を考慮しないと、人工現実感システム100の使用中にユーザの不快感が大幅に増大する可能性がある。視認性判定には、ヘッドセットシステム110のディスプレイ中の位置および第2のユーザ姿勢720を複数の光線(たとえば、光線720a、720b、720c、および720d)それぞれの起点の基準とする第2のユーザ姿勢710に基づいて、仮想環境への光線投影を実行することを含んでいてもよい。特定の実施形態において、光線投影は、表示エンジン112の変換ブロック220Aおよび220Bにより実行される光線投影に類似していてもよいし、当該光線投影が実行されるようになっていてもよい。
サブフレームレンダリング器512は、視認性判定に用いられる光線ごとに、当該光線を仮想環境に投影し、当該光線が仮想環境中のサーフェスと交差するかを判定するようにしてもよい。特定の実施形態においては、ピクセル当たりのレベルでデプステスト(たとえば、最初に交差するサーフェスの決定)が実行されるようになっていてもよい。すなわち、仮想環境のサーフェスはそれぞれ、サブフレームレンダリング器512(または、変換ブロック220Aおよび220B)による個々のピクセルに基づくサーフェス間の相互作用と交差との識別を可能にする高さマップまたはデプスマップを有していてもよい。たとえば、サブフレームレンダリング器512は、光線720aを仮想環境に投影し、仮想物体404に対応するサーフェスと当該光線が最初に交差するものと判定するようにしてもよい。サブフレームレンダリング器512は、光線720bを仮想環境に投影し、仮想環境中の如何なる物体とも当該光線が交差しないものと判定するようにしてもよい。たとえば、サブフレームレンダリング器512は、光線720cを仮想環境に投影し、仮想物体404に対応するサーフェスと当該光線が最初に交差するものと判定するようにしてもよい。なお、光線720cは、仮想物体724がユーザの手に対応するサーフェス722と重なる仮想物体のサーフェスの重なり領域724に沿った点で交差する。サブフレームレンダリング器は、光線720dを仮想環境に投影し、ユーザの手に対応するサーフェス722と当該光線が最初に交差するものと判定するようにしてもよい。
環境に投射された各光線は、ユーザに表示されるイメージの1つまたは複数のピクセルに対応していてもよい。光線に対応するピクセルには、交差するサーフェスに基づいて色値が割り当てられていてもよい。たとえば、光線720aおよび720cと関連付けられたピクセルには、(たとえば、サーフェスと関連付けられたテクスチャ値のサンプリングにより)仮想物体404に基づいて、色値が割り当てられていてもよい。光線720dと関連付けられたピクセルには、サーフェス722に基づいて、色値が割り当てられていてもよい。特定の実施形態において、色値は、不透明(たとえば、混じり気なし、または、光が通過)ならびに暗もしくは黒の両者として指定されることにより、最終的にレンダリングイメージを表示することになるディスプレイの発光コンポーネントに対して命令を与えるようにしてもよい。光線720bと関連付けられたピクセルには、デフォルト色が割り当てられていてもよい。特定の実施形態において、デフォルト色は、サーフェス722に用いられる値に類似していてもよいし、これと同じ値が与えられていてもよい。このデフォルト色は、表示する仮想物体が存在しない場合(たとえば、空きスペースが存在する場合)にユーザの環境を視認可能となるように選定されるようになっていてもよい。
光線それぞれの色値の決定をサブフレームレンダリング器512が利用して、表示するイメージを作成するようにしてもよい。特定の実施形態において、これには、表示エンジン112のピクセルブロック230Aおよび230Bならびに表示ブロック240Aおよび240Bが実行する適当なステップを含んでいてもよい。サブフレームレンダリング器512は、決定されたピクセル色値を合成して、ユーザに表示するサブフレーム728を作成するようにしてもよい。サブフレームには、ユーザの手の切り取りを含むように現れる仮想物体726の表現を含んでいてもよい。この切り取りは、ヘッドセットシステムの表示コンポーネントにより表示された場合、ユーザの手がサーフェス722の適所に実際に現れ得るようにしてもよい。これにより、ユーザは、それぞれの実際の手が仮想物体726と相互作用し、仮想物体726がそれぞれの手の部分を適当に遮蔽することを知覚可能となる。
図8Aおよび図8Bは、拡張現実内の仮想物体の現実世界物体オクルージョンを提供する例示的な方法800を示している。この方法は、ステップ810で開始となり、ヘッドセットシステム110(たとえば、ヘッドマウントディスプレイ)の少なくとも1つのカメラがヘッドセットシステム110の環境のイメージを取り込むようにしてもよい。特定の実施形態において、イメージは、標準的なフルカラーイメージであってもよいし、モノクロイメージであってもよいし、デプス検知イメージであってもよいし、その他の任意好適な種類のイメージであってもよい。イメージは、仮想または複合現実ビュー内の特定の仮想物体の遮蔽に使用されるべきものとして人工現実感システム100が判定する物体を含んでいてもよい。以下の例において、当該物体はユーザの手であるが、上述のような多種多様の好適な物体も可能である。
特定の実施形態において、ステップ815~840は、仮想環境中のユーザの手および仮想物体の位置に基づいてユーザに表示されるフレームの生成と関連していてもよい。特定の実施形態において、ステップ815~840のうちの1つまたは複数は、ヘッドセットシステム110、ボディウェアラブルコンピュータシステム120、またはヘッドセットシステムよりも演算リソースが多く、ヘッドセットシステム120に対して通信可能に結合された別の好適なコンピュータシステムにより実行されるようになっていてもよい。特定の実施形態において、各ステップで実行される作業は、人工現実感システム100の作業コントローラによって、対象となるコンピュータシステム間で割り振られるようになっていてもよい。
この方法は、ステップ815へと続いて、コンピュータシステムが環境中のヘッドセットシステムのユーザの視点を決定するようにしてもよい。特定の実施形態において、視点は純粋に、好適なローカライズおよび/またはマッピング技術を用いることにより、環境の取り込みイメージにより決定されるようになっていてもよい。特定の実施形態において、視点は、ヘッドセットシステムの他のセンサから受信されたデータを用いて決定されるようになっていてもよい。
ステップ820においては、コンピュータシステムがユーザの手の姿勢を検出するようにしてもよい。ユーザの手の姿勢を検出するため、コンピュータシステムはまず、ユーザの手を含む取り込みイメージの部分を識別するようにしてもよい。コンピュータシステムは、複数のアルゴリズムのうちの1つを実行することにより、取り込みイメージ中のユーザの手の存在を識別するようにしてもよい。イメージにおいて手が実際に現れることを確認した後、コンピュータシステムは、ハンドトラッキング解析を実行することにより、取り込みイメージ中のユーザの手の上の複数の離散場所の存在および場所を識別するようにしてもよい。特定の実施形態において、ハンドトラッキングは、デプストラッキングカメラを使用することで容易化されるようになっていてもよい。特定の実施形態において、ハンドトラッキングは、ディープラーニングおよびモデルベーストラッキングを用いた標準的なデプストラッキングなしに実行されるようになっていてもよい。ディープニューラルネットワークがトレーニングされ、人の手の他、手の関節および指先等のランドマークの場所の予測に用いられるようになっていてもよい。ランドマークは、手および指の高自由度姿勢(たとえば、26自由度姿勢)の再構成に用いられるようになっていてもよい。姿勢は、環境中のユーザの視点に対する手の場所を与え得る。
ステップ825においては、コンピュータシステムが検出した姿勢に基づいて、ユーザの手の3Dメッシュを生成するようにしてもよい。コンピュータシステムは、取り込みイメージを使用して、検出姿勢を考慮したユーザの手のモデルを作成するようにしてもよい。特定の実施形態において、3Dメッシュは、ユーザの手を仮想シーン中で適当に表せるように、ユーザの手に基づく完全モデル化仮想物体であってもよい。コンピュータシステムは、3Dメッシュから、環境中のユーザの手の高さマップを生成するようにしてもよい。たとえば、コンピュータシステムは、ユーザの手の一部のデプス(たとえば、視点および/またはカメラからのユーザの手の距離)を決定するようにしてもよい。仮想物体の正確なオクルージョンを容易化するためには、ユーザの手の場所をより細かい単位で把握する必要がある。イメージのみに基づいてデプスを正確に計算するのは、計算量が膨大になる可能性がある。3Dメッシュからユーザの手の輪郭を決定可能であるとともに、ユーザの手のさまざまな高さを格納した高さマップまたはデータ構造を生成可能であることから、3Dメッシュによって隙間を埋めるようにしてもよい。
ステップ830においては、コンピュータシステムがユーザの周りの仮想環境中のユーザの視点を決定するようにしてもよい。仮想環境は、人工現実感システム100により実行される人工現実感アプリケーションにより制御されるようになっていてもよい。仮想環境には、複数の仮想物体が含まれていてもよい。各仮想物体は、そのサイズ、形状、テクスチャ、(たとえば、固定点に対する)絶対位置、および(たとえば、視点に対する)相対的な場所を記述した情報と関連付けられていてもよい。仮想環境中の視点は、実環境中のユーザの視点と仮想環境中のユーザの視点との間の対応関係に基づいて決定されるようになっていてもよい。この対応関係は、人工現実感システム100により決定されるようになっていてもよいし、ユーザにより指定(たとえば、校正)されるようになっていてもよい。
ステップ835においては、コンピュータシステムが3Dメッシュに基づいて、ユーザの手の仮想物体表現を生成するようにしてもよい。仮想物体表現(本開示の全体を通して、サーフェスとも表す)は、テクスチャおよび関連する高さマップと関連付けられていてもよい。特定の実施形態において、仮想物体表現は、仮想環境中の視点から見たユーザの手の3Dメッシュの2D表現であってもよい。2D表現は、3Dメッシュを表すのに適切と考えられる。コンピュータシステムは、2D表現のみが生成されたことをユーザが検出できなくなる十分に高いレート(たとえば、60Hz以上)でフレームを生成可能なためである。
ステップ840においては、コンピュータシステムが仮想物体および仮想環境のモデルならびに仮想環境中のユーザの視点に基づいて、仮想環境中のその他の仮想物体の表現を生成するようにしてもよい。ユーザの手の仮想物体表現と同様に、これらの仮想物体表現は、たとえば仮想物体間の交差の決定に際して3Dモデルを高速に模擬するのに使用可能な仮想物体のテクスチャおよび高さマップと関連付けられていてもよい。総合すると、これらの仮想物体表現は、仮想環境のフレームをレンダリングするためのデータを構成する。この背景において、フレームは、仮想物体表現が生成されるレートを表す。このレートは、ユーザの視点の特定の移動度の尤度に基づいて決定されるようになっていてもよい。
この方法は、図8Bに示すステップ850へと進み得る。ステップ850~890は、仮想環境のサブフレームを生成・提供して表示することを対象としていてもよい。サブフレームは、仮想環境のフレームとして生成・作成されたデータを使用し、必要に応じて、データを更新し、ヘッドセットシステム110の表示コンポーネント(たとえば、発光コンポーネントのアレイ)によってユーザに示されるイメージを実際に決定してもよい。サブフレームは、フレームの作成レートよりもはるかに高いレートで作成・表示されるようになっていてもよい(たとえば、200Hz以上)。サブフレームの作成レートが高いため、システム間通信を制限することが必要となり得る。したがって、ステップ850~890に必要な演算は、ヘッドセットシステム110に対して通信可能に結合されたボディウェアラブルコンピュータシステム120等のコンピュータシステムではなく、ヘッドセットシステム110自体により実行されるのが好ましいと考えられる。
ステップ850においては、コンピュータシステムがユーザの周りの環境中および仮想環境中のユーザの更新視点を決定するようにしてもよい。更新視点は、ユーザの微細な動き(たとえば、頭の動き、眼の動き等)を考慮したサブフレームを作成可能とするために必要と考えられる。更新視点は、上記と同様に決定されるようになっていてもよい。
ステップ855において、コンピュータシステムは、複数の仮想物体表現およびユーザの手の仮想物体表現に関する仮想環境中のユーザの視点の基本視認性判定を実行するようにしてもよい。特に、視認性判定は、光線投影技術を用いて実行されるようになっていてもよい。コンピュータシステムは、仮想環境に投影する複数の光線を編成するようにしてもよい。各光線は、ヘッドセットシステム110により表示されるイメージの1つまたは複数のピクセルに対応していてもよい。各ピクセルは、ヘッドセットシステム110の発光体の1つまたは複数の表示位置に対応していてもよい。各光線の起点は、仮想環境中のユーザの視点および対応するピクセルの位置に基づいていてもよい。光線の方向は、仮想環境中のユーザの視点に基づいて同様に決定されるようになっていてもよい。仮想環境への光線の投影の実行によって、仮想環境中の光の挙動を模擬するようにしてもよい。一般的に、光線の投影には、光線が仮想環境中の仮想物体と交差するかを判定することと、交差する光線に対応するピクセルに色を割り当てることと、を含む。
各光線のプロセスについては、ステップ860~880に関して部分的に記載している。ステップ860において、コンピュータシステムは、各光線が仮想環境中の仮想物体と交差するかを判定する。特定の実施形態において、コンピュータシステムは、仮想環境中の光線の経路を一定距離または一定時間にわたって模擬することにより交差を確認するようにしてもよい。経路の各段階において、光線は、特定のフレームに対して生成済みのさまざまな仮想物体表現の位置に対して当該光線の位置を比較するようにしてもよい。仮想物体の位置は、表現に対して指定された場所(デプスを含む)および表現と関連付けられ得る高さマップに基づいて把握されている。この光線投影技術を用いることにより、光線に対応するピクセルの正しい色値は、それが交差する最初の仮想物体と関連付けられた色値であるものと仮定する。光線が仮想物体と交差しないものとコンピュータシステムが判定した場合、この方法は、ステップ875へと直接進んで、以下に詳述する通り、光線(その後、対応するピクセル)と関連付けられた色値は、発光体が非発光を維持することで光が環境からユーザまで透過可能となる専用透過色に設定される。光線が仮想物体と交差するものとコンピュータシステムが判定した場合、この方法は、ステップ865へと進み得る。
ステップ865において、コンピュータシステムは、交差している仮想物体表現を識別して、交差点における対応するテクスチャの色をサンプリングするようにしてもよい。対応する色をサンプリングするため、コンピュータシステムはまず、交差している仮想物体表現と関連付けられたテクスチャを読み出すようにしてもよい。その後、コンピュータシステムは、交差点に対応するテクスチャ上の点を決定するようにしてもよい。これには、グローバル座標またはビューベース座標からテクスチャベース座標への交差点の変換を含んでいてもよい。適当な座標が決定されると、コンピュータシステムは、当該適当な位置でテクスチャに格納された色値を識別するようにしてもよい。特定の実施形態において、人工現実感システム100は、この動作の実行に必要なメモリアクセス時間を短くするショートカットを使用するようにしてもよい。このようなショートカットには、特定の仮想物体表現のフラグ付けを含んでいてもよい。
ステップ870において、コンピュータシステムは、サンプリング色の値を決定するようにしてもよい。サンプリング色が不透明黒(または、対応する発光体が非発光を維持すべきことを示すための使用が指定された他の色)の場合、この方法は、ステップ875へと進み得る。それ以外の場合、この方法は、ステップ880へと進み得る。
ステップ875において、コンピュータシステムは、光線に対応するピクセルの色値を透過色に設定するようにしてもよい。透過色は、最終イメージがサブフレームとしてユーザに表示された場合は発光体が発光すべきではないことを知らせる発光体への命令の生成に用いられるようになっていてもよいし、あるいは、このような命令と関連付けられていてもよい。例示的な透過色としては、黒(対応する発光体が暗くなるべきことを示す)または透明(発光体が光を発生すべきでないことを示す)が挙げられる。
ステップ880において、コンピュータシステムは、交差点においてテクスチャからサンプリングされた色に基づいて色値を設定するようにしてもよい。特定の実施形態において、これには、複数の場所における(たとえば、交差点がテクスチャの離散テクセル場所間に存在する場合の)色の補間のスケジューリングを含んでいてもよい。特定の実施形態において、色の設定には、(表示エンジン112の表示ブロック240Aおよび240Bに関して上述した通り)色調整および輝度補正の実行を含んでいてもよい。
ステップ885において、コンピュータシステムは、光線および対応するピクセル位置ごとに決定された色値に基づいて、表示するイメージをサブフレームとして生成するようにしてもよい。イメージは、特定の位置(たとえば、仮想環境中のユーザの視点から見える仮想物体を表示するイメージの位置)については確定した色値を組み合わせ、他の位置(たとえば、光線が仮想物体表現と交差しなかった位置または光線がユーザの手の仮想物体表現と最初に交差した位置)では光が一切発生しないこと(たとえば、発光体が非発光となること)を示すことから、合成イメージと称する場合もある。このため、合成イメージだけを見ると、視聴者は、レンダリングされた仮想物体および真っ白な位置が見えることになる。
ステップ890において、コンピュータシステムは、サブフレームを提供して表示するようにしてもよい。コンピュータシステムは、合成イメージに基づいて、ヘッドセットシステム110のディスプレイの発光体に対する命令を生成するようにしてもよい。これらの命令には、色値、色輝度もしくは強度、ならびにサブフレームの表示に効果を及ぼす変数のいずれかを含んでいてもよい。また、これらの命令には、必要に応じて特定の発光体に非発光またはオフを維持させる命令を含んでいてもよい。全体を通して説明する通り、意図される効果として、ユーザは、仮想環境中の決定した視点からの仮想環境の部分(たとえば、仮想環境中の仮想物体)と、(仮想環境中の仮想物体と相互作用し得る)ユーザの手を含む実環境の部分と、を複合して見ることができる。
特定の実施形態では、必要に応じて、図8Aおよび図8Bの方法の1つまたは複数のステップを繰り返すようにしてもよい。本開示では、特定の順序で発生するものとして、図8Aおよび図8Bの方法の特定のステップを記載および図示しているが、図8Aおよび図8Bの方法の任意好適なステップが任意好適な順序で発生することも考えられる。さらに、本開示は、拡張現実感における仮想物体の現実世界物体オクルージョンの提供のための例示的な方法(図8Aおよび図8Bの方法の特定のステップを含む)を記載および図示しているが、拡張現実感における仮想物体の現実世界物体オクルージョンの提供のための任意好適なステップを含む任意好適な方法も考えられ、必要に応じて、図8Aおよび図8Bの方法のステップのすべてを含んでいてもよいし、一部を含んでいてもよいし、含んでいなくてもよい。さらに、本開示は、図8Aおよび図8Bの方法の特定のステップを実行する特定の構成要素、機器、またはシステムを記載および図示しているものの、任意好適な構成要素、機器、またはシステムの任意好適な組み合わせが図8Aおよび図8Bの方法の任意好適なステップを実行することも考えられる。
図9は、例示的なコンピュータシステム900を示している。特定の実施形態においては、1つまたは複数のコンピュータシステム900が本明細書に記載または図示の1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態においては、1つまたは複数のコンピュータシステム900が本明細書に記載または図示の機能を提供する。特定の実施形態においては、1つまたは複数のコンピュータシステム900上で動作するソフトウェアが、本明細書に記載または図示の1つまたは複数の方法の1つまたは複数のステップの実行、あるいは、本明細書に記載または図示の機能の提供を行う。特定の実施形態には、1つまたは複数のコンピュータシステム900の1つまたは複数の部分を含む。本明細書において、コンピュータシステムの言及には、必要に応じてコンピュータ機器を包含可能であり、その逆もまた同様である。さらに、コンピュータシステムの言及には、必要に応じて1つまたは複数のコンピュータシステムを包含可能である。
本開示では、任意好適な数のコンピュータシステム900が考えられる。本開示では、コンピュータシステム900が任意好適な物理的形態となることも考えられる。非限定的な一例として、コンピュータシステム900は、組み込み型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)等)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、個人用デジタル補助装置(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実感機器、またはこれらのうちの2つ以上の組み合わせであってもよい。コンピュータシステム900は、必要に応じて、1つまたは複数のコンピュータシステム900を含んでいてもよいし、単一型でも分散型でもよいし、複数の場所に広がっていてもよいし、複数のマシンに広がっていてもよいし、複数のデータセンタに広がっていてもよいし、1つまたは複数のネットワークに1つまたは複数のクラウド構成要素を含み得るクラウドに存在していてもよい。必要に応じて、1つまたは複数のコンピュータシステム900が空間または時間に関する実質的な制限なく、本明細書に記載または図示の1つまたは複数の方法の1つまたは複数のステップを実行するようにしてもよい。非限定的な一例として、1つまたは複数のコンピュータシステム900が実時間またはバッチモードで、本明細書に記載または図示の1つまたは複数の方法の1つまたは複数のステップを実行するようにしてもよい。1つまたは複数のコンピュータシステム900が必要に応じて、本明細書に記載または図示の1つまたは複数の方法の1つまたは複数のステップを異なる時間または異なる場所で実行するようにしてもよい。
特定の実施形態において、コンピュータシステム900は、プロセッサ902、メモリ904、ストレージ906、入出力(I/O)インターフェース908、通信インターフェース910、およびバス912を具備する。本開示は、特定の配置の特定数の特定の構成要素を有する特定のコンピュータシステムを記載および図示しているものの、任意好適なコンピュータシステムが任意好適な配置の任意好適な数の任意好適な構成要素を有することも考えられる。
特定の実施形態において、プロセッサ902は、コンピュータプログラムを構成するような命令を実行するハードウェアを含む。非限定的な一例として、プロセッサ902は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906からの命令の読み出し(または、フェッチ)と、命令の復号化および実行と、1つまたは複数の結果の内部レジスタ、内部キャッシュ、メモリ904、またはストレージ906への書き込みと、を行うようにしてもよい。特定の実施形態において、プロセッサ902は、データ、命令、またはアドレス用の1つまたは複数の内部キャッシュを具備していてもよい。本開示では、プロセッサ902が必要に応じて、任意好適な数の任意好適な内部キャッシュを具備することも考えられる。非限定的な一例として、プロセッサ902は、1つもしくは複数の命令キャッシュ、1つもしくは複数のデータキャッシュ、ならびに1つもしくは複数のトランスレーションルックアサイドバッファ(TLB)を具備していてもよい。命令キャッシュ中の命令は、メモリ904またはストレージ906中の命令のコピーであってもよく、命令キャッシュは、プロセッサ902によるこれらの命令の読み出しを高速化し得る。データキャッシュ中のデータは、プロセッサ902で実行される命令が演算するメモリ904またはストレージ906中のデータのコピーであってもよいし、プロセッサ902で実行される後続命令によるアクセスまたはメモリ904もしくはストレージ906への書き込みのためにプロセッサ902で実行された先行命令の結果であってもよいし、他の好適なデータであってもよい。データキャッシュは、プロセッサ902による読み出しまたは書き込み動作を高速化し得る。TLBは、プロセッサ902に対する仮想アドレス変換を高速化し得る。特定の実施形態において、プロセッサ902は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを具備していてもよい。本開示では、プロセッサ902が必要に応じて、任意好適な数の任意好適な内部レジスタを具備することも考えられる。必要に応じて、プロセッサ902が1つまたは複数の算術論理演算ユニット(ALU)を具備していてもよいし、マルチコアプロセッサであってもよいし、または、1つまたは複数のプロセッサ902を含んでいてもよい。本開示は、特定のプロセッサを記載および図示しているが、任意好適なプロセッサも考えられる。
特定の実施形態において、メモリ904は、プロセッサ902が実行する命令またはプロセッサ902が演算するデータを格納する主メモリを含む。非限定的な一例として、コンピュータシステム900は、ストレージ906または別のソース(たとえば、別のコンピュータシステム900等)からメモリ904に命令をロードするようにしてもよい。その後、プロセッサ902は、メモリ904から内部レジスタまたは内部キャッシュに命令をロードするようにしてもよい。プロセッサ902は、命令を実行するため、内部レジスタまたは内部キャッシュから命令を読み出して復号化するようにしてもよい。命令の実行中または実行後、プロセッサ902は、1つまたは複数の結果(中間結果であってもよいし、最終結果であってもよい)を内部レジスタまたは内部キャッシュに書き込むようにしてもよい。その後、プロセッサ902は、これらの結果のうちの1つまたは複数をメモリ904に書き込むようにしてもよい。特定の実施形態において、プロセッサ902は、(ストレージ906等とは対照的に)1つもしくは複数の内部レジスタもしくは内部キャッシュまたはメモリ904中の命令のみを実行し、(ストレージ906等とは対照的に)1つもしくは複数の内部レジスタもしくは内部キャッシュまたはメモリ904中のデータのみを演算する。1つまたは複数のメモリバス(それぞれがアドレスバスおよびデータバスを含み得る)がプロセッサ902をメモリ904に結合していてもよい。後述の通り、バス912には、1つまたは複数のメモリバスを含んでいてもよい。特定の実施形態においては、プロセッサ902とメモリ904との間に1つまたは複数のメモリ管理ユニット(MMU)が存在して、プロセッサ902により要求されたメモリ904へのアクセスを容易化する。特定の実施形態において、メモリ904は、ランダムアクセスメモリ(RAM)を含む。このRAMは、必要に応じて、揮発性メモリであってもよい。このRAMは、必要に応じて、ダイナミックRAM(DRAM)であってもよいし、スタティックRAM(SRAM)であってもよい。さらに、このRAMは、必要に応じて、シングルポートRAMであってもよいし、マルチポートRAMであってもよい。本開示では、任意好適なRAMが考えられる。メモリ904は、必要に応じて、1つまたは複数のメモリ904を含んでいてもよい。本開示は、特定のメモリを記載および図示しているが、任意好適なメモリも考えられる。
特定の実施形態において、ストレージ906は、データまたは命令用の大容量ストレージを含む。非限定的な一例として、ストレージ906は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせを含んでいてもよい。ストレージ906は、必要に応じて、リムーバブルメディアを含んでいてもよいし、非リムーバブル(すなわち、固定)メディアを含んでいてもよい。ストレージ906は、必要に応じて、コンピュータシステム900の内部であってもよいし、外部であってもよい。特定の実施形態において、ストレージ906は、不揮発性固体メモリである。特定の実施形態において、ストレージ906は、リードオンリーメモリ(ROM)を含む。このROMは、必要に応じて、マスクプログラムROMであってもよいし、プログラム可能ROM(PROM)であってもよいし、消去可能PROM(EPROM)であってもよいし、電気的消去可能PROM(EEPROM)であってもよいし、電気的可変ROM(EAROM)であってもよいし、フラッシュメモリであってもよいし、これらのうちの2つ以上の組み合わせであってもよい。本開示では、大容量ストレージ906が任意好適な物理的形態となることも考えられる。ストレージ906は、必要に応じて、プロセッサ902と当該ストレージ906との間の通信を容易化する1つまたは複数のストレージ制御ユニットを具備していてもよい。ストレージ906は、必要に応じて、1つまたは複数のストレージ906を含んでいてもよい。本開示は、特定のストレージを記載および図示しているが、任意好適なストレージも考えられる。
特定の実施形態において、I/Oインターフェース908は、ハードウェア、ソフトウェア、または両者を含み、コンピュータシステム900と1つまたは複数のI/Oデバイスとの間の通信用の1つまたは複数のインターフェースを提供する。コンピュータシステム900は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を具備していてもよい。これらのI/Oデバイスのうちの1つまたは複数は、人間とコンピュータシステム900との間の伝達を可能にし得る。非限定的な一例として、I/Oデバイスには、キーボード、キーパッド、マイク、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つ以上の組み合わせを含んでいてもよい。I/Oデバイスは、1つまたは複数のセンサを具備していてもよい。本開示では、任意好適なI/Oデバイスと、それらに対する任意好適なI/Oインターフェース908と、が考えられる。I/Oインターフェース908は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数をプロセッサ902が駆動できるようにする1つまたは複数のデバイスまたはソフトウェアドライバを含んでいてもよい。I/Oインターフェース908は、必要に応じて、1つまたは複数のI/Oインターフェース908を含んでいてもよい。本開示は、特定のI/Oインターフェースを記載および図示しているが、任意好適なI/Oインターフェースも考えられる。
特定の実施形態において、通信インターフェース910は、ハードウェア、ソフトウェア、または両者を含み、コンピュータシステム900と1つもしくは複数の他のコンピュータシステム900または1つもしくは複数のネットワークとの間の通信(たとえば、パケットベース通信等)用の1つまたは複数のインターフェースを提供する。非限定的な一例として、通信インターフェース910は、イーサネット等の有線ネットワークと通信するネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、または、Wi-Fiネットワーク等の無線ネットワークと通信する無線NIC(WNIC)もしくは無線アダプタを具備していてもよい。本開示では、任意好適なネットワークと、それに対する任意好適な通信インターフェース910と、が考えられる。非限定的な一例として、コンピュータシステム900は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組み合わせと通信するようにしてもよい。これらのうち、1つまたは複数のネットワークの1つまたは複数の部分が有線であってもよいし、無線であってもよい。一例として、コンピュータシステム900は、無線PAN(WPAN)(たとえば、BLUETOOTH WPAN等)、Wi-Fiネットワーク、Wi-MAXネットワーク、携帯電話ネットワーク(たとえば、汎欧州デジタル移動電話(GSM)ネットワーク等)、他の好適な無線ネットワーク、またはこれらのうちの2つ以上の組み合わせと通信するようにしてもよい。コンピュータシステム900は、必要に応じて、これらのネットワークのいずれかに対する任意好適な通信インターフェース910を具備していてもよい。通信インターフェース910は、必要に応じて、1つまたは複数の通信インターフェース910を含んでいてもよい。本開示は、特定の通信インターフェースを記載および図示しているが、任意好適な通信インターフェースも考えられる。
特定の実施形態において、バス912は、ハードウェア、ソフトウェア、または両者を含み、コンピュータシステム900の構成要素を互いに結合する。非限定的な一例として、バス912には、アクセラレイテッドグラフィックスポート(AGP)等のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、インフィニバンド相互接続、ロウピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺機器相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス標準協会ローカル(VLB)バス、別の好適なバス、またはこれらのうちの2つ以上の組み合わせを含んでいてもよい。バス912は、必要に応じて、1つまたは複数のバス912を含んでいてもよい。本開示は、特定のバスを記載および図示しているが、任意好適なバスまたは相互接続も考えられる。
本明細書において、1つまたは複数のコンピュータ可読非一過性記憶媒体には、必要に応じて、1つまたは複数の半導体ベースまたは他の集積回路(IC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)等)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、他の任意好適なコンピュータ可読非一過性記憶媒体、あるいはこれらのうちの2つ以上の任意好適な組み合わせを含んでいてもよい。コンピュータ可読非一過性記憶媒体は、必要に応じて、揮発性であってもよいし、不揮発性であってもよいし、揮発性および不揮発性の組み合わせであってもよい。
本明細書において、別段の明示的な指定または文脈上の別段の指定がない限り、「または(or)」は包括的であって、個別的ではない。したがって、本明細書においては、別段の明示的な指定または文脈上の別段の指定がない限り、「AまたはB(A or B)」が「A、B、または両者」を意味する。さらに、別段の明示的な指定または文脈上の別段の指定がない限り、「および(and)」は、合同および個別の両者である。したがって、本明細書においては、別段の明示的な指定または文脈上の別段の指定がない限り、「AおよびB(A and B)」が「AおよびB(合同または個別)」を意味する。
本開示の範囲には、当業者が理解する本明細書に記載または図示の例示的な実施形態のすべての変更、代替、変形、修正、および改良を包含する。本開示の範囲は、本明細書に記載または図示の例示的な実施形態に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして、本明細書の各実施形態を記載および図示しているが、これら実施形態のいずれかには、当業者が理解する本明細書のいずれかの場所に記載または図示のいずれかの構成要素、要素、特徴、機能、動作、またはステップの任意の組み合わせまたは置換を含んでいてもよい。さらに、特定の機能を実行するための適応、構成、実用化、設定、有効化、動作有効化、または動作設定がなされた装置もしくはシステムまたは装置もしくはシステムの構成要素に対する添付の特許請求の範囲中の言及は、当該装置、システム、または構成要素がそのように適応、構成、実用化、設定、有効化、動作有効化、または動作設定されている限り、当該装置、システム、構成要素、または当該特定の機能の起動有無、オン/オフ、またはロック/アンロックに関わらず、当該装置、システム、構成要素を包含する。また、本開示は、特定の利点をもたらすものとして特定の実施形態を記載または図示しているものの、特定の実施形態がこれらの利点をもたらしていなくてもよいし、一部をもたらしていてもよいし、全部をもたらしていてもよい。

Claims (15)

  1. 1つまたは複数のコンピュータ機器によって、
    ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることと、
    少なくとも前記イメージから、仮想環境において規定される前記ユーザの前記手の仮想物体表現を生成することと、
    前記手の前記仮想物体表現および前記仮想環境中の少なくとも1つの他の仮想物体に基づいて、前記ユーザの視点から視認可能な前記手の前記仮想物体表現の一部に対応する一組のピクセルを含む前記仮想環境のイメージを前記ユーザの前記視点からレンダリングすることと、
    前記ヘッドマウントディスプレイの一組の発光体に対して、前記仮想環境の前記イメージを表示する命令を与えることであって、前記手の前記仮想物体表現の一部に対応する前記イメージ中の前記一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、前記仮想環境の前記イメージを表示する命令を与えることと、
    を含む方法。
  2. 非発光の特定位置の発光体が、前記ユーザの環境からの光を前記特定位置で前記ユーザに対して点灯し続けるか、または、前記ユーザの前記手を含む前記イメージが、前記ユーザの視点からの前記ユーザの環境をさらに含む、請求項1に記載の方法。
  3. 少なくとも前記イメージから、前記ユーザの前記手の仮想物体表現を生成することが、
    前記ユーザの前記手を含む前記イメージから決定された前記ユーザの前記手の姿勢に基づいて、前記ユーザの前記手の前記仮想物体表現の前記仮想環境中の位置を決定することを含む、請求項1に記載の方法。
  4. 前記ユーザの前記手の前記仮想物体表現のテクスチャが、発光体を非発光にする命令に対応するか、または、前記ユーザの前記手の前記仮想物体表現が、前記仮想環境の背景とも関連付けられた色と関連付けられた、請求項1に記載の方法。
  5. 前記仮想環境の前記イメージを前記ユーザの前記視点からレンダリングすることが、
    前記ユーザの前記手の前記仮想物体表現および前記仮想環境中の前記少なくとも1つの他の仮想物体が前記ユーザの前記視点から視認可能であるかを判定することを含み、任意選択として、前記方法が、
    前記ユーザの前記視点を起点および方向の基準として光線を前記仮想環境に投影することと、
    前記仮想環境において、前記ユーザの前記手の前記仮想物体表現との前記光線の交差点を決定することであって、前記光線が前記仮想環境中の別の物体と交差する前に前記仮想物体表現と交差する、前記仮想物体表現との前記光線の交差点を決定することと、
    によって、前記手の前記仮想物体表現が少なくとも部分的に前記仮想環境中の前記少なくとも1つの他の仮想物体の前方にある、1つまたは複数の位置を決定することをさらに含む、請求項1に記載の方法。
  6. 少なくとも前記イメージから、前記ユーザの前記手の仮想物体表現を生成することが、
    少なくとも前記イメージから、前記手の姿勢を決定することと、
    少なくとも前記イメージおよび前記姿勢から、前記手の前記仮想物体表現の三角メッシュを生成することと、
    少なくとも前記イメージから、前記ユーザの視点からの前記手の距離を決定することと、
    前記手の前記三角メッシュに基づいて、前記手の決定した前記距離からの前記手の1つまたは複数の位置の変化を示す高さマップを生成することと、
    を含む、請求項1に記載の方法。
  7. 前記高さマップに基づいて、
    前記手の前記距離および前記手の前記仮想物体表現と関連付けられた前記高さマップを、特定位置の前記他の仮想物体と関連付けられた距離および高さマップと比較することと、
    前記比較に基づいて、前記手の前記仮想物体表現が前記視点に最も近い物体であるものと判定することと、
    によって、前記手の前記仮想物体表現が前記仮想環境中の別の仮想物体の前方にある、1つまたは複数の位置を決定することをさらに含む、請求項6に記載の方法。
  8. 前記仮想環境の前記イメージを表示する前記命令がさらに、前記少なくとも1つの他の仮想物体の一部が前記ユーザの前記視点から前記ユーザの前記手の前記仮想物体表現の前方にある、1つまたは複数の位置で発光体を発光させる、請求項1に記載の方法。
  9. 前記コンピュータ機器のうちの1つまたは複数が前記ヘッドマウントディスプレイにおいて具現化され、前記コンピュータ機器のうちの1つまたは複数が別個のコンピュータ機器であり、任意選択として、前記方法が、
    利用可能なコンピュータリソースの1つまたは複数のメトリックに基づいて、前記ヘッドマウントディスプレイの前記コンピュータ機器と前記別個のコンピュータ機器との間で前記方法のステップを配分することをさらに含む、請求項1に記載の方法。
  10. 前記イメージが、前記ヘッドマウントディスプレイの第1のカメラにより生成され、
    前記ユーザの前記手の前記仮想物体表現を生成することが、
    前記ヘッドマウントディスプレイの第2のカメラにより生成された第2のイメージにアクセスすることと、
    前記イメージおよび前記第2のイメージに基づいて、前記ユーザの前記手を前記ユーザの前記視点に対してローカライズすることと、
    を含む、請求項1に記載の方法。
  11. 前記ユーザの前記手の前記仮想物体表現を生成することが、
    位置が前記ユーザの前記手の位置に対応するアレイを生成することと、
    前記手の1つまたは複数の位置と前記ユーザの前記視点との間の距離の値を前記アレイに格納することと、
    前記アレイを前記ユーザの前記手の前記仮想物体表現と関連付けることと、をさらに含み、または、前記ヘッドマウントディスプレイの前記第2のカメラが、デプス検知カメラである、請求項10に記載の方法。
  12. ソフトウェアを具現化する1つまたは複数のコンピュータ可読非一過性記憶媒体であって、前記ソフトウェアは、実行された場合に、請求項1から11のいずれか一項に記載の方法、または、
    ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることと、
    少なくとも前記イメージから、仮想環境において規定される前記ユーザの前記手の仮想物体表現を生成することと、
    前記手の前記仮想物体表現および前記仮想環境中の少なくとも1つの他の仮想物体に基づいて、前記ユーザの視点から視認可能な前記手の前記仮想物体表現の一部に対応する一組のピクセルを含む前記仮想環境のイメージを前記ユーザの前記視点からレンダリングすることと、
    前記ヘッドマウントディスプレイの一組の発光体に対して、前記仮想環境の前記イメージを表示する命令を与えることであって、前記手の前記仮想物体表現の一部に対応する前記イメージ中の前記一組のピクセルが、1つまたは複数の位置の前記発光体を非発光にする、前記仮想環境の前記イメージを表示する命令を与えることと、
    を実行するように動作可能である、
    コンピュータ可読非一過性記憶媒体。
  13. 非発光の特定位置の発光体が、前記ユーザの環境からの光を前記特定位置で前記ユーザに対して点灯し続ける、請求項12に記載のコンピュータ可読非一過性記憶媒体。
  14. システムであって、
    1つまたは複数のプロセッサと、
    前記プロセッサのうちの1つまたは複数に結合された、命令を含む1つまたは複数のコンピュータ可読非一過性記憶媒体とを備え、前記命令は、前記プロセッサのうちの1つまたは複数により実行された場合に、請求項1から11のいずれか一項に記載の方法、または、
    ヘッドマウントディスプレイのユーザの手を含むイメージにアクセスすることと、
    少なくとも前記イメージから、仮想環境において規定される前記ユーザの前記手の仮想物体表現を生成することと、
    前記手の前記仮想物体表現および前記仮想環境中の少なくとも1つの他の仮想物体に基づいて、前記ユーザの視点から視認可能な前記手の前記仮想物体表現の一部に対応する一組のピクセルを含む前記仮想環境のイメージを前記ユーザの前記視点からレンダリングすることと、
    前記ヘッドマウントディスプレイの一組の発光体に対して、前記仮想環境の前記イメージを表示する命令を与えることであって、前記手の前記仮想物体表現の一部に対応する前記イメージ中の前記一組のピクセルが、1つまたは複数の位置の発光体を非発光にする、前記仮想環境の前記イメージを表示する命令を与えることと、
    を前記システムに実行させるように動作可能である、
    システム。
  15. 非発光の特定位置の発光体が、前記ユーザの環境からの光を前記特定位置で前記ユーザに対して点灯し続ける、請求項14に記載のシステム。
JP2022534366A 2020-02-28 2021-01-08 物理物体による拡張現実内の仮想物体のオクルージョン Pending JP2023514796A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/805,484 US11107280B1 (en) 2020-02-28 2020-02-28 Occlusion of virtual objects in augmented reality by physical objects
US16/805,484 2020-02-28
PCT/US2021/012829 WO2021173237A1 (en) 2020-02-28 2021-01-08 Occlusion of virtual objects in augmented reality by physical objects

Publications (1)

Publication Number Publication Date
JP2023514796A true JP2023514796A (ja) 2023-04-11

Family

ID=74550736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022534366A Pending JP2023514796A (ja) 2020-02-28 2021-01-08 物理物体による拡張現実内の仮想物体のオクルージョン

Country Status (6)

Country Link
US (3) US11107280B1 (ja)
EP (1) EP4111292A1 (ja)
JP (1) JP2023514796A (ja)
KR (1) KR20220137880A (ja)
CN (1) CN115244492A (ja)
WO (1) WO2021173237A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922573B2 (en) * 2018-10-22 2021-02-16 Future Health Works Ltd. Computer based object detection within a video or image
US11423624B2 (en) * 2019-11-18 2022-08-23 Magic Leap, Inc. Mapping and localization of a passable world
USD952673S1 (en) 2019-12-09 2022-05-24 Magic Leap, Inc. Portion of a display screen with transitional graphical user interface for guiding graphics
US11107280B1 (en) * 2020-02-28 2021-08-31 Facebook Technologies, Llc Occlusion of virtual objects in augmented reality by physical objects
US11887267B2 (en) 2021-07-07 2024-01-30 Meta Platforms Technologies, Llc Generating and modifying representations of hands in an artificial reality environment
US20230041294A1 (en) * 2021-08-03 2023-02-09 Sony Interactive Entertainment Inc. Augmented reality (ar) pen/hand tracking
US11620797B2 (en) * 2021-08-05 2023-04-04 Bank Of America Corporation Electronic user interface with augmented detail display for resource location

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2691935A1 (en) 2011-03-29 2014-02-05 Qualcomm Incorporated System for the rendering of shared digital interfaces relative to each user's point of view
US9344707B2 (en) * 2011-06-29 2016-05-17 Microsoft Technology Licensing, Llc Probabilistic and constraint based articulated model fitting
US9002099B2 (en) * 2011-09-11 2015-04-07 Apple Inc. Learning-based estimation of hand and finger pose
US9392264B1 (en) * 2012-10-12 2016-07-12 Amazon Technologies, Inc. Occluded object recognition
US9202313B2 (en) 2013-01-21 2015-12-01 Microsoft Technology Licensing, Llc Virtual interaction with image projection
US9733715B2 (en) * 2013-03-15 2017-08-15 Leap Motion, Inc. Resource-responsive motion capture
WO2015011703A1 (en) * 2013-07-21 2015-01-29 Pointgrab Ltd. Method and system for touchless activation of a device
JP2015119373A (ja) * 2013-12-19 2015-06-25 ソニー株式会社 画像処理装置および方法、並びにプログラム
US20170140552A1 (en) * 2014-06-25 2017-05-18 Korea Advanced Institute Of Science And Technology Apparatus and method for estimating hand position utilizing head mounted color depth camera, and bare hand interaction system using same
US9818225B2 (en) * 2014-09-30 2017-11-14 Sony Interactive Entertainment Inc. Synchronizing multiple head-mounted displays to a unified space and correlating movement of objects in the unified space
US9696795B2 (en) 2015-02-13 2017-07-04 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
US10318008B2 (en) * 2015-12-15 2019-06-11 Purdue Research Foundation Method and system for hand pose detection
BR112018077095A8 (pt) * 2016-06-27 2023-04-04 Bosch Gmbh Robert Sistemas e métodos para a manipulação de oclusão dinâmica
US10489915B2 (en) * 2017-04-01 2019-11-26 Intel Corporation Decouple multi-layer render fequency
JP2020522763A (ja) * 2017-04-19 2020-07-30 ヴィドニ インコーポレイテッド モーションキャプチャされた仮想手を使用する拡張現実学習システムおよび方法
US11176747B2 (en) * 2017-10-30 2021-11-16 Sony Corporation Information processing apparatus and information processing method
US10755486B2 (en) * 2018-04-19 2020-08-25 Disney Enterprises, Inc. Occlusion using pre-generated 3D models for augmented reality
CN110058777B (zh) * 2019-03-13 2022-03-29 华为技术有限公司 快捷功能启动的方法及电子设备
US11562598B2 (en) * 2019-03-25 2023-01-24 Microsoft Technology Licensing, Llc Spatially consistent representation of hand motion
US10846899B2 (en) * 2019-04-17 2020-11-24 Honeywell International Inc. Methods and systems for augmented reality safe visualization during performance of tasks
US11710310B2 (en) * 2019-06-19 2023-07-25 Apple Inc. Virtual content positioned based on detected object
CN110515468A (zh) * 2019-08-30 2019-11-29 Oppo广东移动通信有限公司 控制方法、控制装置、电子装置和存储介质
JP7127659B2 (ja) * 2020-02-07 2022-08-30 カシオ計算機株式会社 情報処理装置、仮想・現実合成システム、学習済みモデルの生成方法、情報処理装置に実行させる方法、プログラム
US11107280B1 (en) * 2020-02-28 2021-08-31 Facebook Technologies, Llc Occlusion of virtual objects in augmented reality by physical objects
US11295513B1 (en) * 2020-10-07 2022-04-05 Able Hands Rehab PC Method for generating a custom hand brace for a patient
US11402634B2 (en) * 2020-12-30 2022-08-02 Facebook Technologies, Llc. Hand-locked rendering of virtual objects in artificial reality

Also Published As

Publication number Publication date
US20230148279A1 (en) 2023-05-11
KR20220137880A (ko) 2022-10-12
EP4111292A1 (en) 2023-01-04
US11557095B2 (en) 2023-01-17
CN115244492A (zh) 2022-10-25
US20210272361A1 (en) 2021-09-02
WO2021173237A1 (en) 2021-09-02
US11107280B1 (en) 2021-08-31
US20220005278A1 (en) 2022-01-06
US11954805B2 (en) 2024-04-09

Similar Documents

Publication Publication Date Title
JP2023514796A (ja) 物理物体による拡張現実内の仮想物体のオクルージョン
US11719933B2 (en) Hand-locked rendering of virtual objects in artificial reality
US20230334761A1 (en) Foveated Rendering
JP7304934B2 (ja) 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
US9832451B2 (en) Methods for reduced-bandwidth wireless 3D video transmission
US11170577B2 (en) Generating and modifying representations of objects in an augmented-reality or virtual-reality scene
JP7201869B1 (ja) 前の目線からのレンダリングされたコンテンツおよびレンダリングされなかったコンテンツを使用した新しいフレームの生成
CN117063205A (zh) 在人工现实环境中生成和修改动态对象的表示
EP3652617B1 (en) Mixed reality object rendering based on ambient light conditions
US10719124B2 (en) Tracking system, tracking method for real-time rendering an image and non-transitory computer-readable medium
US20210090322A1 (en) Generating and Modifying Representations of Objects in an Augmented-Reality or Virtual-Reality Scene
US11818325B2 (en) Blended mode three dimensional display systems and methods
CN115661408A (zh) 在人工现实环境中生成和修改手的表示

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231013