詳細な説明
実施例の以下の説明では、本明細書の一部を形成し、例証として、実践され得る具体的実施例が示される、付随の図面を参照する。他の実施例も、使用されることができ、構造変更が、開示される実施例の範囲から逸脱することなく、行われることができることを理解されたい。
複合現実環境
全ての人々と同様に、複合現実システムのユーザは、実環境内に存在する、すなわち、「実世界」の3次元部分と、そのコンテンツの全てとが、ユーザによって知覚可能である。例えば、ユーザは、通常の人間の感覚、すなわち、視覚、聴覚、触覚、味覚、嗅覚を使用して、実環境を知覚し、実環境内で自身の身体を移動させることによって、実環境と相互作用する。実環境内の場所は、座標空間内の座標として説明されることができる。例えば、座標は、緯度、経度、および海抜に対する高度、基準点から3つの直交次元における距離、または他の好適な値を含むことができる。同様に、ベクトルは、座標空間内の方向および大きさを有する、量を説明することができる。
コンピューティングデバイスは、例えば、デバイスと関連付けられるメモリ内に、仮想環境の表現を維持することができる。本明細書で使用されるように、仮想環境は、3次元空間の算出表現である。仮想環境は、任意のオブジェクトの表現、アクション、信号、パラメータ、座標、ベクトル、またはその空間と関連付けられる他の特性を含むことができる。いくつかの実施例では、コンピューティングデバイスの回路(例えば、プロセッサ)は、仮想環境の状態を維持および更新することができる。すなわち、プロセッサは、第1の時間t0において、仮想環境と関連付けられるデータおよび/またはユーザによって提供される入力に基づいて、第2の時間t1における仮想環境の状態を決定することができる。例えば、仮想環境内のオブジェクトが、時間t0において、第1の座標に位置し、あるプログラムされた物理的パラメータ(例えば、質量、摩擦係数)を有し、ユーザから受信された入力が、力がある方向ベクトルにおいてオブジェクトに印加されるべきであることを示す場合、プロセッサは、運動学の法則を適用し、基本力学を使用して、時間t1におけるオブジェクトの場所を決定することができる。プロセッサは、仮想環境について既知の任意の好適な情報および/または任意の好適な入力を使用して、時間t1における仮想環境の状態を決定することができる。仮想環境の状態を維持および更新する際、プロセッサは、仮想環境内の仮想オブジェクトの作成および削除に関連するソフトウェア、仮想環境内の仮想オブジェクトまたはキャラクタの挙動を定義するためのソフトウェア(例えば、スクリプト)、仮想環境内の信号(例えば、オーディオ信号)の挙動を定義するためのソフトウェア、仮想環境と関連付けられるパラメータを作成および更新するためのソフトウェア、仮想環境内のオーディオ信号を生成するためのソフトウェア、入力および出力をハンドリングするためのソフトウェア、ネットワーク動作を実装するためのソフトウェア、アセットデータ(例えば、仮想オブジェクトを経時的に移動させるためのアニメーションデータ)を適用するためのソフトウェア、または多くの他の可能性を含む、任意の好適なソフトウェアを実行することができる。
ディスプレイまたはスピーカ等の出力デバイスは、仮想環境のいずれかまたは全ての側面をユーザに提示することができる。例えば、仮想環境は、ユーザに提示され得る、仮想オブジェクト(無有生オブジェクト、人々、動物、光等の表現を含み得る)を含んでもよい。プロセッサは、仮想環境のビュー(例えば、原点座標、視軸、および錐台を伴う、「カメラ」に対応する)を決定し、ディスプレイに、そのビューに対応する仮想環境の視認可能場面をレンダリングすることができる。任意の好適なレンダリング技術が、本目的のために使用されてもよい。いくつかの実施例では、視認可能場面は、仮想環境内のいくつかの仮想オブジェクトのみを含み、ある他の仮想オブジェクトを除外してもよい。同様に、仮想環境は、ユーザに1つまたはそれを上回るオーディオ信号として提示され得る、オーディオ側面を含んでもよい。例えば、仮想環境内の仮想オブジェクトは、オブジェクトの場所座標から生じる音を生成してもよい(例えば、仮想キャラクタが、発話する、または音効果を生じさせ得る)、または仮想環境は、特定の場所と関連付けられる場合とそうではない場合がある、音楽キューまたは周囲音と関連付けられてもよい。プロセッサは、「聴取者」座標に対応するオーディオ信号、例えば、仮想環境内の音の合成に対応し、聴取者座標において聴取者によって聞こえるであろうオーディオ信号をシミュレートするように混合および処理される、オーディオ信号を決定し、ユーザに、1つまたはそれを上回るスピーカを介して、オーディオ信号を提示することができる。
仮想環境は、算出構造としてのみ存在するため、ユーザは、直接、通常の感覚を使用して、仮想環境を知覚することができない。代わりに、ユーザは、例えば、ディスプレイ、スピーカ、触覚的出力デバイス等によって、ユーザに提示されるように、間接的にのみ、仮想環境を知覚することができる。同様に、ユーザは、直接、仮想環境に触れる、それを操作する、または別様に、それと相互作用することができないが、入力データを、入力デバイスまたはセンサを介して、デバイスまたはセンサデータを使用して、仮想環境を更新し得る、プロセッサに提供することができる。例えば、カメラセンサは、ユーザが仮想環境のオブジェクトを移動させようとしていることを示す、光学データを提供することができ、プロセッサは、そのデータを使用して、仮想環境内において、適宜、オブジェクトを応答させることができる。
複合現実システムは、ユーザに、例えば、透過型ディスプレイおよび/または1つまたはそれを上回るスピーカ(例えば、ウェアラブル頭部デバイスの中に組み込まれ得る)を使用して、実環境および仮想環境の側面を組み合わせる、複合現実環境(「MRE」)を提示することができる。いくつかの実施形態では、1つまたはそれを上回るスピーカは、頭部搭載型ウェアラブルユニットの外部にあってもよい。本明細書で使用されるように、MREは、実環境および対応する仮想環境の同時表現である。いくつかの実施例では、対応する実および仮想環境は、単一座標空間を共有する。いくつかの実施例では、実座標空間および対応する仮想座標空間は、変換行列(または他の好適な表現)によって相互に関連する。故に、単一座標(いくつかの実施例では、変換行列とともに)は、実環境内の第1の場所と、また、仮想環境内の第2の対応する場所とを定義し得、その逆も同様である。
MREでは、(例えば、MREと関連付けられる仮想環境内の)仮想オブジェクトは、(例えば、MREと関連付けられる実環境内の)実オブジェクトに対応し得る。例えば、MREの実環境が、実街灯柱(実オブジェクト)をある場所座標に含む場合、MREの仮想環境は、仮想街灯柱(仮想オブジェクト)を対応する場所座標に含んでもよい。本明細書で使用されるように、実オブジェクトは、その対応する仮想オブジェクトとともに組み合わせて、「複合現実オブジェクト」を構成する。仮想オブジェクトが対応する実オブジェクトに完璧に合致または整合することは、必要ではない。いくつかの実施例では、仮想オブジェクトは、対応する実オブジェクトの簡略化されたバージョンであることができる。例えば、実環境が、実街灯柱を含む場合、対応する仮想オブジェクトは、実街灯柱と概ね同一高さおよび半径の円筒形を含んでもよい(街灯柱が略円筒形形状であり得ることを反映する)。仮想オブジェクトをこのように簡略化することは、算出効率を可能にすることができ、そのような仮想オブジェクト上で実施されるための計算を簡略化することができる。さらに、MREのいくつかの実施例では、実環境内の全ての実オブジェクトが、対応する仮想オブジェクトと関連付けられなくてもよい。同様に、MREのいくつかの実施例では、仮想環境内の全ての仮想オブジェクトが、対応する実オブジェクトと関連付けられなくてもよい。すなわち、いくつかの仮想オブジェクトが、任意の実世界対応物を伴わずに、MREの仮想環境内にのみ存在し得る。
いくつかの実施例では、仮想オブジェクトは、時として著しく、対応する実オブジェクトのものと異なる、特性を有してもよい。例えば、MRE内の実環境は、緑色の2本の枝が延びたサボテン、すなわち、とげだらけの無有生オブジェクトを含み得るが、MRE内の対応する仮想オブジェクトは、人間の顔特徴および無愛想な態度を伴う、緑色の2本の腕の仮想キャラクタの特性を有してもよい。本実施例では、仮想オブジェクトは、ある特性(色、腕の数)において、その対応する実オブジェクトに類似するが、他の特性(顔特徴、性格)において、実オブジェクトと異なる。このように、仮想オブジェクトは、創造的、抽象的、誇張された、または架空の様式において、実オブジェクトを表す、または挙動(例えば、人間の性格)をそうでなければ無生物である実オブジェクトに付与する潜在性を有する。いくつかの実施例では、仮想オブジェクトは、実世界対応物を伴わない、純粋に架空の創造物(例えば、おそらく、実環境内の虚空に対応する場所における、仮想環境内の仮想モンスタ)であってもよい。
ユーザに、実環境を不明瞭にしながら、仮想環境を提示する、VRシステムと比較して、MREを提示する、複合現実システムは、仮想環境が提示される間、実環境が知覚可能なままであるであるという利点をもたらす。故に、複合現実システムのユーザは、実環境と関連付けられる視覚的およびオーディオキューを使用して、対応する仮想環境を体験し、それと相互作用することが可能である。実施例として、VRシステムのユーザは、上記に述べられたように、ユーザは、直接、仮想環境を知覚する、またはそれと相互作用することができないため、仮想環境内に表示される仮想オブジェクトを知覚する、またはそれと相互作用することに苦戦し得るが、MRシステムのユーザは、その自身の実環境内の対応する実オブジェクトが見え、聞こえ、触れることによって、仮想オブジェクトと相互作用することが直感的および自然であると見出し得る。本レベルの相互作用は、ユーザの仮想環境との没入感、つながり、および関与の感覚を向上させ得る。同様に、実環境および仮想環境を同時に提示することによって、複合現実システムは、VRシステムと関連付けられる負の心理学的感覚(例えば、認知的不協和)および負の物理的感覚(例えば、乗り物酔い)を低減させることができる。複合現実システムはさらに、実世界の我々の体験を拡張または改変し得る用途に関する多くの可能性をもたらす。
図1Aは、ユーザ110が複合現実システム112を使用する、例示的実環境100を図示する。複合現実システム112は、ディスプレイ(例えば、透過型ディスプレイ)および1つまたはそれを上回るスピーカと、例えば、下記に説明されるような1つまたはそれを上回るセンサ(例えば、カメラ)とを含んでもよい。示される実環境100は、その中にユーザ110が立っている、長方形の部屋104Aと、実オブジェクト122A(ランプ)、124A(テーブル)、126A(ソファ)、および128A(絵画)とを含む。部屋104Aはさらに、場所座標106を含み、これは、実環境100の原点と見なされ得る。図1Aに示されるように、その原点を点106(世界座標)に伴う、環境/世界座標系108(x-軸108X、y-軸108Y、およびz-軸108Zを備える)は、実環境100のための座標空間を定義し得る。いくつかの実施形態では、環境/世界座標系108の原点106は、複合現実システム112の電源がオンにされた場所に対応してもよい。いくつかの実施形態では、環境/世界座標系108の原点106は、動作の間、リセットされてもよい。いくつかの実施例では、ユーザ110は、実環境100内の実オブジェクトと見なされ得る。同様に、ユーザ110の身体部分(例えば、手、足)は、実環境100内の実オブジェクトと見なされ得る。いくつかの実施例では、その原点を点115(例えば、ユーザ/聴取者/頭部座標)に伴う、ユーザ/聴取者/頭部座標系114(x-軸114X、y-軸114Y、およびz-軸114Zを備える)は、その上に複合現実システム112が位置する、ユーザ/聴取者/頭部のための座標空間を定義し得る。ユーザ/聴取者/頭部座標系114の原点115は、複合現実システム112の1つまたはそれを上回るコンポーネントに対して定義されてもよい。例えば、ユーザ/聴取者/頭部座標系114の原点115は、複合現実システム112の初期較正等の間、複合現実システム112のディスプレイに対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現が、ユーザ/聴取者/頭部座標系114空間と環境/世界座標系108空間との間の変換を特性評価することができる。いくつかの実施形態では、左耳座標116および右耳座標117が、ユーザ/聴取者/頭部座標系114の原点115に対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現が、左耳座標116および右耳座標117とユーザ/聴取者/頭部座標系114空間との間の変換を特性評価することができる。ユーザ/聴取者/頭部座標系114は、ユーザの頭部または頭部搭載型デバイスに対する、例えば、環境/世界座標系108に対する場所の表現を簡略化することができる。同時位置特定およびマッピング(SLAM)、ビジュアルオドメトリ、または他の技法を使用して、ユーザ座標系114と環境座標系108との間の変換が、リアルタイムで決定および更新されることができる。
図1Bは、実環境100に対応する、例示的仮想環境130を図示する。示される仮想環境130は、実長方形部屋104Aに対応する仮想長方形部屋104Bと、実オブジェクト122Aに対応する仮想オブジェクト122Bと、実オブジェクト124Aに対応する仮想オブジェクト124Bと、実オブジェクト126Aに対応する仮想オブジェクト126Bとを含む。仮想オブジェクト122B、124B、126Bと関連付けられるメタデータは、対応する実オブジェクト122A、124A、126Aから導出される情報を含むことができる。仮想環境130は、加えて、仮想モンスタ132を含み、これは、実環境100内の任意の実オブジェクトに対応しない。実環境100内の実オブジェクト128Aは、仮想環境130内の任意の仮想オブジェクトに対応しない。その原点を点134(持続的座標)に伴う、持続的座標系133(x-軸133X、y-軸133Y、およびz-軸133Zを備える)は、仮想コンテンツのための座標空間を定義し得る。持続的座標系133の原点134は、実オブジェクト126A等の1つまたはそれを上回る実オブジェクトと相対的に/それに対して定義されてもよい。行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現は、持続的座標系133空間と環境/世界座標系108空間との間の変換を特性評価することができる。いくつかの実施形態では、仮想オブジェクト122B、124B、126B、および132はそれぞれ、持続的座標系133の原点134に対するその自身の持続的座標点を有してもよい。いくつかの実施形態では、複数の持続的座標系が存在してもよく、仮想オブジェクト122B、124B、126B、および132はそれぞれ、1つまたはそれを上回る持続的座標系に対するその自身の持続的座標点を有してもよい。
図1Aおよび1Bに関して、環境/世界座標系108は、実環境100および仮想環境130の両方のための共有座標空間を定義する。示される実施例では、座標空間は、その原点を点106に有する。さらに、座標空間は、同一の3つの直交軸(108X、108Y、108Z)によって定義される。故に、実環境100内の第1の場所および仮想環境130内の第2の対応する場所は、同一座標空間に関して説明されることができる。これは、同一座標が両方の場所を識別するために使用され得るため、実および仮想環境内の対応する場所を識別および表示するステップを簡略化する。しかしながら、いくつかの実施例では、対応する実および仮想環境は、共有座標空間を使用する必要がない。例えば、いくつかの実施例では(図示せず)、行列(平行移動行列および四元数行列または他の回転行列を含み得る)または他の好適な表現は、実環境座標空間と仮想環境座標空間との間の変換を特性評価することができる。
図1Cは、同時に、実環境100および仮想環境130の側面をユーザ110に複合現実システム112を介して提示する、例示的MRE150を図示する。示される実施例では、MRE150は、同時に、ユーザ110に、実環境100からの実オブジェクト122A、124A、126A、および128A(例えば、複合現実システム112のディスプレイの透過性部分を介して)と、仮想環境130からの仮想オブジェクト122B、124B、126B、および132(例えば、複合現実システム112のディスプレイアクティブディスプレイ部分を介して)とを提示する。上記のように、原点106は、MRE150に対応する座標空間のための原点として作用し、座標系108は、座標空間のためのx-軸、y-軸、およびz-軸を定義する。
示される実施例では、複合現実オブジェクトは、座標空間108内の対応する場所を占有する、対応する対の実オブジェクトおよび仮想オブジェクト(すなわち、122A/122B、124A/124B、126A/126B)を含む。いくつかの実施例では、実オブジェクトおよび仮想オブジェクトは両方とも、同時に、ユーザ110に可視であってもよい。これは、例えば、仮想オブジェクトが対応する実オブジェクトのビューを拡張させるように設計される情報を提示する、インスタンスにおいて望ましくあり得る(仮想オブジェクトが古代の損傷された彫像の欠けた部分を提示する、博物館用途等)。いくつかの実施例では、仮想オブジェクト(122B、124B、および/または126B)は、対応する実オブジェクト(122A、124A、および/または126A)をオクルードするように、表示されてもよい(例えば、ピクセル化オクルージョンシャッタを使用する、アクティブピクセル化オクルージョンを介して)。これは、例えば、仮想オブジェクトが対応する実オブジェクトのための視覚的置換として作用する、インスタンスにおいて望ましくあり得る(無生物実オブジェクトが「生きている」キャラクタとなる、双方向ストーリーテリング用途等)。
いくつかの実施例では、実オブジェクト(例えば、122A、124A、126A)は、必ずしも、仮想オブジェクトを構成するとは限らない、仮想コンテンツまたはヘルパデータと関連付けられてもよい。仮想コンテンツまたはヘルパデータは、複合現実環境内の仮想オブジェクトの処理またはハンドリングを促進することができる。例えば、そのような仮想コンテンツは、対応する実オブジェクトの2次元表現、対応する実オブジェクトと関連付けられるカスタムアセットタイプ、または対応する実オブジェクトと関連付けられる統計的データを含み得る。本情報は、不必要な算出オーバーヘッドを被ることなく、実オブジェクトに関わる計算を可能にする、または促進することができる。
いくつかの実施例では、上記に説明される提示はまた、オーディオ側面を組み込んでもよい。例えば、MRE150では、仮想モンスタ132は、モンスタがMRE150の周囲を歩き回るにつれて生成される、足音効果等の1つまたはそれを上回るオーディオ信号と関連付けられ得る。下記にさらに説明されるように、複合現実システム112のプロセッサは、MRE150内の全てのそのような音の混合および処理された合成に対応するオーディオ信号を算出し、複合現実システム112内に含まれる1つまたはそれを上回るスピーカおよび/または1つまたはそれを上回る外部スピーカを介して、オーディオ信号をユーザ110に提示することができる。
例示的複合現実システム
例示的複合現実システム112は、ディスプレイ(接眼ディスプレイであり得る、左および右透過型ディスプレイと、ディスプレイからの光をユーザの眼に結合するための関連付けられるコンポーネントとを含み得る)と、左および右スピーカ(例えば、それぞれ、ユーザの左および右耳に隣接して位置付けられる)と、慣性測定ユニット(IMU)(例えば、頭部デバイスのつるのアームに搭載される)と、直交コイル電磁受信機(例えば、左つる部品に搭載される)と、ユーザから離れるように配向される、左および右カメラ(例えば、深度(飛行時間)カメラ)と、ユーザに向かって配向される、左および右眼カメラ(例えば、ユーザの眼移動を検出するため)とを備える、ウェアラブル頭部デバイス(例えば、ウェアラブル拡張現実または複合現実頭部デバイス)を含むことができる。しかしながら、複合現実システム112は、任意の好適なディスプレイ技術および任意の好適なセンサ(例えば、光学、赤外線、音響、LIDAR、EOG、GPS、磁気)を組み込むことができる。加えて、複合現実システム112は、ネットワーキング特徴(例えば、Wi-Fi能力)を組み込み、他の複合現実システムを含む、他のデバイスおよびシステムと通信してもよい。複合現実システム112はさらに、バッテリ(ユーザの腰部の周囲に装着されるように設計されるベルトパック等の補助ユニット内に搭載されてもよい)と、プロセッサと、メモリとを含んでもよい。複合現実システム112のウェアラブル頭部デバイスは、ユーザの環境に対するウェアラブル頭部デバイスの座標セットを出力するように構成される、IMUまたは他の好適なセンサ等の追跡コンポーネントを含んでもよい。いくつかの実施例では、追跡コンポーネントは、入力をプロセッサに提供し、同時位置特定およびマッピング(SLAM)および/またはビジュアルオドメトリアルゴリズムを実施してもよい。いくつかの実施例では、複合現実システム112はまた、ハンドヘルドコントローラ300、および/または下記にさらに説明されるように、ウェアラブルベルトパックであり得る補助ユニット320を含んでもよい。
図2A-2Dは、MRE(MRE150に対応し得る)または他の仮想環境をユーザに提示するために使用され得る、例示的複合現実システム200(複合現実システム112に対応し得る)のコンポーネントを図示する。図2Aは、例示的複合現実システム200内に含まれるウェアラブル頭部デバイス2102の斜視図を図示する。図2Bは、ユーザの頭部2202上に装着されるウェアラブル頭部デバイス2102の上面図を図示する。図2Cは、ウェアラブル頭部デバイス2102の正面図を図示する。図2Dは、ウェアラブル頭部デバイス2102の例示的接眼レンズ2110の縁視図を図示する。図2A-2Cに示されるように、例示的ウェアラブル頭部デバイス2102は、例示的左接眼レンズ(例えば、左透明導波管セット接眼レンズ)2108と、例示的右接眼レンズ(例えば、右透明導波管セット接眼レンズ)2110とを含む。各接眼レンズ2108および2110は、それを通して実環境が可視となる、透過性要素と、実環境に重複するディスプレイ(例えば、画像毎に変調された光を介して)を提示するためのディスプレイ要素とを含むことができる。いくつかの実施例では、そのようなディスプレイ要素は、画像毎に変調された光の流動を制御するための表面回折光学要素を含むことができる。例えば、左接眼レンズ2108は、左内部結合格子セット2112と、左直交瞳拡張(OPE)格子セット2120と、左出射(出力)瞳拡張(EPE)格子セット2122とを含むことができる。同様に、右接眼レンズ2110は、右内部結合格子セット2118と、右OPE格子セット2114と、右EPE格子セット2116とを含むことができる。画像毎に変調された光は、内部結合格子2112および2118、OPE2114および2120、およびEPE2116および2122を介して、ユーザの眼に転送されることができる。各内部結合格子セット2112、2118は、光をその対応するOPE格子セット2120、2114に向かって偏向させるように構成されることができる。各OPE格子セット2120、2114は、光をその関連付けられるEPE2122、2116に向かって下方に漸次的に偏向させ、それによって、形成されている射出瞳を水平に延在させるように設計されることができる。各EPE2122、2116は、その対応するOPE格子セット2120、2114から受信された光の少なくとも一部を、接眼レンズ2108、2110の背後に定義される、ユーザアイボックス位置(図示せず)に外向きに漸次的に再指向し、アイボックスに形成される射出瞳を垂直に延在させるように構成されることができる。代替として、内部結合格子セット2112および2118、OPE格子セット2114および2120、およびEPE格子セット2116および2122の代わりに、接眼レンズ2108および2110は、ユーザの眼への画像毎に変調された光の結合を制御するための格子および/または屈折および反射性特徴の他の配列を含むことができる。
いくつかの実施例では、ウェアラブル頭部デバイス2102は、左つるのアーム2130と、右つるのアーム2132とを含むことができ、左つるのアーム2130は、左スピーカ2134を含み、右つるのアーム2132は、右スピーカ2136を含む。直交コイル電磁受信機2138は、左こめかみ部品またはウェアラブル頭部ユニット2102内の別の好適な場所に位置することができる。慣性測定ユニット(IMU)2140は、右つるのアーム2132またはウェアラブル頭部デバイス2102内の別の好適な場所に位置することができる。ウェアラブル頭部デバイス2102はまた、左深度(例えば、飛行時間)カメラ2142と、右深度カメラ2144とを含むことができる。深度カメラ2142、2144は、好適には、ともにより広い視野を網羅するように、異なる方向に配向されることができる。
図2A-2Dに示される実施例では、画像毎に変調された光2124の左源は、左内部結合格子セット2112を通して、左接眼レンズ2108の中に光学的に結合されることができ、画像毎に変調された光2126の右源は、右内部結合格子セット2118を通して、右接眼レンズ2110の中に光学的に結合されることができる。画像毎に変調された光2124、2126の源は、例えば、光ファイバスキャナ、デジタル光処理(DLP)チップまたはシリコン上液晶(LCoS)変調器等の電子光変調器を含む、プロジェクタ、または側面あたり1つまたはそれを上回るレンズを使用して、内部結合格子セット2112、2118の中に結合される、マイクロ発光ダイオード(μLED)またはマイクロ有機発光ダイオード(μOLED)パネル等の発光型ディスプレイを含むことができる。入力結合格子セット2112、2118は、画像毎に変調された光2124、2126の源からの光を、接眼レンズ2108、2110のための全内部反射(TIR)に関する臨界角を上回る角度に偏向させることができる。OPE格子セット2114、2120は、伝搬する光をTIRによってEPE格子セット2116、2122に向かって下方に漸次的に偏向させる。EPE格子セット2116、2122は、ユーザの眼の瞳孔を含む、ユーザの顔に向かって、光を漸次的に結合する。
いくつかの実施例では、図2Dに示されるように、左接眼レンズ2108および右接眼レンズ2110はそれぞれ、複数の導波管2402を含む。例えば、各接眼レンズ2108、2110は、複数の個々の導波管を含むことができ、それぞれ、個別の色チャネル(例えば、赤色、青色、および緑色)専用である。いくつかの実施例では、各接眼レンズ2108、2110は、複数のセットのそのような導波管を含むことができ、各セットは、異なる波面曲率を放出される光に付与するように構成される。波面曲率は、例えば、ユーザの正面のある距離(例えば、波面曲率の逆数に対応する距離)に位置付けられる仮想オブジェクトを提示するように、ユーザの眼に対して凸面であってもよい。いくつかの実施例では、EPE格子セット2116、2122は、各EPEを横断して出射する光のPoyntingベクトルを改変することによって凸面波面曲率をもたらすために、湾曲格子溝を含むことができる。
いくつかの実施例では、表示されるコンテンツが3次元である知覚を作成するために、立体視的に調節される左および右眼画像は、画像毎に光変調器2124、2126および接眼レンズ2108、2110を通して、ユーザに提示されることができる。3次元仮想オブジェクトの提示の知覚される現実性は、仮想オブジェクトが立体視左および右画像によって示される距離に近似する距離に表示されるように、導波管(したがって、対応する波面曲率)を選択することによって向上されることができる。本技法はまた、立体視左および右眼画像によって提供される深度知覚キューと人間の眼の自動遠近調節(例えば、オブジェクト距離依存焦点)との間の差異によって生じ得る、一部のユーザによって被られる乗り物酔いを低減させ得る。
図2Dは、例示的ウェアラブル頭部デバイス2102の右接眼レンズ2110の上部からの縁視図を図示する。図2Dに示されるように、複数の導波管2402は、3つの導波管2404の第1のサブセットと、3つの導波管2406の第2のサブセットとを含むことができる。導波管2404、2406の2つのサブセットは、異なる波面曲率を出射する光に付与するために異なる格子線曲率を特徴とする、異なるEPE格子によって区別されることができる。導波管2404、2406のサブセットのそれぞれ内において、各導波管は、異なるスペクトルチャネル(例えば、赤色、緑色、および青色スペクトルチャネルのうちの1つ)をユーザの右眼2206に結合するために使用されることができる。(図2Dには図示されないが、左接眼レンズ2108の構造は、右接眼レンズ2110の構造に類似する。)
図3Aは、複合現実システム200の例示的ハンドヘルドコントローラコンポーネント300を図示する。いくつかの実施例では、ハンドヘルドコントローラ300は、把持部分346と、上部表面348に沿って配置される、1つまたはそれを上回るボタン350とを含む。いくつかの実施例では、ボタン350は、例えば、カメラまたは他の光学センサ(複合現実システム200の頭部ユニット(例えば、ウェアラブル頭部デバイス2102)内に搭載され得る)と併せて、ハンドヘルドコントローラ300の6自由度(6DOF)運動を追跡するための光学追跡標的として使用するために構成されてもよい。いくつかの実施例では、ハンドヘルドコントローラ300は、ウェアラブル頭部デバイス2102に対する位置または配向等の位置または配向を検出するための追跡コンポーネント(例えば、IMUまたは他の好適なセンサ)を含む。いくつかの実施例では、そのような追跡コンポーネントは、ハンドヘルドコントローラ300のハンドル内に位置付けられてもよく、および/またはハンドヘルドコントローラに機械的に結合されてもよい。ハンドヘルドコントローラ300は、ボタンの押下状態、またはハンドヘルドコントローラ300の位置、配向、および/または運動(例えば、IMUを介して)のうちの1つまたはそれを上回るものに対応する、1つまたはそれを上回る出力信号を提供するように構成されることができる。そのような出力信号は、複合現実システム200のプロセッサへの入力として使用されてもよい。そのような入力は、ハンドヘルドコントローラの位置、配向、および/または移動(さらに言うと、コントローラを保持するユーザの手の位置、配向、および/または移動)に対応し得る。そのような入力はまた、ユーザがボタン350を押下したことに対応し得る。
図3Bは、複合現実システム200の例示的補助ユニット320を図示する。補助ユニット320は、エネルギーを提供し、システム200を動作するためのバッテリを含むことができ、プログラムを実行し、システム200を動作させるためのプロセッサを含むことができる。示されるように、例示的補助ユニット320は、補助ユニット320をユーザのベルトに取り付ける等のためのクリップ2128を含む。他の形状因子も、補助ユニット320のために好適であって、ユニットをユーザのベルトに搭載することを伴わない、形状因子を含むことも明白となるであろう。いくつかの実施例では、補助ユニット320は、例えば、電気ワイヤおよび光ファイバを含み得る、多管式ケーブルを通して、ウェアラブル頭部デバイス2102に結合される。補助ユニット320とウェアラブル頭部デバイス2102との間の無線接続もまた、使用されることができる。
いくつかの実施例では、複合現実システム200は、1つまたはそれを上回るマイクロホンを含み、音を検出し、対応する信号を複合現実システムに提供することができる。いくつかの実施例では、マイクロホンは、ウェアラブル頭部デバイス2102に取り付けられる、またはそれと統合されてもよく、ユーザの音声を検出するように構成されてもよい。いくつかの実施例では、マイクロホンは、ハンドヘルドコントローラ300および/または補助ユニット320に取り付けられる、またはそれと統合されてもよい。そのようなマイクロホンは、環境音、周囲雑音、ユーザまたは第三者の音声、または他の音を検出するように構成されてもよい。
図4は、上記に説明される複合現実システム200(図1に関する複合現実システム112に対応し得る)等の例示的複合現実システムに対応し得る、例示的機能ブロック図を示す。図4に示されるように、例示的ハンドヘルドコントローラ400B(ハンドヘルドコントローラ300(「トーテム」)に対応し得る)は、トーテム/ウェアラブル頭部デバイス6自由度(6DOF)トーテムサブシステム404Aを含み、例示的ウェアラブル頭部デバイス400A(ウェアラブル頭部デバイス2102に対応し得る)は、トーテム/ウェアラブル頭部デバイス6DOFサブシステム404Bを含む。実施例では、6DOFトーテムサブシステム404Aおよび6DOFサブシステム404Bは、協働し、ウェアラブル頭部デバイス400Aに対するハンドヘルドコントローラ400Bの6つの座標(例えば、3つの平行移動方向におけるオフセットおよび3つの軸に沿った回転)を決定する。6自由度は、ウェアラブル頭部デバイス400Aの座標系に対して表されてもよい。3つの平行移動オフセットは、そのような座標系内におけるX、Y、およびZオフセット、平行移動行列、またはある他の表現として表されてもよい。回転自由度は、ヨー、ピッチ、およびロール回転のシーケンスとして、回転行列として、四元数として、またはある他の表現として表されてもよい。いくつかの実施例では、ウェアラブル頭部デバイス400A、ウェアラブル頭部デバイス400A内に含まれる、1つまたはそれを上回る深度カメラ444(および/または1つまたはそれを上回る非深度カメラ)、および/または1つまたはそれを上回る光学標的(例えば、上記に説明されるようなハンドヘルドコントローラ400Bのボタン350またはハンドヘルドコントローラ400B内に含まれる専用光学標的)は、6DOF追跡のために使用されることができる。いくつかの実施例では、ハンドヘルドコントローラ400Bは、上記に説明されるようなカメラを含むことができ、ウェアラブル頭部デバイス400Aは、カメラと併せた光学追跡のための光学標的を含むことができる。いくつかの実施例では、ウェアラブル頭部デバイス400Aおよびハンドヘルドコントローラ400Bはそれぞれ、3つの直交して配向されるソレノイドのセットを含み、これは、3つの区別可能な信号を無線で送信および受信するために使用される。受信するために使用される、コイルのそれぞれ内で受信される3つの区別可能な信号の相対的大きさを測定することによって、ハンドヘルドコントローラ400Bに対するウェアラブル頭部デバイス400Aの6DOFが、決定され得る。加えて、6DOFトーテムサブシステム404Aは、改良された正確度および/またはハンドヘルドコントローラ400Bの高速移動に関するよりタイムリーな情報を提供するために有用である、慣性測定ユニット(IMU)を含むことができる。
いくつかの実施例では、例えば、座標系108に対するウェアラブル頭部デバイス400Aの移動を補償するために、座標をローカル座標空間(例えば、ウェアラブル頭部デバイス400Aに対して固定される座標空間)から慣性座標空間(例えば、実環境に対して固定される座標空間)に変換することが必要になり得る。例えば、そのような変換は、ウェアラブル頭部デバイス400Aのディスプレイが、ディスプレイ上の固定位置および配向(例えば、ディスプレイの右下角における同一位置)ではなく仮想オブジェクトを実環境に対する予期される位置および配向に提示し(例えば、ウェアラブル頭部デバイスの位置および配向にかかわらず、前方に面した実椅子に着座している仮想人物)、仮想オブジェクトが実環境内に存在する(かつ、例えば、ウェアラブル頭部デバイス400Aが偏移および回転するにつれて、実環境内に不自然に位置付けられて現れない)という錯覚を保存するために必要であり得る。いくつかの実施例では、座標空間間の補償変換が、座標系108に対するウェアラブル頭部デバイス400Aの変換を決定するために、SLAMおよび/またはビジュアルオドメトリプロシージャを使用して、深度カメラ444からの画像を処理することによって決定されることができる。図4に示される実施例では、深度カメラ444は、SLAM/ビジュアルオドメトリブロック406に結合され、画像をブロック406に提供することができる。SLAM/ビジュアルオドメトリブロック406実装は、本画像を処理し、次いで、頭部座標空間と別の座標空間(例えば、慣性座標空間)との間の変換を識別するために使用され得る、ユーザの頭部の位置および配向を決定するように構成される、プロセッサを含むことができる。同様に、いくつかの実施例では、ユーザの頭部姿勢および場所に関する情報の付加的源が、IMU409から取得される。IMU409からの情報は、SLAM/ビジュアルオドメトリブロック406からの情報と統合され、改良された正確度および/またはユーザの頭部姿勢および位置の高速調節に関する情報をよりタイムリーに提供することができる。
いくつかの実施例では、深度カメラ444は、ウェアラブル頭部デバイス400Aのプロセッサ内に実装され得る、手のジェスチャトラッカ411に、3D画像を供給することができる。手のジェスチャトラッカ411は、例えば、深度カメラ444から受信された3D画像を手のジェスチャを表す記憶されたパターンに合致させることによって、ユーザの手のジェスチャを識別することができる。ユーザの手のジェスチャを識別する他の好適な技法も、明白となるであろう。
いくつかの実施例では、1つまたはそれを上回るプロセッサ416は、ウェアラブル頭部デバイスの6DOFヘッドギヤサブシステム404B、IMU409、SLAM/ビジュアルオドメトリブロック406、深度カメラ444、および/または手のジェスチャトラッカ411からのデータを受信するように構成されてもよい。プロセッサ416はまた、制御信号を6DOFトーテムシステム404Aに送信し、そこから受信することができる。プロセッサ416は、ハンドヘルドコントローラ400Bがテザリングされない実施例等では、無線で、6DOFトーテムシステム404Aに結合されてもよい。プロセッサ416はさらに、オーディオ/視覚的コンテンツメモリ418、グラフィカル処理ユニット(GPU)420、および/またはデジタル信号プロセッサ(DSP)オーディオ空間化装置422等の付加的コンポーネントと通信してもよい。DSPオーディオ空間化装置422は、頭部関連伝達関数(HRTF)メモリ425に結合されてもよい。GPU420は、画像毎に変調された光の左源424に結合される、左チャネル出力と、画像毎に変調された光の右源426に結合される、右チャネル出力とを含むことができる。GPU420は、例えば、図2A-2Dに関して上記に説明されるように、立体視画像データを画像毎に変調された光の源424、426に出力することができる。DSPオーディオ空間化装置422は、オーディオを左スピーカ412および/または右スピーカ414に出力することができる。DSPオーディオ空間化装置422は、プロセッサ419から、ユーザから仮想音源(例えば、ハンドヘルドコントローラ320を介して、ユーザによって移動され得る)への方向ベクトルを示す入力を受信することができる。方向ベクトルに基づいて、DSPオーディオ空間化装置422は、対応するHRTFを決定することができる(例えば、HRTFにアクセスすることによって、または複数のHRTFを補間することによって)。DSPオーディオ空間化装置422は、次いで、決定されたHRTFを仮想オブジェクトによって生成された仮想音に対応するオーディオ信号等のオーディオ信号に適用することができる。これは、複合現実環境内の仮想音に対するユーザの相対的位置および配向を組み込むことによって、すなわち、その仮想音が実環境内の実音である場合に聞こえるであろうもののユーザの予期に合致する仮想音を提示することによって、仮想音の信憑性および現実性を向上させることができる。
図4に示されるようないくつかの実施例では、プロセッサ416、GPU420、DSPオーディオ空間化装置422、HRTFメモリ425、およびオーディオ/視覚的コンテンツメモリ418のうちの1つまたはそれを上回るものは、補助ユニット400C(上記に説明される補助ユニット320に対応し得る)内に含まれてもよい。補助ユニット400Cは、バッテリ427を含み、そのコンポーネントを給電し、および/または電力をウェアラブル頭部デバイス400Aまたはハンドヘルドコントローラ400Bに供給してもよい。そのようなコンポーネントを、ユーザの腰部に搭載され得る、補助ユニット内に含むことは、ウェアラブル頭部デバイス400Aのサイズおよび重量を限定することができ、これは、ひいては、ユーザの頭部および頸部の疲労を低減させることができる。
図4は、例示的複合現実システムの種々のコンポーネントに対応する要素を提示するが、これらのコンポーネントの種々の他の好適な配列も、当業者に明白となるであろう。例えば、補助ユニット400Cと関連付けられているような図4に提示される要素は、代わりに、ウェアラブル頭部デバイス400Aまたはハンドヘルドコントローラ400Bと関連付けられ得る。さらに、いくつかの複合現実システムは、ハンドヘルドコントローラ400Bまたは補助ユニット400Cを完全に無くしてもよい。そのような変更および修正は、開示される実施例の範囲内に含まれるものとして理解されるべきである。
環境音響持続性
上記に説明されるように、(上記に説明される、ウェアラブル頭部ユニット200、ハンドヘルドコントローラ300、または補助ユニット320等のコンポーネントを含み得る、複合現実システム、例えば、複合現実システム112を介して経験されるような)MREは、MREのユーザに、MRE内の原点座標を伴う音源において生じるように現れる、オーディオ信号を提示することができる。すなわち、ユーザは、これらのオーディオ信号を、それらが音源の原点座標から生じる実オーディオ信号であるかのように知覚し得る。
ある場合には、オーディオ信号は、それらが仮想環境内の算出信号に対応するという点で、仮想と見なされ得る。仮想オーディオ信号は、ユーザに、例えば、図2におけるウェアラブル頭部ユニット200のスピーカ2134および2136を介して生成されるように、ヒトの耳によって検出可能である、実オーディオ信号として提示されることができる。
音源は、実オブジェクトおよび/または仮想オブジェクトに対応し得る。例えば、仮想オブジェクト(例えば、図1Cの仮想モンスタ132)は、オーディオ信号をMRE内で放出することができ、これは、MRE内に仮想オーディオ信号として表され、実オーディオ信号としてユーザに提示される。例えば、図1Cの仮想モンスタ132は、モンスタの発話(例えば、対話)または音効果に対応する、仮想音を放出することができる。同様に、実オブジェクト(例えば、図1Cの実オブジェクト122A)も、仮想オーディオ信号をMRE内で放出するように現れさせられることができ、これは、MRE内に仮想オーディオ信号として表され、実オーディオ信号としてユーザに提示される。例えば、実ランプ122Aは、ランプが実環境内でオンまたはオフに切り替えられていない場合でも、ランプがオンまたはオフに切り替えられる音効果に対応する、仮想音を放出することができる。仮想音は、音源(実または仮想であるかどうかにかかわらず)の位置および配向に対応し得る。例えば、仮想音が、実オーディオ信号としてユーザに提示される(例えば、スピーカ2134および2136を介して)場合、ユーザは、仮想音が音源の位置から生じるように知覚し得る。音源は、見掛け上、音を放出するようにさせられる、下層オブジェクト自体が、上記に説明されるような実または仮想オブジェクトに対応し得る場合でも、本明細書では、「仮想音源」と称される。
いくつかの仮想または複合現実環境は、環境が現実または真正であるように感じられないという知覚に悩まされる。本知覚に関する1つの理由は、オーディオおよび視覚的キューが、常時、そのような環境内で相互に合致するわけではないということである。例えば、ユーザが、MRE内の大煉瓦壁の背後に位置付けられる場合、ユーザは、煉瓦壁の背後から生じる音が、ユーザのすぐ隣から生じる音より静音かつこもっていることを予期し得る。本予期は、大稠密オブジェクトの背後を通過するとき、音が静音かつこもった状態になるという、実世界内のユーザの聴覚的体験に基づく。ユーザが、煉瓦壁の背後から生じるとされるが、こもっておらず、かつ完全音量で提示される、オーディオ信号を提示されると、音が煉瓦壁の背後から生じるという錯覚が、損なわれる。仮想体験全体が、部分的に、実世界相互作用に基づくユーザの予期と一致しないため、偽物かつ不真正であるように感じられ得る。さらに、ある場合には、「不気味の谷」問題が、生じ、その中では、仮想体験と実体験との間のわずかな差異さえ、不快感の増大した感覚を引き起こし得る。MRE内に、ユーザの環境内のオブジェクトと、わずかでも、現実的に相互作用するように現れる、オーディオ信号を提示することによって、ユーザの体験を改良することが望ましい。そのようなオーディオ信号が、実世界体験に基づいて、ユーザの予期と一貫するほど、MRE内のユーザの体験は、より没入型かつ魅力的となり得る。
ユーザがその周囲の環境を知覚および理解する、1つの方法は、オーディオキューを通してである。実世界では、ユーザに聞こえる、実オーディオ信号は、それらのオーディオ信号が生じる場所と、オーディオ信号が相互作用するオブジェクトとによって影響される。例えば、全ての他の要因が等しい場合、ユーザから離れた距離で生じる音(例えば、遠くで吠えているイヌ)は、ユーザの短距離から生じる同一音(例えば、ユーザと同一部屋内で吠えているイヌ)より静音に現れるであろう。ユーザは、したがって、その吠音の知覚される音量に部分的に基づいて、実環境内のイヌの場所を識別することができる。同様に、他の要因が等しい場合、ユーザから離れるように進行する音(例えば、ユーザから外方を向いている人物の音声)は、ユーザに向かって進行する同一音(例えば、ユーザに向かって面している人物の音声)ほどクリアではなく、かつよりこもって(すなわち、低域通過フィルタリングされて)現れるであろう。ユーザは、したがって、その人物の音声の知覚される特性に基づいて、実環境内の人物の配向を識別することができる。
実オーディオ信号のユーザの知覚はまた、それとオーディオ信号が相互作用する、環境内のオブジェクトの存在によって影響され得る。すなわち、ユーザは、音源によって生成されたオーディオ信号だけではなく、また、近隣のオブジェクトに対するそのオーディオ信号の反射と、周囲音響空間によって付与される、反響シグネチャとを知覚し得る。例えば、人物が、近壁を伴う、小部屋内で発話している場合、それらの壁は、人物の音声が壁から反射するにつれて生じる、短自然反響信号を生じさせ得る。ユーザは、それらの反響から、彼らが近壁を伴う小部屋内に存在することを推測し得る。同様に、大コンサートホールまたは大聖堂は、より長い反響を生じさせ得、そこからユーザは、彼らが大きくて広々とした部屋内に存在することを推測し得る。同様に、オーディオ信号の反響は、それに対してそれらの信号が反射する、表面の位置または配向、またはそれらの表面の材料に基づいて、種々の音波特性を帯び得る。例えば、タイル状壁に対する反響は、煉瓦、カーペット、乾式壁、または他の材料に対する反響と異なって聞こえるであろう。これらの反響特性は、ユーザによって、彼らが内在する、空間のサイズ、形状、および材料組成を音響的に理解するために使用されることができる。
上記の実施例は、オーディオキューが、ユーザの周囲の環境のその知覚に情報を与え得る方法を図示する。これらのキューは、視覚的キューと組み合わせて作用することができ、例えば、ユーザに、離れたイヌが見える場合、ユーザは、そのイヌの吠音がその距離と一致することを予期し得る(該当しない場合、いくつかの仮想環境におけるように、当惑または失見当識し得る)。いくつかの実施例では、低光量環境では、または視力障害ユーザに関して等、視覚的キューは、限定され、または利用不可能であり得、そのような場合、オーディオキューは、特定の重要性を帯び得、その環境を理解するユーザの一次手段としての役割を果たし得る。
システムアーキテクチャが、現実的仮想オーディオを提示するために必要とされる情報を編成し、記憶し、呼び出し、および/または管理するために有益であり得る。例えば、MRシステム(例えば、MRシステム112、200)は、ユーザがその中に存在し得る、実環境、実環境が有し得る、音響性質、および/またはユーザが位置し得る、その実環境内の場所のような環境情報を管理してもよい。MRシステムはさらに、実および/または仮想環境内のオブジェクト(例えば、実環境の一般的音響性質に影響を及ぼし得る、オブジェクト、および/またはオブジェクトと相互作用する仮想音源の音響性質に影響を及ぼし得る、オブジェクト)に関する情報を管理してもよい。MRシステムはまた、仮想音源に関する情報を管理してもよい。例えば、仮想音源が位置する場所は、現実的仮想オーディオをレンダリングする際に関連し得る。
仮想オーディオシステムを管理することに加え、完全MR体験を提示するために、同時に、他のシステムを管理することも必要であり得る。例えば、完全MR体験は、仮想視覚システムを要求し得、これは、仮想オブジェクトをレンダリングするために使用される情報を管理し得る。完全MR体験は、同時位置特定およびマッピングシステム(「SLAM」)を要求し得、これは、ユーザの環境の3次元モデルを構築、更新、および/または維持し得る。MRシステム(例えば、MRシステム112、200)は、これらのシステムを管理し、さらに、仮想オーディオシステムに加え、完全MR体験を提示し得る。仮想オーディオシステムアーキテクチャは、これらのシステム間の相互作用を管理し、データ転送、管理、記憶、および/またはセキュリティを促進するために有用であり得る。
いくつかの実施形態では、本システム(例えば、仮想オーディオシステム)は、他のより高レベルのシステムと相互作用してもよい。いくつかの実施形態では、より低レベルのシステム(例えば、仮想オーディオシステム)は、ハードウェアレベル入力および/または出力とより緊密に相互作用し得る一方、より高レベルのシステム(例えば、アプリケーション)は、より低レベルのシステムとインターフェースをとり得る。より高レベルのシステムは、より低レベルのシステムを利用して、その機能を実行してもよい(例えば、ゲームアプリケーションは、現実的仮想オーディオをレンダリングするために、より低レベルの仮想オーディオシステムに依拠し得る)。仮想オーディオシステムは、仮想オーディオシステムの完全性を維持しながら、より高レベルのシステムとの相互作用を管理するように設計される、システムアーキテクチャから利点を享受し得る。例えば、複数のより高レベルのシステム(例えば、複数の第三者アプリケーション)は、同時または実質的に同時に、仮想オーディオシステムとインターフェースをとってもよい。いくつかの実施形態では、仮想オーディオをレンダリングし得る、単一仮想オーディオシステムを維持することは、各より高レベルのシステムに別個のオーディオシステムを維持させるより算出上効率的であり得る。例えば、いくつかの実施形態では、単一デジタル反響器が、複数のより高レベルのシステムからの音オブジェクトを、それらのオブジェクトが、同一仮想または実音響空間(例えば、ユーザがその中に存在する、部屋)内に存在するように意図されるとき、処理するために使用されてもよい。良好に設計されたシステムアーキテクチャはまた、他の用途で使用され得る、情報の完全性を保護し得る(例えば、データ破損および/または不正開封から)。
いくつかの実施形態では、他のシステム(例えば、より高レベルのシステム)へのサービスを妨げずに、変更がリアルタイムで行われ得るように、システムアーキテクチャを設計することが有利であり得る。例えば、仮想オーディオシステムは、実環境(例えば、部屋)の音響性質を考慮する、オーディオモデルを記憶、維持、または別様に、管理してもよい。ユーザが、実環境を変更する(例えば、異なる部屋に移動する)場合、オーディオモデルは、実環境の変化を考慮するために更新されてもよい。MRシステムが、現在、使用中である(例えば、MRシステムが、仮想視覚および/または仮想オーディオをユーザに提示している)場合、異なるシステム(例えば、より高レベルのシステム)が、依然として、オーディオモデルを使用して、仮想オーディオをレンダリングしているとき、オーディオモデルを更新することが必要であり得る。
いくつかの実施形態では、他のシステムの変化を伝搬するようにシステムアーキテクチャを設計することが有利であり得る。例えば、いくつかのシステムは、オーディオモデルの別個のコピーを維持してもよい、またはいくつかのシステムは、仮想オーディオシステムによって維持されるオーディオモデルを使用してレンダリングされる、特定の繰り返される音効果を記憶してもよい。したがって、仮想オーディオシステムに行われた変更を他のシステムに伝搬することが有利であり得る。例えば、ユーザが、環境を変更し(例えば、部屋を移動し)、新しいオーディオモデルが、より正確であり得る場合、仮想オーディオシステムは、そのオーディオモデルを修正し、任意のクライアント(例えば、仮想オーディオシステムを使用する、および/またはそれに依拠し得る、システム)に変更を通知してもよい。いくつかの実施形態では、クライアントは、次いで、仮想オーディオシステムにクエリし、適宜、内部データを更新してもよい。
図5は、いくつかの実施形態による、例示的仮想オーディオシステムを図示する。仮想オーディオシステム500は、持続的モジュール502を含むことができる。モジュール(例えば、持続的モジュール502)は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)は、オーディオサービス522によって管理される、プロセス、サブプロセス、スレッド、および/またはサービスを実行するように構成されることができ(例えば、持続的モジュール502によって実行される命令は、オーディオサービス522内で起動し得る)、これは、1つまたはそれを上回るコンピュータシステム上で起動されてもよい。いくつかの実施形態では、オーディオサービス522は、プロセスであることができ、これは、ランタイム環境内で起動し得、モジュール(例えば、持続的モジュール502)によって実行される命令は、オーディオサービス522のコンポーネントであってもよい(例えば、持続的モジュール502によって実行される命令は、オーディオサービス522のサブプロセスであってもよい)。いくつかの実施形態では、オーディオサービス522は、親プロセスのサブプロセスであることができる。モジュール(例えば、持続的モジュール502)によって実行される命令は、1つまたはそれを上回るコンポーネント(例えば、位置特定ステータスサブモジュール506、音響データサブモジュール508、および/またはオーディオモデルサブモジュール510によって実行されるプロセス、サブプロセス、スレッド、および/またはサービス)を含むことができる。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)によって実行される命令は、オーディオサービス522のサブプロセスとして、および/またはオーディオサービス522の他のコンポーネントと異なる場所における別個のプロセスとして、起動してもよい。例えば、モジュール(例えば、持続的モジュール502)によって実行される命令は、汎用プロセッサ内で起動してもよく、オーディオサービス522の1つまたはそれを上回る他のコンポーネントは、オーディオ特有のプロセッサ(例えば、DSP)内で起動してもよい。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)によって実行される命令は、オーディオサービス522の他のコンポーネントと異なるプロセスアドレス空間および/またはメモリ空間内で起動してもよい。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)によって実行される命令は、オーディオサービス522内の1つまたはそれを上回るスレッドとして起動してもよい。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)によって実行される命令は、オーディオサービス522内でインスタンス化されてもよい。いくつかの実施形態では、モジュール(例えば、持続的モジュール502)によって実行される命令は、プロセスアドレスおよび/またはメモリ空間をオーディオサービス522の他のコンポーネントと共有してもよい。
いくつかの実施形態では、持続的モジュール502は、位置特定ステータスサブモジュール506を含むことができる。位置特定ステータスサブモジュール506は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、位置特定ステータスサブモジュール506によって実行される命令は、持続的モジュール502のサブプロセスであることができる。いくつかの実施形態では、位置特定ステータスサブモジュール506は、位置特定が達成されたかどうかを示すことができる(例えば、位置特定ステータスサブモジュール506は、MRシステムが、実環境を識別し、および/またはそれ自体を実環境内で位置特定したかどうかを示してもよい)。いくつかの実施形態では、位置特定ステータスサブモジュール506は、位置特定システムとインターフェースをとることができる(例えば、APIを介して)。位置特定システムは、MRシステム(および/またはMRシステムを使用するユーザ)に関する場所を決定してもよい。いくつかの実施形態では、位置特定システムは、SLAMのような技法を利用して、実環境の3次元モデルを作成し、環境内のシステム(および/またはユーザ)の場所を推定することができる。いくつかの実施形態では、位置特定システムは、パス可能世界システム(下記にさらに詳細に説明される)および(例えば、MRシステム112、200の)1つまたはそれを上回るセンサに依拠し、環境内のMRシステム(および/またはユーザ)の場所を推定することができる。いくつかの実施形態では、位置特定ステータスサブモジュール506は、位置特定システムにクエリし、位置特定がMRシステムに関して現在達成されているかどうかを決定することができる。同様に、位置特定システムは、位置特定ステータスサブモジュール506に、位置特定の成功を通知してもよい。(例えば、MRシステム112、200の)位置特定ステータスは、オーディオモデルが更新されるべき(例えば、ユーザの実環境が変化したため)かどうかを決定するために使用されてもよい。
いくつかの実施形態では、持続的モジュール502は、音響データサブモジュール508を含むことができる。音響データサブモジュール508は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、音響データサブモジュール508によって実行される命令は、持続的モジュール502のサブプロセスであってもよい。いくつかの実施形態では、音響データサブモジュール508は、オーディオモデルを作成するために使用され得る、音響データを表す、1つまたはそれを上回るデータ構造を記憶してもよい。いくつかの実施形態では、音響データサブモジュール508は、パス可能世界システムとインターフェースをとることができる(例えば、APIを介して)。パス可能世界システムは、既知の実環境(例えば、部屋、建物、および/または外側空間)と、関連付けられる実および/または仮想オブジェクトとに関する情報を含んでもよい。いくつかの実施形態では、パス可能世界システムは、持続的座標フレームおよび/またはアンカポイントを含んでもよい。持続的座標フレームおよび/またはアンカポイントは、MRシステムに既知であり得る(例えば、一意の識別子によって)、空間内に固定された点であることができる。仮想オブジェクトは、1つまたはそれを上回る持続的座標フレームおよび/またはアンカポイントに関連して位置付けられ、オブジェクト持続性を有効にしてもよい(例えば、仮想オブジェクトは、仮想オブジェクトを視認する人物にかかわらず、かつユーザの任意の移動にかかわらず、実環境内の同一場所に留まるように現れることができる)。持続的座標フレームおよび/またはアンカポイントは、特に、別個のMRシステムを伴う2人またはそれを上回るユーザが、異なる世界座標フレームを利用する(例えば、各ユーザの場所が、その個別の世界座標フレームに関する原点として指定される)とき、有利であり得る。ユーザを横断したオブジェクト持続性は、個々の世界座標フレームとユニバーサル持続的座標フレームとの間で変換し、仮想オブジェクトを持続的座標フレームに関連して設置/参照することによって達成されることができる。いくつかの実施形態では、パス可能世界システムは、例えば、新しいエリアをマッピングし、新しい持続的座標フレームを作成することによって;既知のエリアを再マッピングし、新しい持続的座標フレームと以前に決定された持続的座標フレームを調和させることによって;および/または持続的座標フレームと識別可能情報(例えば、場所および/または近隣のオブジェクト)を関連付けることによって、持続的座標フレームを管理および維持することができる。いくつかの実施形態では、音響データサブモジュール508は、1つまたはそれを上回る持続的座標フレームに関して、別個のシステム(例えば、パス可能世界システム)にクエリしてもよい。いくつかの実施形態では、音響データサブモジュール508は、関連付けられる音響データの作成、修正、および/または削除を含む、関連持続的座標フレーム(例えば、ユーザの位置の閾値半径内の持続的座標フレーム)を読み出し、アクセスおよび管理を促進することができる。
いくつかの実施形態では、音響データサブモジュール508内に記憶される音響データは、物理的に相関したモジュール式ユニットに編成されることができる(例えば、部屋は、モジュール式ユニットによって表されてもよく、部屋内の椅子は、別のモジュール式ユニットによって表されてもよい)。例えば、モジュール式ユニットは、物理的環境(例えば、部屋)の物理的および/または知覚的関連性質を含んでもよい。物理的および/または知覚的関連性質は、部屋の音響特性(例えば、部屋の寸法および/または形状)に影響を及ぼし得る、性質を含むことができる。いくつかの実施形態では、物理的および/または知覚的関連性質は、機能的および/または挙動性質を含むことができ、これは、レンダリングエンジンによって解釈され得る(例えば、部屋の外側のソースがオクルードされるべきかどうか)。いくつかの実施形態では、物理的および/または知覚的関連性質は、既知および/または認識されるオブジェクトの性質を含むことができる。例えば、固定されたオブジェクト(例えば、床、壁、家具等)および/または移動可能なオブジェクト(例えば、マグカップ)の幾何学形状は、物理的および/または知覚的関連性質として記憶され得、特定の環境と関連付けられ得る。いくつかの実施形態では、物理的および/または知覚的関連性質は、伝送損失、散乱係数、および/または吸収係数を含むことができる。いくつかの実施形態では、モジュール式ユニットは、物理的および/または知覚的関連連結(例えば、他のモジュール式ユニット間またはモジュール式ユニット内)を含むことができる。例えば、物理的および/または知覚的関連連結は、2つまたはそれを上回る部屋をともに連結し、部屋が相互に相互作用し得る方法(例えば、部屋をシミュレートするデジタル反響器間の交差結合利得レベルおよび/または2つの空間間の通視線経路)を説明してもよい。
いくつかの実施形態では、物理的および/または知覚的関連性質は、反響時間、反響遅延、および/または反響利得のような音響性質を含むことができる。反響時間は、音がある量(例えば、60デシベル)減弱するために要求される時間の長さを含んでもよい。音減弱は、例えば、部屋の境界(例えば、壁、床、天井等)、部屋の内側のオブジェクト(例えば、椅子、家具、人々等)、および部屋内の空気による音吸収に起因してエネルギーを損失している間の実環境内の表面(例えば、壁、床、家具等)から反射する音の結果であり得る。反響時間は、環境要因によって影響され得る。例えば、吸収性表面(例えば、クッション)は、幾何学的拡散に加え、音を吸収し得、反響時間は、結果として、低減され得る。いくつかの実施形態では、環境の反響時間を推定するために、オリジナルソースについての情報を有することは、必要ではない場合がある。反響利得は、音の直接/ソース/オリジナルエネルギーの、聴取者およびソースが実質的に共同設置される音の反響エネルギー(例えば、直接/ソース/オリジナル音から生じる反響のエネルギー)に対する比を含むことができる(例えば、ユーザが、その手を叩き、頭部装着型MRシステム上に搭載される1つまたはそれを上回るマイクロホンと実質的に共同設置されると見なされ得る、ソース音を生産し得る)。例えば、インパルス(例えば、叩音)は、インパルスと関連付けられる、エネルギーを有し得、インパルスからの反響音は、インパルスの反響と関連付けられる、エネルギーを有し得る。オリジナル/ソースエネルギー対反響エネルギーの比は、反響利得であり得る。実環境の反響利得は、例えば、音を吸収し、それによって、反響エネルギーを低減させ得る、吸収性表面によって影響され得る。
いくつかの実施形態では、音響データは、メタデータ(例えば、物理的および/または知覚的関連性質のメタデータ)を含むことができる。例えば、音響データが集められた時間および/または場所についての情報が、音響データ内に含まれてもよい。いくつかの実施形態では、音響データと関連付けられる、信頼度データ(例えば、推定される測定正確度および/または繰り返される測定の数)が、メタデータとして含まれてもよい。いくつかの実施形態では、モジュール式ユニットのタイプ(例えば、部屋に関するモジュール式ユニットまたはモジュール式ユニット間の連結)および/またはデータバージョニングが、メタデータとして含まれてもよい。いくつかの実施形態では、音響データ、持続的座標フレーム、および/またはアンカポイントと関連付けられる、一意の識別子が、メタデータとして含まれてもよい。いくつかの実施形態では、持続的座標フレームおよび/またはアンカポイントおよび関連付けられる仮想オブジェクトからの相対的変換が、メタデータとして含まれてもよい。いくつかの実施形態では、メタデータは、音響データとともに、単一バンドルとして記憶されることができる。
いくつかの実施形態では、音響データは、持続的座標フレームおよび/またはアンカポイントによって編成されてもよく、持続的座標フレームおよび/またはアンカポイントは、マップに編成されてもよい。いくつかの実施形態では、オーディオモデルは、持続的座標フレームおよび/またはアンカポイントによって編成される、音響データを考慮し得、これは、環境内の場所に対応し得る。いくつかの実施形態では、音響データは、位置特定イベントの成功(位置特定ステータスサブモジュール506によって示され得る)に応じて、音響データサブモジュール508の中にロードされてもよい。いくつかの実施形態では、全ての利用可能な音響データが、音響データサブモジュール508の中にロードされてもよい。いくつかの実施形態では、関連音響データのみが、音響データサブモジュール508の中にロードされてもよい(例えば、MRシステムの場所のある距離内の持続的座標フレームおよび/またはアンカポイントに関する音響データ)。
いくつかの実施形態では、音響データは、実環境の変化に従って変化し得る、異なる状態を含むことができる。例えば、部屋を表し得る、所与のモジュール式ユニットに関する音響データは、空状態における部屋に関する音響データと、占有された状態における部屋に関する音響データとを含んでもよい。いくつかの実施形態では、部屋の家具配列の変化は、部屋と関連付けられる音響データ内の状態の変化によって反映され得る。いくつかの実施形態では、モジュール式ユニット(例えば、部屋を表す)は、ドアが開閉されるときの状態に関する異なる音響データを含んでもよい。状態は、バイナリ値(例えば、0または1)または連続値(例えば、ドアが開放している程度、部屋が占有されている程度等)として表され得る。
いくつかの実施形態では、持続的モジュール502は、オーディオモデルサブモジュール510を含んでもよい。オーディオモデルサブモジュール510は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、オーディオモデルサブモジュール510は、実および/または仮想環境に関するオーディオモデルを表す、1つまたはそれを上回るデータ構造を含んでもよい。いくつかの実施形態では、オーディオモデルは、少なくとも部分的に、音響データサブモジュール508内に記憶される音響データによって生成されてもよい。オーディオモデルは、特定の環境内で音が挙動する方法を表し得る。例えば、MRシステム(例えば、MRシステム112、200)によって生成された仮想音は、オーディオモデルサブモジュール510内のオーディオモデルによって修正され、環境の音響特性を反映させてもよい。広々としてコンサートホール内に着座するユーザに提示される仮想コンサートは、同一コンサートホールに提示される実コンサートと類似音響性質を有してもよい。MRシステムは、それ自体をコンサートホールに対して位置特定し、関連音響データをロードし、オーディオモデルを生成し、コンサートホールの音響性質をモデル化してもよい。
いくつかの実施形態では、オーディオモデルは、環境内の音伝搬をモデル化するために使用されてもよい。例えば、伝搬効果は、オクルージョン、障害物、早期反射、回折、飛行時間遅延、ドップラー効果、および他の効果を含むことができる。いくつかの実施形態では、オーディオモデルは、周波数依存吸収率および/または伝送損失を考慮することができる(例えば、音響データサブモジュール508の中にロードされた音響データに基づいて)。いくつかの実施形態では、オーディオモデルサブモジュール510内に記憶されるオーディオモデルは、オーディオエンジンの他の側面を知らせてもよい。例えば、オーディオモデルは、音響データを使用して、プロセス上、オーディオ(例えば、仮想および/または実オブジェクト間の衝突)を合成してもよい。
いくつかの実施形態では、オーディオレンダリングサービス522は、レンダリングトラックモジュール514を含んでもよい。レンダリングトラックモジュール514は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、レンダリングトラックモジュール514は、後にユーザに提示され得る、オーディオ情報を含んでもよい。いくつかの実施形態では、MRシステムは、ともに混合されるいくつかの音源(例えば、2本の剣が衝突する音源と、叫んでいる人物の音源)を含む、仮想音を提示してもよい。レンダリングトラックモジュール514は、ユーザに提示するために他のトラックと混合され得る、1つまたはそれを上回るトラックを記憶してもよい。いくつかの実施形態では、レンダリングトラックモジュール514は、空間ソースについての情報を含むことができる。例えば、レンダリングトラックモジュール514は、音源が位置する場所についての情報を含んでもよく、これは、オーディオモデルおよび/またはレンダリングアルゴリズムにおいて考慮されてもよい。いくつかの実施形態では、レンダリングトラックモジュール514は、モジュール式ユニットおよび/または音源間の関係についての情報を含んでもよい。例えば、1つまたはそれを上回るレンダリングトラックおよび/またはオーディオモデルは、単一グループとして、ともに関連付けられてもよい。
いくつかの実施形態では、オーディオレンダリングサービス522は、場所マネージャモジュール516を含んでもよい。場所マネージャモジュール516は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、場所マネージャモジュール516は、オーディオエンジンに関連する場所情報(例えば、実環境内のMRシステムの現在の場所)を管理してもよい。いくつかの実施形態では、場所マネージャモジュール516は、知覚ラッパサブモジュールを含むことができる。知覚ラッパサブモジュールは、知覚データ(例えば、MRシステムが、検出した、または検出しているもの)の周囲のラッパであってもよい。いくつかの実施形態では、知覚ラッパは、知覚データと場所マネージャモジュール516との間でインターフェースをとり、および/または変換してもよい。いくつかの実施形態では、場所マネージャモジュール516は、頭部姿勢サブモジュールを含んでもよく、これは、頭部姿勢データを含んでもよい。頭部姿勢データは、実環境内のMRシステム(または対応するユーザ)の場所および/または配向を含んでもよい。いくつかの実施形態では、頭部姿勢は、知覚データに基づいて決定されてもよい。
いくつかの実施形態では、オーディオレンダリングサービス522は、オーディオモデルモジュール518を含んでもよい。オーディオモデルモジュール518は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、オーディオモデルモジュール518は、オーディオモデルを含んでもよく、これは、オーディオモデルサブモジュール510内に含まれる同一オーディオモデルであってもよい。いくつかの実施形態では、モジュール510および518は、同一オーディオモデルの複製コピーを維持してもよい。例えば、オーディオモデルが、更新されているが、音が、ユーザに提示されるべきとき、オーディオモデルの1つを上回るコピーを維持することが有利であり得る。モデルが、現在、使用中であるとき、モデルのコピーを更新し、次いで、古くなったモデルが利用不可能である(例えば、もはや使用されていない)とき、古くなったモデルを更新することが有利であり得る。いくつかの実施形態では、オーディオモデルは、シリアライズを通して、モジュール510と518との間で転送されることができる。モジュール510内のオーディオモデルは、シリアライズおよびシリアライズ解除され、モジュール518へのデータ転送を促進することができる。シリアライズは、タイプされたメモリが共有される必要がないように、プロセッサ(例えば、一般的プロセッサおよびオーディオ特有のプロセッサ)間のデータ転送を促進することができる。
いくつかの実施形態では、オーディオレンダリングサービス522は、レンダリングアルゴリズムモジュール520を含むことができる。レンダリングアルゴリズムモジュール520は、命令を実行し、および/または1つまたはそれを上回るデータ構造を記憶するように構成される、1つまたはそれを上回るコンピュータシステムを含むことができる。例えば、レンダリングアルゴリズムモジュール520は、ユーザに提示され得るように(例えば、MRシステムの1つまたはそれを上回るスピーカを介して)、仮想音をレンダリングするためのアルゴリズムを含むことができる。レンダリングアルゴリズムモジュール520は、具体的環境のオーディオモデル(例えば、モジュール510および/または518内のオーディオモデル)を考慮し得る。
いくつかの実施形態では、オーディオサービス522は、(例えば、MRシステム112、200内の)1つまたはそれを上回るコンピュータシステム上で起動する、プロセス、サブプロセス、スレッド、および/またはサービスであることができる。いくつかの実施形態では、別個のシステム(例えば、第三者アプリケーション)が、オーディオ信号が提示される(例えば、MRシステム112、200の1つまたはそれを上回るスピーカを介して)ことを要求してもよい。そのような要求は、任意の好適な形態をとってもよい。いくつかの実施形態では、オーディオ信号が提示されることの要求は、オーディオ信号を提示するためのソフトウェア命令を含むことができ、いくつかの実施形態では、そのような要求は、ハードウェア駆動されてもよい。要求は、ユーザ関与の有無にかかわらず、発行されてもよい。さらに、そのような要求は、ローカルハードウェアを介して(例えば、MRシステム自体から)、外部ハードウェア(例えば、MRシステムと通信する別個のコンピュータシステム)を介して、インターネットを介して(例えば、クラウドサーバを介して)、または任意の他の好適なソースまたはソースの組み合わせを介して、受信されてもよい。いくつかの実施形態では、オーディオサービス522は、要求を受信し、要求されたオーディオ信号をレンダリングし(例えば、ブロック510および/または518からのオーディオモデルを考慮し得る、レンダリングアルゴリズム520を通して)、要求されたオーディオ信号をユーザに提示してもよい。いくつかの実施形態では、オーディオサービス522は、MRシステムのオペレーティングシステムが起動中の間、継続的に起動する(例えば、バックグラウンドで)、プロセスであってもよい。いくつかの実施形態では、オーディオサービス522は、親バックグラウンドサービスのインスタンス化であることができ、これは、1つまたはそれを上回るバックグラウンドプロセスおよび/またはサブプロセスに対するホストプロセスとしての役割を果たし得る。いくつかの実施形態では、オーディオサービス522は、MRシステムのオペレーティングシステムの一部であってもよい。いくつかの実施形態では、オーディオサービス522は、MRシステム上で起動され得る、アプリケーションにアクセス可能であってもよい。いくつかの実施形態では、MRシステムのユーザは、直接、入力をオーディオサービス522に提供しなくてもよい。例えば、ユーザは、入力(例えば、移動コマンド)をMRシステム上で起動するアプリケーション(例えば、ロールプレイングゲーム)に提供してもよい。アプリケーションは、入力をオーディオサービス522に提供してもよく(例えば、足音をレンダリングするため)、オーディオサービス522は、出力(例えば、レンダリングされた足音)をユーザ(例えば、スピーカを介して)および/または他のプロセスおよび/またはサービスに提供してもよい。
図6は、いくつかの実施形態による、オーディオモデルを更新するための例示的プロセスを図示する。ステップ606では、位置特定が、決定されてもよい(例えば、MRシステムは、環境内のその場所を正常に識別し得る)。持続的モジュール602(持続的モジュール502と対応し得る)内で生じ得る、ステップ607では、位置特定の成功の通知が、発行されてもよい。いくつかの実施形態では、位置特定の成功の通知は、オーディオモデルを更新するプロセスをトリガしてもよい(例えば、前のオーディオモデルが、もはや現在の場所に適用され得ないため)。
ステップ608では、音響データの呼出を開始するかどうかが決定されることができる。オーディオモデルがあまり頻繁に更新されないように、呼出を開始するための1つまたはそれを上回る条件を設定することが望ましくあり得る。例えば、MRシステムを使用するユーザが、部屋内を若干のみ移動する場合、オーディオモデルを更新することは望ましくあり得ない(例えば、更新されたモデルが、既存のモデルと知覚的に区別可能ではあり得ず、および/またはモデルを継続的に更新することが算出上高価であり得るため)。いくつかの実施形態では、ステップ608における閾値条件は、時間に基づいてもよい。例えば、呼出は、呼出が5秒前からすでに開始されていない場合のみ、開始されてもよい。いくつかの実施形態では、ステップ608における閾値条件は、位置特定に基づいてもよい。例えば、呼出は、ユーザが閾値距離量位置を変更した場合のみ、開始されてもよい。他の閾値条件も同様に、使用されてもよいことに留意されたい。いくつかの実施形態では、ステップ607および/または608は、位置特定ステータスサブモジュール(例えば、位置特定ステータスサブモジュール506)内で生じ得る。
呼出が開始されるべきであることが決定される場合、持続的座標フレームが、ステップ610において、読み出されてもよい。いくつかの実施形態では、利用可能な持続的座標フレームのサブセットのみが、ステップ610において、読み出されてもよい。例えば、位置特定の近くの持続的座標フレームのみが、読み出されてもよい。
ステップ612では、音響データが、読み出されてもよい。いくつかの実施形態では、ステップ612において読み出された音響データは、音響データサブモジュール508内に記憶される音響データと対応し得る。いくつかの実施形態では、利用可能な音響データのサブセットのみが、ステップ612において、読み出されてもよい。例えば、1つまたはそれを上回る持続的座標フレームおよび/またはアンカポイントと関連付けられる音響データが、読み出されてもよい。いくつかの実施形態では、ステップ612および/または614は、音響データサブモジュール(例えば、音響データサブモジュール508)内で生じ得る。
ステップ614では、オーディオモデルが、構築および/または修正されてもよい。いくつかの実施形態では、オーディオモデルは、ステップ612において読み出された音響データを考慮してもよく、オーディオモデルは、特定の環境の音響特性をモデル化してもよい。いくつかの実施形態では、ステップ614は、オーディオモデルサブモジュール(例えば、オーディオモデルサブモジュール510)内で生じ得る。
ステップ616では、オーディオモデルのコピーが更新されるべきかどうかが決定されることができる。サービス(例えば、オーディオをユーザに提示する)を妨げることを回避するために、オーディオモデルのコピーを更新するための1つまたはそれを上回る条件を設定することが望ましくあり得る。例えば、1つの条件は、オーディオモデルのコピーが(例えば、オーディオレンダリングサービス604内であるが、持続的モジュール602の外側に)存在するかどうかを評価してもよい。オーディオモデルのコピーが、存在しない場合、オーディオモデルが、オーディオレンダリングサービス604(オーディオレンダリングサービス522に対応し得る)によって読み出されてもよい。いくつかの実施形態では、条件は、オーディオモデルのコピーが、現在、使用中であるかどうか(例えば、オーディオモデルが、オーディオをレンダリングし、ユーザに提示するために使用されているかどうか)を評価してもよい。オーディオモデルのコピーが、使用中ではない場合、更新されたオーディオモデル(例えば、ステップ614において生成されたオーディオモデル)が、コピーに伝搬されてもよい。
ステップ618では、オーディオレンダリングサービス604は、オーディオモデル(例えば、ステップ614において生成されたオーディオモデル)のコピーを読み出してもよい。オーディオモデルは、データシリアライズおよび/またはシリアライズ解除を使用して、転送されてもよい。
ステップ620では、古くなったオーディオモデルは、随意に、削除および/または無効にされてもよい。例えば、オーディオレンダリングサービス604は、以前に使用されていた、第1の既存のオーディオモデルを有してもよい。オーディオレンダリングサービス604は、第2の更新されたオーディオモデルを読み出し(例えば、持続的モジュール602から)、第1の既存のオーディオモデルを削除および/または無効にしてもよい。
ステップ622では、通知が、新しいオーディオモデルに関して発行されてもよい。いくつかの実施形態では、通知は、オーディオモデルが変化したとき、通知を受けるようにサブスクライブされ得る、クライアント(例えば、第三者アプリケーション)へのコールバック関数を含んでもよい。
図7は、いくつかの実施形態による、オーディオモデルを更新するための例示的プロセスを図示する。ステップ706では、オーディオデータが、受信されてもよい(例えば、MRシステム112、200の1つまたはそれを上回るセンサを介して)。いくつかの実施形態では、オーディオデータは、手動で打ち込まれてもよい(例えば、ユーザおよび/または開発者は、反響時間、反響遅延、反響利得等を手動で打ち込んでもよい)。持続的モジュール702(持続的モジュール502と対応し得る)内で生じ得る、ステップ708では、関連付けられる環境が、識別されてもよい。関連付けられる環境は、オーディオデータに付随し得る、メタデータによって識別されてもよい(例えば、メタデータは、MRシステムに既知であり得る、1つまたはそれを上回る持続的座標フレームおよび/またはアンカポイントについての情報を搬送してもよい)。
ステップ710では、関連付けられる環境が新しいかどうかが決定されることができる。例えば、関連付けられる環境が、識別され得ず、および/または未知の識別子と関連付けられる場合、オーディオデータは、新しい環境と関連付けられることが決定され得る。関連付けられる環境が新しくないことが決定される場合、正式なオーディオモデルのコピーが、更新されてもよい(例えば、オーディオデータから導出され得る、部屋性質で)。関連付けられる環境が、新しいことが決定される場合、新しい環境は、正式なオーディオモデルのコピーに追加されてもよく、コピーオーディオモデルは、適宜、更新されてもよい。いくつかの実施形態では、新しい環境は、新しいモジュール式ユニットによって表されてもよい。
ステップ716では、新しい環境と関連付けられる、メタデータ(例えば、新しいモジュール式ユニットと関連付けられる、メタデータ)は、初期化されてもよい。例えば、測定数、信頼度、または他の情報と関連付けられる、メタデータが、作成され、新しいモジュール式ユニットとともにバンドル化されてもよい。
ステップ718では、持続的モジュール702内の正式なオーディオモデルが、更新されてもよい。例えば、正式なオーディオモデルは、更新されたコピーオーディオモデルから複製されてもよい。いくつかの実施形態では、正式なオーディオモデルは、ステップ718において、ロックされ、さらなる変更が正式なオーディオモデルに行われないように防止してもよい。いくつかの実施形態では、変更は、正式なオーディオモデルがロックされている間、依然として、正式なオーディオモデルのコピーに行われてもよい(依然として、持続的モジュール702内に存在してもよい)。
ステップ720では、新しいオーディオデータと関連付けられる、音響データは、保存されてもよい。例えば、新しい部屋と関連付けられる、新しいモジュール式ユニットは、保存され、および/またはパス可能世界システムに通過されてもよい(将来的に、必要に応じて、MRシステムにアクセス可能にしてもよい)。いくつかの実施形態では、ステップ720は、音響データサブモジュール508内で生じ得る。いくつかの実施形態では、ステップ720は、順次、ステップ718に続いて、生じ得る。いくつかの実施形態では、ステップ720は、他のコンポーネントによって決定されるような独立時間に、例えば、その中に音響データが保存され得る、パス可能世界システムの可用性に基づいて、生じ得る。
ステップ722では、オーディオレンダリングサービス704(オーディオレンダリングサービス522に対応し得る)が、オーディオモデルのコピーを読み出してもよい。いくつかの実施形態では、オーディオモデルのコピーは、ステップ718において更新された同一オーディオモデルであってもよい。いくつかの実施形態では、データ転送は、シリアライズおよびシリアライズ解除を通して生じ得る。いくつかの実施形態では、オーディオモデルは、シリアライズプロセスが実行されている間、ロックされてもよく、これは、オーディオモデルのスナップショットが作成されている間、オーディオモデルが変更されないように防止し得る。
ステップ724では、古くなったオーディオモデルのコピーは、削除および/または無効にされてもよい。
ステップ726では、通知が、新しいオーディオモデルに関して発行されてもよい。通知は、モデルが更新されると通知を受けるようにサブスクライブされたクライアントへのコールバック関数であることができる。
ステップ728では、正式なオーディオモデルは、リリースされてもよく、これは、オーディオモデルに対応するシリアライズされたバンドルが削除され得ることを示し得る。いくつかの実施形態では、正式なオーディオモデルのコピーがオーディオレンダリングサービス704に転送されている間、持続的モジュール702内の正式なオーディオモデルをロックすることが望ましくあり得る。正式なオーディオモデルが更新し続け得るように、いったんオーディオレンダリングサービス704が、正式なオーディオモデルのコピーの読出を終了すると、正式なオーディオモデルのロックを解除することが望ましくあり得る。
いくつかの実施形態では、オーディオレンダリングサービス(例えば、オーディオレンダリングサービス522)は、持続的モジュール(例えば、持続的モジュール502)とレンダリングアルゴリズム(例えば、レンダリングアルゴリズムモジュール520)との間の相互作用を管理しなくてもよい。例えば、レンダリングアルゴリズム520は、直接、持続的モジュール502と通信し、更新されたオーディオモデルを読み出してもよい。いくつかの実施形態では、レンダリングアルゴリズム520は、オーディオモデルのその独自のコピーを含んでもよい。いくつかの実施形態では、レンダリングアルゴリズム520は、持続的モジュール502内のオーディオモデルにアクセスしてもよい。
上記に提供されるように、本明細書に開示されるものは、複合現実システムのための音響データを記憶、編成、および維持するためのシステムおよび方法である。
本システムは、頭部装着型デバイスの1つまたはそれを上回るセンサと、頭部装着型デバイスのスピーカと、方法を実行するように構成される、1つまたはそれを上回るプロセッサとを含んでもよい。1つまたはそれを上回るプロセッサによる実行のための方法は、オーディオ信号を提示するための要求を受信するステップと、頭部装着型デバイスの1つまたはそれを上回るセンサを介して、環境を識別するステップと、環境と関連付けられる、1つまたはそれを上回るオーディオモデルコンポーネントを読み出すステップと、オーディオモデルコンポーネントに基づいて、第1のオーディオモデルを生成するステップと、第1のオーディオモデルに基づいて、第2のオーディオモデルを生成するステップと、第2のオーディオモデルに基づいて、かつオーディオ信号を提示するための要求に基づいて、修正されたオーディオ信号を決定するステップと、頭部装着型デバイスのスピーカを介して、修正されたオーディオ信号を提示するステップとを含んでもよい。
いくつかのシステム側面では、第2のオーディオモデルは、オーディオサービスによって生成されてもよい。いくつかのシステム側面では、修正されたオーディオ信号は、オーディオサービスによって決定されてもよい。いくつかのシステム側面では、第2のオーディオモデルは、第1のオーディオモデルの複製であってもよい。
いくつかのシステム側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかのシステム側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響時間を含んでもよい。いくつかのシステム側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響利得を含んでもよい。いくつかのシステム側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、伝送損失係数を含んでもよい。いくつかのシステム側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、吸収係数を含んでもよい。
方法が、オーディオ信号を提示するための要求を受信するステップを含んでもよい。環境が、頭部装着型デバイスの1つまたはそれを上回るセンサを介して識別されてもよい。環境と関連付けられる、1つまたはそれを上回るオーディオモデルコンポーネントが、読み出されてもよい。第1のオーディオモデルが、オーディオモデルコンポーネントに基づいて生成されてもよい。第2のオーディオモデルが、第1のオーディオモデルに基づいて生成されてもよい。修正されたオーディオ信号が、第2のオーディオモデルに基づいて、かつオーディオ信号を提示するための要求に基づいて、決定されてもよい。修正されたオーディオ信号は、頭部装着型デバイスのスピーカを介して提示されてもよい。
いくつかの方法側面では、第2のオーディオモデルは、オーディオサービスによって生成されてもよい。いくつかの方法側面では、修正されたオーディオ信号が、オーディオサービスによって決定されてもよい。いくつかの方法側面では、第2のオーディオモデルは、第1のオーディオモデルの複製であってもよい。
いくつかの方法側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかの方法側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響時間を含んでもよい。いくつかの方法側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響利得を含んでもよい。いくつかの方法側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、伝送損失係数を含んでもよい。いくつかの方法側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、吸収係数を含んでもよい。
非一過性コンピュータ可読媒体が、1つまたはそれを上回るプロセッサによって実行されると、1つまたはそれを上回るプロセッサに、方法を実行させる、命令を記憶してもよい。1つまたはそれを上回るプロセッサによる実行のための方法は、オーディオ信号を提示するための要求を受信するステップと、頭部装着型デバイスの1つまたはそれを上回るセンサを介して、環境を識別するステップと、環境と関連付けられる、1つまたはそれを上回るオーディオモデルコンポーネントを読み出すステップと、オーディオモデルコンポーネントに基づいて、第1のオーディオモデルを生成するステップと、第1のオーディオモデルに基づいて、第2のオーディオモデルを生成するステップと、第2のオーディオモデルに基づいて、かつオーディオ信号を提示するための要求に基づいて、修正されたオーディオ信号を決定するステップと、頭部装着型デバイスのスピーカを介して、修正されたオーディオ信号を提示するステップとを含んでもよい。
いくつかの非一過性コンピュータ可読媒体側面では、第2のオーディオモデルは、オーディオサービスによって生成されてもよい。いくつかの非一過性コンピュータ可読媒体側面では、修正されたオーディオ信号は、オーディオサービスによって決定されてもよい。いくつかの非一過性コンピュータ可読媒体側面では、第2のオーディオモデルは、第1のオーディオモデルの複製であってもよい。
いくつかの非一過性コンピュータ可読媒体側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響時間を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、反響利得を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、伝送損失係数を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、1つまたはそれを上回るオーディオモデルコンポーネントは、吸収係数を含んでもよい。
システムが、頭部装着型デバイスの1つまたはそれを上回るセンサと、頭部装着型デバイスのスピーカと、方法を実行するように構成される、1つまたはそれを上回るプロセッサとを含んでもよい。1つまたはそれを上回るプロセッサによる実行のための方法は、頭部搭載型ウェアラブルデバイスの1つまたはそれを上回るセンサを介して、オーディオデータを受信するステップと、オーディオデータに基づいて、環境の1つまたはそれを上回る音響特性を決定するステップと、オーディオデータに関する関連付けられる環境を決定するステップと、環境の1つまたはそれを上回る音響特性に基づいて、更新されたオーディオモデルを生成するステップと、更新されたオーディオモデルを読み出すステップと、更新されたオーディオモデルと関連付けられる通知を生成するステップと、頭部装着型デバイスのスピーカを介して、信号更新されたオーディオモデルに基づいて、オーディオを提示するステップとを含んでもよい。
いくつかのシステム側面では、更新されたオーディオモデルは、オーディオサービスによって読み出されてもよい。いくつかのシステム側面では、通知は、オーディオサービスによって生成されてもよい。いくつかのシステム側面では、更新されたオーディオモデルを生成するステップはさらに、前のオーディオモデルに基づいてもよい。
いくつかのシステム側面では、環境の1つまたはそれを上回る音響特性は、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかのシステム側面では、環境の1つまたはそれを上回る音響特性は、反響時間を含んでもよい。いくつかのシステム側面では、環境の1つまたはそれを上回る音響特性は、反響利得を含んでもよい。いくつかのシステム側面では、環境の1つまたはそれを上回る音響特性は、伝送損失係数を含んでもよい。いくつかのシステム側面では、環境の1つまたはそれを上回る音響特性は、吸収係数を含んでもよい。
方法が、頭部装着型デバイスの1つまたはそれを上回るセンサを介して、オーディオデータを受信するステップを含んでもよい。環境の1つまたはそれを上回る音響特性は、オーディオデータに基づいて決定されてもよい。関連付けられる環境が、オーディオデータに関して決定されてもよい。更新されたオーディオモデルが、環境の1つまたはそれを上回る音響特性に基づいて生成されてもよい。更新されたオーディオモデルは、読み出されてもよい。更新されたオーディオモデルと関連付けられる通知が、生成されてもよい。更新されたオーディオモデルに基づくオーディオ信号は、頭部装着型デバイスのスピーカを介して提示されてもよい。
いくつかの方法側面では、更新されたオーディオモデルは、オーディオサービスによって読み出されてもよい。いくつかの方法側面では、通知は、オーディオサービスによって生成されてもよい。いくつかの方法側面では、更新されたオーディオモデルを生成するステップはさらに、前のオーディオモデルに基づいてもよい。
いくつかの方法側面では、環境の1つまたはそれを上回る音響特性は、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかの方法側面では、環境の1つまたはそれを上回る音響特性は、反響時間を含んでもよい。いくつかの方法側面では、環境の1つまたはそれを上回る音響特性は、反響利得を含んでもよい。いくつかの方法側面では、環境の1つまたはそれを上回る音響特性は、伝送損失係数を含んでもよい。いくつかの方法側面では、環境の1つまたはそれを上回る音響特性は、吸収係数を含んでもよい。
非一過性コンピュータ可読媒体が、1つまたはそれを上回るプロセッサによって実行されると、1つまたはそれを上回るプロセッサに、方法を実行させる、命令を記憶してもよい。1つまたはそれを上回るプロセッサによる実行のための方法は、頭部装着型デバイスの1つまたはそれを上回るセンサを介して、オーディオデータを受信するステップと、オーディオデータに基づいて、環境の1つまたはそれを上回る音響特性を決定するステップと、オーディオデータに関する関連付けられる環境を決定するステップと、環境の1つまたはそれを上回る音響特性に基づいて、更新されたオーディオモデルを生成するステップと、更新されたオーディオモデルを読み出すステップと、更新されたオーディオモデルと関連付けられる通知を生成するステップと、頭部装着型デバイスのスピーカを介して、更新されたオーディオモデルに基づいて、オーディオ信号を提示するステップとを含んでもよい。
いくつかの非一過性コンピュータ可読媒体側面では、更新されたオーディオモデルは、オーディオサービスによって読み出されてもよい。いくつかの非一過性コンピュータ可読媒体側面では、通知は、オーディオサービスによって生成されてもよい。いくつかの非一過性コンピュータ可読媒体側面では、更新されたオーディオモデルを生成するステップはさらに、前のオーディオモデルに基づいてもよい。
いくつかの非一過性コンピュータ可読媒体側面では、環境の1つまたはそれを上回る音響特性は、環境の1つまたはそれを上回る寸法を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、環境の1つまたはそれを上回る音響特性は、反響時間を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、環境の1つまたはそれを上回る音響特性は、反響利得を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、環境の1つまたはそれを上回る音響特性は、伝送損失係数を含んでもよい。いくつかの非一過性コンピュータ可読媒体側面では、環境の1つまたはそれを上回る音響特性は、吸収係数を含んでもよい。
開示される実施例は、付随の図面を参照して完全に説明されたが、種々の変更および修正が、当業者に明白となるであろうことに留意されたい。例えば、1つまたはそれを上回る実装の要素は、組み合わせられ、削除され、修正され、または補完され、さらなる実装を形成してもよい。そのような変更および修正は、添付の請求項によって定義されるような開示される実施例の範囲内に含まれるものとして理解されるべきである。