(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-29
(45)【発行日】2023-07-07
(54)【発明の名称】仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20230630BHJP
【FI】
G06T19/00 A
(21)【出願番号】P 2021503570
(86)(22)【出願日】2019-07-22
(86)【国際出願番号】 US2019042819
(87)【国際公開番号】W WO2020023383
(87)【国際公開日】2020-01-30
【審査請求日】2022-07-21
(32)【優先日】2018-07-23
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ヌーライ, レザ
(72)【発明者】
【氏名】テイラー, ロバート ブレイク
(72)【発明者】
【氏名】リーベナウ, マイケル ハロルド
(72)【発明者】
【氏名】カデット, ジール
【審査官】村松 貴士
(56)【参考文献】
【文献】国際公開第2017/183346(WO,A1)
【文献】米国特許出願公開第2017/0345220(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、単一の遠深度を含み、前記単一の遠深度は、現在表示されている視野内の任意の仮想オブジェクトの最遠深度である、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記単一の遠深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含み、
前記レンダリングされた仮想コンテンツデータは、近仮想オブジェクトおよび遠仮想オブジェクトに対応し、
前記ワーピングされたレンダリングされた仮想コンテンツデータは、ワーピングされた近仮想オブジェクトおよびワーピングされた遠仮想オブジェクトに対応し、
前記近仮想オブジェクトと前記ワーピングされた近仮想オブジェクトとの間の第1の位置偏移は、前記遠仮想オブジェクトと前記ワーピングされた遠仮想オブジェクトとの間の第2の位置偏移に
等しい、方法。
【請求項2】
前記レンダリングされた仮想コンテンツデータ、前記遠深度、および前記移動データに基づいて、前記ワーピングされたレンダリングされた仮想コンテンツデータを生成することは、前記レンダリングされた仮想コンテンツデータと比較して、視差関連アーチファクトを低減させる、請求項1に記載の方法。
【請求項3】
前記視差関連アーチファクトは、ディスオクルージョンアーチファクトである、請求項2に記載の方法。
【請求項4】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、単一の遠深度を含み、前記単一の遠深度は、現在表示されている視野内の任意の仮想オブジェクトの最遠深度である、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記単一の遠深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含み、
前記レンダリングされた仮想コンテンツデータ、前記遠深度、および前記移動データに基づいて、前記ワーピングされたレンダリングされた仮想コンテンツデータを生成することは、前記レンダリングされた仮想コンテンツデータと比較して、視差関連アーチファクトを低減させ、
前記視差関連アーチファクトは、スミアアーチファクトおよびジッタアーチファクトから成る群から選択される、方法。
【請求項5】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、単一の遠深度を含み、前記単一の遠深度は、現在表示されている視野内の任意の仮想オブジェクトの最遠深度である、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記単一の遠深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することであって、前記レンダリングされた仮想コンテンツデータは、第1の深度セグメントに対応する、ことと、
第2の深度セグメントに対応する第2のレンダリングされた仮想コンテンツデータを受信することであって、前記第2のレンダリングされた仮想コンテンツデータは、第2の遠深度を含む、ことと、
前記第2のレンダリングされた仮想コンテンツデータ、前記第2の遠深度、および前記移動データに基づいて、ワーピングされた第2のレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
【請求項6】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、単一の遠深度および単一の近深度を含み、前記単一の遠深度は、現在表示されている視野(FOV)内の任意の仮想オブジェクトの最遠深度であり、前記単一の近深度は、前記現在表示されているFOV内の任意の仮想オブジェクトの最近深度である、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記単一の遠深度、前記単一の近深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することであって、前記レンダリングされた仮想コンテンツデータは、第1の深度セグメントに対応する、ことと、
第2の深度セグメントに対応する第2のレンダリングされた仮想コンテンツデータを受信することであって、前記第2のレンダリングされた仮想コンテンツデータは、第2の遠深度を含む、ことと、
前記第2のレンダリングされた仮想コンテンツデータ、前記第2の遠深度、および前記移動データに基づいて、ワーピングされた第2のレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
【請求項7】
前記レンダリングされた仮想コンテンツデータ、前記遠深度、前記近深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することは、前記遠深度および前記近深度を平均することを含む、請求項6に記載の方法。
【請求項8】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することと、
前記レンダリングされた仮想コンテンツデータの深度を複数の離散深度スライスに分割することと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
ユーザ視線を示す視線データを受信することと、
前記視線データに基づいて選択された離散深度スライスの深度として、単一の深度を決定することと、
前記レンダリングされた仮想コンテンツデータ、前記単一の深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することであって、前記レンダリングされた仮想コンテンツデータは、第1の深度セグメントに対応する、ことと、
第2の深度セグメントに対応する第2のレンダリングされた仮想コンテンツデータを受信することであって、前記第2のレンダリングされた仮想コンテンツデータは、第2の遠深度を含む、ことと、
前記第2のレンダリングされた仮想コンテンツデータ、前記第2の遠深度、および前記移動データに基づいて、ワーピングされた第2のレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
【請求項9】
仮想コンテンツをワーピングするための
方法であって、
前記方法は、コンピュータによって実行され、前記方法は、
レンダリングされた仮想コンテンツデータを受信することと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
メッシュデータを前記レンダリングされた仮想コンテンツデータから生成することと、
深度データを前記メッシュデータから決定することと、
前記仮想コンテンツデータ内の1つ以上のレンダリングされた仮想オブジェクトを前記仮想オブジェクトの再構築されたメッシュに簡略化し、前記仮想オブジェクトの前記再構築されたメッシュを含む簡略化されたレンダリングされた仮想コンテンツを生産することと、
前記簡略化されたレンダリングされた仮想コンテンツデータ、前記メッシュデータ、前記深度データ、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
【請求項10】
前記メッシュデータを生成するとき、メッシュサイズを調節することをさらに含む、請求項9に記載の方法。
【請求項11】
前記メッシュデータは、グリッドメッシュを使用して生成される、請求項9に記載の方法。
【請求項12】
前記深度データは、前記メッシュ内の複数の深度および前記複数の深度のそれぞれにおける前記メッシュのコンテンツに基づいて決定される、請求項9に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、仮想コンテンツをワーピングするステップを伴う複合現実システムと、それを使用して、ワーピングされた仮想コンテンツを含む複合現実体験を生成するための方法とに関する。
【背景技術】
【0002】
現代のコンピューティングおよびディスプレイ技術は、デジタル的に再現された画像またはその一部が、現実であるように見える、またはそのように知覚され得る様式においてユーザに提示される、いわゆる「仮想現実」(VR)または「拡張現実」(AR)体験のための「複合現実」(MR)システムの開発を促進している。VRシナリオは、典型的には、実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。ARシナリオは、典型的には、ユーザの周囲の実世界の可視化(すなわち、実世界視覚的入力に対して透過性である)の拡張として、デジタルまたは仮想画像情報の提示を伴う。故に、ARシナリオは、ユーザの周囲の実世界に対する透過性を伴う、デジタルまたは仮想画像情報の提示を伴う。
【0003】
種々の光学システムが、MR(VRおよびAR)シナリオを表示するために、画像を種々の深度において生成する。いくつかのそのような光学システムは、2014年11月27日に出願された米国実用特許出願第14/555,585号(弁理士整理番号第ML.20011.00)(その内容は、参照することによって、全体として記載される場合と同様に、その全体として明示的かつ完全に本明細書に組み込まれる)に説明される。
【0004】
MRシステムは、典型的には、ユーザの頭部に少なくとも緩く結合され、したがって、ユーザの頭部が移動すると移動する、ウェアラブルディスプレイデバイス(例えば、頭部装着型ディスプレイ、ヘルメット搭載型ディスプレイ、またはスマートグラス)を採用する。ユーザの頭部運動が、ディスプレイデバイスによって検出される場合、表示されているデータは、頭部姿勢(すなわち、ユーザの頭部の配向および/または場所)の変化を考慮するために更新されることができる。
【0005】
実施例として、頭部装着型ディスプレイデバイスを装着しているユーザが、仮想オブジェクトの仮想表現をディスプレイデバイス上で視認し、仮想オブジェクトが現れる面積の周囲を歩き回る場合、仮想オブジェクトは、視点(頭部搭載型ディスプレイデバイスの位置および/または配向に対応する)毎にレンダリングされ、ユーザに、実空間を占有するオブジェクトの周囲を歩き回っているという知覚を与えることができる。頭部装着型ディスプレイデバイスが、複数の仮想オブジェクトを異なる深度に提示するために使用される場合、頭部姿勢の測定は、場面をユーザの動的に変化する頭部姿勢に合致するようにレンダリングし、増加された没入感を提供するために使用されることができる。しかしながら、場面をレンダリングするステップと、レンダリングされた場面を表示/投影するステップとの間には、不可避の遅れが存在する。
【0006】
頭部装着型ディスプレイデバイスは、ARが、実および仮想オブジェクトの両方の同時視認を提供することを可能にする。「光学シースルー」ディスプレイを用いることで、ユーザは、ディスプレイシステム内の透明(または半透明)要素を通して見え、直接、実世界環境内の実オブジェクトからの光を視認することができる。透明要素は、多くの場合、「コンバイナ」と称され、ディスプレイからの光を実世界のユーザのビューにわたって重畳し、ディスプレイからの光は、仮想コンテンツの画像を環境内の実オブジェクトのシースルービューにわたって投影される。カメラが、頭部装着型ディスプレイデバイス上に搭載され、ユーザによって視認されている場面の画像またはビデオを捕捉し得る。
【0007】
MRシステムは、写実的没入型のMRシナリオを提示するように試みる。しかしながら、仮想コンテンツ(「レンダリングされた仮想コンテンツ」)の生成とレンダリングされた仮想コンテンツの表示との間の遅れ時間の間の頭部移動は、視覚的アーチファクト(例えば、グリッチ)をもたらし得る。本問題は、遅れ時間の間の高速頭部移動によって悪化され得る。
【0008】
本問題に対処するために、いくつかの光学システムは、レンダリングされた仮想コンテンツをソースから受信する、ワーピングソフトウェア/システム/方法を含み得る。ワーピングシステムは、次いで、ディスプレイシステム/視認者の基準のフレーム(「基準のディスプレイフレーム」)内における表示のために、受信されたレンダリングされた仮想コンテンツを「ワーピング」する(すなわち、「基準のフレーム」を変換する)。本アプローチは、元々レンダリングされた仮想コンテンツを取り上げ、仮想コンテンツが提示される方法を変換し、表示時に、仮想コンテンツを異なる視点から表示するように試みる。
【0009】
いくつかのワーピングソフトウェア/システム/方法は、レンダリングされた仮想コンテンツをワーピングし、回転または大まかな位置のユーザ移動(すなわち、ユーザの視野「FOV」)を補正する。そのようなシステムは、他のタイプのユーザ移動(例えば、ユーザの光学軸に直交する軸に沿った実質的側方ユーザ移動)を補正するために最適化されていない。故に、いくつかのワーピングソフトウェア/システム/方法は、ユーザ移動に伴って、アーチファクトをもたらし得る。
【発明の概要】
【課題を解決するための手段】
【0010】
一実施形態では、仮想コンテンツをワーピングするためのコンピュータ実装方法は、レンダリングされた仮想コンテンツデータを受信するステップであって、レンダリングされた仮想コンテンツデータは、遠深度を含む、ステップを含む。本方法はまた、光学軸に直交する方向におけるユーザ移動を示す、移動データを受信するステップを含む。本方法はさらに、レンダリングされた仮想コンテンツデータ、遠深度、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップを含む。
【0011】
1つ以上の実施形態では、レンダリングされた仮想コンテンツデータは、近仮想オブジェクトおよび遠仮想オブジェクトに対応し、ワーピングされたレンダリングされた仮想コンテンツデータは、ワーピングされた近仮想オブジェクトおよびワーピングされた遠仮想オブジェクトに対応する。近仮想オブジェクトとワーピングされた近仮想オブジェクトとの間の第1の位置偏移は、遠仮想オブジェクトとワーピングされた遠仮想オブジェクトとの間の第2の位置偏移に実質的に等しくあってもよい。
【0012】
1つ以上の実施形態では、レンダリングされた仮想コンテンツデータ、遠深度、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップは、レンダリングされた仮想コンテンツデータと比較して、視差関連アーチファクトを低減させる。視差関連アーチファクトは、ディスオクルージョンアーチファクトである。視差関連アーチファクトは、スミアアーチファクトまたはジッタアーチファクトであり得る。
【0013】
1つ以上の実施形態では、レンダリングされた仮想コンテンツデータは、第1の深度セグメントに対応する。本方法はまた、第2の深度セグメントに対応する、第2のレンダリングされた仮想コンテンツデータを受信するステップであって、第2のレンダリングされた仮想コンテンツデータは、第2の遠深度を含む、ステップを含む。本方法はさらに、第2のレンダリングされた仮想コンテンツデータ、第2の遠深度、および移動データに基づいて、ワーピングされた第2のレンダリングされた仮想コンテンツデータを生成するステップを含む。
【0014】
別の実施形態では、仮想コンテンツをワーピングするためのコンピュータ実装方法は、レンダリングされた仮想コンテンツデータを受信するステップであって、レンダリングされた仮想コンテンツデータは、遠深度および近深度を含む、ステップを含む。本方法はまた、光学軸に直交する方向におけるユーザ移動を示す、移動データを受信するステップを含む。本方法はさらに、レンダリングされた仮想コンテンツデータ、遠深度、近深度、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップを含む。
【0015】
1つ以上の実施形態では、レンダリングされた仮想コンテンツデータ、遠深度、近深度、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップは、遠深度および近深度を平均するステップを含む。
【0016】
さらに別の実施形態では、仮想コンテンツをワーピングするためのコンピュータ実装方法は、レンダリングされた仮想コンテンツデータを受信するステップを含む。本方法はまた、光学軸に直交する方向におけるユーザ移動を示す、移動データを受信するステップを含む。本方法はさらに、ユーザ視線を示す、視線データを受信するステップを含む。さらに、本方法は、視線データに基づいて、深度を決定するステップを含む。加えて、本方法は、レンダリングされた仮想コンテンツデータ、深度、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップを含む。
【0017】
さらに別の実施形態では、仮想コンテンツをワーピングするためのコンピュータ実装方法は、レンダリングされた仮想コンテンツデータを受信するステップを含む。本方法はまた、光学軸に直交する方向におけるユーザ移動を示す、移動データを受信するステップを含む。本方法はさらに、メッシュデータをレンダリングされた仮想コンテンツデータから生成するステップを含む。さらに、本方法は、深度データをメッシュデータから決定するステップを含む。加えて、本方法は、レンダリングされた仮想コンテンツデータ、メッシュデータ、深度データ、および移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成するステップを含む。
【0018】
1つ以上の実施形態では、本方法はまた、メッシュデータを生成するとき、メッシュサイズを調節するステップを含む。メッシュデータは、グリッドメッシュを使用して生成されてもよい。深度データは、メッシュ内の複数の深度および複数の深度のそれぞれにおけるメッシュのコンテンツに基づいて決定されてもよい。
【0019】
別の実施形態では、仮想オブジェクトの深度を決定するためのコンピュータ実装方法は、複数の深度において、第1の眼に対応する仮想オブジェクトの第1の画像を第2の眼に対応する仮想オブジェクトの第2の画像にわたって再投影し、複数の個別の組み合わせ画像を生成するステップを含む。本方法はまた、複数の個別の組み合わせ画像のそれぞれにおける再投影誤差を測定し、複数の再投影誤差を生成するステップを含む。本方法はさらに、複数の個別の組み合わせ画像の組み合わせ画像に対応する、複数の再投影誤差内の最小再投影誤差を識別するステップを含む。さらに、本方法は、組み合わせ画像に対応する深度を仮想オブジェクトの深度として識別するステップを含む。
【0020】
1つ以上の実施形態では、仮想オブジェクトの深度は、仮想オブジェクトを第1の視点から第2の視点にワーピングするために使用される。複数の深度は、64個の深度から成ってもよい。複数の深度はそれぞれ、仮想オブジェクトの第1の画像を再投影する際の1ピクセル差に対応してもよい。
【0021】
さらに別の実施形態では、最小安定化深度を決定するためのコンピュータ実装方法は、視点(POV)移動量を取得するステップを含む。本方法はまた、POV移動量に基づいて、安定化深度と安定化深度におけるピクセル移動との間の関係を決定するステップを含む。本方法はさらに、ディスプレイシステムのための最大検知不能ピクセル移動を取得するステップを含む。さらに、本方法は、ディスプレイシステムのための最大検知不能ピクセル移動に対応する安定化深度をディスプレイシステムの最小安定化深度として識別するステップを含む。
【0022】
1つ以上の実施形態では、本方法はまた、視点が変化するとき、視認者に対して最小安定化深度より近いコンテンツのみをワーピングするステップを含む。安定化深度と安定化深度におけるピクセル移動との間の関係は、逆相関であってもよい。
【0023】
本開示の付加的および他の目的、特徴、および利点は、詳細な説明、図、および請求項に説明される。
本発明は、例えば、以下を提供する。
(項目1)
仮想コンテンツをワーピングするためのコンピュータ実装方法であって、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、遠深度を含む、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記遠深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
(項目2)
前記レンダリングされた仮想コンテンツデータは、近仮想オブジェクトおよび遠仮想オブジェクトに対応し、
前記ワーピングされたレンダリングされた仮想コンテンツデータは、ワーピングされた近仮想オブジェクトおよびワーピングされた遠仮想オブジェクトに対応する、
項目1に記載の方法。
(項目3)
前記近仮想オブジェクトと前記ワーピングされた近仮想オブジェクトとの間の第1の位置偏移は、前記遠仮想オブジェクトと前記ワーピングされた遠仮想オブジェクトとの間の第2の位置偏移に実質的に等しい、項目2に記載の方法。
(項目4)
前記レンダリングされた仮想コンテンツデータ、前記遠深度、および前記移動データに基づいて、前記ワーピングされたレンダリングされた仮想コンテンツデータを生成することは、前記レンダリングされた仮想コンテンツデータと比較して、視差関連アーチファクトを低減させる、項目1に記載の方法。
(項目5)
前記視差関連アーチファクトは、ディスオクルージョンアーチファクトである、項目4に記載の方法。
(項目6)
前記視差関連アーチファクトは、スミアアーチファクトである、項目4に記載の方法。
(項目7)
前記視差関連アーチファクトは、ジッタアーチファクトである、項目4に記載の方法。
(項目8)
前記レンダリングされた仮想コンテンツデータは、第1の深度セグメントに対応し、前記方法はさらに、
第2の深度セグメントに対応する第2のレンダリングされた仮想コンテンツデータを受信することであって、前記第2のレンダリングされた仮想コンテンツデータは、第2の遠深度を含む、ことと、
前記第2のレンダリングされた仮想コンテンツデータ、前記第2の遠深度、および前記移動データに基づいて、ワーピングされた第2のレンダリングされた仮想コンテンツデータを生成することと
を含む、項目1に記載の方法。
(項目9)
仮想コンテンツをワーピングするためのコンピュータ実装方法であって、
レンダリングされた仮想コンテンツデータを受信することであって、前記レンダリングされた仮想コンテンツデータは、遠深度および近深度を含む、ことと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
前記レンダリングされた仮想コンテンツデータ、前記遠深度、前記近深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
(項目10)
前記レンダリングされた仮想コンテンツデータ、前記遠深度、前記近深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することは、前記遠深度および前記近深度を平均することを含む、項目9に記載の方法。
(項目11)
仮想コンテンツをワーピングするためのコンピュータ実装方法であって、
レンダリングされた仮想コンテンツデータを受信することと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
ユーザ視線を示す視線データを受信することと、
前記視線データに基づいて、深度を決定することと、
前記レンダリングされた仮想コンテンツデータ、前記深度、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
(項目12)
仮想コンテンツをワーピングするためのコンピュータ実装方法であって、
レンダリングされた仮想コンテンツデータを受信することと、
光学軸に直交する方向におけるユーザ移動を示す移動データを受信することと、
メッシュデータを前記レンダリングされた仮想コンテンツデータから生成することと、
深度データを前記メッシュデータから決定することと、
前記レンダリングされた仮想コンテンツデータ、前記メッシュデータ、前記深度データ、および前記移動データに基づいて、ワーピングされたレンダリングされた仮想コンテンツデータを生成することと
を含む、方法。
(項目13)
前記メッシュデータを生成するとき、メッシュサイズを調節することをさらに含む、項目12に記載の方法。
(項目14)
前記メッシュデータは、グリッドメッシュを使用して生成される、項目12に記載の方法。
(項目15)
前記深度データは、前記メッシュ内の複数の深度および前記複数の深度のそれぞれにおける前記メッシュのコンテンツに基づいて決定される、項目12に記載の方法。
(項目16)
仮想オブジェクトの深度を決定するためのコンピュータ実装方法であって、
複数の深度において、第1の眼に対応する前記仮想オブジェクトの第1の画像を第2の眼に対応する前記仮想オブジェクトの第2の画像にわたって再投影し、複数の個別の組み合わせ画像を生成することと、
前記複数の個別の組み合わせ画像のそれぞれにおける再投影誤差を測定し、複数の再投影誤差を生成することと、
前記複数の個別の組み合わせ画像の組み合わせ画像に対応する前記複数の再投影誤差内の最小再投影誤差を識別することと、
前記組み合わせ画像に対応する深度を前記仮想オブジェクトの深度として識別することと
を含む、方法。
(項目17)
前記仮想オブジェクトの深度は、前記仮想オブジェクトを第1の視点から第2の視点にワーピングするために使用される、項目16に記載の方法。
(項目18)
前記複数の深度は、64個の深度から成る、項目16に記載の方法。
(項目19)
前記複数の深度はそれぞれ、前記仮想オブジェクトの第1の画像を再投影する際の1ピクセル差に対応する、項目16に記載の方法。
(項目20)
最小安定化深度を決定するためのコンピュータ実装方法であって、
視点(POV)移動量を取得することと、
前記POV移動量に基づいて、安定化深度と前記安定化深度におけるピクセル移動との間の関係を決定することと、
ディスプレイシステムのための最大検知不能ピクセル移動を取得することと、
前記ディスプレイシステムのための最大検知不能ピクセル移動に対応する安定化深度を前記ディスプレイシステムの最小安定化深度として識別することと
を含む、方法。
(項目21)
視点が変化するとき、視認者に対して前記最小安定化深度より近いコンテンツのみをワーピングすることをさらに含む、項目20に記載の方法。
(項目22)
前記安定化深度と前記安定化深度におけるピクセル移動との間の関係は、逆相関である、項目20に記載の方法。
【図面の簡単な説明】
【0024】
図面は、本開示の種々の実施形態の設計および可用性を図示する。図は、正確な縮尺で描かれておらず、類似構造または機能の要素は、図全体を通して同様の参照番号によって表されることに留意されたい。本開示の種々の実施形態の前述および他の利点および目的を得る方法をより深く理解するために、簡単に前述された本開示の詳細な説明が、付随の図面に図示されるその具体的実施形態を参照することによって与えられるであろう。これらの図面は、本開示の典型的実施形態のみを描写し、したがって、その範囲の限定として見なされないことを理解した上で、本開示は、付随の図面の使用を通して、付加的具体性および詳細とともに記載および説明されるであろう。
【0025】
【
図1】
図1は、いくつかの実施形態による、ウェアラブルARユーザデバイスを通した拡張現実(AR)のユーザのビューを描写する。
【0026】
【
図2A】
図2A-2Dは、いくつかの実施形態による、ARシステムおよびそのサブシステムを図式的に描写する。
【
図2B】
図2A-2Dは、いくつかの実施形態による、ARシステムおよびそのサブシステムを図式的に描写する。
【
図2C】
図2A-2Dは、いくつかの実施形態による、ARシステムおよびそのサブシステムを図式的に描写する。
【
図2D】
図2A-2Dは、いくつかの実施形態による、ARシステムおよびそのサブシステムを図式的に描写する。
【0027】
【
図3】
図3および4は、いくつかの実施形態による、ユーザ移動に伴うアーチファクトを図示する。
【
図4】
図3および4は、いくつかの実施形態による、ユーザ移動に伴うアーチファクトを図示する。
【0028】
【
図5】
図5は、いくつかの実施形態による、仮想コンテンツをワーピングし、頭部回転を補正するステップを図示する。
【0029】
【
図6】
図6-9は、いくつかの実施形態による、仮想コンテンツをワーピングし、ユーザ移動を補正するステップを図示する。
【
図7】
図6-9は、いくつかの実施形態による、仮想コンテンツをワーピングし、ユーザ移動を補正するステップを図示する。
【
図8】
図6-9は、いくつかの実施形態による、仮想コンテンツをワーピングし、ユーザ移動を補正するステップを図示する。
【
図9】
図6-9は、いくつかの実施形態による、仮想コンテンツをワーピングし、ユーザ移動を補正するステップを図示する。
【0030】
【
図10】
図10は、いくつかの実施形態による、グラフィック処理ユニット(GPU)を図式的に描写する。
【0031】
【
図11】
図11は、いくつかの実施形態による、プリミティブとして記憶される仮想オブジェクトを描写する。
【0032】
【
図12】
図12-14は、いくつかの実施形態による、異なる深度に位置する2つの非重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図13】
図12-14は、いくつかの実施形態による、異なる深度に位置する2つの非重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図14】
図12-14は、いくつかの実施形態による、異なる深度に位置する2つの非重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【0033】
【
図15】
図15-19は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ディスオクルージョンアーチファクトを描写する。
【
図16】
図15-19は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ディスオクルージョンアーチファクトを描写する。
【
図17】
図15-19は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ディスオクルージョンアーチファクトを描写する。
【
図18】
図15-19は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ディスオクルージョンアーチファクトを描写する。
【
図19】
図15-19は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ディスオクルージョンアーチファクトを描写する。
【0034】
【
図20】
図20および21は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、スミアアーチファクトを描写する。
【
図21】
図20および21は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、スミアアーチファクトを描写する。
【0035】
【
図22】
図22-24は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ジッタアーチファクトを描写する。
【
図23】
図22-24は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ジッタアーチファクトを描写する。
【
図24】
図22-24は、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するときの、ジッタアーチファクトを描写する。
【0036】
【
図25】
図25-27は、いくつかの実施形態による、ジッタアーチファクトを最小限にしながら、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図26】
図25-27は、いくつかの実施形態による、ジッタアーチファクトを最小限にしながら、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図27】
図25-27は、いくつかの実施形態による、ジッタアーチファクトを最小限にしながら、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【0037】
【
図28】
図28-31は、いくつかの実施形態による、複数の深度を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図29A】
図28-31は、いくつかの実施形態による、複数の深度を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図29B】
図28-31は、いくつかの実施形態による、複数の深度を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図30】
図28-31は、いくつかの実施形態による、複数の深度を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図31】
図28-31は、いくつかの実施形態による、複数の深度を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【0038】
【
図32】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図33】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図34】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図35】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図36】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図37】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図38】
図32-38は、いくつかの実施形態による、眼追跡を使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【0039】
【
図39】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図40】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図41】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図42】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図43】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図44】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【
図45】
図39-45は、いくつかの実施形態による、メッシュを使用して、異なる深度に位置する2つの重複仮想オブジェクトをワーピングし、ユーザ移動を補正するステップを描写する。
【0040】
【
図46】
図46は、いくつかの実施形態による、例証的コンピューティングシステムを図式的に描写する、ブロック図である。
【0041】
【
図47】
図47-49は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法を図式的に描写する。
【
図48】
図47-49は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法を図式的に描写する。
【
図49】
図47-49は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法を図式的に描写する。
【0042】
【
図50】
図50-52は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法によって生成された種々の組み合わせ画像を示す。
【
図51】
図50-52は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法によって生成された種々の組み合わせ画像を示す。
【
図52】
図50-52は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法によって生成された種々の組み合わせ画像を示す。
【0043】
【
図53】
図53は、いくつかの実施形態による、仮想オブジェクトの深度を仮想オブジェクトのステレオ画像対から決定するための方法を図示する、フローチャートである。
【0044】
【
図54】
図54は、安定化深度とPOV移動に伴う仮想オブジェクトの見掛け移動との間の関係を図示する、グラフである。
【0045】
【
図55】
図55は、いくつかの実施形態による、安定化深度を決定するための方法を図示する、フローチャートである。
【発明を実施するための形態】
【0046】
本開示の種々の実施形態は、単一実施形態または複数の実施形態における、仮想コンテンツをワーピングするためのシステム、方法、および製造品を対象とする。本開示の他の目的、特徴、および利点は、詳細な説明、図、および請求項に説明される。
【0047】
種々の実施形態が、ここで、当業者が本開示を実践することを可能にするように、本開示の例証的実施例として提供される、図面を参照して詳細に説明されるであろう。着目すべきこととして、以下の図および実施例は、本開示の範囲を限定することを意味するものではない。本開示のある要素が、公知のコンポーネント(または方法またはプロセス)を使用して部分的または完全に、実装され得る場合、本開示の理解のために必要なそのような公知のコンポーネント(または方法またはプロセス)の一部のみが、説明され、そのような公知のコンポーネント(または方法またはプロセス)の他の部分の詳細な説明は、本開示を曖昧にしないように、省略されるであろう。さらに、種々の実施形態は、例証として本明細書に参照されるコンポーネントの現在および将来的公知の均等物を包含する。
【0048】
仮想コンテンツワーピングシステムは、複合現実システムから独立して実装され得るが、下記のいくつかの実施形態は、例証目的のためだけに、ARシステムに関連して説明される。さらに、本明細書に説明される仮想コンテンツワーピングシステムはまた、VRシステムと同じ様式で使用されてもよい。
(例証的複合現実シナリオおよびシステム)
【0049】
続く説明は、ワーピングシステムが実践され得る、例証的拡張現実システムに関する。しかしながら、実施形態はまた、それ自体が他のタイプのディスプレイシステム(他のタイプの複合現実システムを含む)における用途にも適しており、したがって、実施形態は、本明細書に開示される例証的システムのみに限定されないことを理解されたい。
【0050】
複合現実(例えば、VRまたはAR)シナリオは、多くの場合、実世界オブジェクトに関連して仮想オブジェクトに対応する仮想コンテンツ(例えば、画像および音)の提示を含む。例えば、
図1を参照すると、AR場面100が、描写され、AR技術のユーザには、人々、木々、背景における建物、および実世界の物理的コンクリートプラットフォーム104を特徴とする、実世界の物理的公園状設定102が見える。これらのアイテムに加え、AR技術のユーザはまた、物理的コンクリートプラットフォーム104上に立っている仮想ロボット像106と、マルハナバチの擬人化のように見える、飛んでいる仮想漫画状アバタキャラクタ108とが「見える」と知覚するが、これらの仮想オブジェクト106、108は、実世界には存在しない。
【0051】
ARシナリオのように、VRシナリオもまた、仮想コンテンツを生成/レンダリングするために使用される姿勢を考慮する。仮想コンテンツを基準のAR/VRディスプレイフレームに対して正確にワーピングし、ワーピングされた仮想コンテンツをワーピングするステップは、AR/VRシナリオを改良する、または少なくともAR/VRシナリオを損なわせないことができる。
【0052】
続く説明は、本開示が実践され得る、例証的ARシステムに関する。しかしながら、本開示はまた、それ自体が他のタイプの拡張現実および仮想現実システムにおける用途にも適し、したがって、本開示は、本明細書に開示される例証的システムのみに限定されないことを理解されたい。
【0053】
図2Aは、いくつかの実施形態による、ARシステム200を図示する。ARシステム200は、投影サブシステム208と併せて動作され、物理的オブジェクトと混合された仮想オブジェクトの画像をユーザ250の視野内に提供してもよい。本アプローチは、1つ以上の少なくとも部分的に透明な表面を採用し、それを通して、物理的オブジェクトを含む、周囲環境が、見られることができ、それを通して、ARシステム200は、仮想オブジェクトの画像を生産する。投影サブシステム208は、リンク207を通してディスプレイシステム/サブシステム204に動作可能に結合される、制御サブシステム201内に格納される。リンク207は、有線または無線通信リンクであってもよい。
【0054】
ARアプリケーションに関して、個別の物理的オブジェクトに対する種々の仮想オブジェクトをユーザ250の視野内に空間的に位置付けることが望ましくあり得る。仮想オブジェクトは、画像として表されることが可能な任意の種々のデータ、情報、概念、または論理構造を有する、多種多様な形態のいずれかをとってもよい。仮想オブジェクトの非限定的実施例は、仮想テキストオブジェクト、仮想数値オブジェクト、仮想英数字オブジェクト、仮想タグオブジェクト、仮想フィールドオブジェクト、仮想チャートオブジェクト、仮想マップオブジェクト、仮想計器オブジェクト、または物理的オブジェクトの仮想視覚的表現を含んでもよい。
【0055】
ARシステム200は、ユーザ250によって装着される、フレーム構造202と、ディスプレイシステム204がユーザ250の眼の正面に位置付けられるように、フレーム構造202によって担持されるディスプレイシステム204と、ディスプレイシステム204の中に組み込まれる、またはそれに接続される、スピーカ206とを含む。図示される実施形態では、スピーカ206は、スピーカ206がユーザ250の外耳道(内またはその周囲)に隣接して位置付けられるように、フレーム構造202によって担持される(例えば、イヤーバッドまたはヘッドホン)。
【0056】
ディスプレイシステム204は、ユーザ250の眼に、2次元および3次元コンテンツの両方を含む、周囲環境に対する拡張として快適に知覚され得る、光ベースの放射パターンを提示するように設計される。ディスプレイシステム204は、単一コヒーレント場面の知覚を提供する、フレームのシーケンスを高周波数で提示する。この目的を達成するために、ディスプレイシステム204は、投影サブシステム208と、それを通して投影サブシステム208が画像を投影する、部分的に透明なディスプレイ画面とを含む。ディスプレイ画面は、ユーザ250の眼と周囲環境との間のユーザ250の視野内に位置付けられる。
【0057】
いくつかの実施形態では、投影サブシステム208は、走査ベースの投影デバイスの形態をとり、ディスプレイ画面は、導波管ベースのディスプレイの形態をとり、その中に、投影サブシステム208からの走査される光が投入され、例えば、無限遠(例えば、腕の長さ)より近い単一光学視認距離における画像、複数の離散光学視認距離または焦点平面における画像、および/または複数の視認距離または焦点面にスタックされ、立体3Dオブジェクトを表す画像層を生産する。ライトフィールド内のこれらの層は、ヒト副視覚系に連続して現れるように十分に近接してともにスタックされてもよい(例えば、1つの層が、隣接する層の混同の円錐内にある)。加えて、または代替として、ピクチャ要素が、2つ以上の層を横断して混成され、それらの層がより疎らにスタックされる(例えば、1つの層が、隣接する層の混同の円錐外にある)場合でも、ライトフィールド内の層間の遷移の知覚される連続性を増加させてもよい。ディスプレイシステム204は、単眼または双眼であってもよい。走査アセンブリは、光ビームを生産する(例えば、異なる色の光を定義されたパターンで放出する)、1つ以上の光源を含む。光源は、それぞれ、ピクセル情報またはデータの個別のフレーム内で規定された定義されたピクセルパターンに従って、赤色、緑色、および青色のコヒーレントなコリメートされた光を生産するように動作可能である、多種多様な形態のいずれか、例えば、RGBソースのセット(例えば、赤色、緑色、および青色光を出力することが可能なレーザダイオード)をとってもよい。レーザ光は、高色飽和を提供し、高度にエネルギー効率的である。光学結合サブシステムは、例えば、1つ以上の反射表面、回折格子、ミラー、ダイクロイックミラー、またはプリズム等の光学導波管入力装置を含み、光をディスプレイ画面の端部の中に光学的に結合する。光学結合サブシステムはさらに、光ファイバからの光をコリメートする、コリメーション要素を含む。随意に、光学結合サブシステムは、コリメーション要素からの光を光学導波管入力装置の中心内の焦点に向かって収束させ、それによって、光学導波管入力装置のサイズが最小限にされることを可能にするために構成される、光学変調装置を含む。したがって、ディスプレイシステム204は、1つ以上の仮想オブジェクトの歪曲されていない画像をユーザに提示する、ピクセル情報の一連の合成画像フレームを生成する。ディスプレイサブシステムを説明するさらなる詳細は、「Display System and Method」と題された米国実用特許出願第14/212,961号(弁理士整理番号ML.20006.00)および「Planar Waveguide Apparatus With Diffraction Elementand Subsystem Employing Same」と題された第14/331,218号(弁理士整理番号ML.20020.00)(その内容は、参照することによって、全体として記載される場合と同様に、その全体として明示的かつ完全に本明細書に組み込まれる)に提供される。
【0058】
ARシステム200はさらに、ユーザ250の頭部の位置(配向を含む)および移動および/またはユーザ250の眼位置および眼球間距離を検出するためにフレーム構造202に搭載される、1つ以上のセンサを含む。そのようなセンサは、画像捕捉デバイス、マイクロホン、慣性測定ユニット(IMU)、加速度計、コンパス、GPSユニット、無線デバイス、ジャイロスコープ、および同等物を含んでもよい。例えば、一実施形態では、ARシステム200は、1つ以上の慣性変換器を含み、ユーザ250の頭部の移動を示す慣性測定値を捕捉する、頭部装着型変換器サブシステムを含む。そのようなデバイスは、ユーザ250の頭部移動についての情報を感知、測定、または収集するために使用されてもよい。例えば、これらのデバイスは、ユーザの頭部250の移動、速度、加速、および/または位置を検出/測定するために使用されてもよい。ユーザ250の頭部の位置(配向を含む)は、ユーザ250の「頭部姿勢」としても知られる。
【0059】
図2AのARシステム200は、1つ以上の前方に面したカメラを含んでもよい。カメラは、システム200の前方方向からの画像/ビデオの記録等、任意の数の目的のために採用されてもよい。加えて、カメラは、環境および環境内の具体的オブジェクトに対するユーザ250の距離、配向、および/または角位置を示す情報等、ユーザ250が位置する環境についての情報を捕捉するために使用されてもよい。
【0060】
ARシステム200はさらに、後ろ向きに向いたカメラを含み、ユーザ250の眼の角位置(片眼または両眼が向いている方向)、瞬目、および焦点深度(眼収束を検出することによって)を追跡してもよい。そのような眼追跡情報は、例えば、光をエンドユーザの眼に投影させ、その投影された光の少なくとも一部の戻りまたは反射を検出することによって、判別されてもよい。
【0061】
拡張現実システム200はさらに、多種多様な形態のいずれかをとり得る、制御サブシステム201を含む。制御サブシステム201は、いくつかのコントローラ、例えば1つ以上のマイクロコントローラ、マイクロプロセッサまたは中央処理ユニット(CPU)、デジタル信号プロセッサ、グラフィック処理ユニット(GPU)、特定用途向け集積回路(ASIC)等の他の集積回路コントローラ、プログラマブルゲートアレイ(PGAs)、例えば、フィールドPGAs(FPGAs)、および/またはプログラマブル論理コントローラ(PLU)を含む。制御サブシステム201は、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)251、グラフィック処理ユニット(GPU)252、および1つ以上のフレームバッファ254を含んでもよい。CPU251は、システムの全体的動作を制御する一方、GPU252は、フレームをレンダリングし(すなわち、3次元場面を2次元画像に変換する)、これらのフレームをフレームバッファ254内に記憶する。図示されないが、1つ以上の付加的集積回路は、フレームバッファ254の中へのフレームの読込および/またはそこからの読取およびディスプレイシステム204の動作を制御してもよい。フレームバッファ254の中への読込および/またはそこからの読取は、動的アドレス指定を採用してもよく、例えば、フレームは、オーバーレンダリングされる。制御サブシステム201はさらに、読取専用メモリ(ROM)およびランダムアクセスメモリ(RAM)を含む。制御サブシステム201はさらに、3次元データベース260を含み、そこから、GPU252は、フレームをレンダリングするための1つ以上の場面の3次元データおよび3次元場面内に含有される仮想音源と関連付けられた合成音データにアクセスすることができる。
【0062】
制御AR拡張現実サブシステム2010はさらに、ユーザ配向検出モジュール248を含む。ユーザ配向モジュール248は、ユーザ250の頭部の瞬間位置を検出し、センサから受信された位置データに基づいて、ユーザ250の頭部の位置を予測してもよい。ユーザ配向モジュール248はまた、センサから受信された追跡データに基づいて、ユーザ250の眼、特に、ユーザ250が合焦している方向および/または距離を追跡する。
【0063】
図2Bは、いくつかの実施形態による、ARシステム200’を描写する。
図2Bに描写されるARシステム200’は、
図2Aに描写され、上記に説明される、ARシステム200に類似する。例えば、ARシステム200’は、フレーム構造202と、ディスプレイシステム204と、スピーカ206と、リンク207を通してディスプレイシステム204に動作可能に結合される、制御サブシステム201’とを含む。
図2Bに描写される制御サブシステム201’は、
図2Aに描写され、上記に説明される、制御サブシステム201に類似する。例えば、制御サブシステム201’は、投影サブシステム208と、画像/ビデオデータベース271と、ユーザ配向モジュール248と、CPU251と、GPU252と、3Dデータベース260と、ROMと、RAMとを含む。
【0064】
制御サブシステム201’、したがって、
図2Bに描写されるARシステム200’と、
図2Aに描写される対応するシステム/システムコンポーネントとの間の差異は、
図2Bに描写される制御サブシステム201’内のブロック290の存在である。ブロック290は、GPU252またはCPU251のいずれかから独立する、別個のワーピングブロックである。
図2Cに図示されるように、ブロック290は、ワーピングユニット280と、データベース292と、合成ユニット294とを含む。合成ユニット294は、混成ユニット296を含む。
図2Dに図示されるように、ワーピングユニット280は、姿勢推定器282と、変換ユニット284とを含む。
【0065】
ARシステム200、200’の種々の処理コンポーネントは、分散型サブシステム内に含有されてもよい。例えば、ARシステム200、200’は、有線導線または無線コネクティビティ207等によって、ディスプレイシステム204の一部に動作可能に結合される、ローカル処理およびデータモジュール(すなわち、制御サブシステム201、201’)を含む。ローカル処理およびデータモジュールは、フレーム構造202に固定して取り付けられる、ヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、ユーザ250の胴体に除去可能に取り付けられる、またはベルト結合式構成においてユーザ250の腰部に除去可能に取り付けられる等、種々の構成において搭載されてもよい。ARシステム200、200’はさらに、遠隔モジュールが、相互に動作可能に結合され、ローカル処理およびデータモジュールに対するリソースとして利用可能であるように、有線導線または無線コネクティビティ等によって、ローカル処理およびデータモジュールに動作可能に結合される、遠隔処理モジュールおよび遠隔データリポジトリを含んでもよい。ローカル処理およびデータモジュールは、電力効率的プロセッサまたはコントローラおよびフラッシュメモリ等のデジタルメモリを備えてもよく、両方とも、可能性として、処理または読出後、ディスプレイシステム204への通過のために、センサから捕捉された、および/または遠隔処理モジュールおよび/または遠隔データリポジトリを使用して入手および/または処理されたデータの処理、キャッシュ、および記憶を補助するために利用されてもよい。遠隔処理モジュールは、データおよび/または画像情報を分析および処理するように構成される、1つ以上の比較的に強力なプロセッサまたはコントローラを備えてもよい。遠隔データリポジトリは、比較的に大規模デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータは、記憶され、全ての算出は、ローカル処理およびデータモジュール内で実施され、任意の遠隔モジュールからの完全に自律的使用を可能にする。上記に説明される種々のコンポーネント間の結合は、ワイヤまたは光学通信を提供するために、1つ以上の有線インターフェースまたはポート、または無線通信を提供するための、RF、マイクロ波、およびIR等を介した1つ以上の無線インターフェースまたはポートを含んでもよい。いくつかの実装では、全ての通信は、有線であってもよい一方、他の実装では、全ての通信は、光ファイバを除き、無線であってもよい。
(問題およびソリューションの概要)
【0066】
光学システムが、仮想コンテンツを生成/レンダリングするとき、仮想コンテンツがレンダリングされるときのシステムの姿勢に関連し得る、ソース基準フレームを使用し得る。ARシステムでは、レンダリングされた仮想コンテンツは、実際の物理的オブジェクトと所定の関係を有し得る。例えば、
図3は、実際の物理的台312の上部に位置付けられる、仮想植木鉢310を含む、ARシナリオ300を図示する。ARシステムは、仮想植木鉢310が実際の台312の上部に静置しているかのように現れるように、実際の台312の場所が既知である、ソース基準フレームに基づいて、仮想植木鉢310をレンダリングした。ARシステムは、第1の時間において、ソース基準フレームを使用して、仮想植木鉢310をレンダリングし、第1の時間の後の第2の時間において、レンダリングされた仮想植木鉢310を出力基準フレームを使用して表示/投影してもよい。ソース基準フレームおよび出力基準フレームが、同一である場合、仮想植木鉢310は、例えば、
図3に図示されるように、意図された場所(例えば、実際の物理的台312の上部)に現れるであろう。
【0067】
しかしながら、基準のフレームが、仮想植木鉢310がレンダリングされる第1の時間から、レンダリングされた仮想植木鉢310が表示/投影される第2の時間に変化する場合(例えば、ユーザ頭部移動に伴って)、ソース基準フレームと出力基準フレームとの間の不整合/差異は、視覚的アーチファクト/異常/グリッチをもたらし得る。例えば、
図4は、実際の物理的台412の上部に位置付けられるようにレンダリングされた仮想植木鉢410を含む、ARシナリオ400を示す。しかしながら、ARシステムは、仮想植木鉢410がレンダリングされた後であるが、表示/投影される前に、(例えば、右への頭部回転によって)右に移動されたため、仮想植木鉢410は、その意図される位置410’(想像線で示される)の右に表示される。したがって、仮想植木鉢410は、実際の物理的台412の右の空中に浮いているように現れる。本アーチファクトは、仮想植木鉢が次のソース基準フレーム内に再レンダリングされ、次の出力基準フレーム内に表示されると是正され得る(ARシステム運動が中止すると仮定して)。しかしながら、アーチファクトは、依然として、一部のユーザには可視であって、仮想植木鉢410は、予期しない位置に一時的にジャンプすることによって、グリッチとして現れるであろう。本グリッチおよびそのような他のものは、ARシナリオの連続性の錯覚に悪影響を及ぼし得る。
【0068】
いくつかの光学システムは、レンダリングされた仮想コンテンツの基準のフレームを、仮想コンテンツが生成されたソース基準フレームから、仮想コンテンツが表示されるであろう出力基準フレームにワーピングまたは変換する、ワーピングシステムを含んでもよい。
図4に描写される実施例では、ARシステムは、出力基準フレームおよび/または姿勢を検出および/または予測することができる(例えば、IMUまたは眼追跡を使用して)。ARシステムは、次いで、ソース基準フレームからのレンダリングされた仮想コンテンツを出力基準フレーム内のワーピングされた仮想コンテンツにワーピングまたは変換することができる。
【0069】
図5は、いくつかの実施形態による、頭部回転を補正するための仮想コンテンツのワーピング(「回転ワーピング」)を図式的に図示する。光線510によって表されるソース基準フレーム(レンダリング姿勢)におけるレンダリングされた仮想コンテンツ512は、光線510’によって表される出力基準フレーム(推定される姿勢)におけるワーピングされた仮想コンテンツ512’にワーピングされる。
図5に描写されるワーピングは、右への頭部回転を表し得る。レンダリングされた仮想コンテンツ512が、ソースX、Y場所に配置される間、ワーピングされた仮想コンテンツ512’は、(定常基準フレーム内の)出力X’、Y’場所に変換される。しかしながら、仮想コンテンツ512のレンダリングとワーピングされた仮想コンテンツ512’の表示との間のユーザの頭部およびFOVの移動(例えば、右回転)に起因して、ワーピングされた仮想コンテンツ512’は、光線510によって表されるソース基準フレーム(レンダリング姿勢)に対するレンダリングされた仮想コンテンツ512の位置/配向と同一である光線510’によって表される、ディスプレイ基準フレーム(姿勢)に対する位置/配向に表示される。
図5に描写されるワーピングは、レンダリングされた仮想コンテンツ512がレンダリング姿勢に表示されるかのように現れるであろうため、ディスプレイ姿勢に表示されるワーピングされた仮想コンテンツ512’をもたらす。
【0070】
図6-9は、いくつかの実施形態による、頭部位置変化を補正するための仮想コンテンツのワーピング(「位置ワーピング」)を図式的に図示する。レンダリング姿勢からレンダリングされた仮想コンテンツ610、612は、ワーピングされ、ディスプレイ姿勢におけるワーピングされた仮想コンテンツ610’、612’を生成する。レンダリング姿勢からディスプレイ姿勢へのFOV変化は、位置変化(すなわち、随意の回転に加え、6自由度のうちのいくつかに沿った移動)である。
【0071】
図6は、いくつかの実施形態による、位置ワーピングを描写する。例えば、ARシステムは、全てのソースサブ部分をワーピングし、3-Dシナリオをレンダリングされた仮想コンテンツ内に形成し得る。例えば、チェスの駒610および立方体612を形成するプリミティブは、ワーピングされたチェスの駒610’およびワーピングされた立方体612’にワーピングされてもよい。チェスの駒610および立方体612は、
図6において想像線で示され、それらがソース基準フレーム(すなわち、レンダリングFOV)内にあって、表示されないであろうことを示す。代わりに、出力基準フレーム(すなわち、位置変化後のディスプレイFOV)内のワーピングされたチェスの駒610’およびワーピングされた立方体612’(実線で示される)が、表示されるであろう。
【0072】
いくつかのワーピングシステム/方法はまた、全てのサブ部分(例えば、ワーピングされたチェスの駒610’およびワーピングされた立方体612’を形成する各プリミティブ)を深度試験し、深度データを生成する。深度試験後、ARシステムは、全てのワーピングされたサブ部分(例えば、プリミティブ)およびソース基準フレーム内のその相対的深度を記憶する(例えば、リスト内に)。ワーピングされた仮想コンテンツは、競合するワーピングされた仮想データの全てのインスタンスを含む、出力仮想コンテンツ内の各X、Y位置(例えば、ピクセル)における全ての明度/色のリストとして記憶されてもよい。(下参照記)。
【0073】
ワーピングシステムは、次いで、記憶されたワーピングされたサブ部分および相対的深度(例えば、リスト)の各X、Yの位置における全ての競合する仮想データを解決する。例えば、
図7に図示されるように、3-Dシナリオの2つ以上の異なるサブ部分(例えば、チェスの駒610および立方体612)が、出力基準フレームにワーピングされると(例えば、ワーピングされたチェスの駒610’’およびワーピングされた立方体612’’)、これらのサブ部分の一部は、最終ディスプレイ画像の同一ピクセルの中にワーピング/投影され得る(すなわち、割り当てられる)。例えば、
図7における面積614’’は、ワーピングされたチェスの駒610’’およびワーピングされた立方体612’’の「競合する」部分を表す。ワーピングシステムは、出力仮想コンテンツを生成するとき、ワーピングされた仮想コンテンツのこれらの競合する部分を解決/解消する。
【0074】
いくつかの実施形態では、ワーピングされたチェスの駒610’’およびワーピングされた立方体612’’(例えば、第1および第2の仮想コンテンツ)の個別のピクセルが、ディスプレイの同一ピクセル(すなわち、衝突するピクセル)上に表示されるであろう場合、ワーピングシステムは、個別の衝突/競合するピクセルに対応する記憶された深度データを比較してもよい。出力基準フレーム内の視認場所により近い衝突するピクセル(例えば、ワーピングされた仮想コンテンツ)が、表示される(コンテンツは不透明であると仮定する)。出力基準フレーム内の視認場所に最も近い衝突するピクセルは、最終ディスプレイ画像を生成するために使用される。残りの衝突するピクセルは、破棄される。
【0075】
図8に示される1つのインスタンスでは、ワーピングされたチェスの駒610’’’は、ワーピングされた立方体612’’’よりユーザに近い。したがって、ワーピングされたチェスの駒610’’’およびワーピングされた立方体612’’’のピクセルが衝突するとき、ワーピングされたチェスの駒610’’’のピクセルが、出力コンテンツに表示される。
図9に示される別のインスタンスでは、ワーピングされた立方体612’’’’は、ワーピングされたチェスの駒610’’’’よりユーザに近い。したがって、ワーピングされたチェスの駒610’’’’およびワーピングされた立方体612’’’’のピクセルが衝突するとき、ワーピングされた立方体612’’’’のピクセルが、出力コンテンツに表示される。いくつかのワーピングシステムは、ソース基準フレーム内の深度データを生成するため、深度比較は、複数の変換を伴い得、直接比較より複雑であり得る。
【0076】
ワーピング方法の種々のステップは、米国実用出願第15/924,011号(その内容は、参照することによって上記においてすでに組み込まれている)に説明されるように、2つの工程または単一工程において実施されることができる。位置ワーピングシステム/方法(ワーピング、深度試験、深度比較、合成等)は、比較的に算出上高価であって(プロセッサ/メモリ関連システム限界をもたらす)、比較的に時間がかかり得る(システム待ち時間をもたらす)。故に、いくつかのワーピング方法は、回転ワーピングに焦点を当てる。しかしながら、回転ワーピングは、光学軸に直交する側方ユーザFOV移動等の種々のユーザFOV移動に伴って、種々のアーチファクト(下記に詳細に説明される、ディスオクルージョン、ジッタ、スミア)をもたらし得る。
【0077】
これらの限界に対処するために、本明細書に説明されるシステム/方法は、ユーザFOVが(例えば、光学軸に直交して側方に)移動されるとき、仮想コンテンツをワーピングするための種々の実施形態を含む。いくつかの実施形態は、側方ユーザFOV移動を参照して説明されるが、これらの実施形態は、他のタイプのユーザFOV移動から生じるアーチファクトにも対処する。これは、表示のためにワーピングされなければならない、3-Dシナリオの複雑性に伴って増加する、要求される算出費用および時間を最小限にする。故に、開示される実施形態は、いくつかの複合現実システム等のリアルタイムシステムを促進し、これは、サイズ、電力、熱、および他の処理関連パラメータを許容限度内に維持する。
(例証的グラフィック処理ユニット)
【0078】
図10は、いくつかの実施形態による、レンダリングされた仮想コンテンツを出力/ディスプレイ基準フレームにワーピングするための例示的グラフィック処理ユニット(GPU)252を図式的に描写する。GPU252は、入力メモリ1010を含み、ワーピングされるためのレンダリングされた仮想コンテンツを記憶する。いくつかの実施形態では、仮想コンテンツは、プリミティブ(例えば、
図11では、三角形1100)として記憶される。GPU252はまた、コマンドプロセッサ1012を含み、これは、(1)仮想コンテンツを入力メモリ1010から受信し/読み取り、(2)仮想コンテンツをスケジューリングユニットに分割し、(3)並列処理のために、スケジューリングユニットをレンダリングパイプラインに沿って波またはワープ内で送信する。GPU252はさらに、スケジューラ1014を含み、(1)スケジューリングユニットをコマンドプロセッサ1012から受信し、(2)コマンドプロセッサ1012からの「新しい作業」またはレンダリングパイプライン(下記に説明される)内の下流から戻る「古い作業」がレンダリングパイプラインを辿って任意の特定の時間に送信されるべきであるかどうかを決定する。事実上、スケジューラ1014は、GPU252が種々の入力データを処理するシーケンスを決定する。
【0079】
GPU252は、1つ以上のGPUコア1016を含み、各GPUコア1016は、スケジューリングユニットを並行して処理するために、いくつかの並行実行可能コア/ユニット(「シェーダコア」)1018を有する。コマンドプロセッサ1012は、仮想コンテンツをシェーダコア1018の数と等しい数(例えば、32)に分割する。GPU252はまた、「先入れ先出し」(「FIFO」)メモリ1020を含み、GPUコア1016からの出力を受信する。FIFOメモリ1020から、出力は、GPUコア1016によるレンダリングパイプラインの付加的処理の中への挿入のために、スケジューラ1014に「古い作業」として戻るようにルーティングされてもよい。
【0080】
GPU252はさらに、FIFOメモリ1020からの出力を受信し、表示のために、出力をラスタ化する、ラスタ演算ユニット(「ROP」)1022を含む。例えば、仮想コンテンツのプリミティブは、三角形の頂点の座標として記憶されてもよい。GPUコア1016による処理(その間、
図11の三角形1100の3つの頂点1111、1112、1114がワーピングされ得る)後、ROP1022は、3つの頂点1111、1112、1114によって画定された三角形1100の内側のピクセル1116を決定し、仮想コンテンツ内のそれらのピクセル1116を充填する。ROP1022はまた、深度試験を仮想コンテンツ上で実施してもよい。
【0081】
GPU252はまた、ROP1022からのワーピングされた仮想コンテンツを一時的に記憶するためのバッファメモリ1024を含む。バッファメモリ1024内のワーピングされた仮想コンテンツは、出力基準フレーム内の視野の複数のY位置における明度/色および深度情報を含んでもよい。バッファメモリ1024からの出力は、GPUコア1016によるレンダリングパイプラインの付加的処理の中への挿入のために、またはディスプレイシステムの対応するピクセル内における表示のために、スケジューラ1014に「古い作業」として戻るようにルーティングされてもよい。GPUコア1016は、最初に、三角形1100の頂点1111、1112、1114を処理し、次いで、三角形1100の内側のピクセル1116を処理する。入力メモリ1011内の仮想コンテンツの全てのフラグメントが、ワーピングおよび深度試験されると(必要な場合)、バッファメモリ1024は、視野を出力基準フレーム内に表示するために必要とされる明度/色および深度情報の全てを含むであろう。
(側方偏移のための仮想コンテンツワーピングシステムおよび方法)
【0082】
頭部姿勢変化を伴わない画像処理では、GPU252による処理の結果は、個別のX、Y値における(例えば、各ピクセルにおける)色/明度値および深度値である。しかしながら、側方頭部姿勢変化(すなわち、光学軸に直交するディスプレイFOVの側方移動)を伴うと、仮想コンテンツが生成されたソース基準フレームと異なる、出力基準フレーム内の視認場所から視認される仮想コンテンツの異なる部分は、種々のアーチファクトを含み得る。上記に説明されるように、側方頭部姿勢変化後の側方移動アーチファクトを補正するための位置ワーピングは、算出上高価かつ低速であって、複合現実システム等のポータブルディスプレイシステムとの併用を困難にし得る。さらに、側方頭部姿勢変化に伴う回転ワーピングは、種々の他のアーチファクトをもたらし得る。
【0083】
図12-14は、いくつかの実施形態による、側方FOV移動に応答した位置ワーピングを描写する。
図12は、レンダリングされた仮想オブジェクト(チェスの駒1210および立方体1212)を描写する。
【0084】
図13は、左側方FOV移動後のレンダリングされた仮想オブジェクト1210、1212およびワーピングされた仮想オブジェクト1210’、1212’を描写する。レンダリングされた仮想オブジェクト1210、1212は、
図13では、想像線で示され、ソース基準フレーム内で生成され、ディスプレイ基準フレーム内にない、チェスの駒1210および立方体1212が、表示されないことを示す。ワーピングシステムが、チェスの駒1210および立方体1212をワーピングした後のみ、ワーピングされたチェスの駒1210’およびワーピングされた立方体1212’(実線で示される)が、表示される。
【0085】
図14は、レンダリングされた仮想オブジェクト1210、1212を上面図から図式的に描写し、レンダリングされた仮想オブジェクト1210、1212の深度の差異を示す。チェスの駒1210は、深度D10(すなわち、チェスの駒1210の中心の深度)において、視認者により近くなり、立方体1212は、深度D12(すなわち、立方体1212の中心の深度)において視認者からより遠くなる。その結果、同一左側方FOV移動に伴って、より近いオブジェクト(チェスの駒1210)は、より遠いオブジェクト(立方体1212)と比較して、さらに右に移動するように現れる。本差異は、ワーピングされたチェスの駒1210’およびワーピングされた立方体1212’の異なる右偏移によって、
図13に図示される。
図13に描写される右偏移における差異は、本原理/影響を図示するように選択され、直接、
図14に描写される深度差異と相関されない。大深度差異を用いることで、より近いオブジェクトは、右に偏移するように現れることができる一方、より遠いオブジェクトは、定常であるように現れることができる。
【0086】
いくつかの実施形態では、各レンダリングされた仮想オブジェクト1210、1212の各ピクセルを深度試験し、その深度に基づいて、各ピクセルをワーピングすることは、そのような位置ワーピングがポータブルシステム内で実装するために非実践的であり得るほど、算出上高価であり得る。
(ディスオクルージョンアーチファクト)
【0087】
図15-19は、いくつかの実施形態による、位置ワーピングに伴う、ディスオクルージョンアーチファクトを描写する。
図15は、レンダリング姿勢からのチェスの駒1510と立方体1512との間の重複1514の面積を伴う、レンダリングされた仮想オブジェクト(チェスの駒1510および立方体1512)を描写する。
図16は、チェスの駒1510が立方体1512より視認者に近いため、重複面積1514に対応する立方体1512の部分がレンダリングされず、重複面積1514に対応するチェスの駒1510の部分がレンダリングされることを示す。
【0088】
図17は、
図13におけるように、左への側方ユーザ頭部移動に伴って、仮想オブジェクト(チェスの駒1510および立方体1512)が、右にワーピングされ、ワーピングされた仮想オブジェクト(チェスの駒1510’およびワーピングされた立方体1512’)を生成することを図式的に示す。
図13および14に関して解説されるように、チェスの駒1510は、立方体1512より視認者に近いため、チェスの駒1510は、左への側方ユーザ頭部移動に応答して、立方体1512よりさらに右にワーピングされるであろう。チェスの駒1510’およびワーピングされた立方体1512’の本差動ワーピングは、重複面積1514に対応する立方体1512の部分を露出または「ディスオクルード」させる。
図16に戻って参照すると、重複面積1514に対応する立方体1512の部分は、レンダリングされなかった。故に、以前にオクルードされた重複面積1514’に対応するワーピングされた立方体1512’のここでディスオクルードされている部分は、ソース仮想オブジェクト(すなわち、立方体1512)が重複面積1514を含んでいなかったため、表示されることができない。
【0089】
図18は、任意の非レンダリング部分を含まない、
図17に説明される位置ワーピングを示す。
図18は、ワーピングされた立方体1512’が、以前にオクルードされていた部分(
図17における1514’参照)を含まないことを示す。
図19は、側方ユーザ頭部移動が
図18に描写されるフレームで停止すると仮定してレンダリングおよび表示される、次のフレームを描写する。
図19に示されるように、ユーザFOV移動を伴わない次のレンダリングに伴って、新しくレンダリングされたチェスの駒1510’’および立方体1512’’は、
図17におけるように、実質的に同一位置に留まる。しかしながら、新しくレンダリングされた立方体1512’’は、以前にオクルードされている部分(
図17における1514’参照)を含み、それによって、完全立方体1512’’を形成する。
【0090】
図18および19の比較は、仮想オブジェクト(
図17における1514’参照)の以前にオクルードされている部分が、ワーピングが、
図18に示されるように、以前にディスオクルードされている部分を露出させた後、最初は表示されない、ディスオクルージョンアーチファクトを示す。次いで、以前にオクルードされている部分は、仮想オブジェクトが、
図19に示されるように、次にレンダリングおよび表示されると、現れる。
図17-19に描写されるディスオクルージョンアーチファクトは、消失し、現れる、仮想オブジェクト(立方体)の有意な部分を含むが、他の実施形態では、深度の差異、重複の量、FOV移動の速さを含む、多くの要因に応じて、ディスオクルージョンアーチファクトは、中実仮想オブジェクト内の亀裂または他の欠測部分として露見し得る。露見にかかわらず、ディスオクルージョンアーチファクトは、ユーザ体験に影響を及ぼし、複合現実シナリオの現実性を低減させ得る。
図15-19に描写される実施形態は、依然として、位置ワーピングを利用するため、ディスオクルージョンアーチファクトはまた、位置ワーピングの算出費用を伴う。
(スミアアーチファクト)
【0091】
図20および21は、いくつかの実施形態による、ワーピングに伴う、スミアアーチファクトを描写する。上記に説明されるディスオクルージョンアーチファクトを最小限にするために、いくつかのワーピングシステム/方法は、ワーピングによってディスオクルードされるとき、遠仮想オブジェクトを伸展させ、差動的にワーピングされた仮想オブジェクト間の空間を埋める。
図20は、左への側方ユーザ頭部移動に応答して、ワーピングされた仮想オブジェクト(ワーピングされたチェスの駒2010’およびワーピングされた立方体2012’)を生成するための仮想オブジェクト(チェスの駒2010および立方体2012)の右へのそのようなワーピングを示す。立方体2012の非オクルード部分は、伸展され、充填セクション2016をワーピングされたチェスの駒2010’とワーピングされた立方体2012’との間の空間内に形成する。
【0092】
図21は、ユーザFOV移動を伴わない、チェスの駒2010’’および立方体2012’’の次のレンダリングを描写する。次のレンダリングを用いることで、新しくレンダリングされたチェスの駒2010’’および立方体2012’’は、
図20におけるように、実質的に同一位置に留まる。しかしながら、新しくレンダリングされた立方体2012’’は、完全立方体(例えば、
図17からの立方体1514)に基づき、
図20における充填セクション2016を含まない。さらに、新しくレンダリングされた立方体2012’’の部分と以前にレンダリングされた立方体2012の異なる部分に基づいた充填セクション2016との間の特性における任意の差異部分が、
図20および21を比較すると、ユーザに明白となるであろう。そのような特性は、色、テクスチャ、および同等物を含み得る。新しくレンダリングされた立方体2012’’の部分と充填セクション2016との間の特性における本差異は、充填セクション2016が、以前にレンダリングされた立方体2012/2012’の異なる部分のスミアとして現れ得るため、スミアアーチファクトと称され得る。スミアアーチファクトもまた、ユーザ体験に影響を及ぼし、複合現実シナリオの現実性を低減させ得る。
図20-21に描写される実施形態は、依然として、位置ワーピングを利用するため、スミアアーチファクトはまた、位置ワーピングの算出費用を伴う。
(単一深度ワーピングおよびジッタアーチファクト)
【0093】
図22-27は、2つのタイプの実施形態(
図22-24および25-27)による、単一深度ワーピングを描写する。
図22-24は、いくつかの実施形態による、単一深度ワーピングを描写する。
図22は、レンダリングされた仮想オブジェクト、すなわち、比較的により近い深度におけるチェスの駒2210と、比較的により遠い深度における立方体2212とを描写する。
【0094】
図23は、単一深度を使用してレンダリングされた仮想オブジェクト2210、2212をワーピングするステップを描写する。単一深度を使用することによって、ワーピングされた仮想オブジェクト(ワーピングされたチェスの駒2210’とワーピングされた立方体2212’)間の相対的空間関係は、レンダリングされた仮想オブジェクト2210、2212間の相対的空間関係と実質的に同一である。ワーピングされた仮想オブジェクト2210’、2212’間の実質的に同一相対的空間関係の維持は、立方体2212のオクルードされる部分が、立方体2212’’全体が
図24において再レンダリングされるまで、ディスオクルードされないため、ディスオクルージョンアーチファクトを最小限にする。
【0095】
図22-24に描写される実施形態における、レンダリングされた仮想オブジェクト2210、2212をワーピングするために使用される単一深度は、FOV内の任意の仮想オブジェクト(すなわち、チェスの駒2210)の最近深度である。本最近深度は、レンダリングされた仮想オブジェクト2210、2212に対応するデータ内に含まれる。したがって、深度試験は、要求されない。これは、本単一深度ワーピング方法の算出負荷を低減させる。
【0096】
図23におけるワーピングされた仮想オブジェクト2210’、2212’と
図24における再レンダリングされた仮想オブジェクト2210’’、2212’’(すなわち、ユーザFOV移動を伴わない、次のレンダリングされたフレーム)の比較は、ワーピングされたチェスの駒2210’および再レンダリングされたチェスの駒2210’’が、チェスの駒2210をワーピングするために使用される深度がチェスの駒2210の近深度D10であるため、実質的に同一場所にあることを示す。他方では、ワーピングされた立方体2212’および再レンダリングされた立方体2212’’は、立方体2212をワーピングするために使用される深度D10が立方体2212の実際の遠深度D12未満であるため、異なる位置にある。これは、左側方FOV移動に応答して、ワーピングされた立方体2212’を右に過度に偏移させる。故に、
図23におけるワーピングされた仮想オブジェクト2210’、2212’に続いて、
図24における再レンダリングされた仮想オブジェクト2210’’、2212’’を順次表示することは、レンダリングされた立方体2212を、右に移動し、次いで、左に跳ね返るように現れさせる。本「ジッタアーチファクト」(または「揺れアーチファクト」)は、持続FOV移動によって悪化され、概して、より遠いオブジェクト(すなわち、レンダリングされた立方体2212)または背景におけるオブジェクトに関して一連の方向変化をもたらす。
【0097】
図25-27は、いくつかの他の実施形態による、単一深度ワーピングを描写する。
図25は、レンダリングされた仮想オブジェクト、すなわち、比較的により近い深度におけるチェスの駒2510と、比較的により遠い深度における立方体2512とを描写する。
【0098】
図26は、単一深度を使用して、レンダリングされた仮想オブジェクト2510、2512をワーピングし、ワーピングされた仮想オブジェクト(ワーピングされたチェスの駒2510’とワーピングされた立方体2512’)間の実質的に同一相対的空間関係を維持するステップを描写する。上記に解説されるように、ワーピングされた仮想オブジェクト2510’、2512’間の本質的に同一の相対的間隔を維持することは、立方体2512のオクルードされる部分が、立方体2512’’全体が
図27において再レンダリングされるまで、ディスオクルードされないため、ディスオクルージョンアーチファクトを最小限にする。
【0099】
図25-27に描写される実施形態における、レンダリングされた仮想オブジェクト2510、2512をワーピングするために使用される単一深度は、FOV内の任意の仮想オブジェクト(すなわち、立方体2512)の最遠深度である。本最遠深度は、レンダリングされた仮想オブジェクト2510、2512に対応するデータ内に含まれる。したがって、深度試験は、要求されない。これは、本単一深度ワーピング方法の算出負荷を低減させる。
【0100】
図26におけるワーピングされた仮想オブジェクト2510’、2512’と
図27における再レンダリングされた仮想オブジェクト2510’’、2512’’(すなわち、ユーザFOV移動を伴わない、次のレンダリングされたフレーム)の比較は、ワーピングされた立方体2512’および再レンダリングされた立方体2512’’が、立方体2512をワーピングするために使用される深度が立方体2512の遠深度D12であるため、実質的に同一場所にあることを示す。他方では、ワーピングされたチェスの駒2510’および再レンダリングされたチェスの駒2510’’は、チェスの駒2510をワーピングするために使用される深度D12がチェスの駒2510の実際の近深度D10を上回るため、異なる位置にある。これは、左側方FOV移動に応答して、ワーピングされたチェスの駒2510’を右に過小偏移させる。故に、
図26におけるワーピングされた仮想オブジェクト2510’、2512’に続いて、
図27における再レンダリングされた仮想オブジェクト2510’’、2512’’を順次表示することは、レンダリングされたチェスの駒2510を、部分的に右に移動し、次いで、さらに右に移動し、立方体2512をディスオクルードするように現れさせる。本アーチファクトは、上記に説明され、
図22-24に示される、ジッタアーチファクトと比較して、典型的ユーザのための複合現実シナリオの現実性にあまり影響を及ぼさない。これは、方向変化に伴うジッタまたは揺れではなく、(全くではないにしても)遅れとして知覚される、
図25-27に描写されるアーチファクトにおける方向変化の欠如に起因し得る。
【0101】
FOV内の仮想オブジェクトの最遠および最近深度の両方を使用した単一距離ワーピングが、上記に説明されたが、FOV内の他の深度もまた、レンダリングされた仮想オブジェクトをワーピングするために使用されてもよい。例えば、いくつかの実施形態では、単一距離は、FOV内の最近および最遠オブジェクトの距離の代表値である。いくつかの実施形態では、単一距離は、FOV内の全てのオブジェクトの距離の平均値/代表値である。いくつかの実施形態では、単一距離は、FOV内の全てのオブジェクトの距離の中央値である。
(複数の離散深度ワーピング)
【0102】
図28-31は、いくつかの実施形態による、複数の深度ワーピングを描写する。
図28は、レンダリングされた仮想オブジェクト、すなわち、比較的により近い深度におけるチェスの駒2810と、比較的により遠い深度における立方体2812とを描写する。
【0103】
図29Aは、上面図からのレンダリングされた仮想オブジェクト2810、2812を描写し、レンダリングされた仮想オブジェクト2810、2812の深度の差異を示す。チェスの駒2810は、深度D10において視認者により近くなり、立方体2812は、深度D12において視認者からより遠くなる。
図29Aはまた、FOVが分割される、6つの離散深度スライス2814、2816、2818、2820、2822、2824を示す。いくつかの実施形態では、これらの離散深度スライス2814、2816、2818、2820、2822、2824は、VR/AR/MRシステムが仮想コンテンツを表示するように構成される、深度スライスに対応する。深度スライス2814、2816、2818、2820、2822、2824は、光学軸に沿って限界を有する。例えば、いくつかの実施形態による、深度スライスは、ユーザの眼から0.37m~1.5mに及び得る。いくつかの実施形態による、別の深度スライスは、ユーザの眼から1.5mを上回る全ての距離を含み得る。
【0104】
図29Aは、類似厚さを有する、6つの深度スライス2814、2816、2818、2820、2822、2824を描写するが、他の実施形態では、ユーザの眼により近い深度スライスは、ユーザがユーザに近い深度差異により敏感であるため、より薄い厚さを有する。例えば、
図29Bは、いくつかの他の実施形態による、6つの深度スライス2814’、2816’、2818’、2820’、2822’、2824’を描写する。
図29Bでは、各連続的により遠くなる深度スライス(例えば、2816’対2814’)は、より厚い厚さを有する。例えば、1mおよび2mにおけるオブジェクトは、離散深度スライス内に位置し得るが、5mおよび10mにおけるオブジェクトは、同一深度スライス内に位置し得る。いくつかの実施形態では、最遠深度スライス2824’は、無限遠まで延在する。種々の実施形態では、深度スライスの厚さは、線形または対数的に増加し得る(
図29Bに示されるように)。
【0105】
図29Aは、6つの深度スライス2814、2816、2818、2820、2822、2824を描写するが、他の実施形態では、FOVが分割される、深度スライスの数は、FOV内の仮想オブジェクトの数に対応し得る。例えば、FOV内に3つの仮想オブジェクトが存在する場合、FOVは、3つの深度スライスに分割されるであろう。
図29Aおよび29Bは、6つの深度スライスを含むが、他の実施形態では、深度スライスの数は、仮想シナリオおよび利用可能なシステムリソースに応じて、6つを上回るまたはそれ未満であることができる。
【0106】
図30は、レンダリングされた仮想オブジェクト2810、2812毎に、異なる深度を使用して、(
図29Aにおける)レンダリングされた仮想オブジェクト2810、2812をワーピングし、ワーピングされた仮想オブジェクト2810’、2812’をより正確に位置付けるステップを描写する。いくつかの実施形態では、比較的により近いチェスの駒2810をワーピングするために使用される距離は、チェスの駒2810を含有する、深度スライス2816の遠距離(「遠クリップ」)D16である。比較的により遠い立方体2812をワーピングするために使用される距離は、立方体2812の大部分を含有する、深度スライス2822の遠クリップD22である。他の実施形態では、オブジェクトをワーピングするために使用される距離は、仮想オブジェクトの全てまたは大部分または一部を含有する、深度スライスの中間距離または任意の他の距離であってもよい。
【0107】
図30におけるワーピングされた仮想オブジェクト2810’、2812’と
図31における再レンダリングされた仮想オブジェクト2810’’、2812’’(すなわち、ユーザFOV移動を伴わない、次のレンダリングされたフレーム)の比較は、
図28-31に描写される複数の離散深度ワーピングが、完全位置ワーピングと比較して、算出負荷を低減させ得るが、依然として、ディスオクルージョンアーチファクトを被りやすいことを示す。
【0108】
図29Aに示される仮想オブジェクト2810、2812は、いくつかの深度スライスによって分離されるが、他の実施形態では、仮想オブジェクトは、最小限のワーピングアーチファクトとともにワーピングされ得るように小さい距離によって分離されてもよい。例えば、いくつかの実施形態では、相互から0.1m未満離れたオブジェクト(例えば、1.5m対1.6m)は、複数の深度ワーピングをトリガしない。他の実施形態では、複数の深度ワーピングのための閾値は、ジオプタ単位で測定されることができる(例えば、1ジオプタを上回って離れたオブジェクトに関してのみ)。
(眼追跡に基づく単一深度ワーピング)
【0109】
図32-38は、いくつかの実施形態による、眼追跡に基づく、単一深度ワーピングを描写する。
図32は、レンダリングされた仮想オブジェクト、すなわち、比較的により近い深度におけるチェスの駒3210と、比較的により遠い深度における立方体3212とを描写する。
【0110】
図33は、上面図からのレンダリングされた仮想オブジェクト3210、3212を描写し、レンダリングされた仮想オブジェクト3210、3212の深度の差異を示す。チェスの駒3210は、深度D10において視認者により近くなり、立方体3212は、深度D12における視認者からより遠くなる。
図33はまた、ユーザの眼3226がチェスの駒3210の場所と一致する方向3228を追跡していることを示す。ユーザの眼3226の方向は、例えば、ARシステム200上のセンサ/カメラを使用して追跡されることができる。
【0111】
ユーザの眼3226の方向3228は、チェスの駒3210を追跡しているため、レンダリングされた仮想オブジェクト3210、3212の両方をワーピングするために使用される深度は、チェスの駒3210を含有する、深度スライス3216の遠クリップD16である。本ワーピングの結果は、
図34に示され、ワーピングされた仮想オブジェクト3210’、3212’は、より遠い立方体3212の深度D12よりも、より近いチェスの駒3210の深度D10に類似する、深度D16を使用して生成される。
【0112】
上記に解説されるように、
図34におけるワーピングされたチェスの駒3210’および
図35における再レンダリングされたチェスの駒3210’’(すなわち、ユーザFOV移動を伴わない、次のレンダリングされたフレーム)は、チェスの駒3210をワーピングするために使用される深度D16がチェスの駒3210の深度D10に近似するため、実質的に同一場所にある。他方では、ワーピングされた立方体3212’および再レンダリングされた立方体3212’’は、立方体3212をワーピングするために使用される深度D16が、立方体3212の実際の遠深度D12未満であるため、異なる位置にある。これは、左側方FOV移動に応答して、ワーピングされた立方体3212’を右に過度に偏移させる。故に、
図34におけるワーピングされた仮想オブジェクト3210’、3212’に続いて、
図35における再レンダリングされた仮想オブジェクト3210’’、3212’’を順次表示することは、レンダリングされた立方体3212を、右に移動し、次いで、左に跳ね返るように現れさせ、ジッタアーチファクトをもたらす。
【0113】
しかしながら、これらの実施形態は、システムがより近いオブジェクト(すなわち、チェスの駒3212)へのユーザの眼3226の方向3228を追跡しているため、全てのレンダリングされた仮想コンテンツをワーピングするための単一深度として深度D16を使用する。故に、ワーピングされた立方体3212’および再レンダリングされた立方体3212’’が、表示される間、ユーザの焦点は、立方体3212から離れる。ワーピングされた立方体3212’および再レンダリングされた立方体3212’’は、
図34および35では、破線で示され、ユーザの焦点が立方体3212から離れることを示す。その結果、
図34に描写されるワーピングは、ジッタアーチファクトを含む場合でも、そのアーチファクトの影響は、立方体3212から離れるユーザの焦点によって最小限にされる。立方体3212から離れるように指向されるユーザの焦点は、点線を使用してワーピングおよび再レンダリングされた立方体3212’、3212’’をレンダリングすることによって、
図34および35に描写される。他方では、ユーザの焦点は、チェスの駒3210に指向され、これは、ワーピングされたチェスの駒3210’により正確にワーピングされる。
【0114】
図36は、
図33に類似する、上面図からのレンダリングされた仮想オブジェクト3210、3212を描写する。
図36はまた、ユーザの眼3226’が、立方体3212の場所と一致する、方向3228’を追跡していることを示す。
【0115】
ユーザの眼3226’の方向3228’は、立方体3212を追跡しているため、レンダリングされた仮想オブジェクト3210、3212の両方をワーピングするために使用される深度は、立方体3212の大部分を含有する、深度スライス3222の遠クリップD22である。本ワーピングの結果は、
図37に示され、ワーピングされた仮想オブジェクト3210’’’、3212’’’は、チェスの駒3210の深度D10よりも、立方体3212の深度D12に類似する、深度D22を使用して生成される。
【0116】
上記に解説されるように、
図37におけるワーピングされた立方体3212’’’および
図38における再レンダリングされた立方体3212’’’’(すなわち、ユーザFOV移動を伴わない、次のレンダリングされたフレーム)は、立方体3212をワーピングするために使用される深度D22が立方体3212の遠深度D12に近似するため、実質的に同一場所にある。他方では、ワーピングされたチェスの駒3210’’’および再レンダリングされたチェスの駒3210’’’’は、チェスの駒3210をワーピングするために使用される深度D16がチェスの駒3210の実際の近深度D10未満であるため、異なる位置にある。これは、左側方FOV移動に応答して、ワーピングされたチェスの駒3210’’’を右に過小偏移させる。故に、
図37におけるワーピングされた仮想オブジェクト3210’’’、3212’’’に続いて、
図38における再レンダリングされた仮想オブジェクト3210’’’’、3212’’’’を順次表示することは、レンダリングされたチェスの駒3210を、右に部分的に移動し、次いで、さらに右に移動し、立方体3212をディスオクルードするように現れさせ、遅れアーチファクトをもたらす。
【0117】
しかしながら、これらの実施形態は、システムがより遠いオブジェクト(すなわち、立方体3212)へのユーザの眼3226’の方向3228’を追跡しているため、全てのレンダリングされた仮想コンテンツをワーピングするための単一深度として深度D22を使用する。故に、ワーピングされたチェスの駒3210’’’および再レンダリングされたチェスの駒3210’’’’が、表示される間、ユーザの焦点は、チェスの駒3210から離れる。ワーピングされたチェスの駒3210’’’および再レンダリングされたチェスの駒3210’’’’は、
図36および37では、破線で示され、ユーザの焦点がチェスの駒3210から離れることを示す。その結果、
図36に描写されるワーピングが、遅れアーチファクトを含む場合でも、そのアーチファクトの影響は、チェスの駒3210から離れるユーザの焦点によって最小限にされる。チェスの駒3210から離れるように指向されるユーザの焦点は、点線を使用してワーピングおよび再レンダリングされたチェスの駒3210’、3210’’をレンダリングすることによって、
図37および38に描写される。他方では、ユーザの焦点は、立方体3212に指向され、これは、ワーピングされた立方体3212’’’により正確にワーピングされる。
【0118】
ユーザの眼が追跡している仮想オブジェクトを含む、深度スライスの遠クリップを使用した単一深度ワーピングが、上記に説明されるが、眼追跡に基づく単一深度は、仮想オブジェクトと関連付けられる他の深度であることができる。これらは、仮想オブジェクトを含む深度スライスの近距離(「近クリップ」)または近クリップと遠クリップとの間の任意の距離を含む。
(メッシュベースのワーピング)
【0119】
図39-45は、いくつかの実施形態による、仮想コンテンツのメッシュを使用してワーピングし、例えば、算出負荷を低減させるステップを描写する。
図39は、上面図からのレンダリングされた仮想オブジェクト3910、3912を図式的に描写し、レンダリングされた仮想オブジェクト3910、3912の深度の差異を示す。チェスの駒3910は、深度D1において視認者により近くなり、立方体3912は、深度D2において視認者からより遠くなる。
図39はまた、レンダリングされた仮想オブジェクト3910、3912がそれぞれ、1つ以上のピクセル3914(
図11におけるプリミティブ三角形1100のピクセル1116参照)を含むことを示す。レンダリングされた仮想オブジェクト3910、3912はまた、1つ以上のプリミティブを含んでもよい。各レンダリングされた仮想オブジェクト3910、3912の各ピクセル3914をワーピングするステップは、算出上高価であり得る。
【0120】
図40は、レンダリングされた仮想オブジェクト3910、3912(
図39参照)から形成され、それに近似する、メッシュ3910’、3912’を図式的に描写する。メッシュ3910’、3912’は、個々のピクセル3914を含まず、これは、ワーピングのための算出複雑性を低減させ得る。メッシュは、グリッドを使用して、レンダリングされた仮想オブジェクト3910、3912から形成されることができる。さらに、メッシュ3910’、3912’は、
図41に示されるように、メッシュ3910’、3912’に近似する、頂点3916を含み、これはさらに、ワーピングの算出複雑性を低減させ得る。メッシュ3910’、3912’は、頂点3916から再構成されることができ、仮想オブジェクト3910、3912は、メッシュ3910’、3912’から再構成されることができる。しかしながら、簡略化および再構築プロセスは、
図42に示されるように、アーチファクトを再構成された仮想オブジェクト3918、3920の中に導入し得る。
【0121】
図43は、レンダリングされた仮想オブジェクト、すなわち、比較的により近い深度におけるチェスの駒3910と、比較的により遠い深度における立方体3912とを描写する。
図44は、メッシュベースのワーピングの結果(すなわち、再構成されたチェスの駒3918および再構成された立方体3920)を描写し、
図45は、再レンダリングされた仮想オブジェクトの次のフレーム(すなわち、ユーザFOV移動を伴わない、再レンダリングされたチェスの駒3910’’および再レンダリングされた立方体3912’’)を描写する。メッシュ3910’、3912’および/または頂点3916へのレンダリングされた仮想オブジェクト3910、3912の簡略化のため、簡略化された仮想オブジェクトは、過度の算出負荷を伴わずに、位置ワーピング技法を使用してワーピングされることができる。定期的に成形される立方体は、
図44および45の両方において類似するが、あまり定期的に成形されないチェスの駒は、
図44では、いくつかの再構築アーチファクトを有する。メッシュのサイズは、算出負荷を最小限にしながら、再構築アーチファクトを最適化するように調節されることができる。
【0122】
種々のワーピング技法が、個々に説明されているが、これらの技法は、本開示の範囲および精神から逸脱することなく、ワーピング有効性を改良するために、相互に組み合わせられることができる。
(システムアーキテクチャ概要)
【0123】
図46は、本開示の実施形態を実装するために好適な例証的コンピューティングシステム1300のブロック図である。コンピュータシステム1300は、プロセッサ1307、システムメモリ1308(例えば、RAM)、静的記憶デバイス1309(例えば、ROM)、ディスクドライブ1310(例えば、磁気または光学)、通信インターフェース1314(例えば、モデムまたはEthernet(登録商標)カード)、ディスプレイ1311(例えば、CRTまたはLCD)、入力デバイス1312(例えば、キーボード)、およびカーソル制御等のサブシステムおよびデバイスを相互接続する、情報を通信するためのバス1306または他の通信機構を含む。
【0124】
本開示の一実施形態によると、コンピュータシステム1300は、プロセッサ1307がシステムメモリ1308内に含有される1つ以上の命令の1つ以上のシーケンスを実行することによって、具体的動作を実施する。そのような命令は、静的記憶デバイス1309またはディスクドライブ1310等の別のコンピュータ可読/使用可能媒体からシステムメモリ1308の中に読み込まれてもよい。代替実施形態では、有線回路が、ソフトウェア命令の代わりに、またはそれと組み合わせて、本開示を実装するために使用されてもよい。したがって、本開示の実施形態は、ハードウェア回路および/またはソフトウェアの任意の具体的組み合わせに限定されない。一実施形態では、用語「論理」は、本開示の全部または一部を実装するために使用される、任意の組み合わせのソフトウェアまたはハードウェアを意味し得る。
【0125】
用語「コンピュータ可読媒体」または「コンピュータ使用可能媒体」は、本明細書で使用されるように、実行のための命令をプロセッサ1307に提供する際に関与する、任意の媒体を指す。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む、多くの形態をとり得る。不揮発性媒体は、例えば、ディスクドライブ1310等の光学または磁気ディスクを含む。揮発性媒体は、システムメモリ1308等の動的メモリを含む。
【0126】
一般的形態のコンピュータ可読媒体は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、RAM、PROM、EPROM、FLASH(登録商標)-EPROM(例えば、NANDフラッシュ、NORフラッシュ)、任意の他のメモリチップまたはカートリッジ、またはコンピュータが読み取り得る、任意の他の媒体を含む。
【0127】
本開示のある実施形態では、本開示を実践するための命令のシーケンスの実行は、単一コンピュータシステム1300によって実施される。本開示の他の実施形態によると、通信リンク1315(例えば、LAN、PTSN、または無線ネットワーク)によって結合される、2つ以上のコンピュータシステム1300が、相互に協調して、本開示を実践するために要求される命令のシーケンスを実施してもよい。
【0128】
コンピュータシステム1300は、通信リンク1315および通信インターフェース1314を通して、プログラム、例えば、アプリケーションコードを含む、メッセージ、データ、および命令を伝送および受信してもよい。受信されたプログラムコードは、プロセッサ1307によって、受信されるにつれて実行される、および/または後の実行のために、ディスクドライブ1310または他の不揮発性記憶装置内に記憶されてもよい。記憶媒体1331内のデータベース1332は、データインターフェース1333を介して、システム1300によってアクセス可能なデータを記憶するために使用されてもよい。
(仮想オブジェクト深度決定)
【0129】
仮想オブジェクトの深度は、その仮想オブジェクトを正確にワーピングするために必要とされる。しかしながら、いくつかの実施形態では、仮想オブジェクトの深度は、把握されていない。例えば、いくつかのアプリケーションは、(例えば、投影のための)仮想オブジェクトの画像のステレオ対のみを提供し、仮想オブジェクトの深度を提供しない。そのような仮想オブジェクトを正確にワーピングするために、方法が、システムリソースの需要を最小限にしながら、そのような仮想オブジェクトの深度を決定するために必要とされる。
【0130】
図47-53は、仮想オブジェクトの深度をその仮想オブジェクトのための画像のステレオ対から決定/推定するための方法を描写する。本方法は、アプリケーションが適切な視点(POV)を使用してステレオ対の構成要素の両方をレンダリングしたため、ステレオ対の第1の構成要素(例えば、左または右眼)が、ステレオ対の他の構成要素のための(例えば、右または左眼)完璧なワーピングであると仮定する。一般に、本方法は、ステレオ対の一方の構成要素(例えば、右眼)を「基準眼」として識別し、ステレオ対の第2の構成要素(例えば、左眼)を1つ以上の深度における第1の構成要素のPOVにワーピング/再投影する。次いで、本方法は、再投影された第2の構成要素と第1の構成要素を比較し、1つ以上の深度のそれぞれにおける再投影誤差を決定する。最小再投影誤差を伴う深度は、次いで、仮想オブジェクトの決定された/推定される深度と識別される。
【0131】
図53は、方法5310を図示する、フローチャートである。ステップ5312では、システム(例えば、VR/AR/MRシステム)は、1つ以上の深度において、仮想オブジェクトのステレオ対の第1の画像を仮想オブジェクトのステレオ対の第2の画像にわたって再投影し、1つ以上の組み合わせ画像を生成する。
【0132】
例示的組み合わせ画像は、
図50-52に示される。それらの図では、第2の基準画像5012は、定常のままであって、第1の試験画像は、第2の基準画像5112にわたって異なる深度5110、5110’、5110’’に再投影される。第1の試験画像を再投影するために使用される異なる深度のため、再投影される第1の試験画像5110、5110’、5110’’は、第2の基準画像5012に対して異なる位置にある。
【0133】
本方法で使用される深度の数は、(1)システムがリアルタイムで評価し得る最大数の深度および(2)視認者の眼間のピクセル内の最大不均衡の小さい方によって決定されてもよい。言い換えると、システムが、100個の異なる深度をリアルタイムで評価することが可能である場合でも、ユーザの眼間のピクセル内の最大距離均衡が、50個の異なる深度に対応する場合、50個の異なる深度が、仮想オブジェクトの深度を識別するための方法において使用されるであろう。いくつかの実施形態では、64個の異なる深度が、本方法において使用される。ユーザの眼間のピクセル内の最大不均衡は、瞳孔間距離、焦点距離、および/または近深度平面の関数であり得る。いくつかの実施形態では、各深度平面は、対応する再投影された第1の試験画像が約1ピクセル間隔だけ偏移するような均一空間である。
【0134】
図53を参照すると、ステップ5314では、本システムは、各深度における再投影誤差を測定する。再投影誤差は、第1の試験画像を再投影するために使用される深度平面が(例えば、第2の基準画像内の)仮想オブジェクトの深度に対して準最適不整合であるときに生じる。本システムは、各深度における再投影誤差を定量化する。
【0135】
ステップ5316では、本システムは、1つ以上の深度に対応する1つ以上の再投影誤差を分析し、最小再投影誤差を識別する。最小再投影誤差を伴う深度が、次いで、ステップ5318において、仮想オブジェクトの決定された/推定される深度と識別される。
【0136】
これらの分析をリアルタイムで実施するために、本システムは、1つ以上の深度平面のそれぞれにおける一連の評価を複数のフレーム(例えば、約10個のフレーム)に分割してもよい。分析はまた、(例えば、各寸法の25%における)画像フレームのダウンサンプリングされたバージョン上で実施され、算出負荷を低減させてもよい。方法5300は、本方法の正確度を改良するために、数回、繰り返されてもよい。
【0137】
図47-49は、上記に説明される方法5300を図式的に描写する。
図47は、3D仮想オブジェクト4710が、1つ以上の深度平面4712において、左眼4714から右眼4716に再投影されることを示す。
図48は、本方法が、仮想オブジェクト4710の深度と対応する、最良ワーピング平面4718(例えば、最小再投影誤差を伴う組み合わせ画像)を識別することを示す。
図49は、最良ワーピング平面4718およびその決定された/推定される深度が、本システムによって使用され、画像のステレオ対4714、4716を(例えば、移動から生じる)新しいPOV4720により正確にワーピングし得ることを示す。
(安定化平面深度決定)
【0138】
任意の所与のPOV移動量に関して、仮想オブジェクトが無限遠に接近するにつれて、POV移動に伴う仮想オブジェクトの見掛け移動は、ゼロに接近する。「安定化平面」は、特定のPOV移動を伴う仮想オブジェクトの見掛け移動が、見掛け移動がシステム視認者に検知不能/知覚不能となるほどゼロに接近する、(無限遠に接近する)深度として定義される。例えば、表示、処理、速さ等の観点からのシステム限界は、わずかな移動(例えば、1つまたは2つのピクセル)を典型的ユーザにとって検知不能/知覚不能にし得る。特定のPOV移動を伴う安定化平面の深度を識別することは、本システムが、特定のPOV移動未満のPOV移動を伴う安定化平面より遠い仮想オブジェクトのワーピングを行わないことを可能にする。本最適化は、処理、メモリ、通信チャネル等の観点からシステム需要を低減させる。
【0139】
図54に示されるように、いくつかの実施形態では、(ピクセルの観点からの)仮想オブジェクトの見掛け移動と(距離の逆数である、ジオプタの観点からの)安定化深度との間には、逆相関が存在する。
【0140】
図55は、安定化平面深度を決定する方法を描写する。ステップ5512では、システム(例えば、VR/AR/MRシステム)が、POV移動量を取得する。POV移動量は、ユーザ/視認者移動を示すシステム上のセンサから取得されてもよい、またはPOV移動量は、所定の最大限のPOV移動値であってもよい。
【0141】
ステップ5514では、本システムは、取得されるPOV移動に基づいて、安定化深度と見掛け仮想オブジェクト移動との間の関係を決定する。いくつかの実施形態では、
図54に示されるもの等のピクセル対ジオプタグラフが、生成されてもよい。
【0142】
ステップ5516では、本システムは、上記に説明されるように、ディスプレイシステムのための最大検知不能/知覚不能見掛け仮想オブジェクト移動を取得する。本値は、ピクセル単位で測定されてもよい。
【0143】
ステップ5518では、本システムは、最大検知不能/知覚不能見掛け仮想オブジェクト移動に対応する安定化深度を最小安定化深度として識別する。
【0144】
本最小安定化深度では、ステップ5512において取得されるPOV移動量までのPOV移動は、本システムの典型的ユーザにとって検知不能/知覚不能であろう。したがって、本システムは、POV移動がステップ5512において取得されるPOV移動を下回るままである限り、本最小安定化深度より遠い任意の仮想オブジェクトのワーピングを行わないように構成されてもよい。これらの仮想オブジェクトの前述のワーピングは、処理、メモリ、通信チャネル等の観点からシステム負荷を低減させることによって、システムの効率を改良する。
【0145】
本開示は、本主題のデバイスを使用して行なわれ得る方法を含む。本方法は、そのような好適なデバイスを提供するという行為を含んでもよい。そのような提供は、ユーザによって実施されてもよい。換言すれば、「提供する」行為は、単に、ユーザが、本主題の方法において必須デバイスを取得する、それにアクセスする、それに接近する、それを位置付ける、それを設定する、それをアクティブ化する、それに電源を入れる、または別様にそれを提供するように作用することを要求する。本明細書で記載される方法は、論理的に可能である記載された事象の任意の順番で、および事象の列挙された順番で実行されてもよい。
【0146】
本開示の例示的側面が、材料選択および製造に関する詳細とともに、上記で記載されている。本開示の他の詳細に関して、これらは、上述で参照された特許および出版物に関連して理解されるとともに、概して、当業者によって把握または理解され得る。同じことが、一般または理論的に採用されるような付加的な行為の観点から、本開示の方法ベースの側面に関して当てはまり得る。
【0147】
加えて、本開示は、種々の特徴を随意的に組み込む、いくつかの実施例を参照して説明されているが、本開示は、本開示の各変形例に関して考慮されるように説明または指示されるものに限定されるものではない。種々の変更が、説明される本開示に行われてもよく、本開示の真の精神および範囲から逸脱することなく、(本明細書に記載されるか、またはいくらか簡潔にするために含まれないかどうかにかかわらず)均等物が置換されてもよい。加えて、値の範囲が提供される場合、その範囲の上限と下限との間の全ての介在値、およびその規定範囲内の任意の他の規定または介在値が、本発明内に包含されることを理解されたい。
【0148】
また、説明される本発明の変形例の任意の特徴が、独立して、または本明細書で説明される特徴のうちのいずれか1つ以上のものと組み合わせて、記載および請求され得ることが考慮される。単数形の項目の言及は、複数の同一項目が存在する可能性を含む。より具体的には、本明細書で、およびそれに関連付けられる請求項で使用されるように、「a」、「an」、「said」、および「the」という単数形は、特に別様に記述されない限り、複数の指示対象を含む。換言すると、冠詞の使用は、上記の説明および本開示と関連付けられる請求項で、対象項目の「少なくとも1つ」を可能にする。さらに、そのような請求項は、任意の随意の要素を除外するように起草され得ることに留意されたい。したがって、この記述は、請求項要素の記載と関連する「だけ」、「のみ」、および同等物等のそのような排他的用語の使用、または「否定的」制限の使用のための先行詞としての機能を果たすことを目的としている。
【0149】
そのような排他的用語を使用することなく、本開示と関連付けられる請求項での「備える」という用語は、所与の数の要素がそのような請求項で列挙されるか、または特徴の追加をそのような請求項に記載される要素の性質を変換するものと見なすことができるかどうかにかかわらず、任意の付加的な要素の包含を可能にするものとする。本明細書で特に定義される場合を除いて、本明細書で使用される全ての技術および科学用語は、請求項の有効性を維持しながら、可能な限り広義の一般的に理解されている意味を与えられるものである。
【0150】
本発明の範疇は、提供される実施例および/または本明細書に限定されるものではなく、むしろ、本開示と関連付けられる請求項の範囲のみによって限定されるものとする。
【0151】
前述の明細書では、本開示は、その具体的実施形態を参照して説明された。しかしながら、種々の修正および変更が、本開示のより広義の精神および範囲から逸脱することなく、そこに行われてもよいことが明白であろう。例えば、前述のプロセスフローは、プロセスアクションの特定の順序を参照して説明される。しかしながら、説明されるプロセスアクションの多くの順序は、本開示の範囲または動作に影響を及ぼすことなく、変更されてもよい。明細書および図面は、故に、限定的意味ではなく、例証と見なされるべきである。