(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-17
(54)【発明の名称】適応的自由度(DOF)選択を有する人工現実システム
(51)【国際特許分類】
G06T 19/00 20110101AFI20220310BHJP
G06F 3/04815 20220101ALI20220310BHJP
G06F 3/01 20060101ALI20220310BHJP
【FI】
G06T19/00 A
G06F3/0481 150
G06F3/01 570
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021532183
(86)(22)【出願日】2020-01-30
(85)【翻訳文提出日】2021-07-30
(86)【国際出願番号】 US2020015940
(87)【国際公開番号】W WO2020160308
(87)【国際公開日】2020-08-06
(32)【優先日】2019-02-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】FACEBOOK TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(72)【発明者】
【氏名】ランガナタン, アナンス
(72)【発明者】
【氏名】メリム, アンドリュー
(72)【発明者】
【氏名】パブリディス, イオアニス
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA03
5B050BA09
5B050CA07
5B050CA08
5B050EA26
5B050FA02
5B050FA05
5E555AA27
5E555BA04
5E555BA87
5E555BB04
5E555BC07
5E555BC08
5E555BE17
5E555CA42
5E555CA44
5E555CB66
5E555CC22
5E555DA08
5E555DB57
5E555DC43
5E555EA22
5E555FA00
(57)【要約】
基準系をトラッキングし、人工現実コンテンツをレンダリングするときの、適応的自由度(DOF)選択を実装する人工現実システムが説明される。一例では、人工現実システムは、レンダリングされた人工現実コンテンツを出力するヘッドマウントディスプレイ(HMD)を備える。性能モニタが、人工現実システムに関連する1つまたは複数の性能インジケータを決定する。自由度(DOF)セレクタが、ポーズトラッカーが6DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第1のモードと、ポーズトラッカーが3DOFを使用して1つまたは複数のポーズを計算する第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用する。ポーズトラッカーは、選択されたモードに従って3D環境内のHMDについての1つまたは複数のポーズを計算する。レンダリングエンジンが、計算されたポーズに基づいて人工現実アプリケーションのためにコンテンツをレンダリングする。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
人工現実システムであって、
人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイ(HMD)と、
3次元(3D)環境内の前記HMDの1つまたは複数のポーズを計算するように構成されたポーズトラッカーと、
前記人工現実システムに関連する1つまたは複数の性能インジケータを決定するように構成された、1つまたは複数のプロセッサ上で実行する、性能モニタと、
前記ポーズトラッカーが6自由度(6DOF)を使用して前記HMDの前記1つまたは複数のポーズを計算するように構成された第1のモードと、前記ポーズトラッカーが3自由度(3DOF)を使用して前記1つまたは複数のポーズを計算するように構成された第2のモードとから選択するために、1つまたは複数のポリシーを前記性能インジケータに適用するように構成された、自由度(DOF)セレクタと、
計算された前記1つまたは複数のポーズに基づいて前記人工現実コンテンツをレンダリングするように構成されたレンダリングエンジンと
を備える人工現実システム。
【請求項2】
6DOFを使用して前記HMDの前記1つまたは複数のポーズを計算するために、前記ポーズトラッカーが、前記HMDによる回転運動と並進運動の両方に関する前記HMDの1つまたは複数のポーズを計算するようにさらに構成され、
3DOFを使用して前記HMDの前記1つまたは複数のポーズを計算するために、前記ポーズトラッカーが、前記HMDによる回転運動に関するが、前記HMDによる並進運動には関さない前記HMDの前記1つまたは複数のポーズを計算するようにさらに構成され、
前記HMDによる前記回転運動が、前記HMDの垂直軸、前記HMDの横軸、または前記HMDの縦軸のうちの少なくとも1つの周囲の回転運動を含み、
前記HMDによる前記並進運動が、前記HMDの前記垂直軸、前記HMDの前記横軸、または前記HMDの前記縦軸のうちの少なくとも1つに沿った並進運動を含む、
請求項1に記載の人工現実システム。
【請求項3】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用するために、DOFセレクタは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーを、前記性能モニタによって決定される画像トラッキングの品質レベルと、前記性能モニタによって決定されるアイトラッキング品質とのうちの1つまたは複数に適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を行うように構成された、請求項1または2に記載の人工現実システム。
【請求項4】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用するために、DOFセレクタは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーを、前記性能モニタによって決定される環境輝度のレベルと、前記人工現実システムによって現在トラッキングされている特徴の数と、前記性能モニタによって決定される現実世界特徴の画像テクスチャとのうちの1つまたは複数に適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を行うように構成された、請求項1または2に記載の人工現実システム。
【請求項5】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用するために、DOFセレクタは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーを、前記性能モニタによって決定されるネットワーク性能またはレイテンシと、前記性能モニタによって決定される計算リソース使用量と、前記性能モニタによって決定されるジッタの測度とのうちの1つまたは複数に適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を行うように構成された、請求項1または2に記載の人工現実システム。
【請求項6】
前記HMDが、前記性能モニタと、前記DOFセレクタと、前記ポーズトラッカーと、前記レンダリングエンジンとを備える、請求項1から5のいずれか一項に記載の人工現実システム。
【請求項7】
コンソールデバイスをさらに備え、前記コンソールデバイスが、前記性能モニタと、前記DOFセレクタと、前記ポーズトラッカーと、前記レンダリングエンジンとを備える、請求項1から5のいずれか一項に記載の人工現実システム。
【請求項8】
前記ポーズトラッカーが6DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第1のモードと、前記ポーズトラッカーが3DOFを使用して前記1つまたは複数のポーズを計算する前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用するために、前記DOFセレクタは、前記ポーズトラッカーが6DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第1のモードを選択することから、前記ポーズトラッカーが3DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第2のモードを選択することに切り替えるために、前記1つまたは複数のポリシーを前記性能インジケータに適用するように構成され、
前記ポーズトラッカーが、6DOFを使用して前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することから、3DOFを使用して前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することに切り替えるようにさらに構成された、
請求項1から7のいずれか一項に記載の人工現実システム。
【請求項9】
前記ポーズトラッカーが6DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第1のモードと、前記ポーズトラッカーが3DOFを使用して前記1つまたは複数のポーズを計算する前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用するために、前記DOFセレクタは、前記ポーズトラッカーが3DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第2のモードを選択することから、前記ポーズトラッカーが6DOFを使用して前記3D環境内の前記HMDの前記1つまたは複数のポーズを計算する前記第1のモードを選択することに切り替えるために、前記1つまたは複数のポリシーを前記性能インジケータに適用するように構成され、
前記ポーズトラッカーが、3DOFを使用して前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することから、6DOFを使用して前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することに切り替えるようにさらに構成された、
請求項1から7のいずれか一項に記載の人工現実システム。
【請求項10】
少なくとも1つのヘッドマウントディスプレイ(HMD)を有する人工現実システムに関連する1つまたは複数の性能インジケータを決定することと、
6自由度(6DOF)を使用して3次元(3D)環境内の前記HMDの1つまたは複数のポーズが計算される第1のモードと、3自由度(3DOF)を使用して前記1つまたは複数のポーズが計算される第2のモードとから選択するために、1つまたは複数のポリシーを前記性能インジケータに適用することと、
選択されたモードに従って前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することと、
計算された前記1つまたは複数のポーズに基づいて人工現実コンテンツをレンダリングすることと、
前記HMDによって、レンダリングされた前記人工現実コンテンツを出力することと
を含む方法。
【請求項11】
6DOFを使用して前記HMDの前記1つまたは複数のポーズを計算することが、前記HMDによる回転運動と並進運動の両方に関する前記HMDの1つまたは複数のポーズを計算することを含み、
3DOFを使用して前記HMDの前記1つまたは複数のポーズを計算することが、前記HMDによる回転運動に関するが、前記HMDによる並進運動には関さない前記HMDの前記1つまたは複数のポーズを計算することを含み、
前記HMDによる前記回転運動が、前記HMDの垂直軸、前記HMDの横軸、または前記HMDの縦軸のうちの少なくとも1つの周囲の回転運動を含み、
前記HMDによる前記並進運動が、前記HMDの前記垂直軸、前記HMDの前記横軸、または前記HMDの前記縦軸のうちの少なくとも1つに沿った並進運動を含む、
請求項10に記載の方法。
【請求項12】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用することは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーを画像トラッキングの品質レベルに適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を含む、請求項10または11に記載の方法。
【請求項13】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用することは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーをアイトラッキング品質に適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を含む、請求項10または11に記載の方法。
【請求項14】
前記第1のモードと前記第2のモードとから選択するために、前記1つまたは複数のポリシーを前記性能インジケータに適用することは、
遷移条件が満たされたと決定するために、前記1つまたは複数のポリシーを計算リソース使用量に適用することと、
前記遷移条件が満たされたという前記決定に基づいて、前記第1のモードと前記第2のモードとから選択することと
を含む、請求項10または11に記載の方法。
【請求項15】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
少なくとも1つのヘッドマウントディスプレイ(HMD)を有する人工現実システムに関連する1つまたは複数の性能インジケータを決定することと、
6自由度(6DOF)を使用して3次元(3D)環境内の前記HMDの1つまたは複数のポーズが計算される第1のモードと、3自由度(3DOF)を使用して前記1つまたは複数のポーズが計算される第2のモードとから選択するために、1つまたは複数のポリシーを前記性能インジケータに適用することと、
選択されたモードに従って前記3D環境内の前記HMDについての前記1つまたは複数のポーズを計算することと、
計算された前記1つまたは複数のポーズに基づいて人工現実コンテンツをレンダリングすることと、
レンダリングされた前記人工現実コンテンツを出力することと
を行わせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、その全体がすべての目的のために参照により本明細書に組み込まれる、2019年2月1日に出願された、米国出願第16/264,805号からの優先権を主張する。
【0002】
本開示は、一般に、仮想現実システム、複合現実システムおよび/または拡張現実システムなど、人工現実システムに関し、より詳細には、ヘッドマウントディスプレイ(HMD)および人工現実システムの他の構成要素に関する。
【背景技術】
【0003】
人工現実システムは、コンピュータゲーム、健康および安全、工業、ならびに教育などの多くの分野における適用例にとってますますユビキタスになっている。いくつかの例として、人工現実システムは、モバイルデバイス、ゲーミングコンソール、パーソナルコンピュータ、映画館、およびテーマパークに組み込まれている。概して、人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。
【0004】
一般的な人工現実システムは、ユーザに対してコンテンツをレンダリングおよび表示するための1つまたは複数のデバイスを含む。一例として、人工現実システムは、ユーザによって装着され、ユーザに人工現実コンテンツを出力するように構成された、ヘッドマウントディスプレイ(HMD)を組み込み得る。特に、人工現実システムは、一般に、HMDなど、基準系の現在のポーズ(たとえば位置および向き)を計算し、現在のポーズに基づいてユーザへの表示のためのコンテンツを選択的にレンダリングする。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界のビデオおよび/または画像)と組み合わせられた生成されたコンテンツを含み得る。
【発明の概要】
【0005】
概して、本開示は、適応的自由度(DOF:degrees-of-freedom)選択を有する人工現実システムに関する。本明細書でさらに説明されるように、人工現実システムは、様々な動作条件を監視し、人工現実システムの1つまたは複数の基準系からの1つまたは複数のポーズを計算する際に使用するための異なるDOFを適応的に選択し得る。人工現実システムは、ヘッドマウントディスプレイ(HMD)のディスプレイなど、基準系を正確にトラッキングするシステムの能力に影響を及ぼし得る動作条件を監視し、基準系の現在の観察パースペクティブ(viewing perspective)に基づく良質人工現実コンテンツをレンダリングし得る。例示的な動作条件は、特徴トラッキング品質、特徴照明品質、ネットワーク性能、計算リソース使用量、またはシステムの能力に悪影響を及ぼし得る他のファクタを含む。人工現実システムは、リアルタイムまたは擬似リアルタイムでの1つまたは複数のポーズの計算のための異なるDOFから適応的に選択するために、ポリシーを、監視される条件から決定された性能インジケータに適用し得る。たとえば、人工現実システムは、6DOFを使用してポーズ(たとえば、基準系の軸に沿った回転運動と並進運動の両方)を計算することと、または、3DOFのみを使用してポーズ(たとえば、基準系の軸に沿った回転運動のみ)を計算することとから選択するために、ポリシーを性能インジケータに適用し得る。
【0006】
したがって、本開示の技法は、人工現実システム内でコンテンツをレンダリングおよび表示するコンピュータ関連分野に対する特定の改善を提供し得る。たとえば、本明細書で説明される人工現実システムは、6DOFを使用してポーズを計算することによって、人工現実システムのユーザに高品質人工現実体験を提供し得る。さらに、そのようなシステムは、6DOFを使用してポーズが計算されることになった場合にユーザ体験が悪くなるであろうことを性能インジケータが示す場合、3DOFを使用してポーズを計算することにシームレスに切り替え得る。例として、本明細書で説明されるシステムは、6DOFを使用することを回避し得、ソフトウェア、ハードウェア、ネットワーク、または環境条件は、さもなければユーザ体験の劣化を引き起こすであろう。さらに、本明細書で説明される例示的なシステムは、方向感覚の喪失(disorientation)、吐き気、「めまい(swimminess)」、および他の副作用など、人工現実システムの一部のユーザによって体験される悪影響を低減し得る。
【0007】
本発明の第1の態様によれば、人工現実システムであって、人工現実コンテンツを出力するように構成されたヘッドマウントディスプレイ(HMD)と、3次元(3D)環境内のHMDの1つまたは複数のポーズを計算するように構成されたポーズトラッカーと、人工現実システムに関連する1つまたは複数の性能インジケータを決定するように構成された、1つまたは複数のプロセッサ上で実行する、性能モニタと、ポーズトラッカーが6自由度(6DOF)を使用してHMDの1つまたは複数のポーズを計算するように構成された第1のモードと、ポーズトラッカーが3自由度(3DOF)を使用して1つまたは複数のポーズを計算するように構成された第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するように構成された、自由度(DOF)セレクタと、計算された1つまたは複数のポーズに基づいて人工現実コンテンツをレンダリングするように構成されたレンダリングエンジンとを備える、人工現実システムが提供される。
【0008】
6DOFを使用してHMDの1つまたは複数のポーズを計算するために、ポーズトラッカーは、HMDによる回転運動と並進運動の両方に関するHMDの1つまたは複数のポーズを計算するようにさらに構成され得る。
【0009】
3DOFを使用してHMDの1つまたは複数のポーズを計算するために、ポーズトラッカーは、HMDによる回転運動に関するが、HMDによる並進運動には関さないHMDの1つまたは複数のポーズを計算するようにさらに構成され得る。
【0010】
HMDによる回転運動は、HMDの垂直軸、HMDの横軸、またはHMDの縦軸のうちの少なくとも1つの周囲の回転運動を含み得る。
【0011】
HMDによる並進運動は、HMDの垂直軸、HMDの横軸、またはHMDの縦軸のうちの少なくとも1つに沿った並進運動を含み得る。
【0012】
第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、性能モニタによって決定される画像トラッキングの品質レベルに適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0013】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、性能モニタによって決定されるアイトラッキング品質に適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0014】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、性能モニタによって決定される環境輝度のレベルに適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0015】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、人工現実システムによって現在トラッキングされている特徴の数に適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0016】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、性能モニタによって決定される現実世界特徴の画像テクスチャに適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0017】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを、性能モニタによって決定されるネットワーク性能またはレイテンシに適用するように構成され得る。DOFセレクタは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択するようにさらに構成され得る。
【0018】
ポーズトラッカーが6DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第1のモードと、ポーズトラッカーが3DOFを使用して1つまたは複数のポーズを計算する第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、ポーズトラッカーが6DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第1のモードを選択することから、ポーズトラッカーが3DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第2のモードを選択することに切り替えるために、1つまたは複数のポリシーを性能インジケータに適用するように構成され得る。ポーズトラッカーは、6DOFを使用して3D環境内のHMDについての1つまたは複数のポーズを計算することから、3DOFを使用して3D環境内のHMDについての1つまたは複数のポーズを計算することに切り替えるようにさらに構成され得る。
【0019】
代替的に、および/または追加として、ポーズトラッカーが6DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第1のモードと、ポーズトラッカーが3DOFを使用して1つまたは複数のポーズを計算する第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用するために、DOFセレクタは、ポーズトラッカーが3DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第2のモードを選択することから、ポーズトラッカーが6DOFを使用して3D環境内のHMDの1つまたは複数のポーズを計算する第1のモードを選択することに切り替えるために、1つまたは複数のポリシーを性能インジケータに適用するように構成され得る。ポーズトラッカーは、3DOFを使用して3D環境内のHMDについての1つまたは複数のポーズを計算することから、6DOFを使用して3D環境内のHMDについての1つまたは複数のポーズを計算することに切り替えるようにさらに構成され得る。
【0020】
本発明の第2の態様によれば、少なくとも1つのヘッドマウントディスプレイ(HMD)を有する人工現実システムに関連する1つまたは複数の性能インジケータを決定することと、6自由度(6DOF)を使用して3次元(3D)環境内のHMDの1つまたは複数のポーズが計算される第1のモードと、3自由度(3DOF)を使用して1つまたは複数のポーズが計算される第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することと、選択されたモードに従って3D環境内のHMDについての1つまたは複数のポーズを計算すること、計算された1つまたは複数のポーズに基づいて人工現実コンテンツをレンダリングすることと、HMDによって、レンダリングされた人工現実コンテンツを出力することとを含む方法が、提供される。
【0021】
6DOFを使用してHMDの1つまたは複数のポーズを計算することは、HMDによる回転運動と並進運動の両方に関するHMDの1つまたは複数のポーズを計算することを含み得る。3DOFを使用してHMDの1つまたは複数のポーズを計算することは、HMDによる回転運動に関するが、HMDによる並進運動には関さないHMDの1つまたは複数のポーズを計算することを含み得る。HMDによる回転運動は、HMDの垂直軸、HMDの横軸、またはHMDの縦軸のうちの少なくとも1つの周囲の回転運動を含み得る。HMDによる並進運動は、HMDの垂直軸、HMDの横軸、またはHMDの縦軸のうちの少なくとも1つに沿った並進運動を含み得る。
【0022】
第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーを画像トラッキングの品質レベルに適用することを含み得る。第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択することをさらに含み得る。
【0023】
代替的に、および/または追加として、第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することは、遷移条件が満たされたと決定するために、1つまたは複数のポリシーをアイトラッキング品質に適用することを含み得る。第1のモードと第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することは、遷移条件が満たされたという決定に基づいて、第1のモードと第2のモードとから選択することをさらに含み得る。
【0024】
本発明の第3の態様によれば、命令を含む非一時的コンピュータ可読媒体であって、命令は、実行されたとき、1つまたは複数のプロセッサに、少なくとも1つのヘッドマウントディスプレイ(HMD)を有する人工現実システムに関連する1つまたは複数の性能インジケータを決定することと、6自由度(6DOF)を使用して3次元(3D)環境内のHMDの1つまたは複数のポーズが計算される第1のモードと、3自由度(3DOF)を使用して1つまたは複数のポーズが計算される第2のモードとから選択するために、1つまたは複数のポリシーを性能インジケータに適用することと、選択されたモードに従って3D環境内のHMDについての1つまたは複数のポーズを計算すること、計算された1つまたは複数のポーズに基づいて人工現実コンテンツをレンダリングすることと、レンダリングされた人工現実コンテンツを出力することとを行わせる、非一時的コンピュータ可読媒体が提供される。
【0025】
本開示の技法の1つまたは複数の例の詳細は、添付の図面および以下の説明において記載される。本技法の他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0026】
【
図1A】本開示の技法による、基準系についての1つまたは複数のポーズを計算する際におよびユーザに対してコンテンツをレンダリングするときに使用するためのDOFを適応的に選択する例示的な人工現実システムを示す図である。
【
図1B】本開示の技法による、ユーザに対してコンテンツをレンダリングするときに1つまたは複数のポーズを計算する際に使用するためのDOFを適応的に選択する別の人工現実システムを示す図である。
【
図2】本開示の技法に従って動作する例示的なHMDを示す図である。
【
図3】
図1A、
図1BのコンソールとHMDとの例示的な実装形態を示すブロック図である。
【
図4】本開示の技法による、人工現実コンテンツをレンダリングするために
図1A、
図1BのHMDによってポーズトラッキングとDOF選択とが実施される一例を示すブロック図である。
【
図5】本開示の技法による、レンダリングされた人工現実コンテンツを示す図である。
【
図6】本開示の技法による、ポリシーリポジトリとして
図3、
図4のポリシーの例示的な一実装形態を示すブロック図である。
【
図7】本開示の技法による、1つまたは複数のポーズを計算する際に使用するためのDOFを適応的に選択するための例示的な動作を示すフローチャートである。
【発明を実施するための形態】
【0027】
同様の参照符号は、図および説明全体にわたって同様の要素を指す。
【0028】
図1Aは、本開示の技法による、ユーザ110に対してコンテンツをレンダリングするときに基準系の1つまたは複数のポーズを計算する際に使用するための自由度(DOF)を適応的に選択する例示的な人工現実システム1を示す図である。以下でさらに説明されるように、この例では、コンソール106および/またはHMD112は、人工現実システム1の性能インジケータを監視し、監視された性能インジケータへのポリシーの適用に基づいて、HMD112のディスプレイなど、基準系のポーズ計算中に使用するためのDOFの選択を適応的に実施する。説明されたように、このようにして、人工現実システム1は、ユーザ110に高品質およびより現実的な人工現実体験を提供し、通常ならば起こり得る不正確さを回避するように動作し得る。
【0029】
図1Aの例では、人工現実システム1は、HMD112と、コントローラ114A~114B(まとめて、「コントローラ114」)と、コンソール106と、いくつかの例では、1つまたは複数のセンサー90とを含む。示されているように、HMD112は、一般に、ユーザ110によって装着され、ユーザに人工現実コンテンツ122を提示するための電子ディスプレイと光学アセンブリとを含む。さらに、HMD112は、HMDの動きをトラッキングするための1つまたは複数のセンサー(たとえば、加速度計)を含み、周囲環境の画像データをキャプチャするための1つまたは複数の画像キャプチャデバイス、たとえば、カメラ、ラインスキャナなどを含み得る。各コントローラ114は、ユーザ110が、コンソール106、それぞれのHMD112、または人工現実システム1の別の構成要素への入力を提供するために使用し得る、入力デバイスである。この例では、コンソール106は、ゲーミングコンソール、ワークステーション、デスクトップコンピュータ、またはラップトップなど、単一のコンピューティングデバイスとして示されている。他の例では、コンソール106は、分散コンピューティングネットワーク、データセンター、またはクラウドコンピューティングシステムなど、複数のコンピューティングデバイスにわたって分散され得る。コンソール106、HMD112、コントローラ114、およびセンサー90は、この例に示されているように、ネットワーク104を介して通信可能に結合され得、ネットワーク104は、WiFi、メッシュネットワークまたは短距離ワイヤレス通信媒体など、ワイヤードまたはワイヤレスネットワークであり得る。HMD112は、この例では、コンソール106と通信しているものとして、たとえば、コンソール106にテザリングされるかまたはコンソール106とワイヤレス通信しているものとして示されているが、いくつかの実装形態では、HMD112は、スタンドアロンモバイル人工現実システムとして動作する。
【0030】
概して、人工現実システム1は、ユーザ110への表示のための人工現実コンテンツ122をレンダリングするために、現実世界の3D環境からキャプチャされた情報を使用する。
図1Aの例では、ユーザ110は、コンソール106および/またはHMD112上で実行する人工現実アプリケーションによって、構築およびレンダリングされた人工現実コンテンツ122を観察する。一例として、人工現実コンテンツ122は、家庭用ゲームアプリケーションであり得、ユーザ110がアバター120として、現実世界の像と仮想オブジェクトとの混合物、たとえば、混合現実および/または拡張現実とともに、いくつかの例では、そのようなものとしてレンダリングされる。他の例では、人工現実コンテンツ122は、たとえば、ビデオ会議アプリケーション、ナビゲーションアプリケーション、教育アプリケーション、トレーニングまたはシミュレーションアプリケーション、あるいは人工現実を実装する他のタイプのアプリケーションであり得る。
【0031】
動作中に、人工現実アプリケーションは、基準系、一般にHMD112の観察パースペクティブについてのポーズ情報をトラッキングおよび計算することによって、ユーザ110への表示のための人工コンテンツを構築する。現在の観察パースペクティブに基づいて、人工現実アプリケーションは、ユーザ110の現実世界の3D環境上に少なくとも部分的にオーバーレイされ得る3D人工現実コンテンツをレンダリングする。このプロセス中、人工現実アプリケーションは、ユーザ110による動きおよび/またはユーザ110に関する特徴トラッキング情報など、現実世界の環境内の3D情報をキャプチャするために、運動情報およびユーザコマンドなど、HMD112から受信された検知されたデータと、いくつかの例では、外部カメラなど、任意の外部センサー90からのデータとを使用する。検知されたデータに基づいて、人工現実アプリケーションは、HMD112の基準系についての現在のポーズを決定し、現在のポーズに従って、人工現実コンテンツをレンダリングする。より詳細には、人工現実アプリケーションは、DOFのセットに関する動き(すなわち、回転および/または並進)を表す基準系、たとえばHMD112のディスプレイについての更新されたポーズ情報を計算するために、受信された情報を処理する。
【0032】
その上、本開示の技法によれば、人工現実アプリケーションは、人工現実システム1の現在の動作条件または特性に関する、アプリケーションによって決定された性能インジケータに基づいて、適応的DOF選択を実施する。すなわち、本明細書でさらに説明されるように、人工現実アプリケーションは、人工現実コンテンツ122の品質に影響を及ぼし、劣化させ得る現在の性能インジケータを決定するために、動作条件を監視する。人工現実アプリケーションによって監視される例示的な動作条件は、特徴トラッキング品質、特徴照明品質、ネットワーク性能、計算リソース使用量、アイトラッキング品質、環境輝度、画像トラッキングに影響を及ぼす見通し線または他の可視性条件、画像テクスチャ、レンダリング品質、ネットワーク性能またはレイテンシ、計算リソース使用量、ジッタ、あるいは1つまたは複数の基準系についての更新されたポーズ情報を正確に計算するシステムの能力に悪影響を及ぼし得る任意の他のファクタを含む。
【0033】
人工現実アプリケーションは、HMD112の基準系についての更新されたポーズを計算する際に使用されるべき推定された動き(すなわち、推定された回転および並進)のための許可されるDOF(permissible DOF)の異なるセットから、リアルタイムまたは擬似リアルタイムで動的に選択するために、1つまたは複数のポリシーを現在の性能インジケータに適応的に適用する。基準系についての更新されたポーズを決定し、現在の観察パースペクティブのためのコンテンツをレンダリングするとき、人工現実アプリケーションは、いくつかの例では、利用可能なDOFのサブセットにすぎないことがある選択されたDOFを使用して、現在の動きデータを処理する。言い換えれば、コントローラ114および/またはセンサー90からの現在の動きデータキャプチャに基づいて、人工現実アプリケーションは、選択されたセットの許可されるDOFのみに関する基準系の推定された運動を計算し、それにより、ユーザ110に高品質およびより現実的な人工現実体験を提供し、通常ならば起こり得る不正確さを回避するように動作する。
【0034】
いくつかの例では、各性能インジケータは、ユーザ110によって構成可能であり得る、ポリシーによって定義された対応する性能しきい値に関連する。いくつかの実装形態では、人工現実システム1は、遷移条件が満たされたかどうかを決定するために、ポリシーを性能インジケータに適用し、それにより、DOFの異なるセットの使用をトリガする。特定の性能インジケータについての性能しきい値を満たすかまたは超えると、人工現実システム1は、HMD112の基準系についての更新されたポーズを計算する際に使用されるべき許可されるDOFの異なるセットから動的に選択する。
【0035】
一例として、人工現実システム1は、現在の性能インジケータを決定するために動作条件および特性を監視し、基準系の計算された動きが完全6DOFに関して許可される第1のモード(たとえば、基準系の回転運動と並進運動の両方)と、基準系の動きが、3DOFのみに関して許可される第2のモード(たとえば、基準系の回転運動)とから動的に選択するために、ポリシーを性能インジケータに適用し得る。基準系についての更新されたポーズを計算するときの完全6DOFの使用は、3DOFの使用に勝る多数の利点を提供し得る。たとえば、HMD112による回転動きおよび並進運動を許可することは、現実世界の運動をより正確に表す様式でのより現実的なおよび関与する人工現実コンテンツのレンダリングを可能にし得る。しかしながら、様々な性能インジケータの劣化は、基準系についてのポーズを正確に計算するかまたは完全6DOFに関する人工現実コンテンツをレンダリングする、人工現実システム1の能力に悪影響を及ぼし得る。たとえば、周辺光が低すぎる場合、または環境が十分な数のトラッキング可能特徴を欠く場合、コンソール106および/またはHMD112上で実行する人工現実アプリケーションは、特徴トラッキングを正確に実施することができないことがある。これは、人工現実アプリケーションが6DOFを使用してポーズを不正確に計算することを引き起こすことがあり、(たとえば、HMD112の運動としてキャプチャされる)ユーザ110の現実世界の動きが、人工現実世界内のレンダリングされた動きと整合しないので、ユーザ110の体験に悪影響を及ぼし得る。別の例として、ネットワーク104のレイテンシが高くなりすぎるか、または人工現実システム1が、現在のローディングに基づいて、6DOFを使用してポーズを計算するのに十分なソフトウェアおよび/またはハードウェアリソースを有しない場合、ユーザ110は、スタッタリング(stuttering)、ラグ、低減されたフレームレート、または他の芳しくない結果を体験することがある。そのような状況では、人工現実アプリケーションは、ポーズ推定の計算に関して、基準系の動きが3DOFに関してのみ許可されるモード(たとえば、基準系の回転運動)に、自動的および動的に遷移し得る。3DOFの使用は、6DOFの使用のように体験の関与を提供しないことがあるが、3DOFを使用して計算されるポーズの正確さおよび/または品質は、これらの性能インジケータの劣化に対して6DOFよりもロバストであり得る。結果として、更新されたポーズに従ってレンダリングおよび表示されたコンテンツは、ユーザ110により現実的な体験を提供し得る。
【0036】
いくつかの例では、ポーズを計算するときのDOFの異なるセットの使用からの適応的遷移は、監視された性能インジケータへのポリシーの適用に基づいて自動的である。他の例では、人工現実システム1は、ユーザ110など、ユーザからの確認を受信したことに応答して遷移を実施する。いくつかの例では、人工現実システム1が、6DOFを使用してHMD112のポーズを計算するようにデフォルト設定され得る。他の例では、人工現実システム2が、3DOFを使用してポーズを計算するようにデフォルト設定され得る。
【0037】
したがって、本開示の技法は、人工現実システム内でコンテンツをレンダリングおよび表示するコンピュータ関連分野に対する特定の技術改善を提供する。たとえば、本明細書で説明される人工現実システムは、許可されたときに完全6DOFを使用してポーズを計算することによって、人工現実アプリケーションのユーザ110など、ユーザに高品質人工現実体験を提供し得る。さらに、ユーザの体験を劣化させ得る検知動作条件および特性に応答して、そのようなシステムは、3DOFなど、DOFの低減されたセットを使用してポーズを計算することにシームレスに切り替えるように構成され得る。例として、本明細書で説明されるシステムは、6DOFを使用することを回避し得、ソフトウェア、ハードウェア、ネットワーク、または環境条件は、さもなければユーザ体験の劣化を引き起こすであろう。さらに、本明細書で説明される例示的なシステムは、方向感覚の喪失、吐き気、「めまい」、および他の副作用など、人工現実アプリケーションの一部のユーザによって体験される悪影響を低減し得る。
【0038】
図1Bは、本開示の技法による、ユーザ110A~110C(まとめて、「ユーザ110」)に対してコンテンツをレンダリングするときに1つまたは複数のポーズを計算する際に使用するための自由度を適応的に選択する別の人工現実システム2を示す図である。この例では、人工現実システム2は、カメラ102Aおよび102B(まとめて、「カメラ102」)と、HMD112Aおよび112B(まとめて、「HMD112」)と、コントローラ114A~114D(まとめて、「コントローラ114」)と、コンソール106と、モバイルデバイス118とを含む。モバイルデバイス118は、たとえば、モバイルフォン、ラップトップ、タブレットコンピュータ、スマートグラスなどのウェアラブルデバイス、携帯情報端末(PDA)などであり得る。
【0039】
図1Bに示されているように、人工現実システム2は、コンソール106、HMD112および/またはモバイルデバイス118上で実行する人工現実アプリケーションが、各ユーザに人工現実コンテンツを、そのユーザについての対応する基準系の現在の観察パースペクティブに基づいて提示する、マルチユーザ環境を表す。すなわち、この例では、人工現実アプリケーションは、HMD112およびモバイルデバイス118の各々についての基準系についてのポーズ情報をトラッキングおよび計算することによって、人工コンテンツを構築する。人工現実システム2は、HMD112またはモバイルデバイス118の対応する基準系についての更新されたポーズ情報を計算する際に使用するための、ユーザ110による動きならびに/またはユーザ110およびオブジェクト108Aに関するトラッキング情報など、現実世界の環境内の3D情報をキャプチャするために、カメラ102、HMD112、コントローラ114、およびモバイルデバイス118から受信されたデータを使用する。一例として、人工現実アプリケーションは、モバイルデバイス118について決定された現在の観察パースペクティブに基づいて、コンテンツオブジェクト128A~128Cを、現実世界のオブジェクト108A~108C(まとめて、「オブジェクト108」)上に空間的にオーバーレイされたものとして有する、人工現実コンテンツ122をレンダリングし得る。さらに、モバイルデバイス118のパースペクティブから、人工現実システム2は、それぞれ、ユーザ110A、110Bについての推定された位置に基づいて、アバター120A、120Bをレンダリングする。
【0040】
図1Aに関して上記で説明された例と同様の様式で、人工現実システム2は、人工現実システム2の現在の動作条件または特性に関する、人工現実アプリケーションによって決定された性能インジケータに基づいて、適応的DOF選択を実施する。このようにして、本明細書で説明されたように、人工現実システム2は、ユーザ110に高品質およびより現実的な人工現実体験を提供し、他の場合に起こり得る不正確さを回避するように動作し得る。
【0041】
図2は、本開示の技法に従って動作するように構成された例示的なHMD112を示す図である。
図2のHMD112は、
図1Aおよび
図1BのHMD112のいずれかの一例であり得る。HMD112は、
図1A、
図1Bの人工現実システム1、2など、人工現実システムの一部であり得るか、または、本明細書で説明される技法を実装するように構成されたスタンドアロンモバイル人工現実システムとして動作し得る。
【0042】
この例では、HMD112は、HMD112をユーザに固定するための前面剛体とバンドとを含む。さらに、HMD112は、ユーザに人工現実コンテンツを提示するように構成された内向き(interior-facing)電子ディスプレイ203を含む。電子ディスプレイ203は、液晶ディスプレイ(LCD)、量子ドットディスプレイ、ドットマトリックスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、陰極線管(CRT)ディスプレイ、e-ink、あるいは視覚出力を生成することが可能なモノクロ、カラー、または、他のタイプのディスプレイなど、任意の好適なディスプレイ技術であり得る。いくつかの例では、電子ディスプレイは、ユーザの各眼に別個の画像を提供するための立体視ディスプレイである。いくつかの例では、HMD112の前面剛体に対するディスプレイ203の知られている向きおよび位置は、HMD112およびユーザの現在の観察パースペクティブに従って人工現実コンテンツをレンダリングするためにHMD112の位置および向きをトラッキングするとき、ローカル原点とも呼ばれる基準系として使用される。
【0043】
図2にさらに示されているように、この例では、HMD112は、3DOF、一般にロール、ピッチおよびヨーに関するHMD112の現在の加速度を示すデータを出力する、(慣性測定ユニットまたは「IMU」とも呼ばれる)1つまたは複数の加速度計など、1つまたは複数の動きセンサー206をさらに含む。その上、HMD112は、周囲の現実世界の環境を表す画像データを出力するように構成された、ビデオカメラ、レーザースキャナ、ドップラーレーダースキャナ、深度スキャナなど、1つまたは複数の統合された画像キャプチャデバイス208を含み得る。HMDは、検知されたデータを処理し、ディスプレイ203上に人工現実コンテンツを提示するためにプログラム可能な動作を実行するための動作環境を提供するために、内部電源と、1つまたは複数のプロセッサ、メモリ、およびハードウェアを有する1つまたは複数のプリント回路基板とを含み得る、内部制御ユニット210を含み得る。
【0044】
一例では、本明細書で説明される技法によれば、制御ユニット201は、検知されたデータに基づいて、DOFの適応的に選択されたセットを使用してHMD112の基準系についての現在のポーズを計算することと、現在のポーズに従ってユーザに人工現実コンテンツを表示することとを行うように構成される。本明細書で説明されるように、本開示の技法によれば、制御ユニット210は、人工現実システムの現在の動作条件または特性に関する性能インジケータに基づいて、更新されたポーズを計算するとき、異なるDOFの使用の間で適応的に遷移し得る。
【0045】
一例として、HMD112の制御ユニット210は、6DOFを使用して位置および/または向きを決定するために第1のモードで動作するように構成され得る。たとえば、第1のモードで動作する間、HMD112の制御ユニット210は、観察パースペクティブの回転変換(たとえば、HMD112の垂直軸、横軸、または縦軸に沿った回転運動)と観察パースペクティブの並進変換(たとえば、HMD112の垂直軸、横軸、または縦軸に沿った並進運動)の両方を使用して、人工現実環境内の1つまたは複数のポーズを決定するように構成される。HMD112は、ポリシーの適用に基づいて、制御ユニット210が3DOFのみを使用して位置および/または向きを決定するように構成された第2のモードで動作することに動的に遷移し得る。たとえば、第2のモードで動作する間、HMD112は、観察パースペクティブの並進変換を妨げながら、観察パースペクティブの回転変換のみを使用して、人工現実環境内の1つまたは複数のポーズを決定し得る。
【0046】
別の例では、ポーズ推定値をローカルに計算するのではなく、制御ユニット210は、本明細書で説明される技法による適応的DOF選択を使用したポーズトラッキングのために、動きセンサー206からの動きデータおよび画像キャプチャデバイス208からの画像データなど、検知されたデータを
図1A、
図1Bのコンソール106など、外部コンソールに中継する。情報は、性能テレメトリ、運動情報、ユーザコマンド、および人工現実環境中の3Dポーズをレンダリングすることに関連する他の情報を含み得る。中継されたデータに基づいて、コンソール106は、選択されたセットの許可されるDOFのみに関するHMD12の基準系の推定された運動を計算し、それにより、ユーザ110に高品質およびより現実的な人工現実体験を提供し、他の場合に起こり得る不正確さを回避するように動作する。
【0047】
図3は、
図1A、
図1Bのコンソール106とヘッドマウントディスプレイ112との例示的な実装形態を示すブロック図である。
図3の例では、コンソール106は、HMD112および/または外部センサーから受信された動きデータおよび画像データなど、検知されたデータに基づいて、本明細書で説明される技法による適応的DOF選択を使用して、HMD112のポーズトラッキングを実施する。
【0048】
この例では、HMD112は、いくつかの例では、オペレーションシステム305を実行するためのコンピュータプラットフォームを提供する1つまたは複数のプロセッサ302とメモリ304とを含み、オペレーションシステム305は、埋込み型リアルタイムマルチタスキングオペレーティングシステムであり得る。次に、オペレーティングシステム305は、1つまたは複数のソフトウェア構成要素317を実行するためのマルチタスキング動作環境を提供する。
図2の例に関して説明されるように、プロセッサ302は、電子ディスプレイ306と、動きセンサー206と、画像キャプチャデバイス208とに結合される。いくつかの例では、プロセッサ302とメモリ304とは、別個の、個別構成要素であり得る。他の例では、メモリ304は、単一の集積回路内にプロセッサ302とコロケートされるオンチップメモリであり得る。
【0049】
概して、コンソール106は、人工現実環境内のHMD112についての1つまたは複数のポーズを計算するために、カメラ102(
図1B)および/またはHMD112から受信された画像およびトラッキング情報を処理するコンピューティングデバイスである。いくつかの例では、コンソール106は、ワークステーション、デスクトップコンピュータ、ラップトップなど、単一のコンピューティングデバイスである。いくつかの例では、プロセッサ352および/またはメモリ354など、コンソール106の少なくとも一部分は、クラウドコンピューティングシステムにわたって、データセンターにわたって、あるいは、インターネット、別のパブリックまたはプライベート通信ネットワーク、たとえば、ブロードバンド、セルラー、Wi-Fi、および/または、コンピューティングシステムとサーバとコンピューティングデバイスとの間でデータを送信するための、他のタイプの通信ネットワークなど、ネットワークにわたって分散され得る。
【0050】
図3の例では、コンソール106は、いくつかの例では、オペレーションシステム316を実行するためのコンピュータプラットフォームを提供する1つまたは複数のプロセッサ312とメモリ314とを含み、オペレーションシステム316は、埋込み型リアルタイムマルチタスキングオペレーティングシステムであり得る。次に、オペレーティングシステム316は、1つまたは複数のソフトウェア構成要素317を実行するためのマルチタスキング動作環境を提供する。プロセッサ312は、結合されたI/Oインターフェース315であり、I/Oインターフェース315は、キーボード、ゲームコントローラ、ディスプレイデバイス、画像キャプチャデバイスなど、外部デバイスと通信するための1つまたは複数のI/Oインターフェースを提供する。その上、I/Oインターフェース315は、ネットワーク104など、ネットワークと通信するための1つまたは複数のワイヤードまたはワイヤレスネットワークインターフェースコントローラ(NIC)を含み得る。プロセッサ302、312の各々は、マルチコアプロセッサ、コントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは等価な個別論理回路または集積論理回路のうちの任意の1つまたは複数を含み得る。メモリ304、314は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電子的消去可能プログラマブル読取り専用メモリ(EEPROM)、およびフラッシュメモリなど、データおよび実行可能ソフトウェア命令を記憶するための任意の形式のメモリを含み得る。
【0051】
コンソール106のソフトウェアアプリケーション317は、人工現実アプリケーション全体を提供するように動作する。この例では、ソフトウェアアプリケーション317は、アプリケーションエンジン320と、レンダリングエンジン322と、性能モニタ324と、ポーズトラッカー326と、DOFセレクタ328とを含む。
【0052】
概して、アプリケーションエンジン314は、人工現実アプリケーション、たとえば、遠隔会議アプリケーション、ゲームアプリケーション、ナビゲーションアプリケーション、教育アプリケーション、トレーニングまたはシミュレーションアプリケーションなどを提供および提示するための機能性を含む。アプリケーションエンジン314は、たとえば、1つまたは複数のソフトウェアパッケージ、ソフトウェアライブラリ、ハードウェアドライバ、および/またはコンソール106上に人工現実アプリケーションを実装するためのアプリケーションプログラムインターフェース(API)を含み得る。アプリケーションエンジン320による制御に応答して、レンダリングエンジン322は、コンテンツリポジトリ330からコンテンツを取り出し、HMD112のアプリケーションエンジン340によってユーザへの表示のための3D人工現実コンテンツを構築する。
【0053】
アプリケーションエンジン320およびレンダリングエンジン322は、ポーズトラッカー326によって決定された基準系、一般にHMD112の観察パースペクティブについての現在のポーズ情報に従って、ユーザ110への表示のための人工コンテンツを構築する。現在の観察パースペクティブに基づいて、レンダリングエンジン322は、ユーザ110の現実世界の3D環境上に少なくとも部分的にオーバーレイされ得る3D人工現実コンテンツを構築する。このプロセス中、ポーズトラッカー326は、ユーザ110による動きおよび/またはユーザ110に関する特徴トラッキング情報など、現実世界の環境内の3D情報をキャプチャするために、運動情報およびユーザコマンドなど、HMD112から受信された検知されたデータと、いくつかの例では、外部カメラなど、任意の外部センサー90(
図1A、
図1B)からのデータとに対して動作する。検知されたデータに基づいて、ポーズトラッカー326は、HMD112の基準系についての現在のポーズを決定し、現在のポーズに従って、ユーザへの表示のためにHMD112への通信のための人工現実コンテンツを構築する。
【0054】
本開示の技法によれば、DOFセレクタ328は、人工現実システムの現在の動作条件または特性に関する、性能モニタ324によって決定された性能インジケータに基づいて、適応的DOF選択を実施する。DOFセレクタ328は、推定された動き(すなわち、推定された回転および並進)のための許可される自由度の異なるセットから、リアルタイムまたは擬似リアルタイムで動的に選択するために、1つまたは複数のポリシーを現在の性能インジケータに適応的に適用する。ポーズトラッカー326は、HMD112の基準系についての現在のポーズを計算するとき、選択された自由度を使用する。すなわち、現在の観察パースペクティブについてのHMD112についての更新されたポーズを決定するとき、ポーズトラッカー326は、いくつかの例では利用可能なDOFのサブセットにすぎないことがある、DOFセレクタ328によって選択された自由度を使用して、現在の動きデータを処理する。言い換えれば、動きセンサー206、画像キャプチャデバイス208および/または任意の外部センサーからキャプチャされた現在のデータに基づいて、ポーズトラッカー326は、DOFセレクタ328によって選択されたセットの許可される自由度のみに関する基準系の推定された運動を計算し、それにより、ユーザ110に高品質およびより現実的な人工現実体験を提供し、他の場合に起こり得る不正確さを回避するように動作する。
【0055】
いくつかの例では、各性能インジケータは、ポリシーデータベースまたはルールセットの形態をとり得る、ポリシー344の各々によって定義された対応する性能しきい値に関連する。DOFセレクタ328は、遷移条件が満たされたかどうかを決定するために、ポリシー344のうちの1つまたは複数を、性能モニタ324によって計算された性能インジケータに適用し、それにより、DOFの異なるセットの使用をトリガする。特定の性能インジケータについての性能しきい値を満足するかまたは超えると、DOFセレクタ328は、HMD112の基準系についての更新されたポーズを計算する際にポーズトラッカー326によって使用されるべき許可されるDOFの異なるセットから動的に選択する。本明細書で説明されるように、一例では、性能モニタ324は、現在の性能インジケータを決定するために動作条件および特性を監視し得、DOFセレクタ328は、基準系の計算された動きが完全6DOFに関して許可される第1のモード(たとえば、基準系の回転運動と並進運動の両方)と、基準系の動きが、3DOFのみに関して許可される第2のモード(たとえば、基準系の回転運動)とから動的に選択するために、ポリシーを現在の性能インジケータに適用し得る。
【0056】
性能モニタ324によって計算される性能インジケータは、たとえば、画像トラッキング品質、アイトラッキング品質、環境輝度、見通し線、画像テクスチャ、現実世界特徴および対応する人工現実世界特徴の数、現実世界特徴の特性、または画像トラッキングに影響を及ぼす他の可視性条件、レンダリング品質、ネットワーク性能またはレイテンシ、計算リソース使用量、ジッタ、あるいはHMD112のポーズを計算するポーズトラッカー326の能力に悪影響を及ぼし得る他のファクタを含み得る。いくつかの例では、ユーザが、様々な性能インジケータについての基準またはしきい値を指定するポリシーを追加または削除するなど、性能インジケータを定義または構成し得る。性能インジケータを計算するために、ポーズトラッカー326は、フォトセンサーまたはフォトダイオード、ネットワークモニタ、ハードウェアモニタ、センサー、加速度計、IMUなど、1つまたは複数のセンサーからの入力に対して動作し得る。
【0057】
図4は、本開示の技法による、人工現実コンテンツをレンダリングするために
図1A、
図1BのHMD112によってポーズトラッキングとDOF選択とが実施される一例を示すブロック図である。
【0058】
この例では、
図3と同様に、HMD112は、いくつかの例では、オペレーションシステム305を実行するためのコンピュータプラットフォームを提供する1つまたは複数のプロセッサ302とメモリ304とを含み、オペレーションシステム305は、埋込み型リアルタイムマルチタスキングオペレーティングシステムであり得る。次に、オペレーティングシステム305は、1つまたは複数のソフトウェア構成要素417を実行するためのマルチタスキング動作環境を提供する。その上、(1つまたは複数の)プロセッサ302は、電子ディスプレイ306と、動きセンサー206と、画像キャプチャデバイス208とに結合される。
【0059】
図4の例では、ソフトウェア構成要素417は、人工現実アプリケーション全体を提供するように動作する。この例では、ソフトウェアアプリケーション417は、アプリケーションエンジン440と、レンダリングエンジン422と、性能モニタ424と、ポーズトラッカー426と、DOFセレクタ428とを含む。様々な例では、ソフトウェア構成要素417は、基準系についての現在のポーズ情報に従ってユーザ110への表示のための人工コンテンツを構築するために、
図3のコンソール106のカウンターパート構成要素(たとえば、アプリケーションエンジン320、レンダリングエンジン322、性能モニタ324、ポーズトラッカー326、およびDOFセレクタ328)と同様に動作する。たとえば、現在の観察パースペクティブに基づいて、レンダリングエンジン422は、ユーザ110の現実世界の3D環境上に少なくとも部分的にオーバーレイされ得る3D人工現実コンテンツを構築する。本開示の技法によれば、DOFセレクタ428は、人工現実システムの現在の動作条件または特性に関する、性能モニタ424によって決定された性能インジケータに基づいて、適応的DOF選択を実施する。DOFセレクタ428は、推定された動き(すなわち、推定された回転および並進)のための許可されるDOFの異なるセットから、リアルタイムまたは擬似リアルタイムで動的に選択するために、1つまたは複数のポリシーを現在の性能インジケータに適応的に適用する。DOFセレクタ428は、遷移条件が満たされたかどうかを決定するために、ポリシー444のうちの1つまたは複数を、性能モニタ424によって計算された性能インジケータに適用し、それにより、DOFの異なるセットの使用をトリガする。ポーズトラッカー426は、HMD112の基準系についての現在のポーズを計算するとき、選択されたDOFを使用し、それにより、ユーザ110に高品質およびより現実的な人工現実体験を提供し、他の場合に起こり得る不正確さを回避するように動作する。
【0060】
図5は、本開示の技法による、レンダリングされた人工現実コンテンツを示す図である。例の目的で、
図5は、監視された性能インジケータに基づくポーズトラッキングおよびDOF選択がコンソール106によって実施される
図3に関して説明される。しかしながら、
図5は、他のシステム、ローカルポーズおよびDOF選択がHMD112によって実施される
図4の例示的なシステムによって実装され得る。
【0061】
図5の例示的なシーン502Aでは、ポーズトラッカー326は、ポーズトラッカー326が6DOFを使用して3D環境内のHMD112の1つまたは複数のポーズを計算する第1のモードで動作している。たとえば、第1のモードで動作する間、ポーズトラッカー326は、観察パースペクティブの回転変換(たとえば、HMD112の垂直軸、横軸、または縦軸に沿った回転運動)と観察パースペクティブの並進変換(たとえば、HMD112の垂直軸、横軸、または縦軸に沿った並進運動)の両方を使用して、HMD112についての1つまたは複数のポーズを決定するために、検知された入力データ(たとえば、HMD112からの動きおよび並進情報、1つまたは複数のカメラからの画像データなど)を処理する。コンソール106のレンダリングエンジン322は、計算されたポーズに基づいて人工現実コンテンツ122をレンダリングし、レンダリングされた人工現実コンテンツ122を、たとえばHMD112Aによるユーザ110への表示のために人工現実シーン502Aとして出力する。
図5の例示的なシーン502Aに示されているように、レンダリングエンジン322は、アバター120A’として示されている第2の位置へのアバター120Aの並進運動を示す、人工現実コンテンツをレンダリングした。
【0062】
図5の例示的なシーン502Bでは、ポーズトラッカー326は、ポーズトラッカー326が3DOFを使用して3D環境内のHMD112の1つまたは複数のポーズを計算する第2のモードで動作している。すなわち、この例では、DOFセレクタ328は、ポーズトラッカー326が6DOFを使用してHMD112のポーズを計算する第1のモードから、ポーズトラッカー326が3DOFを使用して1つまたは複数のポーズを計算する第2のモードに切り替えるために、1つまたは複数のポリシーを、性能モニタ324によって決定された性能インジケータに適用した。たとえば、第2のモードで動作している間、ポーズトラッカー326は、観察パースペクティブの回転変換のみを許可し、たとえば、準最適な動作条件による不正確なデータまたは近似値によって引き起こされ得る観察パースペクティブの並進変換を妨げることによって、HMD112についての1つまたは複数のポーズを決定する。コンソール106のレンダリングエンジン322は、計算されたポーズに基づいて人工現実コンテンツ122をレンダリングし、レンダリングされたコンテンツを、たとえばHMD112Aによるユーザ110への表示のために人工現実シーン502として出力する。
図5の例示的なシーン502B中に示されているように、第2のモードで動作するとき、ポーズトラッカー326は、シーン502Aの前の例の場合のように、検知された入力データを処理するときでも、並進運動を妨げる。すなわち、性能モニタ324が、1つまたは複数の性能インジケータが、入力データが不正確または低品質であり得ることを示すと決定したので、DOFセレクタ328は、ポーズトラッカー326が3DOFを使用して1つまたは複数のポーズを計算する第2のモードの選択を適応的にトリガした。その結果、検知された入力データ(たとえば、HMD112からの動きおよび並進情報、1つまたは複数のカメラからの画像データなど)を処理する際に、ポーズトラッカー326は、更新されたポーズを決定するときに回転運動のみを可能にした。レンダリングエンジン322は、更新されたポーズに基づいてコンテンツをレンダリングし、この場合、シーン502B中のアバター120A’として示されているように、アバター120Aの第2の位置への並進運動は妨げられた。
【0063】
図6は、本開示の技法による、ポリシーリポジトリ600としてポリシー344、444(
図3、
図4)の例示的な一実装形態を示すブロック図である。例の目的で、ポリシーリポジトリ600は、
図3のDOFセレクタ328およびシステム300に関して説明される。しかしながら、ポリシーリポジトリ600は、
図4のDOFセレクタ428およびシステム400など、他のシステムによって実装され得る。
【0064】
上記で説明されたように、性能モニタ324は、性能インジケータを計算するために、システム300の現在の動作条件を監視する。DOFセレクタ328は、ポーズトラッカー326がDOFの第1のセット(たとえば、6DOF)を使用して3D環境内のHMD112の1つまたは複数のポーズを計算する第1のモードと、ポーズトラッカー326がDOFの第2のセット(たとえば、3DOF)を使用して1つまたは複数のポーズを計算する第2のモードとから選択するために、ポリシーリポジトリ600のポリシー606のうちの1つまたは複数を、計算された性能インジケータに適用する。上記で説明された例では、ポリシーリポジトリ600は、メモリ304、314に記憶され得る。
【0065】
この例では、ポリシーリポジトリ600は複数のポリシー606を含む。各ポリシー606は、条件セット602A~602N(まとめて、「条件セット602」)のうちの重視する1つと、複数のアクション604A~604N(まとめて、「アクション604」)のうちの1つとに関連する。このようにして、各ポリシー606は、必要とされる条件のセット(条件セット602)を定義し、条件のセットをそれぞれのアクション604に関連付ける。たとえば、条件セット602がポリシー606のうちの所与の1つについて満たされると決定すると、DOFセレクタ328は、対応するアクション604を実行する。各アクション604は、対応する条件602が満たされると決定するときにDOFセレクタ328がとるべきアクションを指定し、一般に、条件セットが満たされるときに使用すべきDOFのセットを指定する。たとえば、ポリシー600は、条件セット604に基づいて、ポーズトラッカー326が6DOFを使用してHMD112のポーズを計算する第1のモードと、ポーズトラッカー326が3DOFを使用してポーズを計算する第2のモードとの間の遷移の形態でアクションを定義し得る。いくつかの例では、ユーザが、各アクション604について指定されるアクションを構成または変更し得る。
【0066】
いくつかの例では、各条件セット602は、監視される条件から計算された1つまたは複数の性能インジケータと、1つまたは複数の性能インジケータの各々についての基準(たとえば、しきい値よりも大きい、しきい値よりも小さい、範囲内)とを指定する。性能インジケータの各々は、6DOFを使用してHMD112のポーズを正確に計算するポーズトラッカー326の能力に影響を及ぼし得る条件に関する。性能インジケータは、画像トラッキング品質、アイトラッキング品質、環境輝度、見通し線、画像テクスチャ、現実世界特徴および対応する人工現実世界特徴の数、現実世界特徴の特性、または画像トラッキングに影響を及ぼす他の可視性条件、レンダリング品質、ネットワーク性能またはレイテンシ、計算リソース使用量、ジッタ、あるいはHMD112のポーズを計算するシステム2の能力に悪影響を及ぼし得る他のファクタなど、様々な監視される条件について、様々な形式(たとえば、あるスケールでの現在の性能レベル、劣化割合、損失率など)で計算され得る。いくつかの例では、ユーザが、たとえば、条件によって指定されたしきい値および/または範囲を調整または変更することによって、条件セット602を追加または削除する、あるいは既存の条件セット602を編集するなど、条件セット602を定義または構成し得る。
【0067】
一例として、第1の条件セット(条件セット602)は、監視されるネットワークレイテンシから計算された性能インジケータについてのしきい値を指定する。性能モニタ324は、(場合によっては、ネットワーク性能データにアクセスするためにI/Oインターフェース315との通信によって)ネットワーク性能を監視し、(平均レイテンシ、最大レイテンシ、未加工レイテンシ時間などの)性能インジケータを決定する。DOFセレクタ328は、ネットワークレイテンシについての性能インジケータが、条件セット602Aによってネットワークレイテンシについて指定する基準(しきい値レイテンシを超過するなど)を満たすかどうか、したがって、条件セット602Aが満たされると決定するために、ポリシー602Aを適用する。DOFセレクタ328は、ポリシーの適用に応答して動作する。たとえば、アクション604Aは、DOFセレクタ328が、ポーズトラッカー326が高いネットワークレイテンシにより3DOFを使用して3D環境内のHMD112のポーズを計算する第2のモードを選択することを指定し得る。ネットワークレイテンシが満足なレベルに戻るときにポーズ計算のための6DOFの使用をトリガするために、カウンターパートポリシーが定義され得、所望される場合、ヒステリシスが、DOFの異なるセット間の過大な切替えを妨げるためにポリシーの基準内で定義され得る。
【0068】
より複雑な例として、ポリシー606Cの条件セット602Cは、(1)画像キャプチャデバイス208(
図2)を使用してHMD112のアプリケーションエンジン340によって現在トラッキングされている現実世界特徴の数と、(2)コンソール106のアプリケーションエンジン320によって現在トラッキングされている現実世界特徴の数との合計についてのしきい値を指定し得る。これらの監視される条件に基づいて、性能モニタ324は、定義された性能インジケータを、トラッキングされた特徴全体の指定された合計として計算する。DOFセレクタ328は、ポリシー606Cを、定義された性能インジケータに適用する。たとえば、DOFセレクタ328は、トラッキングされた現実世界特徴の数の合計が、条件セット602Cによって指定されたしきい値よりも小さく、したがって、条件602Cが満たされると決定し得る。さらに、アクション604Aは、DOFセレクタ328が、ポーズトラッカー326が3DOFを使用して3D環境内のHMD112のポーズを計算する第2のモードを選択することを指定し得る。このようにして、性能モニタ324およびDOFセレクタ328は、ポーズトラッカー326に、ポーズトラッカー326が6DOFを使用してHMD112のポーズを計算する第1のモードから、ポーズトラッカー326が3DOFを使用して1つまたは複数のポーズを計算する第2のモードに切り替えさせ得る。同様に、人工現実システムによって現在トラッキングされている特徴の数が、定義するしきい値を満足するかまたは超えるときにポーズ計算のための6DOFの使用をトリガするために、カウンターパートポリシーが定義され得る。
【0069】
他の例では、所与の条件セット602が、複数の条件を定義し得、それらをもつ各々が、1つまたは複数の性能インジケータに関して定義され得る。このようにして、ポリシー606は、ルール、異なる性能インジケータのその特定の複雑な組合せに基づいて、トリガされるアクションを定義し得る。
【0070】
また別の例として、ポリシーリポジトリ600は、条件602が満たされない場合、HMD112のポーズを計算するためのデフォルトモードを指定する。たとえば、DOFセレクタ328は、HMD112およびコンソール106のアプリケーションエンジンによって現在トラッキングされている現実世界特徴の数が、条件602Cによって必要とされる現実世界特徴の数についてのしきい値よりも大きく、したがって、条件602Cがもはや満たされないと決定する。この例では、3DOFをトリガするポリシーが満たされないので、DOFセレクタ328は、デフォルトポリシーを適用し得、デフォルトポリシーは、DOFセレクタ328に、6DOFを選択するように指示して、ポーズトラッカー326に、ポーズトラッカー326が3DOFを使用してHMD112のポーズを計算する第2のモードから、ポーズトラッカー326が6DOFを使用してポーズを計算する第1のモードに切り替えさせる。
【0071】
いくつかの例では、コンソール106、HMD112、あるいは、クラウドベースサービスまたは管理プラットフォームなど、人工現実システムの別の構成要素は、ユーザ110または管理者がポリシーリポジトリ600を編集し得るユーザインターフェースを提示する。ユーザインターフェースは、人工現実環境についてポーズ更新を計算し、コンテンツをレンディングするときの異なるDOFを利用するモード間の遷移を制御するために、基準を性能インジケータに適用するためのルールとして、条件セットを定義するための入力および出力フィールドを含む、ポリシーを追加、削除、および編集するための様々なU/I機構を含み得る。
【0072】
図7は、本開示の技法による、1つまたは複数のポーズを計算する際に使用するためのDOFを適応的に選択するための例示的な動作を示すフローチャートである。例の目的で、
図7のフローチャートは、
図3の例示的なコンソール106、HMD112、および他の構成要素の動作に関して説明される。しかしながら、
図7の動作は、
図4のHMD112など、他のシステムによって実装され得る。
【0073】
動作中に、センサー90が、動作条件を監視し、現在の動作条件を示すデータをコンソール106のプロセッサ312に出力する(702)。検知されたデータは、たとえば、人工現実システムの構成要素を監視し、監視しているデータを出力する、1つまたは複数の一体型または外部画像キャプチャデバイス、フォトセンサー、ネットワークモニタ、ハードウェアまたはソフトウェアリソースモニタなどを含み得る。同様に、HMD112のプロセッサ302が、HMD112の動作条件を監視し、検知されたデータをコンソール106のプロセッサ312に出力する(704)。HMD112によって出力された情報は、たとえば、性能テレメトリ、運動情報、ユーザコマンド、トラッキングされた特徴の数、レイテンシなどの現在のネットワーク性能データ、ジッタ、バースト性、および/またはコンテンツをレンダリングすることに関係する他の情報を含み得る。
【0074】
コンソール106のプロセッサ312によって実行される性能モニタ324は、受信された性能情報を処理して、人工現実コンテンツ122の品質に影響を及ぼし得る1つまたは複数の性能インジケータを決定する。たとえば、性能モニタ324は、画像トラッキングの品質レベル、アイトラッキング品質、環境輝度、見通し線、画像テクスチャ、現実世界特徴および対応する人工現実世界特徴の数、現実世界特徴の特性、または画像トラッキングに影響を及ぼす他の可視性条件、レンダリング品質、ネットワーク性能またはレイテンシ、計算リソース使用量、ジッタ、あるいは完全6DOFを使用してHMD112のポーズを計算する人工現実システム2の能力に悪影響を及ぼし得る他のファクタなど、性能インジケータを決定し得る。
【0075】
コンソール106のDOFセレクタ328は、HMD112についてのポーズの計算のためのDOFを適応的に選択するために、ポリシー344によって定義された条件セットを、計算された性能インジケータに適用する(708)。たとえば、DOFセレクタ328は、遷移条件が満たされたかどうかを決定するために、ポリシーを性能インジケータに適用する。1つまたは複数の性能インジケータに関する特定のポリシーについての条件セットを満たすと、DOFセレクタ328は、ポーズトラッカー326に、DOFの現在のセット(たとえば6DOF)を使用してポーズを計算することから、DOFの第2のセット(たとえば3DOF)を使用してポーズを計算することに遷移するように指示する。たとえば、特徴トラッキングが悪影響を及ぼされると決定すると、またはレンダリング品質が不十分である場合、DOFセレクタ328は、ポーズトラッカー326に、6DOFを使用してHMD112のポーズを計算することから、3DOFを使用してHMD112のポーズを計算することに遷移させ得る。別の例として、特徴トラッキングの品質またはレンダリング品質が改善する場合、DOFセレクタ328は、ポーズトラッカー326に、3DOFを使用してHMD112のポーズを計算することから、6DOFを使用してHMD112のポーズを計算することに遷移させ得る。
【0076】
ポーズトラッカー326は、選択されたDOFを使用してHMD112についての1つまたは複数のポーズを計算する(712)。さらに、レンダリングエンジン322は、計算された1つまたは複数のポーズに従って人工現実コンテンツ122をレンダリングする(714)。コンソール106のプロセッサ312は、レンダリングされたコンテンツをHMD112に出力する(716)。次に、HMD112のプロセッサ302は、ユーザ112など、HMD112を装着するユーザに、レンダリングされたコンテンツを表示する(718)。
図7のフローチャートは、
図3の例示的なシステムに関して説明されるが、他の例では、上記で説明されたように、ポーズ計算、性能監視およびDOF選択のいずれかなど、様々な機能性が、HMD112、コンソール106、またはそれらの組合せによって実装され得る。
【0077】
本開示で説明される技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せで実装され得る。たとえば、説明される技法の様々な態様が、1つまたは複数のマイクロプロセッサ、DSP、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは任意の他の等価な集積論理回路または個別論理回路、ならびにそのような構成要素の任意の組合せを含む、1つまたは複数のプロセッサ内で実装され得る。「プロセッサ」または「処理回路」という用語は、概して、単独でまたは他の論理回路と組み合わせて、上記の論理回路のいずれか、あるいは任意の他の等価な回路を指し得る。ハードウェアを備える制御ユニットも、本開示の技法のうちの1つまたは複数を実施し得る。
【0078】
そのようなハードウェア、ソフトウェア、およびファームウェアは、本開示で説明される様々な動作および機能をサポートするために、同じデバイス内にまたは別個のデバイス内に実装され得る。さらに、説明されるユニット、モジュール、または構成要素のいずれかは、一緒に、または個別の、ただし相互運用可能な論理デバイスとして別個に、実装され得る。モジュールまたはユニットとしての異なる特徴の図は、異なる機能的態様を強調することが意図され、そのようなモジュールまたはユニットが別個のハードウェアまたはソフトウェア構成要素によって実現されなければならないことを必ずしも暗示するとは限らない。むしろ、1つまたは複数のモジュールまたはユニットに関連する機能性は、別個のハードウェアまたはソフトウェア構成要素によって実施されるか、あるいは共通のまたは別個のハードウェアまたはソフトウェア構成要素内に組み込まれ得る。
【0079】
本開示で説明される技法はまた、命令を含んでいる、コンピュータ可読記憶媒体など、コンピュータ可読媒体において具現されるかまたは符号化され得る。コンピュータ可読記憶媒体において埋め込まれるかまたは符号化される命令は、たとえば、命令が実行されるとき、プログラマブルプロセッサ、または他のプロセッサに方法を実施させ得る。コンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電子的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、ハードディスク、CD-ROM、フロッピーディスク、カセット、磁気媒体、光媒体、または他のコンピュータ可読媒体を含み得る。
【0080】
本明細書の様々な例として説明されたように、本開示の技法は、人工現実システムを含むか、または人工現実システムとともに実装され得る。説明されたように、人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。加えて、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【国際調査報告】