複合現実環境
全ての人々のように、複合現実システムのユーザは、実環境、すなわち、「実世界」の3次元部分、およびユーザによって知覚可能であるそのコンテンツの全てに存在する。例えば、ユーザは、通常のヒトの感覚のうちの1つ、すなわち、視覚、音、接触、味、匂いを使用して、実環境を知覚し、実環境内で自分自身の身体を移動させることによって、実環境と相互作用する。実環境内の場所は、座標空間内の座標として説明されることができ、例えば、座標は、緯度、経度、および海面に対する標高、参照点からの3つの直交次元における距離、または他の好適な値を備えることができる。同様に、ベクトルは、座標空間内の方向および規模を有する数量を説明することができる。
コンピューティングデバイスは、例えば、デバイスと関連付けられるメモリ内に、仮想環境の表現を維持することができる。本明細書で使用されるように、仮想環境は、3次元空間の計算表現である。仮想環境は、任意のオブジェクト、アクション、信号、パラメータ、座標、ベクトル、またはその空間と関連付けられる他の特性の表現を含むことができる。いくつかの実施例では、コンピューティングデバイスの回路(例えば、プロセッサ)は、仮想環境の状態を維持および更新することができる、すなわち、プロセッサは、第1の時間t0において、仮想環境と関連付けられるデータおよび/またはユーザによって提供される入力に基づいて、第2の時間t1における仮想環境の状態を決定することができる。例えば、仮想環境内のオブジェクトが、時間t0において第1の座標に位置し、あるプログラムされた物理的パラメータ(例えば、質量、摩擦係数)を有し、ユーザから受信される入力が、力が方向ベクトルにおいてオブジェクトに印加されるべきであることを示す場合、プロセッサは、運動学の法則を適用し、基本力学を使用して、時間t1におけるオブジェクトの場所を決定することができる。プロセッサは、仮想環境について公知である任意の好適な情報、および/または任意の好適な入力(例えば、実世界パラメータ)を使用し、時間t1における仮想環境の状態を決定することができる。仮想環境の状態を維持および更新する際に、プロセッサは、仮想環境内の仮想オブジェクトの作成および削除に関するソフトウェア、仮想環境内の仮想オブジェクトまたはキャラクタの挙動を定義するためのソフトウェア(例えば、スクリプト)、仮想環境内の信号(例えば、オーディオ信号)の挙動を定義するためのソフトウェア、仮想環境と関連付けられるパラメータを作成および更新するためのソフトウェア、仮想環境内でオーディオ信号を生成するためのソフトウェア、入力および出力を取り扱うためのソフトウェア、ネットワーク動作を実装するためのソフトウェア、アセットデータ(例えば、経時的に仮想オブジェクトを移動させるためのアニメーションデータ)を適用するためのソフトウェア、または多くの他の可能性を含む、任意の好適なソフトウェアを実行することができる。
ディスプレイまたはスピーカ等の出力デバイスは、仮想環境の任意または全ての側面をユーザに提示することができる。例えば、仮想環境は、ユーザに提示され得る、仮想オブジェクト(無生物オブジェクト、人、動物、ライト等の表現を含み得る)を含んでもよい。プロセッサは、仮想環境のビュー(例えば、原点座標、視認軸、および錐台を伴う「カメラ」に対応する)を決定し、そのビューに対応する仮想環境の視認可能な場面をディスプレイにレンダリングすることができる。任意の好適なレンダリング技術が、本目的のために使用されてもよい。いくつかの実施例では、視認可能な場面は、仮想環境内のいくつかの仮想オブジェクトのみを含み、ある他の仮想オブジェクトを除外してもよい。同様に、仮想環境は、1つ以上のオーディオ信号としてユーザに提示され得る、オーディオ側面を含んでもよい。例えば、仮想環境内の仮想オブジェクトは、オブジェクトの場所座標から生じる音を生成し得る(例えば、仮想キャラクタが、話す、または音響効果を引き起こし得る)、または仮想環境は、特定の場所と関連付けられる場合とそうではない場合がある、音楽的キューまたは周囲音と関連付けられ得る。プロセッサは、「聴取者」座標に対応するオーディオ信号、例えば、仮想環境内の音の複合物に対応し、聴取者座標において聴取者によって聞かれるであろうオーディオ信号をシミュレートするように混合および処理される、オーディオ信号を決定し、1つ以上のスピーカを介して、オーディオ信号をユーザに提示することができる。
仮想環境が、計算構造としてのみ存在するため、ユーザは、その通常の感覚を使用して、仮想環境を直接知覚することができない。代わりに、ユーザは、例えば、ディスプレイ、スピーカ、触知出力デバイス等によって、ユーザに提示されるような、仮想環境を間接的にのみ知覚することができる。同様に、ユーザは、仮想環境に直接触れる、それを操作する、または別様にそれと相互作用することができないが、入力デバイスまたはセンサを介して、デバイスまたはセンサデータを使用し、仮想環境を更新し得るプロセッサに、入力データを提供することができる。例えば、カメラセンサは、ユーザが仮想環境内でオブジェクトを移動させようとしていることを示す、光学データを提供することができ、プロセッサは、そのデータを使用し、オブジェクトを、それに応じて仮想環境内で応答させることができる。
複合現実システムは、例えば、透過型ディスプレイおよび/または1つ以上のスピーカ(例えば、ウェアラブルヘッドデバイスの中に組み込まれ得る)を使用して、実環境および仮想環境の側面を組み合わせる複合現実(「MR」)環境をユーザに提示することができる。いくつかの実施形態では、1つ以上のスピーカは、頭部搭載型ウェアラブルユニットの外部にあり得る。本明細書で使用されるように、MR環境は、実環境および対応する仮想環境の同時表現である。いくつかの実施例では、対応する実および仮想環境は、単一の座標空間を共有し、いくつかの実施例では、実座標空間および1つ以上の対応する仮想座標空間は、1つ以上の変換行列(または他の好適な表現)によって相互に関連する。故に、いくつかの実施形態では、単一の座標は(いくつかの実施例では、変換行列とともに)、実環境内の第1の場所、また、仮想環境内の第2の対応する場所を定義することができ、その逆も同様である。
MR環境では、(例えば、MR環境と関連付けられる仮想環境内の)仮想オブジェクトは、(例えば、MR環境と関連付けられる実環境内の)実際のオブジェクトに対応することができる。例えば、MR環境の実環境が、場所座標において実際の街灯(実際のオブジェクト)を備える場合、MR環境の仮想環境は、対応する場所座標において対応する仮想街灯(仮想オブジェクト)を備えてもよい。本明細書で使用されるように、実際のオブジェクトは、その対応する仮想オブジェクトと組み合わせて、「複合現実オブジェクト」をともに構成する。仮想オブジェクトが、対応する実際のオブジェクトと完全に合致または整合する必要はない。いくつかの実施例では、仮想オブジェクトは、対応する実際のオブジェクトの簡略化されたバージョンであり得る。例えば、実環境が、実際の街灯を含む場合、対応する仮想オブジェクトは、(街灯が略円筒形であり得ることを反映して)実際の街灯とほぼ同一の高さおよび半径の円柱を備えてもよい。このように仮想オブジェクトを単純化することは、計算効率を可能にすることができ、そのような仮想オブジェクトに実施されるべき計算を単純化することができる。さらに、MR環境のいくつかの実施例では、実環境内の全ての実際のオブジェクトが、対応する仮想オブジェクトと関連付けられるわけではない場合がある。同様に、MR環境のいくつかの実施例では、仮想環境内の全ての仮想オブジェクトが、対応する実際のオブジェクトと関連付けられるわけではない場合がある。すなわち、いくつかの仮想オブジェクトが、いずれの実世界対応物も伴わずに、単独でMR環境の仮想環境内にあってもよい。いくつかの実施例では、全ての実際のオブジェクトが、対応する実際のオブジェクトと関連付けられるわけではない場合がある。
いくつかの実施例では、仮想オブジェクトは、対応する実際のオブジェクトのものと時として著しく異なる、特性を有し得る。例えば、MR環境内の実環境が、緑色で2本腕のサボテン、すなわち、とげのある無生物オブジェクトを備え得る一方、MR環境内の対応する仮想オブジェクトは、ヒトの顔特徴および無愛想な態度を伴う緑色で2本腕の仮想キャラクタの特性を有し得る。本実施例では、仮想オブジェクトは、ある特性(色、腕の数)においてその対応する実際のオブジェクトに類似するが、他の特性(顔特徴、性格)において実際のオブジェクトと異なる。このように、仮想オブジェクトは、独創的、抽象的、誇張された、または空想的様式で、実際のオブジェクトを表す、または挙動(例えば、ヒトの性格)をそうでなければ無生物の実際のオブジェクトに付与する潜在性を有する。いくつかの実施例では、仮想オブジェクトは、実世界対応物がない、純粋に空想的な創作物(例えば、おそらく、実環境内の空虚な空間に対応する場所における、仮想環境内の仮想モンスター)であってもよい。
実環境を覆い隠しながら、ユーザに仮想環境を提示する、VRシステムと比較して、MR環境を提示する複合現実システムは、仮想環境が提示されている間に、実環境が知覚可能なままであるという利点をもたらす。故に、複合現実システムのユーザは、実環境と関連付けられる視覚およびオーディオキューを使用し、対応する仮想環境を体験し、それと相互作用することができる。実施例として、上記のように、ユーザが仮想環境を直接知覚すること、またはそれと相互作用することができないため、VRシステムのユーザは、仮想環境内に表示される仮想オブジェクトを知覚する、またはそれと相互作用することに苦戦し得るが、MRシステムのユーザは、自身の実環境内の対応する実際のオブジェクトを見る、聞く、および触れることによって、仮想オブジェクトと相互作用することが直観的かつ自然であると見出し得る。本レベルの双方向性は、仮想環境とのユーザの没入感、関連、および関与を高めることができる。同様に、実環境および仮想環境を同時に提示することによって、複合現実システムは、VRシステムと関連付けられる負の心理的感覚(例えば、認知的不協和)および負の身体的感覚(例えば、乗り物酔い)を低減させることができる。複合現実システムはさらに、我々の実世界の体験を拡張または改変し得る用途のための多くの可能性を提供する。
図19Aは、ユーザ1910が複合現実システム1912を使用する、例示的実環境1900を図示する。複合現実システム1912は、例えば、下記に説明されるように、ディスプレイ(例えば、透過型ディスプレイ)と、1つ以上のスピーカと、1つ以上のセンサ(例えば、カメラ)とを備えてもよい。示される実環境1900は、ユーザ1910が立っている長方形の部屋1904Aと、実際のオブジェクト1922A(ランプ)、1924A(テーブル)、1926A(ソファ)、および1928A(絵画)とを備える。部屋1904Aはさらに、実環境1900の原点と見なされ得る、場所座標1906を備える。図19Aに示されるように、点1906(世界座標)にその原点を伴う環境/世界座標系1908(x軸1908X、y軸1908Y、およびz軸1908Zを備える)が、実環境1900のための座標空間を定義することができる。いくつかの実施形態では、環境/世界座標系1908の原点1906は、複合現実システム1912の電源が入れられた場所に対応し得る。いくつかの実施形態では、環境/世界座標系1908の原点1906は、動作の間にリセットされ得る。いくつかの実施例では、ユーザ1910は、実環境1900内の実際のオブジェクトと見なされ得、同様に、ユーザ1910の身体部分(例えば、手、足)は、実環境1900内の実際のオブジェクトと見なされ得る。いくつかの実施例では、点1915(例えば、ユーザ/聴取者/頭部座標)にその原点を伴うユーザ/聴取者/頭部座標系1914(x軸1914X、y軸1914Y、およびz軸1914Zを備える)が、複合現実システム1912が位置する、ユーザ/聴取者/頭部のための座標空間を定義することができる。ユーザ/聴取者/頭部座標系1914の原点1915は、複合現実システム1912の1つ以上の成分に対して定義され得る。例えば、ユーザ/聴取者/頭部座標系1914の原点1915は、複合現実システム1912の初期較正の間等に、複合現実システム1912のディスプレイに対して定義され得る。行列(平行移動行列およびクォータニオン行列または他の回転行列を含み得る)、または他の好適な表現が、ユーザ/聴取者/頭部座標系1914空間と環境/世界座標系1908空間との間の変換を特徴付けることができる。いくつかの実施形態では、左耳座標1916および右耳座標1917が、ユーザ/聴取者/頭部座標系1914の原点1915に対して定義され得る。行列(平行移動行列およびクォータニオン行列または他の回転行列を含み得る)、または他の好適な表現が、左耳座標1916および右耳座標1917とユーザ/聴取者/頭部座標系1914空間との間の変換を特徴付けることができる。ユーザ/聴取者/頭部座標系1914は、ユーザの頭部または頭部搭載型デバイスに対する、例えば、環境/世界座標系1908に対する場所の表現を単純化することができる。同時位置特定およびマッピング(SLAM)、視覚的走行距離計測法、または他の技法を使用して、ユーザ座標系1914と環境座標系1908との間の変換が、リアルタイムで決定および更新されることができる。
図19Bは、実環境1900に対応する例示的仮想環境1930を図示する。示される仮想環境1930は、実際の長方形の部屋1904Aに対応する仮想長方形の部屋1904Bと、実際のオブジェクト1922Aに対応する仮想オブジェクト1922Bと、実際のオブジェクト1924Aに対応する仮想オブジェクト1924Bと、実際のオブジェクト1926Aに対応する仮想オブジェクト1926Bとを備える。仮想オブジェクト1922B、1924B、1926Bと関連付けられるメタデータは、対応する実際のオブジェクト1922A、1924A、1926Aから導出される情報を含むことができる。仮想環境1930は、加えて、実環境1900内のいずれの実際のオブジェクトにも対応しない、仮想モンスター1932を備える。実環境1900内の実際のオブジェクト1928Aは、仮想環境1930内のいずれの仮想オブジェクトにも対応しない。点1934(持続的座標)にその原点を伴う持続的座標系1933(軸1933X、y軸1933Y、およびz軸1933Zを備える)は、仮想コンテンツのための座標空間を定義することができる。持続的座標系1933の原点1934は、実際のオブジェクト1926A等の1つ以上の実際のオブジェクトに対して/関して定義され得る。行列(平行移動行列およびクォータニオン行列または他の回転行列を含み得る)、または他の好適な表現が、持続的座標系1933空間と環境/世界座標系1908空間との間の変換を特徴付けることができる。いくつかの実施形態では、仮想オブジェクト1922B、1924B、1926B、および1932はそれぞれ、持続的座標系1933の原点1934に対してそれらの独自の持続的座標点を有し得る。いくつかの実施形態では、複数の持続的座標系が存在し得、仮想オブジェクト1922B、1924B、1926B、および1932はそれぞれ、1つ以上の持続的座標系に対してそれらの独自の持続的座標点を有し得る。
図19Aおよび19Bに関して、環境/世界座標系1908は、実環境1900および仮想環境1930の両方のための共有座標空間を定義する。示される実施例では、座標空間は、点1906にその原点を有する。さらに、座標空間は、同一の3つの直交軸(1908X、1908Y、1908Z)によって定義される。故に、実環境1900内の第1の場所および仮想環境1930内の第2の対応する場所が、同一の座標空間に関して説明されることができる。これは、同一の座標が両方の場所を識別するために使用されることができるため、実および仮想環境内の対応する場所を識別および表示することを単純化する。しかしながら、いくつかの実施例では、対応する実および仮想環境は、共有座標空間を使用する必要はない。例えば、いくつかの実施例(図示せず)では、行列(平行移動行列およびクォータニオン行列または他の回転行列を含み得る)、または他の好適な表現が、実環境座標空間と仮想環境座標空間との間の変換を特徴付けることができる。
図19Cは、複合現実システム1912を介して、実環境1900および仮想環境1930の側面をユーザ1910に同時に提示する、例示的MR環境1950を図示する。示される実施例では、MR環境1950は、(例えば、複合現実システム1912のディスプレイの透過型部分を介して)実環境1900からの実際のオブジェクト1922A、1924A、1926A、および1928A、および(例えば、複合現実システム1912のディスプレイのアクティブディスプレイ部分を介して)仮想環境1930からの仮想オブジェクト1922B、1924B、1926B、および1932をユーザ1910に同時に提示する。上記のように、原点1906は、MR環境1950に対応する座標空間のための原点として作用し、座標系1908は、座標空間のためのx軸、y軸、およびz軸を定義する。
示される実施例では、複合現実オブジェクトは、座標空間1908内の対応する場所を占有する、対応する対の実際のオブジェクトおよび仮想オブジェクト(すなわち、1922A/1922B、1924A/1924B、1926A/1926B)を備える。いくつかの実施例では、実際のオブジェクトおよび仮想オブジェクトは両方とも、同時にユーザ1910に可視であり得る。これは、例えば、(仮想オブジェクトが古代の損傷した彫刻の欠落部分を提示する、博物館アプリケーションにおいて等)仮想オブジェクトが対応する実際のオブジェクトのビューを拡張するように設計される情報を提示する事例において、望ましくあり得る。いくつかの実施例では、仮想オブジェクト(1922B、1924B、および/または1926B)は、対応する実際のオブジェクト(1922A、1924A、および/または1926A)を閉塞するように、(例えば、ピクセル化閉塞シャッタを使用する、アクティブピクセル化閉塞を介して)表示されてもよい。これは、例えば、(無生物の実際のオブジェクトが「生きている」キャラクタになる、双方向朗読アプリケーション等の)仮想オブジェクトが対応する実際のオブジェクトの視覚代替物として作用する事例において、望ましくあり得る。
いくつかの実施例では、実際のオブジェクト(例えば、1922A、1924A、1926A)は、必ずしも仮想オブジェクトを構成しない場合がある、仮想コンテンツまたはヘルパデータと関連付けられ得る。仮想コンテンツまたはヘルパデータは、複合現実環境内の仮想オブジェクトの処理またはハンドリングを促進することができる。例えば、そのような仮想コンテンツは、対応する実際のオブジェクトの2次元表現、対応する実際のオブジェクトと関連付けられるカスタムアセットタイプ、または対応する実際のオブジェクトと関連付けられる統計データを含み得る。本情報は、不必要な計算オーバーヘッドを負担することなく、実際のオブジェクトを伴う計算を可能にする、または促進することができる。
いくつかの実施例では、上記に説明される提示はまた、オーディオ側面も組み込み得る。例えば、MR環境1950では、仮想モンスター1932は、モンスターがMR環境1950を歩き回るにつれて生成される足音効果等の1つ以上のオーディオ信号と関連付けられ得る。下記にさらに説明されるように、複合現実システム1912のプロセッサは、MR環境1950内の全てのそのような音の混合および処理された複合物に対応する、オーディオ信号を算出し、複合現実システム1912に含まれる1つ以上のスピーカおよび/または1つ以上の外部スピーカを介して、オーディオ信号をユーザ1910に提示することができる。
(複合現実オブジェクト共有)
オブジェクトの3Dデジタルモデルが、仮想オブジェクトとして、AR/VR/MR(以降では簡単にするためにMRと称される)環境内で1人以上の実際またはデジタルの人々に表示されてもよい。例えば、自動車技師が、その毎週のチーム会議で新しい車の設計を同僚と共有することを所望し得る。従来的に、設計共有は、視認者が3Dオブジェクトを想像することができるように、設計のいくつかの異なるビューを提供することによって遂行され得る。この場合、自動車技師は、会議の間に同僚に配布するべき透視図面をプリントアウトし得る。これは、単純な設計には役立ち得るが、3Dオブジェクトが複雑な形状または設計を有する場合、視認者が視認者の頭の中で3Dオブジェクトをともに繋ぎ合わせることは、困難であり得る。代替として、または加えて、3D設計またはモデルを共有する従来的方法は、物理的プロトタイプを作成するステップを伴い得る。本実施例では、自動車技師は、物理的プロトタイプを作成することに時間および金を費やす必要があろう。物理的プロトタイプは、設計者の意図を理解することをより容易にし得るが、設計の基本バージョンのみを示し得る(視認者は、設計の外側のみが見ることができるが、例えば、それを開いて内部コンポーネントを視認することができない)。
開示されるシステムおよび方法の実施形態は、コンピューティングシステムの間の改良された3Dモデル共有を提供し得る。上記の実施例を継続すると、本発明は、自動車技師が、車の新しいデジタル3Dモデルを作成し、次いで、会議の間にモデルを同僚と迅速かつ効率的に共有することを可能にし得る。本発明はまた、高速かつ容易な計画外の共有を可能にすることもできる。例えば、自動車技師のマネージャが、自動車技師と協力するために、マネージャが前もって設計していた3D設計を共有することを所望し得る。いくつかの実施形態では、マネージャは、古い3D車設計にアクセスし、人々が設計をダウンロードすること、またはアクセスするためのリンクをクリックすることを要求することなく、会議に出席している全員と共有することができる。
典型的には、例えば、ゲームでは、3Dモデル(代替として、3Dアセットまたは3Dコンテンツと呼ばれる)は、ユーザがゲームを始動するときに、ユーザによって視認されるであろう3Dアセットの全てが、すでにデバイス上にあるように、ゲームアプリケーションに事前ロードされる。更新が必要とされるとき、アプリケーションは、オフラインで新しいコンテンツを追加するであろう。例えば、ゲームは、ゲームが起動していないときにパッチを適用してもよく、アプリケーションが次に開かれるときに、新しいコンテンツが、インストールされ、使用の準備ができている。新しい3Dモデルを2つ以上のコンピューティングシステムと共有する本システムは、頻繁な計画された更新のためには便宜的であるが、新しい3Dモデルが頻繁または予想外に要求されるときには非実用的である。
MRゲームまたはアプリケーションは、学校でカエルの生体構造について学習する生徒の群全体等の複数の人々が共通の目標に向けて貢献する、協調的であり得る。教師が概念を解説しようとし、生徒が理解しない場合、教師が説明しているものが見え得るように、教師がカエルの仮想3Dモデルを生徒に表示することが望ましくあり得る。従来的システムは、教師が新しいカエルモデル更新を生徒にプッシュし得るように、生徒が3Dモデルをダウンロードすること、またはアプリケーションを終了させて再入力することを要求するであろう。加えて、そのような方法は、3Dアセットデータの全てを収納するために、大量のディスク記憶装置を要求し得る。ディスク空間を使用することなく、3Dモデルにアクセスする代替方法が、望ましくあり得る。
これらの問題は、サーバと1人以上のクライアントとの間のネットワークを経由してデータをストリーミングするための方法およびシステムによって、解決され得る。サーバは、1つ以上の3Dモデルへのアクセスを有してもよく、3Dモデル共有サーバアプリケーションをダウンロードさせて起動させてもよい。3Dモデル共有アプリケーションは、モデルを構成データ部分に分解し、構成データ部分を圧縮し、パッケージ化し、ネットワーク上のクライアントに送信してもよい。クライアントは、3Dモデル共有クライアントアプリケーションランタイムの間に構成部分を受信し、3Dモデルを再構築し、3Dモデルを視認することができる。いくつかの実施形態では、ランタイムは、ゲームまたはアプリケーションループが動作しているとき、画面がアプリケーションコンテンツを表示しているとき、および/またはコンピューティングシステムがアプリケーションのフレームワークとともに動作しているときであってもよい。任意の数のクライアントが、ネットワークの一部であってもよい。任意の数の3Dモデルが、クライアントに送信されてもよい。2人以上のクライアントは、2つ以上のデバイス(例えば、コンピューティングシステム)を伴う1人の人物であってもよい、またはそれぞれ1つのデバイスを伴う2人以上の人々であってもよい。
本願の利点は、ランタイムの間に3Dコンテンツ共有を可能にすることである。
用語「ホスト」は、サーバと同義的に使用されてもよい。用語「3Dモデル」、「3Dアセット」、「3Dコンテンツ」、および「3Dモデル」は、同義的に使用されてもよい。
(ウェアラブルシステムの3Dディスプレイの実施例)
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するように構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、ARデバイス(ARD)と同義的に使用されることができる。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110が見える。これらのアイテムに加えて、MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生産するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供することができる。
図2は、AR/VR/MR場面を提供するように構成され得る、ウェアラブルシステム200の実施例を図示する。ウェアラブルシステム200はまた、ARシステム200とも称され得る。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含むことができる。ディスプレイ220は、フレーム230に結合されてもよく、これは、ユーザ、装着者、または視認者210によって装着可能である。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示することができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイ(HMD)を備えることができる。
いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられることができる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音制御を提供することができる)。ディスプレイ220は、環境からオーディオストリームを検出し、周囲音を捕捉するためのオーディオセンサ(例えば、マイクロホン)232を含むことができる。いくつかの実施形態では、示されていない1つ以上の他のオーディオセンサが、ステレオ音受信を提供するために位置付けられることができる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム200は、音声または発話認識をオーディオストリームに実施することができる。
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに向いた結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡し得る、内向きに向いた結像システム462(図4に示される)を含むこともできる。内向きに向いた結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡し得る。内向きに向いた結像システム462は、フレーム230に取り付けられてもよく、内向きに向いた結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール260または270と電気通信してもよい。内向きに向いた結像システム462は、1つ以上のカメラを含んでもよい。例えば、少なくとも1つのカメラは、各眼を結像するために使用されてもよい。カメラによって入手された画像は、眼毎に、別個に、瞳孔サイズまたは眼姿勢を決定し、それによって、各眼への画像情報の提示が、その眼に対して動的に調整されることを可能にするために使用されてもよい。
実施例として、ウェアラブルシステム200は、外向きに向いた結像システム464または内向きに向いた結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
ディスプレイ220は、有線導線または無線コネクティビティ等によって、ローカルデータ処理モジュール260に動作可能に結合され、これは、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る(250)。
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、(a)画像捕捉デバイス(例えば、内向きに向いた結像システムおよび/または外向きに向いた結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、または(b)可能性として、処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270または遠隔データリポジトリ280を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であり得るように、有線または無線通信リンク等を介して、通信リンク262または264によって、遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール280および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
いくつかの実施形態では、遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶されることができ、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にすることができる。
(ウェアラブルシステムの例示的コンポーネント)
図3は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。図3は、ディスプレイ220と、フレーム230とを含み得る、ウェアラブルシステム200を示す。引き伸ばし図202は、ウェアラブルシステム200の種々のコンポーネントを図式的に図示する。ある実装では、図3に図示されるコンポーネントのうちの1つ以上のものは、ディスプレイ220の一部であり得る。種々のコンポーネントは、単独で、または組み合わせて、ウェアラブルシステム200のユーザまたはユーザの環境と関連付けられる種々のデータ(例えば、オーディオまたは視覚データ等)を収集することができる。他の実施形態は、ウェアラブルシステムが使用される用途に応じて、付加的またはより少ないコンポーネントを有し得ることを理解されたい。なお、図3は、ウェアラブルシステムを通して収集、分析、および記憶され得る、種々のコンポーネントおよびデータのタイプのうちのいくつかの基本概念を提供する。
図3は、ディスプレイ220を含み得る、例示的ウェアラブルシステム200を示す。ディスプレイ220は、ユーザの頭部、またはフレーム230に対応する、筐体またはフレーム230に搭載され得る、ディスプレイレンズ226を備えることができる。ディスプレイレンズ226は、筐体230によって、ユーザの眼302、304の正面に位置付けられる、1つ以上の透明ミラーまたは回折光学要素を備えてもよく、投影された光338を眼302、304の中に指向し、ビーム成形を促進しながら、また、ローカル環境からの少なくとも一部の光の透過を可能にするように構成されてもよい。投影された光ビーム338の波面は、投影された光の所望の焦点距離と一致するように発散し得る。図示されるように、2つの広視野マシンビジョンカメラ316(世界カメラとも称される)が、筐体230に結合され、ユーザの周囲の環境を結像することができる。これらのカメラ316は、二重捕捉式可視光/非可視(例えば、赤外線)光カメラであり得る。カメラ316は、図4に示される外向きに向いた結像システム464の一部であってもよい。世界カメラ316によって入手された画像は、姿勢プロセッサ336によって処理されることができる。例えば、姿勢プロセッサ336は、1つ以上のオブジェクト認識装置708(例えば、図7に示される)を実装し、ユーザまたはユーザの環境内の別の人物の姿勢を識別する、またはユーザの環境内の物理的オブジェクトを識別することができる。
図3を継続して参照すると、光338を眼302、304の中に指向するように構成される、ディスプレイ光学系およびレンズを伴う、一対の光プロジェクタモジュールが、示される。描写される図はまた、ユーザの眼302、304を追跡し、レンダリングおよびユーザ入力をサポートすることが可能であるように構成されることができる、赤外線光(発光ダイオード「LED」等)とペアリングされる、2つの小型赤外線カメラ324を示す。カメラ324は、図4に示される、内向きに向いた結像システム462の一部であってもよい。ウェアラブルシステム200はさらに、X、Y、およびZ軸加速度計能力および磁気コンパスおよびX、Y、およびZ軸ジャイロスコープ能力を備え、好ましくは、200Hz等の比較的に高い周波数でデータを提供し得る、センサアセンブリ339を特徴とすることができる。センサアセンブリ339は、図2Aを参照して説明される、IMUの一部であってもよい。描写されるシステム200はまた、リアルタイムまたは近リアルタイムユーザ頭部姿勢を捕捉デバイス316から出力された広視野画像情報から計算するように構成され得る、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、またはARMプロセッサ(高度縮小命令セット機械)等の頭部姿勢プロセッサ336を備えることができる。頭部姿勢プロセッサ336は、ハードウェアプロセッサであり得、図2Aに示されるローカル処理およびデータモジュール260の一部として実装されることができる。
ウェアラブルシステムはまた、1つ以上の深度センサ234を含むこともできる。深度センサ234は、環境内のオブジェクトとウェアラブルデバイスとの間の距離を測定するように構成されることができる。深度センサ234は、レーザスキャナ(例えば、ライダ)、超音波深度センサ、または深度感知カメラを含んでもよい。カメラ316が深度感知能力を有する、ある実装では、カメラ316はまた、深度センサ234と見なされ得る。
また、示されるものは、デジタルまたはアナログ処理を実行し、姿勢をセンサアセンブリ339からのジャイロスコープ、コンパス、または加速度計データから導出するように構成され得る、プロセッサ332である。プロセッサ332は、図2に示される、ローカル処理およびデータモジュール260の一部であってもよい。図3に示されるようなウェアラブルシステム200はまた、例えば、GPS337(全地球測位システム)等の測位システムを含み、姿勢および測位分析を補助することができる。加えて、GPSはさらに、ユーザの環境についての遠隔ベース(例えば、クラウドベース)の情報を提供してもよい。本情報は、ユーザの環境内のオブジェクトまたは情報を認識するために使用されてもよい。
ウェアラブルシステムは、ユーザの環境についてのより多くの情報を提供し得る、GPS337および遠隔コンピューティングシステム(例えば、遠隔処理モジュール270、別のユーザのARD等)によって入手されるデータを組み合わせてもよい。一実施例として、ウェアラブルシステムは、GPSデータに基づいて、ユーザの場所を決定し、(例えば、遠隔処理モジュール270と通信することによって)ユーザの場所と関連付けられた仮想オブジェクトを含む、世界マップを読み出すことができる。別の実施例として、ウェアラブルシステム200は、世界カメラ316(図4に示される外向きに向いた結像システム464の一部であり得る)を使用して、環境を監視することができる。世界カメラ316によって入手される画像に基づいて、ウェアラブルシステム200は、(例えば、図7に示される1つ以上のオブジェクト認識装置708を使用することによって)環境内のオブジェクトを検出することができる。ウェアラブルシステムはさらに、GPS337によって入手されるデータを使用して、文字を解釈することができる。
ウェアラブルシステム200はまた、ユーザの世界のビューのために、ユーザにローカルであるレンダリング情報を提供し、スキャナの動作およびユーザの眼の中への結像を促進するように構成され得る、レンダリングエンジン334を備えてもよい。レンダリングエンジン334は、ハードウェアプロセッサ(例えば、中央処理ユニットまたはグラフィック処理ユニット等)によって実装されてもよい。いくつかの実施形態では、レンダリングエンジンは、ローカル処理およびデータモジュール260の一部である。レンダリングエンジン334は、ウェアラブルシステム200の他のコンポーネントに(例えば、有線または無線リンクを介して)通信可能に結合されることができる。例えば、レンダリングエンジン334は、通信リンク274を介して、眼カメラ324に結合され、通信リンク272を介して、投影サブシステム318(網膜走査ディスプレイに類似する様式において、走査レーザ配列を介して、光をユーザの眼302、304の中に投影し得る)に結合されることができる。レンダリングエンジン334はまた、それぞれ、リンク276および294を介して、例えば、センサ姿勢プロセッサ332および画像姿勢プロセッサ336等の他の処理ユニットと通信することもできる。
カメラ324(例えば、小型赤外線カメラ)は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度(眼の輻輳・開散運動を用いて推定され得る)を含んでもよい。GPS337、ジャイロスコープ、コンパス、および加速度計339は、大まかなまたは高速姿勢推定を提供するために利用されてもよい。カメラ316のうちの1つ以上のものは、関連付けられるクラウドコンピューティングリソースからのデータと併せて、ローカル環境をマッピングし、ユーザビューを他者と共有するために利用され得る、画像および姿勢を入手することができる。
図3に描写される例示的コンポーネントは、例証目的のみのためのものである。複数のセンサおよび他の機能モジュールが、例証および説明の容易性のために、ともに示される。いくつかの実施形態は、これらのセンサまたはモジュールの1つのみまたはサブセットを含んでもよい。さらに、これらのコンポーネントの場所は、図3に描写される位置に限定されない。いくつかのコンポーネントは、ベルト搭載型コンポーネント、ハンドヘルドコンポーネント、またはヘルメットコンポーネント等の他のコンポーネントに搭載される、またはその中に収納されてもよい。一実施例として、画像姿勢プロセッサ336、センサ姿勢プロセッサ332、およびレンダリングエンジン334は、ベルトパック内に位置付けられ、超広帯域、Wi-Fi、Bluetooth(登録商標)等の無線通信を介して、または有線通信を介して、ウェアラブルシステムの他のコンポーネントと通信するように構成されてもよい。描写される筐体230は、好ましくは、ユーザによって頭部搭載可能かつ装着可能である。しかしながら、ウェアラブルシステム200のいくつかのコンポーネントは、ユーザの身体の他の部分に装着されてもよい。例えば、スピーカ240が、ユーザの耳の中に挿入され、音をユーザに提供してもよい。
ユーザの眼302、304の中への光338の投影に関して、いくつかの実施形態では、カメラ324は、一般に、眼の焦点の位置または「焦点深度」と一致する、ユーザの眼の中心が幾何学的に輻輳される場所を測定するために利用されてもよい。眼が輻輳する全ての点の3次元表面は、「単視軌跡」と称され得る。焦点距離は、有限数の深度をとり得る、または無限に変動し得る。輻輳・開散運動距離から投影される光は、対象の眼302、304に集束されるように現れる一方、輻輳・開散運動距離の正面または背後の光は、ぼかされる。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動と遠近調節の組み合わせに起因して、オブジェクトを3次元として知覚し得る。相互に対する2つの眼の輻輳・開散運動(例えば、眼の視線を収束させ、オブジェクトを固視するための相互に向かった、またはそこから離れる瞳孔の回転移動)は、眼の水晶体の合焦(または「遠近調節」)と密接に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼の水晶体の焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、同一距離への輻輳・開散運動の合致する変化を自動的に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の合致する変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な合致を提供するディスプレイシステムが、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
さらに、約0.7ミリメートル未満のビーム直径を伴う、空間的にコヒーレントな光は、眼が合焦する場所にかかわらず、ヒトの眼によって正しく分解されることができる。したがって、適切な焦点深度の錯覚を作成するために、眼の輻輳・開散運動が、カメラ324を用いて追跡されてもよく、レンダリングエンジン334および投影サブシステム318は、輻輳・開散運動上またはそれに近接する全てのオブジェクトを合焦させてレンダリングし、全ての他のオブジェクトを種々の程度の可変分解能でレンダリングするために利用されてもよい。好ましくは、システム220は、ユーザに、約60フレーム/秒以上のフレームレートでレンダリングする。上記に説明されるように、好ましくは、カメラ324は、眼追跡のために利用されてもよく、ソフトウェアは、輻輳・開散運動幾何学形状だけではなく、また、ユーザ入力としての役割を果たすための焦点場所キューも取り上げるように構成されてもよい。好ましくは、そのようなディスプレイシステムは、昼間または夜間の使用のために好適な明度およびコントラストを用いて構成される。
いくつかの実施形態では、ディスプレイシステムは、好ましくは、視覚的オブジェクト整合のために約20ミリ秒未満の待ち時間、約0.1度未満の角度整合、および約1弧分の分解能を有し、これは、理論によって限定されるわけではないが、ヒトの眼のほぼ限界であると考えられる。ディスプレイシステム220は、GPS要素、光学追跡、コンパス、加速度計、または他のデータソースを伴い、位置および姿勢決定を補助し得る、位置特定システムと統合されてもよい。位置特定情報は、ユーザの関連世界のビュー内で正確なレンダリングを促進するために利用されてもよい(例えば、そのような情報は、眼鏡が実世界に対して存在する場所を把握することを促進するであろう)。
いくつかの実施形態では、ウェアラブルシステム200は、ユーザの眼の遠近調節に基づいて、1つ以上の仮想画像を表示するように構成される。ユーザに画像が投影されている場所に合焦させるように強制する、従来の3Dディスプレイアプローチと異なり、いくつかの実施形態では、ウェアラブルシステムは、投影された仮想コンテンツの焦点を自動的に変動させ、ユーザに提示される1つ以上の画像のより快適な視認を可能にするように構成されることができる。例えば、ユーザの眼が、1mの現在の焦点を有する場合、画像は、ユーザの焦点と一致するように投影されてもよい。ユーザが、焦点を3mに偏移させる場合、画像は、新しい焦点と一致するように投影されることができる。したがって、ユーザに所定の焦点を強制するのではなく、いくつかの実施形態のウェアラブルシステム200は、ユーザの眼がより自然な様式において機能することを可能にすることができる。
そのようなウェアラブルシステム200は、仮想現実デバイスに対して典型的に観察される、眼精疲労、頭痛、および他の生理学的症状の発生率を排除または低減させ得る。これを達成するために、ウェアラブルシステム200の種々の実施形態は、1つ以上の可変焦点要素(VFE)を通して、仮想画像を種々の焦点距離に投影するように構成されることができる。1つ以上の実施形態では、3D知覚は、画像をユーザから離れた固定焦点面に投影する、多平面焦点システムを通して達成され得る。他の実施形態は、可変平面焦点を採用することができ、焦点面は、ユーザの焦点の現在の状態と一致するように、z-方向に往復して移動してもよい。
多平面焦点システムおよび可変平面焦点システムの両方において、ウェアラブルシステム200は、眼追跡を採用し、ユーザの眼の輻輳・開散運動を決定し、ユーザの現在の焦点を決定し、仮想画像を決定された焦点に投影してもよい。他の実施形態では、ウェアラブルシステム200は、ファイバスキャナまたは他の光生成源を通して、網膜を横断して、変動焦点の光ビームをラスタパターンで可変に投影する、光変調器を備えることができる。したがって、画像を変動する焦点距離に投影するウェアラブルシステム200のディスプレイの能力は、ユーザがオブジェクトを3Dにおいて視認するための遠近調節を容易にするだけではなく、ユーザの眼球異常を補償するためにも使用されてもよい。いくつかの他の実施形態では、空間光変調器は、種々の光学コンポーネントを通して、画像をユーザに投影してもよい。例えば、下記にさらに説明されるように、空間光変調器は、画像を1つ以上の導波管上に投影してもよく、これは、次いで、画像をユーザに伝送する。
(導波管スタックアセンブリ)
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含むことができる。いくつかの実施形態では、ウェアラブルシステム400は、図2のウェアラブルシステム200に対応し得、図4Aは、そのウェアラブルシステム200のいくつかの部分をより詳細に図式的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、図2のディスプレイ220の中に統合されてもよい。
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管の間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
導波管432b、434b、436b、438b、440b、または複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射することができ、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入されることができる。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられる深度平面に対応する特定の角度(および発散量)において眼410に向かって指向され得る、サンプル射出瞳ビームの場全体を出力してもよい。
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報をそれぞれ生産する、離散ディスプレイであり得る。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、1つ以上の光学導管(光ファイバケーブル等)を介して、画像情報を画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端であり得る。
コントローラ460が、ディスプレイおよび画像投入デバイス420、422、424、426、428の動作を制御することができる。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含むことができる。いくつかの実施形態では、コントローラ460は、単一の一体型デバイス、または有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要上部表面および底部表面およびそれらの主要上部表面と底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)を有してもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、各個別の導波管内で伝搬する光を回折または別様に再指向することによって、光を導波管から外部結合するように構成され得る、光学要素440a、438a、436a、434a、432aを含んでもよい。外部結合された光は、例えば、導波管によって、導波管内で伝搬する光が回折格子等の光再指向要素に衝打する場所において出力されることができる。光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確にするために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光学要素440a、438a、436a、434a、432aは、上部または底部主要表面に配置されてもよく、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。いくつかの実施形態では、光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、材料のモノリシック片であってもよく、光学要素440a、438a、436a、434a、432aは、その材料片の表面上および/または内部に形成されてもよい。
図4を継続して参照すると、本明細書に議論されるように、いくつかの実施形態では、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成されることができる。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるものとして解釈するように、若干の凸面波面曲率を作成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させることができる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の上方の導波管436bから生じる光が次の上方の導波管434bからの光であったよりも光学無限遠から人物に向かって内向きにさらに近い第2の焦点面から生じるものとして解釈するように、別の漸増量の波面曲率を作成するように構成されてもよい。
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成されることができ、スタック内の最高導波管440bが、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供することができる。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的または電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、導波管と関連付けられる特定の深度平面のために、光をそれらの個別の導波管から再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられる深度平面を有する導波管は、関連付けられる深度平面に応じて、異なる量の発散を伴って光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、立体ホログラム、表面ホログラム、および/または回折格子であってもよい。
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴または「回折光学要素」(本明細書では、「DOE」とも称される)であり得る。好ましくは、DOEは、ビームの光の一部のみがDOEの各交差部で眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割されることができ、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一なパターンの出射放出となる。
いくつかの実施形態では、1つ以上のDOEは、それらが能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であり得る。例えば、切替可能なDOEは、微小液滴がホスト媒体内に回折パターンを備えることができる、ポリマー分散液晶の層を備えてもよく、微小液滴の屈折率は、ホスト材料の屈折率に実質的に合致するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに合致しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動され得る。被写界深度は、視認者の瞳孔サイズと反比例して変化し得る。結果として、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間された深度平面の数は、減少された瞳孔サイズに伴って減少され得る。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節することなく、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させることなく、別の瞳孔サイズにおいてユーザにとって十分に合焦し得る。
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させ得る。例えば、ユーザの眼が、2つの導波管と関連付けられる2つの深度平面間間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利なこととして、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
ウェアラブルシステム400は、世界470の一部を結像する、外向きに向いた結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。世界カメラのFOVは、視認者210が所与の時間に知覚する、世界470の一部を包含する、視認者210のFOVと同一である場合とそうではない場合がある。例えば、いくつかの状況では、世界カメラのFOVは、ウェアラブルシステム400の視認者210の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに向いた結像システム464から取得される画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡する、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
ウェアラブルシステム400は、オーディオセンサ232、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、いくつかの実施形態では、1つ以上の他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ232は、別の実施例として、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供し得る、指向性マイクロホンを備えることができる。ウェアラブルシステム400は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するために等、外向きに向いた結像システム464およびオーディオセンサ230の両方からの情報を使用することができる。例えば、ウェアラブルシステム400は、単独で、または(例えば、鏡に見られるような)話者の反射された画像と組み合わせて、音声認識を使用して、話者の身元を決定することができる。別の実施例として、ウェアラブルシステム400は、指向性マイクロホンから入手される音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム400は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の身元(例えば、名前または他の人口統計情報)を決定することができる。
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに向いた結像システム466(例えば、デジタルカメラ)を含むこともできる。内向きに向いた結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズおよび/または配向を決定するために使用されてもよい。内向きに向いた結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別(例えば、虹彩識別を介して)のため、画像を取得するために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一の眼410のみの瞳孔直径または配向(例えば、一対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに向いた結像システム466によって取得される画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム400はまた、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラのいくつかまたは全ての可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下するかまたはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間に、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
(ウェアラブルシステムの他のコンポーネント)
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの触覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、無生物オブジェクト、例えば、金属またはプラスチック片、壁、テーブルの表面の形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、いずれの物理的キーまたはトラックパッドまたはセンサも有していなくてもよい。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
(ウェアラブルシステムとのユーザ相互作用の例示的プロセス)
図5は、仮想ユーザインターフェースと相互作用するための方法500の実施例のプロセスフロー図である。方法500は、本明細書に説明されるウェアラブルシステムによって実施されてもよい。方法500の実施形態は、ウェアラブルシステムによって使用され、ウェアラブルシステムのFOV内の人物またはドキュメントを検出することができる。
ブロック510では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって事前決定されてもよい。ウェアラブルシステムは、ユーザ入力(例えば、ジェスチャ、視覚データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて、特定のUIが取り込まれる必要があることを識別してもよい。UIは、システムの装着者がドキュメントを装着者に提示するユーザを観察している(例えば、旅行者検問所において)、セキュリティシナリオに特有であり得る。ブロック520では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、UIの境界、一般的構造、形状等と関連付けられるデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがUIをユーザの物理的場所に関連して表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置、頭部姿勢、または眼姿勢の座標を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ながら、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示している旅行者を囲繞しているかのように表示されてもよい。UIが、手中心である場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されるデータ、または任意の他のタイプの収集されたデータを通して、導出されてもよい。
ブロック530では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック540では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが作成されると、ウェアラブルシステムは、単に、ブロック550において、ユーザからのコマンドを待機し、より多くの仮想コンテンツを仮想UI上に生成してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、それが認識される場合(ブロック560)、コマンドと関連付けられる仮想コンテンツが、ユーザに表示されてもよい(ブロック570)。
(複合現実におけるアバタレンダリングの実施例)
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されるFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
図6Aは、複合現実環境内のアバタ処理およびレンダリングシステム690を備え得る、ウェアラブルシステムの別の実施例のブロック図である。ウェアラブルシステム600は、図2に示されるウェアラブルシステム200の一部であってもよい。本実施例では、ウェアラブルシステム600は、マップデータベース710(図7に示される)内のデータの少なくとも一部を含み得る、マップ620を備えることができる。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所に(例えば、クラウドシステム内に)常駐してもよい。姿勢プロセス610は、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、マップ620からのデータを利用して、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定してもよい。姿勢データは、ユーザが、システムを体験し、世界内で動作するにつれてオンザフライで収集されるデータから、算出されてもよい。データは、画像、センサ(概して、加速度計およびジャイロスコープコンポーネントを備える、慣性測定ユニット等)からのデータ、および実または仮想環境内のオブジェクトと関連する表面情報を備えてもよい。
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚のみである構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。本システムは、種々のコンポーネントが存在する世界内の場所だけではなく、世界が成る内容も見出すように構成されることができる。姿勢は、マップの取込およびマップからのデータの使用を含む、多くの目標を達成する、構築ブロックであり得る。
一実施形態では、疎点位置は、それ自体では完全には適正ではない場合があり、さらなる情報が、多焦点AR、VR、またはMR体験を生産するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、ステレオ640と称される、プロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して作成される赤外線パターン等)、画像カメラから入手される画像、または手のジェスチャ/トーテム650が、ステレオプロセス640への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合され得、そのうちの一部は、表面表現を用いて要約され得る。例えば、数学的に定義可能な表面は、ゲームエンジンのような他の処理デバイスへの効率的(例えば、大規模点群に対して)かつ要約しやすい入力であってもよい。したがって、立体視プロセス(例えば、深度マップ)640の出力は、融合プロセス630において組み合わせられてもよい。姿勢610も同様に、本融合プロセス630への入力であってもよく、融合630の出力は、マップ取込プロセス620への入力となる。サブ表面が、トポグラフィマッピング等において相互と接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
複合現実プロセス660における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図6Aに描写される実施形態では、ゲームパラメータが、入力され、システムのユーザが、種々の場所における1匹以上のモンスター、種々の条件下で死にかけている、または逃げているモンスター(ユーザがモンスターを射撃する場合等)、種々の場所における壁または他のオブジェクト、および同等物を伴った状態で、モンスターバトルゲームをプレーしていることを決定し得る。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報(例えば、オブジェクトが、平坦または丸いかどうか、水平または垂直であるか、テーブルまたはランプであるかどうか等の分類)を含んでもよく、世界マップは、複合現実への別の有益な入力であり得る。世界に対する姿勢も同様に、入力となることができ、ほぼあらゆる双方向システムに対して重要な役割を担うことができる。
ユーザからの制御または入力は、ウェアラブルシステム600への別の入力であり得る。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回る、またはゲームをプレーするために、例えば、ユーザは、自らが所望する内容に関して、ウェアラブルシステム600に命令する必要があり得る。単に自らを空間内で移動させる以外にも、利用され得る種々の形態のユーザ制御が、存在し得る。一実施形態では、トーテム(例えば、ユーザ入力デバイス)または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。本システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、本システムは、場所および配向、および、そのようなアクティビティがカメラのいずれかの視野内にないときでも、生じている内容を決定することを補助し得る、IMU等のセンサを装備し得る、トリガまたは他の感知ボタンまたは要素をユーザがクリックしているかどうかを理解するように構成されてもよい)。
手のジェスチャの追跡または認識もまた、入力情報を提供し得る。ウェアラブルシステム600は、ボタン押下、左または右、停止、握持、保持のジェスチャ等に関して、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム用環境において電子メールまたはカレンダを通してフリップする、または「フィストバンプ」を別の人物またはプレーヤと行うことを所望し得る。ウェアラブルシステム600は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止のために手を開く、OKのために親指を上げる、OKではないことのために親指を下げる、または指向性コマンドのための右または左または上/下への手のフリップのような単純な静的ジェスチャであってもよい。
眼追跡は、別の入力であり得る(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して、決定されてもよく、次いで、その特定の人物に関して開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線(例えば、片眼または両眼の方向または配向)を決定することができる。例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等の他の技法も、眼追跡のために使用されることができる。
発話追跡は、別の入力であり得、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用されることができる。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。システム600は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。システム600は、発話している人物(例えば、発話が、ARDの装着者からのものであるか、または別の人物からのものであるか、または音声(例えば、環境内のラウドスピーカによって伝送される録音された音声)からのものであるか)を決定するための音声認識技術、および話されている内容を決定するための発話認識技術を組み込むことができる。ローカルデータおよび処理モジュール260または遠隔処理モジュール270は、例えば、隠れマルコフモデル、動的時間伸縮法(DTW)ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム(図7を参照して説明される)、または音響モデル化または言語モデル化を使用する他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、マイクロホンからのオーディオデータ(または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ)を処理し、発話のコンテンツを識別することができる。
ローカルデータおよび処理モジュール260または遠隔処理モジュール270はまた、話者がウェアラブルシステム600のユーザ210であるかまたはユーザが会話している別の人物であるか等の話者の身元を識別し得る、音声認識アルゴリズムを適用することもできる。いくつかの例示的音声認識アルゴリズムは、周波数推定、隠れマルコフモデル、ガウス混合物モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮法(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むこともできる。スペクトル特徴が、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール270は、図7を参照して説明される、種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
ウェアラブルシステムの実装は、UIを介したこれらのユーザ制御または入力を使用することができる。UI要素(例えば、制御、ポップアップウィンドウ、吹き出し、データエントリフィールド等)は、例えば、情報、例えば、オブジェクトのグラフィックまたは意味論情報のディスプレイを閉じるために使用されることができる。
カメラシステムに関して、図6Aに示される例示的ウェアラブルシステム600は、3対のカメラ、すなわち、ユーザの顔の側面に配列される、相対的広FOVまたは受動SLAM対のカメラと、立体視結像プロセス640をハンドリングし、また、ユーザの顔の正面における手のジェスチャおよびトーテム/オブジェクト追跡を捕捉するために、ユーザの顔の正面に配向される、異なる対のカメラとを含むことができる。FOVカメラおよび立体視プロセス640のための一対のカメラは、外向きに向いた結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム600は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される、眼追跡カメラ(図4に示される内向きに向いた結像システム462の一部であり得る)を含むことができる。ウェアラブルシステム600はまた、1つ以上のテクスチャ化光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
ウェアラブルシステム600は、アバタ処理およびレンダリングシステム690を備えることができる。アバタ処理およびレンダリングシステム690は、コンテキスト情報に基づいて、アバタを生成し、更新し、アニメーション化し、レンダリングするように構成されることができる。アバタ処理およびレンダリングシステム690の一部または全部は、単独で、または組み合わせて、ローカル処理およびデータモジュール260または遠隔処理モジュール262、264の一部として実装されることができる。種々の実施形態では、複数のアバタ処理およびレンダリングシステム690(例えば、異なるウェアラブルデバイス上に実装されるような)が、仮想アバタ670をレンダリングするために使用されることができる。例えば、第1のユーザのウェアラブルデバイスが、第1のユーザの意図を決定するために使用されてもよい一方、第2のユーザのウェアラブルデバイスは、アバタの特性を決定し、第1のユーザのウェアラブルデバイスから受信される意図に基づいて、第1のユーザのアバタをレンダリングすることができる。第1のユーザのウェアラブルデバイスおよび第2のユーザのウェアラブルデバイス(または他のそのようなウェアラブルデバイス)は、例えば、図9を参照して説明されるであろうように、ネットワークを介して通信することができる。
図6Bは、例示的アバタ処理およびレンダリングシステム690を図示する。例示的アバタ処理およびレンダリングシステム690は、単独で、または組み合わせて、3Dモデル処理システム680と、コンテキスト情報分析システム688と、アバタ自動スケーラ692と、意図マッピングシステム694と、生体構造調節システム698と、刺激応答システム696とを備えることができる。システム690は、アバタ処理およびレンダリングのための機能性を図示することを意図しており、限定的であることを意図していない。例えば、ある実装では、これらのシステムのうちの1つ以上のものは、別のシステムの一部であってもよい。例えば、コンテキスト情報分析システム688の一部は、個々に、または組み合わせて、アバタ自動スケーラ692、意図マッピングシステム694、刺激応答システム696、または生体構造調節システム698の一部であってもよい。
コンテキスト情報分析システム688は、図2および3を参照して説明される、1つ以上のデバイスセンサに基づいて、環境およびオブジェクト情報を決定するように構成されることができる。例えば、コンテキスト情報分析システム688は、ユーザまたはユーザのアバタの視認者の外向きに向いた結像システム464によって入手される画像を使用して、環境およびユーザの環境のオブジェクト(物理的または仮想オブジェクトを含む)またはユーザのアバタがレンダリングされる環境を分析することができる。コンテキスト情報分析システム688は、単独で、または場所データまたは世界マップ(例えば、マップ620、710、910)から入手されるデータと組み合わせて、そのような画像を分析し、環境内のオブジェクトの場所およびレイアウトを決定することができる。コンテキスト情報分析システム688はまた、仮想アバタ670を現実的にアニメーション化するために、ユーザまたはヒト全般の生物学的特徴にアクセスすることができる。例えば、コンテキスト情報分析システム688は、ユーザのアバタの身体の一部(例えば、頭部)が、ユーザの身体の他の部分に対して違和感のある(または非現実的)位置にあり得ない(例えば、アバタの頭部が、270度方向転換されない)ように、アバタに適用され得る、違和感曲線を生成し得る。ある実装では、1つ以上のオブジェクト認識装置708(図7に示される)は、コンテキスト情報分析システム688の一部として実装されてもよい。
アバタ自動スケーラ692、意図マッピングシステム694、および刺激応答システム696、および生体構造調節システム698は、コンテキスト情報に基づいて、アバタの特性を決定するように構成されることができる。アバタのいくつかの例示的特性は、サイズ、外観、位置、配向、移動、姿勢、表情等を含むことができる。アバタ自動スケーラ692は、ユーザがアバタを不快な姿勢で見る必要がないように、アバタを自動的にスケーリングするように構成されることができる。例えば、アバタ自動スケーラ692は、ユーザが、それぞれ、アバタを見下ろす、またはアバタを見上げる必要がないように、アバタのサイズを増加または減少させ、アバタをユーザの眼の高さに持って来ることができる。意図マッピングシステム694は、アバタがその中にレンダリングされる環境に基づいて、ユーザの相互作用の意図を決定し、(正確なユーザ相互作用ではなく)意図をアバタにマッピングすることができる。例えば、第1のユーザの意図は、テレプレゼンスセッションにおいて第2のユーザと通信することであり得る(例えば、図9B参照)。典型的には、2人が、通信するときに相互に向かい合う。第1のユーザのウェアラブルシステムの意図マッピングシステム694は、テレプレゼンスセッションの間に存在するそのような対面意図を決定することができ、第1のユーザのウェアラブルシステムに、第2のユーザのアバタを第1のユーザに向かってレンダリングさせることができる。第2のユーザが、物理的に方向転換しようとした場合、第2のユーザのアバタを方向転換された位置にレンダリングする代わりに(第2のユーザのアバタの背面を第1のユーザに対してレンダリングさせるであろう)、第1のユーザの意図マッピングシステム694は、第2のアバタの顔を第1のユーザに対してレンダリングし続けることができ、これは、テレプレゼンスセッションの推測される意図(例えば、本実施例では、対面意図)である。
刺激応答システム696は、環境内の着目オブジェクトを識別し、着目オブジェクトに対するアバタの応答を決定することができる。例えば、刺激応答システム696は、アバタの環境内の音源を識別し、音源を見るようにアバタを自動的に方向転換させることができる。刺激応答システム696はまた、閾値終了条件を決定することもできる。例えば、刺激応答システム696は、音源が消失した後に、またはある時間周期が経過した後に、アバタをそのオリジナル姿勢に戻らせることができる。
生体構造調節システム698は、生物学的特徴に基づいて、ユーザの姿勢を調節するように構成されることができる。例えば、生体構造調節システム698は、違和感曲線に基づいて、ユーザの頭部とユーザの胴体との間またはユーザの上半身と下半身との間の相対的位置を調節するように構成されることができる。
3Dモデル処理システム680は、仮想アバタ670をアニメーション化し、ディスプレイ220にレンダリングさせるように構成されることができる。3Dモデル処理システム680は、仮想キャラクタ処理システム682と、移動処理システム684とを含むことができる。仮想キャラクタ処理システム682は、ユーザの3Dモデルを生成し、(仮想アバタを作成およびアニメーション化するために)更新するように構成されることができる。移動処理システム684は、例えば、アバタの姿勢を変化させることによって、アバタをユーザの環境内で動き回らせることによって、またはアバタの顔の表情をアニメーション化することによって等、アバタをアニメーション化するように構成されることができる。本明細書にさらに説明されるであろうように、仮想アバタは、リギング技法を使用して、アニメーション化されることができる。いくつかの実施形態では、アバタは、2つの部分、すなわち、仮想アバタの外向き外観をレンダリングするために使用される表面表現(例えば、変形可能メッシュ)と、メッシュをアニメーション化するための相互接続された関節の階層セット(例えば、コア骨格)とにおいて表される。いくつかの実装では、仮想キャラクタ処理システム682は、表面表現を編集または生成させるように構成されることができる一方、移動処理システム684は、アバタを移動させること、メッシュを変形させること等によって、アバタをアニメーション化するために使用されることができる。
(ユーザの環境をマッピングする実施例)
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を、1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに向いた結像システム、外向きに向いた結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラおよび/または外向きに向いた結像システムのカメラ等)によって入手される画像データは、マッピング点のセットに変えられてもよい。
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに添付することができる。マップデータベース710は、経時的に収集される種々の点およびそれらの対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a-708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム464(図4に示される)によって入手される画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola-Jonesアルゴリズム、Eigenfacesアプローチ、Lucas-Kanadeアルゴリズム、Horn-Schunkアルゴリズム、Mean-shiftアルゴリズム、視覚的同時位置特定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、および/または他の機械学習アルゴリズムを含む、教師ありまたは教師なし機械学習アルゴリズムを含むことができる。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用するステップを含んでもよい。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a-708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、オブジェクトに動作性を与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、本システムは、ある意味論情報を添付してもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、本システムは、鏡が、部屋内のオブジェクトの画像を反射し得る、反射表面を有するという意味論情報を添付してもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。本システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から累積するにつれて成長することができる。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで起こっている場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されるデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集される点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、位置特定目的のために、トポロジマップを使用してもよい。
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在し得る。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに居住する友人と散歩に行くことを所望し得る。
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成され得る。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。本システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a-708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、それに応じて、ブロック850においてユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
(複数のウェアラブルシステム間の例示的通信)
図9は、相互と相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境900は、ユーザデバイス930a、930b、930cを含む。ユーザデバイス930a、930b、および930cは、ネットワーク990を通して、相互と通信することができる。ユーザデバイス930a-930cはそれぞれ、ネットワークインターフェースを含み、ネットワーク990を介して、遠隔コンピューティングシステム920(ネットワークインターフェース971も含み得る)と通信することができる。ネットワーク990は、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、または任意の他のネットワークであってもよい。コンピューティング環境900はまた、1つ以上の遠隔コンピューティングシステム920を含むこともできる。遠隔コンピューティングシステム920は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス930a、930b、および930cは、ネットワーク990を介して、遠隔コンピューティングシステム920と通信してもよい。
遠隔コンピューティングシステム920は、具体的ユーザの物理および/または仮想世界についての情報を維持し得る、遠隔データリポジトリ980を含んでもよい。データ記憶装置980は、ユーザ、ユーザの環境(例えば、ユーザの環境の世界マップ)、またはユーザのアバタの構成に関連する情報を記憶することができる。遠隔データリポジトリは、図2に示される遠隔データリポジトリ280の実施形態であってもよい。遠隔コンピューティングシステム920はまた、遠隔処理モジュール970を含んでもよい。遠隔処理モジュール970は、図2に示される遠隔処理モジュール270の実施形態であってもよい。遠隔処理モジュール970は、ユーザデバイス(930a、930b、930c)および遠隔データリポジトリ980と通信し得る、1つ以上のプロセッサを含んでもよい。プロセッサは、ユーザデバイスおよび他のソースから取得される情報を処理することができる。いくつかの実装では、処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール260(図2に示されるような)によって提供されることができる。遠隔コンピューティングシステム920は、所与のユーザが、具体的ユーザ自身の物理的および/または仮想世界についての情報を別のユーザと共有することを可能にし得る。
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス(HMDまたはARD等)、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス930bおよび930cは、AR/VR/MRコンテンツを提示するように構成され得る、図2に示されるウェアラブルシステム200(または図4に示されるウェアラブルシステム400)の実施形態であってもよい。
ユーザデバイスのうちの1つ以上のものは、図4に示されるユーザ入力デバイス466と併用されることができる。ユーザデバイスは、(例えば、図4に示される外向きに向いた結像システム464を使用して)ユーザおよびユーザの環境についての情報を取得することができる。ユーザデバイスおよび/または遠隔コンピューティングシステム1220は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手される未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム1220から受信し、ユーザに投影する前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスにパスしてもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ1280と通信してもよい。複数のユーザデバイスおよび/または複数のサーバコンピュータシステムが、入手された画像の構築および/または処理に関与してもよい。
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。図6および7を参照して説明されるように、ユーザデバイスによって入手される情報は、世界マップ910を構築するために使用されてもよい。世界マップ910は、図6Aに説明されるマップ620の少なくとも一部を含んでもよい。種々のオブジェクト認識装置(例えば、708a、708b、708c…708n)が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに添付するために使用されてもよい。これらのオブジェクト認識装置はまた、図7に説明される。
遠隔データリポジトリ980は、データを記憶し、世界マップ910の構築を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ910についての情報を受信することができる。世界マップ910は、ユーザによって、または別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス(例えば、930a、930b、930c)および遠隔コンピューティングシステム920は、単独で、または組み合わせて、世界マップ910を構築および/または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール970および遠隔データリポジトリ980と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手および/または処理してもよい。遠隔処理モジュール970は、遠隔データリポジトリ980およびユーザデバイス(例えば、930a、930b、930c)と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム920は、例えば、ユーザの画像を選択的にクロッピングすること、ユーザの背景を修正すること、仮想オブジェクトをユーザの環境に追加すること、ユーザの発話に補助情報で注釈を付けること等、ユーザデバイス(例えば、930a、930b、930c)によって入手される情報を修正することができる。遠隔コンピューティングシステム920は、処理された情報を同一および/または異なるユーザデバイスに送信することができる。
(3Dモデル共有のための例示的プロセス)
図10は、本明細書に説明されるシステムおよび方法を使用して、3Dアセットを共有する例示的プロセス1000を図示する。ステップ1001では、3D共有ホストアプリケーションが、ホストシステムから3Dモデルファイルにアクセスすることができる。ホストは、ホストシステム上に新しい3Dアセットを作成すること、または外部システムから3Dアセットを取得することのいずれかによって、これを行ってもよい。3Dアセットは、AutoCadまたは3D Studio Max等の3Dモデル化アプリケーションにおいて生じ得、任意のファイルタイプであってもよい。ホストは、アセットインポートプラグイン(例えば、ASSIMP)を利用し、グラフィック形式交換を可能にし得る。ASSIMPプラグインは、例えば、.fbx形式におけるFilmbox(FBX)、または.3ds形式におけるAutodesk Max 3Dモデル化(3DS)等の最大40個の異なるファイル形式をサポートし得る。いくつかの実施形態では、カスタムプログラムが、ファイル形式交換を可能にするように書かれてもよい。任意の他の好適なファイル形式変換方法が、ホスト3D共有アプリケーション内で使用するためのファイル再フォーマットを可能にするために使用されてもよい。
ステップ1003では、3D共有ホストアプリケーションが、3Dアセットを構成部分に分解することができる。構成部分の実施例は、地理データ、材料データ、頂点テーブル、1つ以上のテクスチャ、三角形インデックス、または3Dモデルの完全な表現を最終的に定義するために使用される任意の他のデータであってもよい。
ステップ1005では、構成部分が、ホストとのネットワークの一部であるクライアントに送信されることができる。いくつかの実施形態では、1つだけのクライアントが存在し得る。いくつかの実施形態では、2つ以上のクライアントが存在し得る。好ましい実施形態では、ローカルエリアネットワークが、UDPプロトコルを利用して、利用されてもよい。ネットワークは、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、アドホック、または任意の他のネットワークであってもよい。いくつかの実施形態では、ネットワークは、上記に説明されるようなネットワーク990であってもよい。ホストは、920との関連で上記に説明されるように、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含み得る、遠隔コンピューティングシステムであってもよい。クライアントは、上記に説明されるようなユーザデバイス930a、930b、および/または930cであってもよい。いくつかの実施形態では、1つのホストが存在し得る。いくつかの実施形態では、2つ以上のホストが存在し得る。いくつかの実施形態では、ネットワークに接続される各デバイスは、事実上、ネットワーク上の他のデバイスからの3Dアセットの共有および受信の両方を行う、ホストおよびクライアントの両方であってもよい。
ステップ1007では、クライアントが、構成部分を受信することができる。
ステップ1009では、クライアントが、ホストから受信される構成部分から3Dアセットを再構成することができる。いくつかの実施形態では、3Dアセットは、クライアントデバイスのメモリ内に記憶されることができる。いくつかの実施形態では、3Dアセットは、デバイスによって後で使用するために保存されてもよい。
ステップ1011では、クライアントが、再構成された3Dアセットを表示することができる。いくつかの実施形態では、クライアントは、再構成された3Dアセットを表示しなくてもよい、または、例えば、ユーザ要求に応じて、後の時間にアセットを表示してもよい。いくつかの実施形態では、クライアントは、再構成された3Dアセットを表示してもよいが、ユーザは、ユーザのFOVの外側にあるため、再構成された3Dアセットが見ることができない場合がある。
(例示的3Dモデル共有システム構成)
図11は、本明細書に説明されるシステムおよび方法を使用して、3Dアセットを共有するための例示的3Dモデル共有システム構成1100を図示する。図11は、1つのクライアント(「遠隔」と呼ばれ得る)システム1116と、1つのサーバ(「ホスト」と呼ばれ得る)システム1118とを備える、システム構成1100を描写する。クライアントシステムおよびホストシステムは、システムを物理的に分離する必要はなく、例えば、いくつかの実施形態では、クライアントおよびサーバは、(例えば、同一のコンピュータシステムの1つ以上のプロセッサによって並行して実行される、クライアントおよびサーバスレッドとして)同一の物理的デバイス上に存在することができる。実践では、3D共有システム1100は、概して、分解された3Dアセットのソースとして機能し得る、少なくとも1つのホストシステム1118を要求し得る。ホストシステム1118は、3D共有アプリケーション内で利用可能な3Dモデルのタイプおよび数量に対して権威的制御を有し得る。3D共有システム1100は、通信ネットワーク1114を通してホストシステム1118に動作可能に接続される、任意の数(例えば、0、1、10個等)のクライアントシステム1116を有してもよい。通信ネットワーク1114は、例えば、ユーザデータグラムプロトコル(UDP)を利用する、LANであってもよい。ホストシステム1118は、少なくとも1つのディスプレイに動作可能に結合され、他のコンピューティングシステムから通信を受信することが可能である、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、ホストシステム1118は、ネットワークインターフェースを用いてコンピュータモニタにアタッチされたPCデスクトップコンピュータであってもよい。いくつかの実施形態では、ホストシステム1118は、上記に説明されるようなシステム200、930a、930b、または930cであってもよい。ユーザデバイス200、930a、930b、および930cは、通信ネットワーク1114を通して、相互および他のコンピューティングシステムと通信することができる。ユーザデバイス930a-930cはそれぞれ、ネットワーク1114を介して920等の遠隔コンピューティングシステムと通信するためのネットワークインターフェース(ネットワークインターフェース971も含み得る)を含むことができる。クライアントシステム1116は、少なくとも1つのディスプレイに動作可能に結合され、他のコンピューティングシステムから通信を受信することが可能である、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、クライアントシステム1116は、ネットワークインターフェースを用いてコンピュータモニタにアタッチされたPCデスクトップコンピュータであってもよい。いくつかの実施形態では、クライアントシステム1118は、上記に説明されるようなシステム200、930a、930b、または930cであってもよい。ユーザデバイス200、930a、930b、および930cは、通信ネットワーク1114を通して、相互および他のコンピューティングシステムと通信することができる。ユーザデバイス930a-930cはそれぞれ、ネットワーク1114を介して920等の遠隔コンピューティングシステムと通信するためのネットワークインターフェース(ネットワークインターフェース971も含み得る)を含むことができる。
ホストシステム1118は、3D共有ホストアプリケーションをインストールされてもよい。3D共有ホストアプリケーションは、3つの主要モジュール、すなわち、アセットモジュール1108と、分解モジュール1110と、伝送モジュール1112とを備えてもよい。アセットモジュール1108は、1つ以上の完全3Dモデルを備えてもよい。分解モジュール1110は、完全3Dモデルを構成部分に分解し、随意に、構成部分を圧縮し、構成部分を、異なるシステムに送信する準備ができている1つ以上のアレイの中に設置するように機能してもよい。アレイは、1つ以上の分解された3Dモデルを含有し得る、1つ以上のライブラリ内に記憶されてもよい。伝送モジュール1112は、分解モジュール1110からの構成部分をデータの転送可能な部分に分解するように機能してもよく、伝送プロトコルおよびプロセスを管理してもよい。伝送モジュール1112は、データの転送可能な部分を、通信ネットワーク1114上に接続される他のシステムに送信してもよい。
クライアントまたは遠隔システム1116は、3D共有クライアントアプリケーションをインストールされてもよい。3D共有クライアントアプリケーションは、3つの主要モジュール、すなわち、伝送モジュール1106と、再構成モジュール1104と、アセットモジュール1102とを備えてもよい。伝送モジュール1106は、1つ以上の分解された3Dモデルを受信するように機能してもよく、クライアントシステム1116のための伝送およびネットワーキングプロセスを管理してもよい。伝送モジュール1106は、メッセージングプロトコルを通して、3Dモデル共有ホストアプリケーションと通信してもよい。これらのプロトコルは、特注のプロトコルであってもよい、または一般的に使用されているプロトコルを利用してもよい。再構成モジュール1104は、ネットワーク上の他のシステムからの受信される分解された3Dモデルを組み立て直すように機能してもよい。アセットモジュール1102は、1つ以上の完全3Dモデルを備えてもよい。
(3Dモデル共有のための例示的プロセス)
図12は、本明細書に説明されるシステムおよび方法を使用する、サーバとクライアントとの間の例示的3Dモデル共有プロセス1200を図示する。プロセス1200は、サーバシステム1118等のサーバシステムが3Dモデル共有ホストアプリケーションを開くときに、ステップ1202から開始し得る。
ステップ1204では、サーバが、1つ以上の完全3Dモデルファイルを3Dモデル共有ホストアプリケーションにロードしてもよい。完全3Dモデルファイルは、例えば、AutoCad等のホストシステム1118上にダウンロードされる異なる3Dモデル化ソフトウェアから、ホストシステム1118上に生じてもよい。いくつかの実施形態では、3Dモデルファイルは、外部ハードドライブ、遠隔コンピューティングシステム(例えば、上記の図9からの920)等の外部ソースから、またはクラウド記憶装置からインポートされてもよい。いくつかの実施形態では、3Dモデルファイルは、3Dスキャナまたは類似デバイスから生じてもよい。3Dモデルファイルは、ASSIMPまたは同等のプラグインを使用して、インポートされてもよい。プラグインは、1つの形式から3Dモデル共有ホストアプリケーションと互換性がある異なるファイルフォーマットに3Dモデルファイルを変換してもよい。ファイルフォーマット化が、下記により詳細に説明されるように、分解プロセスの間にサーバにおいて消失し得るため、プラグインは、例えば、ホストシステム1118等のホストシステムのみによって利用されてもよい。
ステップ1206では、サーバシステムが、3Dモデルをその構成部分に分解してもよい。3Dモデルを分解するステップは、3Dモデル内の構成部分を識別するステップを含むことができる。3Dモデルを分解するステップは、3Dモデル自体の変化(例えば、3Dモデル内の情報の損失)または3Dモデルが視認のためにレンダリングされる方法の変化をもたらさないという点で、非破壊的であり得る。3Dモデルを分解するステップは、データレベル変更を3Dモデルおよび/またはその構成部分に適用するステップ(例えば、データフォーマット化変更を適用するステップ、または構成部分を圧縮し、共有を促進するステップ)を含むことができる。分解プロセスは、上記に説明されるように、分解モジュール1110内で生じてもよい。構成部分は、3Dモデルを完全に定義するために要求されるデータのサブセットであってもよい。構成部分サブセットは、頂点テーブル、地理データ、材料データ等の3Dモデルを備えるデータの既存のバンドルによって定義され得る。いくつかの実施形態では、構成部分サブセットは、3Dモデル共有アプリケーションプログラマ等によって、他の方法で定義され得る。
ステップ1214では、クライアントシステムが、3Dモデル共有クライアントアプリケーションを開いてもよい。これは、ネットワーキングプロトコル、通信、および発見に関連する一連のステップを開始してもよい。
ステップ1216では、3Dモデル共有クライアントアプリケーションが、ホストが存在する場合、ネットワークを介して3Dモデル共有ホストを発見し得る。ネットワークは、LAN(例えば、UDP)であってもよい。いくつかの実施形態では、ローカルネットワークは、私設である。いくつかの実施形態では、クラウドサービスが、使用されない。
ステップ1208では、サーバが、クライアントから接続要求を受信してもよく、サーバが、接続要求を容認してもよい。
ステップ1210では、サーバが、クライアント情報要求をクライアントに返送してもよい。クライアント情報要求は、3Dモデル共有ホストアプリケーションのライブラリ内に全てのリストを含有してもよい。クライアント情報要求は、代替として、アセット保有量またはコンテンツのテーブルと呼ばれ得る。
ステップ1218では、クライアントが、3Dモデル共有サーバアプリケーションライブラリと比較すると、3Dモデル共有クライアントアプリケーションライブラリから欠落しているアイテムを規定するデータを用いて、サーバに返信してもよい。
ステップ1212では、サーバが、3Dモデル共有クライアントアプリケーションから欠落しているアイテムをクライアントに送信することによって応答してもよい。いくつかの実施形態では、クライアントは、最近、3Dモデル共有アプリケーションを開いている場合があり、したがって、そのライブラリ内にゼロ個のアイテムを伴って開始することができる。本状況では、ホストは、そのライブラリ全体をクライアントに送信してもよい。いくつかの実施形態では、ライブラリは、メモリ内に設置されてもよく、したがって、3Dモデル共有アプリケーションが閉じられるときに消去されてもよい。いくつかの実施形態では、ライブラリは、3Dモデルが後の日付にアクセスされ得るように、クライアントシステムハードドライブ等のディスクに保存されてもよい。いくつかの実施形態では、クライアントに送信される3Dモデルデータは、ファイル形式を伴わないデータ構造である。本ステップの終わりに、3Dモデル共有ホストライブラリは、3Dモデル共有クライアントライブラリに合致し得る。換言すると、ホストシステムおよびクライアントシステムは両方とも、ここで、3Dモデルの同一のセットのための同一の構成部分を含有してもよい。
いくつかの実施形態では、クライアントが、サーバ内に記憶されたアイテムと比較すると旧式であるアイテムを更新してもよい。例えば、クライアント情報要求は、アセット保有量内の個々のアセットと関連付けられるバージョン番号を含んでもよい。サーバのアセット保有量内の1つ以上のアセットは、クライアントとともに記憶されたアセットに対応することができる。クライアントは、サーバのアセット保有量内の対応するアイテムよりも小さいバージョン番号を有する、クライアントアセットライブラリ内に記憶されたアイテムを識別することができる。クライアントは、更新を要求するアイテムを識別するサーバにデータを送信することができ、サーバは、対応する更新されたアイテムをクライアントに送信することによって応答することができる。
ステップ1220では、クライアントが、サーバから送信される新しいアイテムから、1つ以上の3Dモデルを再構成してもよい。いくつかの実施形態では、クライアントは、ここで、サーバと同一の完全3Dモデルを有してもよい。
ステップ1222では、クライアントシステムのユーザが、ここで、ホストシステムによって共有される3Dモデルを視認してもよい。
(例示的3Dモデル共有システム構成)
図13は、本明細書に説明されるシステムおよび方法を使用して、3Dアセットを共有するための例示的3Dモデル共有システム構成1300を図示する。
3Dモデル共有システム構成1300は、ネットワーク等の通信リンク1302によって動作可能に結合される、ホストシステム1306と、クライアントシステム1304とを備えてもよい。クライアントシステム1304は、3Dモデル共有クライアントアプリケーションを開かせて起動させ、したがって、ランタイム環境内で動作させてもよい。ホストシステム1306は、3Dモデル共有ホストアプリケーションを開かせて起動させ、したがって、ランタイム環境内で動作させてもよい。図13は、1つのサーバシステムおよび1つのホストシステムを描写するが、これは、範囲が限定的であるように意図されず、例証を容易にするために行われる。実践では、3Dモデル共有システム構成1300は、1つだけのホストシステム1306、1つを上回るホストシステム1306、1つのクライアントシステム1304、1つを上回るクライアントシステム1304、および/またはホスト(例えば、通信1302を介して3Dモデルデータを他のシステムに送信する)およびクライアント(例えば、通信1302を介して他のシステムから3Dモデルデータを受信する)の両方として機能する、1つ以上のシステムを有してもよい。さらに、いくつかの実施形態では、単一のシステムが、ホストシステムおよびクライアントシステムの両方を備えることができる。いくつかの実施形態では、ホストシステム1306は、ホストシステム1118であってもよい。いくつかの実施形態では、クライアントシステム1304は、クライアントシステム1116であってもよい。ホストシステム1306は、少なくとも1つのディスプレイ、例えば、コンピュータモニタにアタッチされたPCデスクトップコンピュータに動作可能に結合される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、ホストシステム1306は、上記に説明されるようなシステム200、930a、930b、または930cであってもよい。クライアントシステム1304は、少なくとも1つのディスプレイ、例えば、コンピュータモニタにアタッチされたPCデスクトップコンピュータに動作可能に結合される、1つ以上のプロセッサを備えてもよい。いくつかの実施形態では、クライアントシステム1304は、上記に説明されるようなシステム200、930a、930b、または930cであってもよい。
ホストシステム1306は、サーバモジュール1316を備えてもよい。サーバモジュール1316は、伝送およびネットワーキングプロトコル等のサーバであることに特有の機能およびプロセスを管理してもよい。サーバモジュール1316は、プロセス1200におけるステップ1208、1210、および/または1212のように、接続要求を受信および処理してもよい。いくつかの実施形態では、サーバモジュール1316は、伝送モジュール1112を備えてもよい。
ホストシステム1306は、ホストロードモジュール1320を備えてもよい。ロードモジュールは、3Dモデル共有ホストアプリケーションが、3Dアセットを3Dモデル共有ホストアプリケーションの中に、またはホストシステム1306上に、インポートまたはロードすることを可能にする、機能およびプロセスを含有してもよい。ロードモジュール1320は、ASSIMPプラグインを備えてもよい。いくつかの実施形態では、プロセス1200からのステップ1204は、ロードモジュール1320内で生じてもよい。いくつかの実施形態では、プロセス1000からのステップ1001は、ロードモジュール1320内で生じてもよい。いくつかの実施形態では、アセットモジュール1108は、ロードモジュール1320を備えてもよい。
ホストシステム1306は、ホストライブラリマネージャモジュール1318を備えてもよい。ライブラリマネージャモジュール1318は、3Dアセット共有ホストアプリケーションにすでにロードされている3Dアセットに対応する、データおよびプロセスを含有および管理してもよい。ライブラリマネージャモジュール1318は、3Dアセット共有ホストアプリケーションのライブラリに対応する、データおよびプロセスを含有および管理してもよい。これは、コンテンツのライブラリテーブル等を維持する、分解プロセスを含んでもよい。いくつかの実施形態では、プロセス1200からのステップ1206は、ライブラリマネージャモジュール1318内で生じてもよい。いくつかの実施形態では、プロセス1000からのステップ1003は、ライブラリマネージャモジュール1318内で生じてもよい。いくつかの実施形態では、ライブラリマネージャモジュール1318は、システム1100からの分解モジュール1110を備えてもよい。
ホストシステム1306は、ホスト世界モジュール1322を備えてもよい。ホスト世界モジュール1322は、完全3Dアセット、3D仮想世界、実世界のメッシュ化等、およびこれらの間の統合を管理してもよい。いくつかの実施形態では、ホスト世界モジュール1322は、シーングラフ、またはシーングラフの機能的均等物と見なされ得る。いくつかの実施形態では、世界は、世界ライブラリから得られるアイテム(すなわち、完全に再構成された3Dモデル)から描き、それらから世界オブジェクトを作成することができる。いくつかの実施形態では、3D仮想世界内の全てのものが、世界オブジェクトとして表されることができる。世界オブジェクトは、世界「クラス」の一部であってもよい。いくつかの実施形態では、ホスト世界モジュール1322は、プロセス1200のステップ1222によって、またはプロセス1000のステップ1011によって(すなわち、3Dモデルがクライアントにおいてローカルで共有および再構成された後に)、クライアント世界モジュール1312と同一のデータを含有する。ホスト世界モジュール1322からの出力は、レンダリングパスモジュール1324の中にフィードされてもよい。
ホストシステム1306は、ホストレンダリングパスモジュール1324を備えてもよい。レンダリングパスモジュール1324は、ホスト世界モジュール1322からのデータを入力として受け入れ、それをホストシステム1306レンダリングパイプラインに通してもよく、ホストシステム1306のディスプレイ上に1つ以上の3Dモデルを表示してもよい。
クライアントシステム1304は、クライアントモジュール1308を備えてもよい。クライアントモジュール1304は、伝送およびネットワーキングおよび/またはサーバ/クライアントプロトコル等のクライアントであることに特有の機能およびプロセスを管理してもよい。クライアントモジュール1308は、サーバ発見プロセスおよび他の接続プロトコルを管理してもよい。いくつかの実施形態では、これは、プロセス1200におけるステップ1216および/または1218を含んでもよい。いくつかの実施形態では、クライアントモジュール1308は、伝送モジュール1106を備えてもよい。
クライアントシステム1304は、クライアントライブラリマネージャモジュール1310を備えてもよい。ライブラリマネージャモジュール1310は、3Dアセット共有ホストアプリケーションから受信された3Dアセット構成部分に対応する、データおよびプロセスを含有および管理してもよい。ライブラリマネージャモジュール1310は、3Dアセット共有クライアントアプリケーションのライブラリに対応する、データおよびプロセスを含有および管理してもよい。これは、再構成プロセスを含んでもよい。いくつかの実施形態では、プロセス1200からのステップ1220は、ライブラリマネージャモジュール1310内で生じてもよい。いくつかの実施形態では、プロセス1000からのステップ1009は、ライブラリマネージャモジュール1310内で生じてもよい。いくつかの実施形態では、ライブラリマネージャモジュール1310は、システム1100からの再構成モジュール1104を備えてもよい。いくつかの実施形態では、クライアントライブラリは、プロセス1200のステップ1222によって、またはプロセス1000のステップ1011によって(すなわち、3Dモデルがクライアントにおいてローカルで共有および再構成された後に)、ホストライブラリと同一のデータを含有する。
クライアントシステム1304は、クライアント世界モジュール1312を備えてもよい。クライアント世界モジュール1312は、完全に再構成された3Dアセット、3D仮想世界、実世界のメッシュ化等、およびこれらの間の統合を管理してもよい。いくつかの実施形態では、クライアント世界モジュール1312は、シーングラフ、またはシーングラフの機能的均等物と見なされ得る。いくつかの実施形態では、世界は、世界ライブラリから得られるアイテム(すなわち、完全に再構成された3Dモデル)から描き、それらから世界オブジェクトを作成する。いくつかの実施形態では、3D仮想世界内の全てのものが、世界オブジェクトとして表される。世界オブジェクトは、世界「クラス」の一部であってもよい。いくつかの実施形態では、クライアント世界モジュール1312は、プロセス1200のステップ1222によって、またはプロセス1000のステップ1011によって(すなわち、3Dモデルがクライアントにおいてローカルで共有および再構成された後に)、ホスト世界モジュール1322と同一のデータを含有することができる。クライアント世界モジュール1312からの出力は、レンダリングパスモジュール1314の中にフィードされてもよい。
クライアントシステム1304は、クライアントレンダリングパスモジュール1314を備えてもよい。レンダリングパスモジュール1314は、クライアント世界モジュール1312からのデータを入力として受け入れ、それをクライアントシステム1304レンダリングパイプラインに通してもよく、クライアントシステム1304のディスプレイ上に1つ以上の仮想3Dモデルを表示してもよい。
例示的3Dモデル共有システム構成1300は、2つ以上のデバイスがランタイムの間に完全3Dモデルを共有することを可能にすることができる。これは、アプリケーションが閉じられるまで更新が待機する必要があり得る従来的システムよりも速く、新しいアセットをコンピューティングシステム上のアプリケーションに追加するという利点を有することができる。
(3Dモデルを分解するための例示的プロセス)
図14は、本明細書に説明されるシステムおよび方法を使用して、完全3Dモデルを分解するための例示的プロセス1400を図示する。いくつかの実施形態では、分解プロセス1400は、ホストライブラリマネージャモジュール1318内で生じてもよい。いくつかの実施形態では、分解プロセス1400は、分解モジュール1110内で生じてもよい。いくつかの実施形態では、分解プロセス1400は、プロセス1000におけるステップ1003であってもよい。いくつかの実施形態では、分解プロセス1400は、プロセス1200におけるステップ1206であってもよい。
プロセス1400は、3Dモデル共有ホストアプリケーション内にロードされ得る、完全3Dモデルから開始し得る。ステップ1402では、3Dモデル共有ホストアプリケーションが、3Dモデルの1つの構成部分をコピーし、構成部分を表すデータをアレイの中に設置してもよい。いくつかの例示的構成部分は、1つ以上の頂点位置、頂点テーブル、地理データ、材料データ、テクスチャ、三角形インデックステーブル等であってもよい。構成部分は、完全3Dモデルを表すために要求されるデータの一部であってもよい。
ステップ1404では、構成部分が、随意に、圧縮されてもよい。標準圧縮技法が、使用されてもよい。
ステップ1406では、構成部分が、パッケージ化されてもよい。
ステップ1408では、パッケージが、3Dモデル共有ホストアプリケーションのライブラリのうちの1つの中に記憶されてもよい。3Dモデル共有ホストアプリケーションは、パッケージを記憶および編成するために使用される、1つ以上のライブラリを有してもよい。いくつかの実施形態では、ライブラリは、図16に示されるように、3つのライブラリ、すなわち、メッシュライブラリ、材料ライブラリ、およびテクスチャライブラリを備えてもよい。代替ライブラリ構成が、使用されてもよい。パッケージは、対応するライブラリ内に記憶されてもよい(例えば、テクスチャは、テクスチャライブラリ内に記憶されてもよい)。
ステップ1410では、プロセスが、3Dモデルをチェックし、ライブラリに追加される必要がある付加的構成部分が存在するかどうかを確認してもよい。ライブラリに追加されていない、さらなる構成部分が存在する場合、プロセスは、全ての構成部分がライブラリに追加されるまで、ステップ1402において最初から再び開始することができる。全ての構成部分が追加されたとき、ライブラリは、ステップ1412のように、完全3Dモデルの完全な記録を含有してもよい。
いくつかの実施形態では、3Dモデルが、3Dモデルアプリケーションによって事前に定義される構成部分に分解されることができる。例えば、3Dモデルアプリケーション(例えば、コンピュータ支援設計プログラム)が、それぞれ、1つ以上の定義された構成部分(例えば、三角形アレイまたはテクスチャ)を備え得る、異なるデータ要素(例えば、メッシュおよびメッシュレンダリング)の観点から、3Dモデルを定義することができる。その場合に3Dモデルを分解するステップは、動作(例えば、データフォーマット化)を各構成部分に適用し、それをメモリ内に記憶するステップを構成することができる。いくつかの実施形態では、本明細書に説明される方法およびシステムが、3Dモデルを、ユーザによって定義される1つ以上の下位群に分解するために使用されることができる。例えば、車の3Dモデルに関して、ユーザが、頂点/部分/構造の集合を「エンジン」として、頂点/部分/構造の集合を「シャーシ」として、頂点/部分/構造の集合を「駆動列」として、および頂点/部分/構造の集合を「車輪」として、指定することができる。各下位群は、次いで、随意に、圧縮され、別個にデバイスに送信されることができる。いくつかの実施形態では、3Dモデルが、アルゴリズムで定義された下位群に分解されることができる。例えば、アルゴリズムが、頂点/部分/構造の集合を「エンジン」として識別するために(例えば、手動で、半自動的に、および/または、例えば、機械学習を通して、自動的に)開発されている可能性がある。アルゴリズムは、初期識別に基づいて限定されたプールから頂点/部分/構造の集合を分類しようとする前に、最初に、3Dモデル全体を識別することができる(例えば、最初に、モデルを車として識別する)。アルゴリズムはまた、頂点/部分/構造の集合を直接分類しようとすることもできる。
(完全3Dモデルの実施例)
図15は、本明細書に説明されるシステムおよび方法を使用する、例示的完全3Dモデル1500を図示する。いくつかの実施形態では、完全3Dモデルは、3Dレンダリング可能デジタルオブジェクトを説明するデータの完全なセットであってもよい。いくつかの実施形態では、完全3Dモデルは、互換性があるレンダリングパイプラインに追加されたときに表示が可能である、デジタルまたは仮想オブジェクトを表すデータのセットであってもよい。
3Dモデルコンポーネント1502では、3Dモデルは、名称を割り当てられることができる。名称は、ユーザ、インポートプロセスによって割り当てられてもよい、および/またはAutoCadにおいて3Dモデルに与えられるファイル名等の3Dモデル作成ソフトウェアで使用されるオリジナルファイル名であってもよい。3Dモデルは、2つの主要なタイプのデータ、すなわち、メッシュデータ1504およびメッシュレンダラデータ1506を有してもよい。メッシュデータは、データのサブセット、または構成部分A1508、構成部分B1510、構成部分1512、および構成部分1514等の構成部分にさらに分解されてもよい。材料データ1516は、データのサブセット、または材料性質1522、テクスチャ1 1518、およびテクスチャ2 1522等の構成部分にさらに分解されてもよい。3Dモデルデータの正確なレイアウト、カテゴリ化、および下位群化は、図15に示されるものから変動し得る。いくつかの実施形態では、メッシュ1504の下に、2、3、または10個の構成部分等の任意の数の構成部分が存在し得る。いくつかの実施形態では、1つだけの代わりに、材料データ1516の下に性質1522の複数のサブセットが存在し得る。いくつかの実施形態では、図15に示されるよりも多いまたは少ないテクスチャ構成部分1518、1520が存在し得る。任意の好適な数およびカテゴリ化が、完全3Dモデルを構成部分に分解するために使用されてもよい。
いくつかの実施形態では、例示的完全3Dモデル1500は、例示的分解プロセス1400を使用して分解されることができる。完全3Dモデル1500は、1つ以上の構成部分(例えば、構成部分A1508、構成部分B1510、構成部分C1512、構成部分D1514、テクスチャ1 1518、テクスチャ2 1520、および/または材料性質1522)を備えることができる。完全3Dモデル1500の1つの構成部分(例えば、テクスチャ1)が、分解プロセス1400のステップ1402においてコピーされることができる。構成部分は、随意に、分解プロセス1400のステップ1404において圧縮されることができる。構成部分は、分解プロセス1400のステップ1406においてパッケージ化されることができる。構成部分は、(例えば、ライブラリ1600の例示的セット内に)分解プロセス1400のステップ1408において記憶されることができる。ステップ1402、1404、1406、および1408は、完全3Dモデル1500の全ての構成部分が(例えば、ライブラリ1600のセット内に)記憶されるまで、完全3Dモデル1500の構成部分毎に繰り返されることができる。
(3Dモデル共有アプリケーションにおけるライブラリの実施例)
図16は、本明細書に説明されるシステムおよび方法を使用して、3Dモデルの構成部分を記憶するために3Dモデル共有アプリケーションで利用される、ライブラリ1600の例示的セットを図示する。ライブラリ1600のセットは、3Dモデル構成部分を記憶および編成するために、1つ以上のライブラリを備えてもよい。いくつかの実施形態では、3つのライブラリ、すなわち、メッシュライブラリ1602、材料ライブラリ1604、およびテクスチャライブラリ1606が存在し得る。メッシュライブラリ1602は、3Dモデルメッシュを説明する、アレイの形態の構成部分のセットを含有してもよい。メッシュライブラリ内に記憶され得る例示的アレイは、頂点バッファアレイ1608、法線バッファアレイ1610、UVバッファアレイ1612、および/または三角形アレイ1614である。メッシュライブラリはまた、随意に、材料「名称」1616、ビットマップテクスチャ1「名称」1618、およびビットマップテクスチャ2「名称」1620等の1つ以上の文字列値を含有してもよい。これらの文字列値1616、1618、1620は、材料ライブラリ1604およびテクスチャライブラリ1606等の他のライブラリを参照し得る。いくつかの実施形態では、完全3Dモデルは、データの全てがメッシュライブラリ1602からプルまたは参照されるときに表されてもよい。いくつかの実施形態では、「名称」のための完全3Dモデルが、データの全てが記録または単一の3Dモデル「名称」に対応するライブラリ1602、1604、1606の全てからプルまたは参照されるときに表されてもよい。
材料ライブラリ1604は、3Dモデルのための材料の性質および性質関連値を表す、データを含有してもよい。いくつかの実施形態では、テクスチャライブラリ1606は、1つ以上のテクスチャ1622、1624を含有してもよい。いくつかの実施形態では、テクスチャライブラリ1606は、1つ以上のビットマップを含有してもよい。いくつかの実施形態では、テクスチャライブラリ1606は、1つ以上のUVマップ、UV座標、または他のUV空間データを含有してもよい。
3D共有アプリケーションのライブラリ1600に含有されるデータの全てが、完全なレンダリング可能3Dモデルを表すように組み合わせられてもよい。
(3Dモデルを再構成するための例示的プロセス)
図17は、本明細書に説明されるシステムおよび方法を使用して、その構成部分から完全3Dモデルを再構成するための例示的プロセス1700を図示する。いくつかの実施形態では、本プロセスは、プロセス1200におけるステップ1220であってもよい。いくつかの実施形態では、プロセス1700は、プロセス1000におけるステップ1009であってもよい。いくつかの実施形態では、プロセス1700は、再構成モジュール1104内で生じてもよい。いくつかの実施形態では、プロセス1700は、ライブラリマネージャモジュール1310内で生じてもよい。
プロセス1700は、時として、空のゲームオブジェクトと呼ばれることもある、空のオブジェクトを作成することによって、ステップ1702から開始し得る。いくつかの実施形態では、空のゲームオブジェクトは、参照座標系を伴う空間内の空の容積を備えてもよい。いくつかの実施形態では、空のオブジェクトは、本質的に、空間内に存在する変換、すなわち、位置および配向である。いくつかの実施形態では、空のオブジェクトは、空の角柱である。いくつかの実施形態では、空のオブジェクトは、図15の1502に対応し得る。
空のオブジェクトが作成された1702後、新しいメッシュ1704および新しいメッシュレンダラ1708が、空のゲームオブジェクトに追加されてもよい。いくつかの実施形態では、新しいメッシュ1704を追加するステップは、図15のメッシュ1504に対応し得、新しいメッシュレンダラ1708を追加するステップは、図15のメッシュレンダラ1506に対応し得る。
プロセス1700は、空のメッシュバッファが、メッシュデータに対応する3Dモデル構成部分で充填され得、空のメッシュレンダラバッファが、メッシュレンダリングデータに対応する3Dモデル構成部分で充填され得る、ステップ1706および1710に進んでもよい。いくつかの実施形態では、ステップ1706および/または1710が、圧縮されたデータを圧縮解除してもよい。いくつかの実施形態では、メッシュデータは、図15からの構成部分1508、1510、1512、1514に対応し得る。いくつかの実施形態では、メッシュレンダリングデータは、構成部分1518、1520、1522に対応し得る。バッファは、単一の3Dモデルに対応する3Dモデルアプリケーションのライブラリからのデータで充填されてもよい。いくつかの実施形態では、空のメッシュバッファは、メッシュライブラリ1602からのデータで充填されてもよい1706。いくつかの実施形態では、空のメッシュレンダリングバッファは、材料ライブラリ1604およびテクスチャライブラリ1606からのデータで充填されてもよい1710。プロセス1700は、単一の3Dモデル(すなわち、3Dモデル共有アプリケーションのライブラリ内の単一の記録)に対応するデータの全てが空のオブジェクトに追加されたときに、完了し得る。
図18は、本明細書に説明されるシステムおよび方法を使用する、例示的完全3Dモデル1800を図示する。いくつかの実施形態では、完全3Dモデル1800は、プロセス1700の出力であってもよい。いくつかの実施形態では、完全3Dモデル1800は、例示的完全3Dモデル1500のより詳細なバージョンであり得、一般的構成コンポーネントAは、頂点バッファ1808であり得、一般的構成コンポーネントBは、法線バッファ1810であり得、一般的構成コンポーネントCは、UVバッファ1812であり得、一般的構成コンポーネントDは、三角形インデックス1814であり得る。いくつかの実施形態では、三角形インデックス1814は、最後に充填される必要があり得る。
いくつかの実施形態では、完全3Dモデル1800は、そこから構成部分がコピーされる、プロセス1400への入力であってもよい。いくつかの実施形態では、完全3Dモデル1800は、世界オブジェクトとして世界モジュール1322および/または1312内に記憶されてもよい。いくつかの実施形態では、完全3Dモデル1800は、プロセス1200のステップ1204および/またはプロセス1000のステップ1001において、3Dモデル共有サーバアプリケーションにロードされる3Dモデルであってもよい。いくつかの実施形態では、完全3Dモデル1800は、プロセス1200のステップ1220および/またはプロセス1000のステップ1009から出力されてもよい。いくつかの実施形態では、完全3Dモデル1800は、アセットモジュール1102および/または1108内に記憶されたアセットであってもよい。オブジェクト「名称」1802は、3DモデルがもはやFBXファイル形式ではなくなっても、3Dモデル共有アプリケーションにロードされたオリジナルファイル名、例えば、car.fbxに合致し得る。
(3Dモデル共有の他の実施例)
いくつかの実施形態では、3Dモデルが、MRデバイス(例えば、ウェアラブルシステム200)から生じることができる。MRデバイスは、物理的オブジェクトについての情報を捕捉し、物理的オブジェクトの3Dモデルを生成し、3Dモデルを構成部分に分解し、構成部分をクライアントデバイスに送信することができ、クライアントデバイスは、構成部分に基づいて3Dモデルを生成することができる。例えば、オブジェクト認識装置708が、外向きに向いた結像システム464、ライダセンサ、深度センサ、RGBカメラ、赤外線カメラ、飛行時間カメラ、および/またはMRデバイス上の他のセンサから入力を受信することができる。本入力は、物理的オブジェクトに基づいて3Dモデルを生成するために、コンピュータビジョンアルゴリズムおよび/または機械学習訓練アルゴリズムで使用されることができる。アルゴリズムが、最初に、物理的オブジェクトを識別し、次いで、物理的オブジェクトと関連付けられる3Dモデルのライブラリに基づいて、3Dモデルを生成することによって、3Dモデルを生成することができる。いくつかの実施形態では、3Dモデルが、3Dモデルのライブラリ内の事前に定義された下位群に基づいて、下位群を組み立てることによって、物理的オブジェクトから生成されることができる。いくつかの実施形態では、3Dモデルが、ユーザによって定義される下位群に分解されることができる。いくつかの実施形態では、3Dモデルが、アルゴリズムで定義された下位群に分解されることができる。例えば、アルゴリズムが、頂点/部分/構造の集合を下位群として識別するために(例えば、手動で、半自動的に、および/または、例えば、機械学習を通して、自動的に)開発されている可能性がある。
いくつかの実施形態では、アルゴリズムはまた、物理的オブジェクトから直接、3Dモデルを生成することもできる。例えば、アルゴリズムが、物理的オブジェクトの表面および頂点を識別し、物理的オブジェクトの観察された特性に基づいて、物理的オブジェクト全体の3Dモデルを生成することができる。いくつかの実施形態では、アルゴリズムが、物理的オブジェクトの位置特定された表面および頂点を識別し、位置特定された部分の3Dモデルを生成する、および/または下位群のライブラリに基づいて物理的オブジェクトの下位群を定義することができる。アルゴリズムが、下位群の関連付けに関するデータを記憶し、構成部分に基づいて完全な3Dモデルを形成することができる。
本開示に説明される3Dモデル共有システムおよび方法は、ランタイムの間にレンダリング可能3Dモデルを1つのコンピューティングシステムから異なるコンピューティングシステムに移動させる方法の技術的問題の具体的解決策を提供することができる。これは、オフラインで新しいレンダリング可能3Dモデルのみをアプリケーションに追加する、既存の技術と比べた改良を提示することができる。
3Dモデルが本明細書に議論されるが、本願に説明されるシステムおよび方法は、3Dモデル以外の他のデジタルアセットに適用され得ることも検討される。例えば、2Dモデルが、本明細書に説明されるシステムおよび方法を使用して、(例えば、輪郭およびテクスチャに)分解、転送、および再構築されることができる。いくつかの実施形態では、アニメーションが、本明細書に説明されるシステムおよび方法を使用して、(例えば、それぞれ、本明細書に説明されるようにさらに分解され得る、一連のメッシュに)分解、転送、および再構築されることができる。いくつかの実施形態では、3Dモデルが、(例えば、2D画面上に表示するように、または2Dマップを作成するように)2Dモデルに平坦化されることができる。
(他の考慮点)
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つ以上の物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、アニメーションまたはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つ以上の実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、本明細書に提供される例証的実施例に追加される、そこから削除される、修正される、または別様にそこから変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、いずれの特定のシーケンスにも限定されず、それに関連するブロック、ステップ、または状態は、適切である他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそこから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証目的のためであり、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態が、ある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを合意することを意図されない。用語「~を備える(comprising)」、「~を含む(including)」、「~を有する(having)」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
本明細書で使用されるように、項目のリスト「~のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等が、X、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。
(例示的実施形態)
1.方法であって、
頭部搭載型デバイスのディスプレイを介して、仮想3次元モデルの第1のバージョンを表示するステップであって、仮想3次元モデルの第1のバージョンは、構成部分の第1のバージョンを備える、ステップと、
ホストデバイスから仮想3次元モデルの第2のバージョンと関連付けられるデータを要求するステップであって、仮想3次元モデルの第2のバージョンは、構成部分の第2のバージョンを備える、ステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するかどうかを決定するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求するステップと、
頭部搭載型デバイスのディスプレイを介して、仮想3次元モデルの第2のバージョンを表示するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求しないという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求することを控えるステップと、
を含む、方法。
2.構成部分は、メッシュデータを備える、実施形態1に記載の方法。
3.構成部分は、テクスチャデータを備える、実施形態1に記載の方法。
4.ホストデバイスは、サーバである、実施形態1に記載の方法。
5.頭部搭載型デバイスは、第1の頭部搭載型デバイスであり、ホストデバイスは、第2の頭部搭載型デバイスである、実施形態1に記載の方法。
6.方法はさらに、メモリ内に構成部分の第2のバージョンと関連付けられるデータを記憶するステップを含む、実施形態1に記載の方法。
7.方法はさらに、構成部分の第2のバージョンと関連付けられるデータを展開するステップを含む、実施形態1に記載の方法。
8.システムであって、
ディスプレイを備える、頭部搭載型デバイスと、
1つ以上のプロセッサであって、
ディスプレイを介して、仮想3次元モデルの第1のバージョンを表示するステップであって、仮想3次元モデルの第1のバージョンは、構成部分の第1のバージョンを備える、ステップと、
ホストデバイスから仮想3次元モデルの第2のバージョンと関連付けられるデータを要求するステップであって、仮想3次元モデルの第2のバージョンは、構成部分の第2のバージョンを備える、ステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するかどうかを決定するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求するステップと、
ディスプレイを介して、仮想3次元モデルの第2のバージョンを表示するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求しないという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求することを控えるステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサと、
を備える、システム。
9.構成部分は、メッシュデータを備える、実施形態8に記載のシステム。
10.構成部分は、テクスチャデータを備える、実施形態8に記載のシステム。
11.ホストデバイスは、サーバである、実施形態8に記載のシステム。
12.頭部搭載型デバイスは、第1の頭部搭載型デバイスであり、ホストデバイスは、第2の頭部搭載型デバイスである、実施形態8に記載のシステム。
13.方法はさらに、メモリ内に構成部分の第2のバージョンと関連付けられるデータを記憶するステップを含む、実施形態8に記載のシステム。
14.方法はさらに、構成部分の第2のバージョンと関連付けられるデータを展開するステップを含む、実施形態8に記載のシステム。
15.非一過性のコンピュータ可読媒体であって、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、
頭部搭載型デバイスのディスプレイを介して、仮想3次元モデルの第1のバージョンを表示するステップであって、仮想3次元モデルの第1のバージョンは、構成部分の第1のバージョンを備える、ステップと、
ホストデバイスから仮想3次元モデルの第2のバージョンと関連付けられるデータを要求するステップであって、仮想3次元モデルの第2のバージョンは、構成部分の第2のバージョンを備える、ステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するかどうかを決定するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求するという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求するステップと、
頭部搭載型デバイスのディスプレイを介して、仮想3次元モデルの第2のバージョンを表示するステップと、
構成部分の第2のバージョンに基づいて、構成部分の第1のバージョンが更新を要求しないという決定に従って、
ホストデバイスから構成部分の第2のバージョンと関連付けられるデータを要求することを控えるステップと、
を含む、方法を実行させる命令を記憶する、非一過性のコンピュータ可読媒体。
16.構成部分は、メッシュデータを備える、実施形態15に記載の非一過性のコンピュータ可読媒体。
17.構成部分は、テクスチャデータを備える、実施形態15に記載の非一過性のコンピュータ可読媒体。
18.ホストデバイスは、サーバである、実施形態15に記載の非一過性のコンピュータ可読媒体。
19.頭部搭載型デバイスは、第1の頭部搭載型デバイスであり、ホストデバイスは、第2の頭部搭載型デバイスである、実施形態15に記載の非一過性のコンピュータ可読媒体。
20.方法はさらに、メモリ内に構成部分の第2のバージョンと関連付けられるデータを記憶するステップを含む、実施形態15に記載の非一過性のコンピュータ可読媒体。
21.方法はさらに、構成部分の第2のバージョンと関連付けられるデータを展開するステップを含む、実施形態15に記載の非一過性のコンピュータ可読媒体。
22.方法であって、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
仮想3次元モデルの1つ以上の構成部分を決定するステップと、
1つ以上のアレイ内に1つ以上の構成部分を記憶するステップであって、1つ以上の構成部分は、仮想3次元モデルと別個に記憶される、ステップと、
頭部搭載型デバイスから接続要求を受信するステップと、
利用可能な構成部分のリストを頭部搭載型デバイスに送信するステップと、
頭部搭載型デバイスから構成部分要求を受信するステップと、
構成部分要求に基づいて、要求された構成部分を頭部搭載型デバイスに送信するステップと、
を含む、方法。
23.構成部分は、メッシュデータを備える、実施形態22に記載の方法。
24.構成部分は、テクスチャデータを備える、実施形態22に記載の方法。
25.方法はさらに、1つ以上の構成部分を圧縮するステップを含む、実施形態22に記載の方法。
26.仮想3次元モデルは、第1の仮想3次元モデルであり、方法はさらに、要求された構成部分に基づいて、仮想3次元モデルのコピーを生成するステップを含む、実施形態22に記載の方法。
27.方法はさらに、頭部搭載型デバイスのディスプレイを介して、要求された構成部分を表示するステップを含む、実施形態22に記載の方法。
28.方法はさらに、
新しい仮想3次元モデルのためのプレースホルダを作成するステップと、
要求された構成部分に基づいて、新しい仮想3次元モデルのためのプレースホルダを更新するステップと、
を含む、実施形態22に記載の方法。
29.システムであって、
頭部搭載型デバイスと、
1つ以上のプロセッサであって、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
仮想3次元モデルの1つ以上の構成部分を決定するステップと、
1つ以上のアレイ内に1つ以上の構成部分を記憶するステップであって、1つ以上の構成部分は、仮想3次元モデルと別個に記憶される、ステップと、
頭部搭載型デバイスから接続要求を受信するステップと、
利用可能な構成部分のリストを頭部搭載型デバイスに送信するステップと、
頭部搭載型デバイスから構成部分要求を受信するステップと、
構成部分要求に基づいて、要求された構成部分を頭部搭載型デバイスに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサと、
を備える、システム。
30.構成部分は、メッシュデータを備える、実施形態29に記載のシステム。
31.構成部分は、テクスチャデータを備える、実施形態29に記載のシステム。
32.方法はさらに、1つ以上の構成部分を圧縮するステップを含む、実施形態29に記載のシステム。
33.仮想3次元モデルは、第1の仮想3次元モデルであり、方法はさらに、要求された構成部分に基づいて、仮想3次元モデルのコピーを生成するステップを含む、実施形態29に記載のシステム。
34.方法はさらに、頭部搭載型デバイスのディスプレイを介して、要求された構成部分を表示するステップを含む、実施形態29に記載のシステム。
35.方法はさらに、
新しい仮想3次元モデルのためのプレースホルダを作成するステップと、
要求された構成部分に基づいて、新しい仮想3次元モデルのためのプレースホルダを更新するステップと、
を含む、実施形態29に記載のシステム。
36.非一過性のコンピュータ可読媒体であって、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
仮想3次元モデルの1つ以上の構成部分を決定するステップと、
1つ以上のアレイ内に1つ以上の構成部分を記憶するステップであって、1つ以上の構成部分は、仮想3次元モデルと別個に記憶される、ステップと、
頭部搭載型デバイスから接続要求を受信するステップと、
利用可能な構成部分のリストを頭部搭載型デバイスに送信するステップと、
頭部搭載型デバイスから構成部分要求を受信するステップと、
構成部分要求に基づいて、要求された構成部分を頭部搭載型デバイスに送信するステップと、
を含む、方法を実行させる命令を記憶する、非一過性のコンピュータ可読媒体。
37.構成部分は、メッシュデータを備える、実施形態36に記載の非一過性のコンピュータ可読媒体。
38.構成部分は、テクスチャデータを備える、実施形態36に記載の非一過性のコンピュータ可読媒体。
39.方法はさらに、1つ以上の構成部分を圧縮するステップを含む、実施形態36に記載の非一過性のコンピュータ可読媒体。
40.仮想3次元モデルは、第1の仮想3次元モデルであり、方法はさらに、要求された構成部分に基づいて、仮想3次元モデルのコピーを生成するステップを含む、実施形態36に記載の非一過性のコンピュータ可読媒体。
41.方法はさらに、頭部搭載型デバイスのディスプレイを介して、要求された構成部分を表示するステップを含む、実施形態36に記載の非一過性のコンピュータ可読媒体。
42.方法はさらに、
新しい仮想3次元モデルのためのプレースホルダを作成するステップと、
要求された構成部分に基づいて、新しい仮想3次元モデルのためのプレースホルダを更新するステップと、
を含む、実施形態36に記載の非一過性のコンピュータ可読媒体。
43.システムであって、
ホストコンピューティングシステムと、
頭部搭載型ディスプレイシステムを備える、クライアントコンピューティングシステムと、
を備え、
ホストコンピューティングシステムは、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
3次元モデルを1つ以上の構成部分に分解するステップと、
1つ以上の構成部分のリストをクライアントコンピューティングシステムに送信するステップと、
クライアントコンピューティングシステムから構成部分要求を受信するステップと、
構成部分要求に対応する1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備え、
クライアントコンピューティングシステムは、
ホストコンピューティングシステムから1つ以上の構成部分のリストを受信するステップと、
構成部分要求をホストコンピューティングシステムに送信するステップと、
ホストコンピューティングシステムから構成部分要求に対応する構成部分のうちの1つ以上のものを受信するステップと、
構成部分要求に対応する構成部分のうちの1つ以上のものから、仮想3次元モデルのコピーを構成するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、
システム。
44.構成部分は、メッシュデータを備える、実施形態43に記載のシステム。
45.構成部分は、テクスチャデータを備える、実施形態43に記載のシステム。
46.ホストコンピューティングシステムは、サーバである、実施形態43に記載のシステム。
47.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態43に記載のシステム。
48.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態43に記載のシステム。
49.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態43に記載のシステム。
50.方法であって、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
3次元モデルを1つ以上の構成部分に分解するステップと、
1つ以上の構成部分のリストを、頭部搭載型ディスプレイを備えるクライアントコンピューティングシステムに送信するステップと、
クライアントコンピューティングシステムから構成部分要求を受信するステップと、
構成部分要求に対応する1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
ホストコンピューティングシステムから1つ以上の構成部分のリストを受信するステップと、
構成部分要求をホストコンピューティングシステムに送信するステップと、
ホストコンピューティングシステムから構成部分要求に対応する構成部分のうちの1つ以上のものを受信するステップと、
構成部分要求に対応する構成部分のうちの1つ以上のものから、仮想3次元モデルのコピーを構成するステップと、
を含む、方法。
51.構成部分は、メッシュデータを備える、実施形態50に記載の方法。
52.構成部分は、テクスチャデータを備える、実施形態50に記載の方法。
53.ホストコンピューティングシステムは、サーバである、実施形態50に記載の方法。
54.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態50に記載の方法。
55.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態50に記載の方法。
56.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態50に記載の方法。
57.非一過性のコンピュータ可読媒体であって、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、
メモリ内に記憶された仮想3次元モデルにアクセスするステップと、
3次元モデルを1つ以上の構成部分に分解するステップと、
1つ以上の構成部分のリストを、頭部搭載型ディスプレイを備えるクライアントコンピューティングシステムに送信するステップと、
クライアントコンピューティングシステムから構成部分要求を受信するステップと、
構成部分要求に対応する1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
ホストコンピューティングシステムから1つ以上の構成部分のリストを受信するステップと、
構成部分要求をホストコンピューティングシステムに送信するステップと、
ホストコンピューティングシステムから構成部分要求に対応する構成部分のうちの1つ以上のものを受信するステップと、
構成部分要求に対応する構成部分のうちの1つ以上のものから、仮想3次元モデルのコピーを構成するステップと、
を含む、方法を実施させる、1つ以上の命令を記憶する、非一過性のコンピュータ可読媒体。
58.構成部分は、メッシュデータを備える、実施形態57に記載の非一過性のコンピュータ可読媒体。
59.構成部分は、テクスチャデータを備える、実施形態57に記載の非一過性のコンピュータ可読媒体。
60.ホストコンピューティングシステムは、サーバである、実施形態57に記載の非一過性のコンピュータ可読媒体。
61.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態57に記載の非一過性のコンピュータ可読媒体。
62.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態57に記載の非一過性のコンピュータ可読媒体。
63.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態57に記載の非一過性のコンピュータ可読媒体。
64.システムであって、
ホストコンピューティングシステムであって、ホストコンピューティングシステムは、
ホストアセットモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
分解モジュールを介して、1つ以上の構成部分を識別するステップと、
分解モジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分にアクセスするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ホストコンピューティングシステムと、
クライアントコンピューティングシステムであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備え、クライアントコンピューティングシステムは、
クライアント伝送モジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
構成モジュールを介して、空のオブジェクトを作成するステップと、
構成モジュールを介して、1つ以上のデータタイプを空のオブジェクトに追加するステップと、
構成モジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップと、
クライアントアセットモジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、クライアントコンピューティングシステムと、
を備え、
ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
システム。
65.構成部分は、メッシュデータを備える、実施形態64に記載のシステム。
66.構成部分は、テクスチャデータを備える、実施形態64に記載のシステム。
67.ホストコンピューティングシステムは、サーバである、実施形態64に記載のシステム。
68.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態64に記載のシステム。
69.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態64に記載のシステム。
70.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態64に記載のシステム。
71.方法であって、
ホストコンピューティングシステムにおけるステップであって、ホストコンピューティングシステムは、
ホストアセットモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
分解モジュールを介して、1つ以上の構成部分を識別するステップと、
分解モジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分にアクセスするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ステップと、
クライアントコンピューティングシステムにおけるステップであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備え、クライアントコンピューティングシステムは、
クライアント伝送モジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
構成モジュールを介して、空のオブジェクトを作成するステップと、
構成モジュールを介して、1つ以上のデータタイプを空のオブジェクトに追加するステップと、
構成モジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップと、
クライアントアセットモジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ステップと、
を含み、
ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
方法。
72.構成部分は、メッシュデータを備える、実施形態71に記載の方法。
73.構成部分は、テクスチャデータを備える、実施形態71に記載の方法。
74.ホストコンピューティングシステムは、サーバである、実施形態71に記載の方法。
75.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態71に記載の方法。
76.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態71に記載の方法。
77.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態71に記載の方法。
78.非一過性のコンピュータ可読媒体であって、1つ以上のプロセッサによって実行されると、プロセッサに、
ホストコンピューティングシステムにおいて、
ホストアセットモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
分解モジュールを介して、1つ以上の構成部分を識別するステップと、
分解モジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分にアクセスするステップと、
ホスト伝送モジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
クライアントコンピューティングシステムであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、クライアントコンピューティングシステムにおいて、
クライアント伝送モジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
構成モジュールを介して、空のオブジェクトを作成するステップと、
構成モジュールを介して、1つ以上のデータタイプを空のオブジェクトに追加するステップと、
構成モジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップと、
クライアントアセットモジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
を含む、方法を実施させる、1つ以上の命令を記憶し、ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
非一過性のコンピュータ可読媒体。
79.構成部分は、メッシュデータを備える、実施形態78に記載の非一過性のコンピュータ可読媒体。
80.構成部分は、テクスチャデータを備える、実施形態78に記載の非一過性のコンピュータ可読媒体。
81.ホストコンピューティングシステムは、サーバである、実施形態78に記載の非一過性のコンピュータ可読媒体。
82.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態78に記載の非一過性のコンピュータ可読媒体。
83.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態78に記載の非一過性のコンピュータ可読媒体。
84.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態78に記載の非一過性のコンピュータ可読媒体。
85.システムであって、
ホストコンピューティングシステムであって、
ロードモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分を識別するステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト世界モジュールを介して、第1の仮想3次元モデルを記憶するステップと、
ホストレンダリングパスモジュールを介して、第1の仮想3次元モデルをレンダリングするステップと、
サーバモジュールを介して、1つ以上の構成部分にアクセスするステップと、
サーバモジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ホストコンピューティングシステムと、
クライアントコンピューティングシステムであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備え、クライアントコンピューティングシステムは、
クライアントモジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
仮想3次元モデルのコピーを生成するステップであって、仮想3次元モデルを生成するステップは、
クライアントライブラリマネージャモジュールを介して、空のオブジェクトを作成するステップと、
クライアントライブラリマネージャモジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップとを含む、
ステップと、
クライアント世界モジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
クライアントレンダリングパスモジュールを介して、仮想3次元モデルのコピーをレンダリングするステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、クライアントコンピューティングシステムと、
を備え、ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
システム。
86.構成部分は、メッシュデータを備える、実施形態85に記載のシステム。
87.構成部分は、テクスチャデータを備える、実施形態85に記載のシステム。
88.ホストコンピューティングシステムは、サーバである、実施形態85に記載のシステム。
89.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態85に記載のシステム。
90.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態85に記載のシステム。
91.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態85に記載のシステム。
92.方法であって、
ホストコンピューティングシステムにおいて、
ロードモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分を識別するステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト世界モジュールを介して、第1の仮想3次元モデルを記憶するステップと、
ホストレンダリングパスモジュールを介して、第1の仮想3次元モデルをレンダリングするステップと、
サーバモジュールを介して、1つ以上の構成部分にアクセスするステップと、
サーバモジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
クライアントコンピューティングシステムであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、クライアントコンピューティングシステムにおいて、
クライアントモジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
仮想3次元モデルのコピーを生成するステップであって、仮想3次元モデルのコピーを生成するステップは、
クライアントライブラリマネージャモジュールを介して、空のオブジェクトを作成するステップと、
クライアントライブラリマネージャモジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップとを含む、
ステップと、
クライアント世界モジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
クライアントレンダリングパスモジュールを介して、仮想3次元モデルのコピーをレンダリングするステップと、
を含み、ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
方法。
93.構成部分は、メッシュデータを備える、実施形態92に記載の方法。
94.構成部分は、テクスチャデータを備える、実施形態92に記載の方法。
95.ホストコンピューティングシステムは、サーバである、実施形態92に記載の方法。
96.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態92に記載の方法。
97.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態92に記載の方法。
98.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態92に記載の方法。
99.1つ以上のプロセッサによって実行されると、プロセッサに方法を実施させる、1つ以上の命令を記憶する、非一過性のコンピュータ可読媒体であって、
ホストコンピューティングシステムであって、ホストコンピューティングシステムは、
ロードモジュールを介して、第1の仮想3次元モデルにアクセスするステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分を識別するステップと、
ホストライブラリマネージャモジュールを介して、1つ以上の構成部分をライブラリにコピーするステップと、
ホスト世界モジュールを介して、第1の仮想3次元モデルを記憶するステップと、
ホストレンダリングパスモジュールを介して、第1の仮想3次元モデルをレンダリングするステップと、
サーバモジュールを介して、1つ以上の構成部分にアクセスするステップと、
サーバモジュールを介して、1つ以上の構成部分をクライアントコンピューティングシステムに送信するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ホストコンピューティングシステムと、
クライアントコンピューティングシステムであって、クライアントコンピューティングシステムは、頭部搭載型ディスプレイシステムを備え、クライアントコンピューティングシステムは、
クライアントモジュールを介して、ホストコンピューティングシステムから1つ以上の構成部分を受信するステップと、
仮想3次元モデルのコピーを生成するステップであって、仮想3次元モデルのコピーを生成するステップは、
クライアントライブラリマネージャモジュールを介して、空のオブジェクトを作成するステップと、
クライアントライブラリマネージャモジュールを介して、1つ以上の構成部分を空のオブジェクトに追加するステップとを含む、
ステップと、
クライアント世界モジュールを介して、仮想3次元モデルのコピーを記憶するステップと、
クライアントレンダリングパスモジュールを介して、仮想3次元モデルのコピーをレンダリングするステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、クライアントコンピュータと、
を備え、
ホストコンピューティングシステムおよびクライアントコンピューティングシステムは、通信リンクを介して通信可能に接続される、
非一過性のコンピュータ可読媒体。
100.構成部分は、メッシュデータを備える、実施形態99に記載の非一過性のコンピュータ可読媒体。
101.構成部分は、テクスチャデータを備える、実施形態99に記載の非一過性のコンピュータ可読媒体。
103.ホストコンピューティングシステムは、サーバである、実施形態99に記載の非一過性のコンピュータ可読媒体。
104.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態99に記載の非一過性のコンピュータ可読媒体。
105.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態99に記載の非一過性のコンピュータ可読媒体。
106.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態99に記載の非一過性のコンピュータ可読媒体。
107.システムであって、
1つ以上の構成部分を備える、3次元モデルを記憶する、非一過性のコンピュータ可読メモリと、
ホストコンピューティングシステムであって、非一過性のコンピュータ可読メモリから3次元モデルにアクセスするように構成され、さらに、
非一過性のコンピュータ可読メモリ内に記憶されたアレイの中に3次元モデルの1つ以上の構成部分のうちの1つを記憶するステップと、
ホストコンピューティングシステムのライブラリ内のパッケージの中にアレイをパッケージ化するステップと、
を含む、方法を実行するように構成される、1つ以上のプロセッサを備える、ホストコンピューティングシステムと、
を備える、システム。
108.構成部分は、メッシュデータを備える、実施形態107に記載のシステム。
109.構成部分は、テクスチャデータを備える、実施形態107に記載のシステム。
110.ホストコンピューティングシステムは、サーバである、実施形態107に記載のシステム。
111.ホストコンピューティングシステムは、頭部搭載型ディスプレイシステムを備える、実施形態107に記載のシステム。
112.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態107に記載のシステム。
113.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態107に記載のシステム。
114.方法であって、
非一過性のコンピュータ可読メモリを介して、1つ以上の構成部分を備える、3次元モデルを記憶するステップと、
非一過性のコンピュータ可読メモリから3次元モデルにアクセスするステップと、
非一過性のコンピュータ可読メモリ内に記憶されたアレイの中に3次元モデルの1つ以上の構成部分のうちの1つを記憶するステップと、
ホストコンピューティングシステムのライブラリ内のパッケージの中にアレイをパッケージ化するステップと、
を含む、方法。
115.構成部分は、メッシュデータを備える、実施形態114に記載の方法。
116.構成部分は、テクスチャデータを備える、実施形態114に記載の方法。
117.非一過性のコンピュータ可読メモリは、サーバの一部である、実施形態114に記載の方法。
118.非一過性のコンピュータ可読メモリは、頭部搭載型ディスプレイシステムの一部である、実施形態114に記載の方法。
119.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態114に記載の方法。
120.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態114に記載の方法。
121.非一過性のコンピュータ可読媒体であって、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、
非一過性のコンピュータ可読メモリを介して、1つ以上の構成部分を備える、3次元モデルを記憶するステップと、
非一過性のコンピュータ可読メモリから3次元モデルにアクセスするステップと、
非一過性のコンピュータ可読メモリ内に記憶されたアレイの中に3次元モデルの1つ以上の構成部分のうちの1つを記憶するステップと、
ホストコンピューティングシステムのライブラリ内のパッケージの中にアレイをパッケージ化するステップと、
を含む、方法を実施させる、1つ以上の命令を記憶する、非一過性のコンピュータ可読媒体。
122.構成部分は、メッシュデータを備える、実施形態121に記載の非一過性のコンピュータ可読媒体。
123.構成部分は、テクスチャデータを備える、実施形態121に記載の非一過性のコンピュータ可読媒体。
124.非一過性のコンピュータ可読メモリは、サーバの一部である、実施形態121に記載の非一過性のコンピュータ可読媒体。
125.非一過性のコンピュータ可読メモリは、頭部搭載型ディスプレイシステムの一部である、実施形態121に記載の非一過性のコンピュータ可読媒体。
126.方法はさらに、メモリ内に1つ以上の構成部分を記憶するステップを含む、実施形態121に記載の非一過性のコンピュータ可読媒体。
127.方法はさらに、1つ以上の構成部分を展開するステップを含む、実施形態121に記載の非一過性のコンピュータ可読媒体。
構成部分の実施例は、地理データ、材料データ、頂点テーブル、1つ以上のテクスチャ、三角形インデックス、または3Dモデルの完全な表現を最終的に定義するために使用される任意の他のデータであってもよい。