(57)【要約】仮想コンテンツをワーピングする方法は、ソース仮想コンテンツを変換することによってワーピングされた仮想コンテンツを生成することを含む。方法は、出力座標系におけるワーピングされた仮想コンテンツのＸ、Ｙ場所に対応するメモリ場所が既存の仮想コンテンツによって占有されているかどうかを決定することも含む。方法は、メモリ場所が占有されていない場合、ワーピングされた仮想コンテンツをメモリ場所に記憶することを含む。方法は、メモリ場所が占有されている場合、ワーピングされた仮想コンテンツおよび既存の仮想コンテンツのそれぞれのＺ場所を比較し、視認場所により近いＺ場所を伴う仮想コンテンツを識別することを含む。方法は、ワーピングされた仮想コンテンツのＺ場所が既存の仮想コンテンツの既存のＺ場所より視認場所に近い場合、ワーピングされた仮想コンテンツをＸ、Ｙ場所に対応するメモリ場所に記憶することも含む。
2020515954.tif 000002
【特許請求の範囲】
【請求項１】
仮想コンテンツをワーピングするコンピュータ実装方法であって、前記方法は、
ソース仮想コンテンツを変換することによって、ワーピングされた仮想コンテンツを生成することと、
出力座標系における前記ワーピングされた仮想コンテンツのＸ、Ｙ場所に対応するメモリ場所が既存の仮想コンテンツによって占有されているかどうかを決定することと、
前記メモリ場所が既存の仮想コンテンツによって占有されていない場合、前記ワーピングされた仮想コンテンツを前記メモリ場所に記憶することと、
前記メモリ場所が既存の仮想コンテンツによって占有されている場合、前記ワーピングされた仮想コンテンツと前記既存の仮想コンテンツとのそれぞれのＺ場所を比較し、前記出力座標系における視認場所により近いＺ場所を伴う仮想コンテンツを識別することと、
前記ワーピングされた仮想コンテンツのＺ場所が前記出力座標系における前記既存の仮想コンテンツの既存のＺ場所より前記視認場所に近い場合、前記ワーピングされた仮想コンテンツを前記Ｘ、Ｙ場所に対応する前記メモリ場所に記憶することと
を含む、方法。
【請求項２】
前記既存の仮想コンテンツの前記既存のＺが前記出力座標系における前記ワーピングされた仮想コンテンツの前記Ｚ場所より前記視認場所に近い場合、前記ワーピングされた仮想コンテンツを破棄することをさらに含む、請求項１に記載の方法。
【請求項３】
前記ワーピングされた仮想コンテンツを生成すること、前記メモリ場所が占有されているかどうかを決定すること、前記メモリ場所が占有されている場合、それぞれのＺ場所を比較すること、および前記ワーピングされた仮想コンテンツを前記メモリ内に記憶することの全ては、１回の工程において生じる、請求項１に記載の方法。
【請求項４】
前記仮想コンテンツを変換することは、
画像のピクセルをマッピングすることによって、ピクセルマップを生成することと、
前記ピクセルマップを複数のプリミティブに分割することと、
前記複数のプリミティブのうちの１つに前記出力座標系への変換を実施することと
を含み、
前記仮想コンテンツは、前記複数のプリミティブのうちの前記１つである、請求項１に記載の方法。
【請求項５】
前記複数のプリミティブの各々は、四辺形である、請求項４に記載の方法。
【請求項６】
前記複数のプリミティブの各々は、三角形である、請求項４に記載の方法。
【請求項７】
前記複数のプリミティブの各々は、ピクセルである、請求項４に記載の方法。
【請求項８】
前記変換は、フーリエ変換である、請求項４に記載の方法。
【請求項９】
前記出力座標系と異なるソース座標系を使用して、前記ソース仮想コンテンツを生成することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記仮想コンテンツは、前記ソース座標系から前記出力座標系に変換される、請求項９に記載の方法。
【請求項１１】
前記それぞれのＺ場所は、前記仮想コンテンツを生成するために使用されるソース座標系と異なる前記出力座標系におけるものである、請求項１に記載の方法。
【請求項１２】
前記仮想コンテンツは、画像情報およびソース座標系におけるソースＸ、Ｙ場所を備えている、請求項１に記載の方法。
【請求項１３】
前記画像情報は、明度を備えている、請求項１２に記載の方法。
【請求項１４】
前記画像情報は、色を備えている、請求項１２に記載の方法。
【請求項１５】
前記画像情報は、前記ソース座標系におけるＺ場所を備えている、請求項１２に記載の方法。
【請求項１６】
前記ワーピングされた仮想コンテンツは、前記出力座標系における出力Ｘ、Ｙ場所を備えている、請求項１２に記載のシステム。
【請求項１７】
仮想コンテンツをワーピングするためのシステムであって、前記システムは、
ソース仮想コンテンツを記憶するための入力メモリと、
前記ソース仮想コンテンツを複数のスケジューリングユニットに分割するためのコマンドプロセッサと、
処理順序を決定するためのスケジューラと、
ＧＰＵコアであって、前記ＧＰＵコアは、前記複数のスケジューリングユニットのうちの１つを処理し、ワーピングされた仮想コンテンツを生成するための複数のシェーダコアを有する、ＧＰＵコアと、
前記ＧＰＵコアからの出力を記憶するためのＦＩＦＯメモリと、
表示のために前記ワーピングされた仮想コンテンツをラスタ化するためのＲＯＰと、
前記ワーピングされた仮想コンテンツを一時的に記憶するためのバッファメモリと
を備え、
前記バッファメモリに一時的に記憶された既存の仮想コンテンツが前記ワーピングされた仮想コンテンツと競合するとき、前記ＲＯＰは、前記既存の仮想コンテンツと前記ワーピングされた仮想コンテンツとのそれぞれのＺ場所を比較する、システム。
【請求項１８】
前記ソース仮想コンテンツは、ソース座標系におけるソースＸ、Ｙ値を備えている、請求項１７に記載のシステム。
【請求項１９】
前記ワーピングされた仮想コンテンツは、出力座標系における出力Ｘ、Ｙ値を備えている、請求項１８に記載のシステム。
【請求項２０】
非一過性コンピュータ読み取り可能な媒体において具現化されるコンピュータプログラム製品であって、前記コンピュータ読み取り可能な媒体は、一連の命令を記憶しており、前記一連の命令は、プロセッサによって実行されると、仮想コンテンツをワーピングする方法を前記プロセッサに実行させ、前記方法は、
ソース仮想コンテンツを変換することによって、ワーピングされた仮想コンテンツを生成することと、
出力座標系における前記ワーピングされた仮想コンテンツのＸ、Ｙ場所に対応するメモリ場所が既存の仮想コンテンツによって占有されているかどうかを決定することと、
前記メモリ場所が既存の仮想コンテンツによって占有されていない場合、前記ワーピングされた仮想コンテンツを前記メモリ場所に記憶することと、
前記メモリ場所が既存の仮想コンテンツによって占有されている場合、前記ワーピングされた仮想コンテンツと前記既存の仮想コンテンツとのそれぞれのＺ場所を比較し、前記出力座標系における視認場所により近いＺ場所を伴う仮想コンテンツを識別することと、
前記ワーピングされた仮想コンテンツのＺ場所が前記出力座標系における前記既存の仮想コンテンツの既存のＺ場所より前記視認場所に近い場合、前記ワーピングされた仮想コンテンツを前記Ｘ、Ｙ場所に対応する前記メモリ場所に記憶することと
を含む、コンピュータプログラム製品。
【請求項２１】
前記コンピュータプログラミング製品は、ＡＰＩである、請求項２０に記載のコンピュータプログラム製品。
【請求項２２】
仮想コンテンツをワーピングするためのシステムであって、前記システムは、
ワーピングされた仮想コンテンツを生成するためのワーピングユニットであって、前記ワーピングユニットは、
姿勢推定器と、
変換ユニットと
を備えている、ワーピングユニットと、
混成ユニットを備えている合成ユニットと、
ワーピングされた仮想コンテンツを一時的に記憶するためのデータベースと
を備え、
前記データベースに一時的に記憶された既存の仮想コンテンツが前記ワーピングされた仮想コンテンツと競合するとき、前記合成ユニットの前記混成ユニットは、前記既存の仮想コンテンツと前記ワーピングされた仮想コンテンツとのそれぞれのＺ場所を比較する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、仮想コンテンツをワーピングすることを伴う複合現実システムと、それを使用して、ワーピングされた仮想コンテンツを含む複合現実体験を生成する方法とに関する。
【背景技術】
【０００２】
現代のコンピューティングおよびディスプレイ技術は、デジタル的に再現された画像またはその一部が、現実であるように見える様式、またはそのように知覚され得る様式でユーザに提示される、いわゆる「仮想現実」（ＶＲ）または「拡張現実」（ＡＲ）体験のための「複合現実」（ＭＲ）システムの開発を促進している。ＶＲシナリオは、典型的には、実際の実世界の視覚的入力に対する透明性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。ＡＲシナリオは、典型的には、ユーザの周囲の実際の世界の可視化の拡張として、デジタルまたは仮想画像情報の提示を伴う（すなわち、実世界視覚的入力に対して透明である）。故に、ＡＲシナリオは、実世界視覚的入力に対する透明性を伴うデジタルまたは仮想画像情報の提示を伴う。
【０００３】
種々の光学システムが、ＭＲ（ＶＲおよびＡＲ）シナリオを表示するために、画像を種々の深度において生成する。いくつかのそのような光学システムは、２０１４年１１月２７日に出願された米国実用特許出願第１４／５５５，５８５号（代理人整理番号第ＭＬ．２００１１．００）（その内容は、参照することによって、全体として記載される場合と同様、その全体として明示的かつ完全に本明細書に組み込まれる）に説明される。
【０００４】
ＭＲシステムは、典型的には、ユーザの頭部に少なくとも緩く結合され、したがって、ユーザの頭部が移動すると移動するウェアラブルディスプレイデバイス（例えば、頭部装着型ディスプレイ、ヘルメット搭載型ディスプレイ、またはスマートグラス）を採用する。ユーザの頭部運動が、ディスプレイデバイスによって検出される場合、表示されているデータは、頭部姿勢（すなわち、ユーザの頭部の向きおよび／または場所）の変化を考慮するために更新されることができる。
【０００５】
例として、頭部装着型ディスプレイデバイスを装着しているユーザが、仮想オブジェクトの仮想表現をディスプレイデバイス上で視認し、仮想オブジェクトが現れるエリアの周囲を歩き回る場合、仮想オブジェクトは、各視点のためにレンダリングされ、ユーザに実空間を占有するオブジェクトの周囲を歩き回っているという知覚を与えることができる。頭部装着型ディスプレイデバイスが、複数の仮想オブジェクトを提示するために使用される場合、頭部姿勢の測定は、場面をユーザの動的に変化する頭部姿勢に合致するようにレンダリングし、増加した没入感を提供するために使用されることができる。しかしながら、場面をレンダリングすることと、レンダリングされた場面を表示／投影することとの間には、不可避の遅れが存在する。
【０００６】
頭部装着型ディスプレイデバイスは、ＡＲが、実および仮想オブジェクトの両方の同時視認を提供することを可能にする。「光学シースルー」ディスプレイを用いることで、ユーザは、ディスプレイシステム内の透明（または半透明）要素を通して見ることによって、直接、環境内の実オブジェクトからの光を視認することができる。多くの場合、「コンバイナ」と称される透明要素が、ディスプレイからの光を実世界のユーザのビューの上に重ね、ディスプレイからの光は、仮想コンテンツの画像を環境内の実オブジェクトのシースルービューの上に投影する。カメラが、頭部装着型ディスプレイデバイス上に搭載され、ユーザによって視認されている場面の画像またはビデオを捕捉し得る。
【０００７】
ＭＲシステムにおけるもの等の現在の光学システムは、仮想コンテンツを光学的にレンダリングする。コンテンツは、それが空間内のそれぞれの位置に位置する実際の物理的オブジェクトに対応しないという点で「仮想」である。代わりに、仮想コンテンツは、ユーザの眼に導かれる光ビームによって刺激されるとき、頭部装着型ディスプレイデバイスのユーザの脳（例えば、視覚中枢）内のみに存在する。
【０００８】
ＭＲシステムは、写実的没入型のＭＲシナリオを提示するように試みる。しかしながら、仮想コンテンツの生成と生成された仮想コンテンツの表示との間の遅れ時間は、ＭＲシナリオでは、遅れ時間中の頭部移動と組み合わせられ、視覚的アーチファクト（例えば、
グリッチ）をもたらし得る。この問題は、遅れ時間中の高速頭部移動によって悪化される。
【０００９】
この問題に対処するために、いくつかの光学システムは、ソース仮想コンテンツをソースから受信するワーピングソフトウェア／システムを含み得る。ワーピングシステムは、次いで、ディスプレイシステム／視認者の座標系（「ディスプレイ座標系」）における表示のために、受信されたソース仮想コンテンツを「ワーピング」する（すなわち、座標系を変換する）。ワーピングまたは変換は、仮想コンテンツが提示される座標系を変化させる。このアプローチは、もともとレンダリングされた仮想コンテンツを採用し、仮想コンテンツが提示される方法をシフトさせ、仮想コンテンツを異なる視点から表示するように試みる。
【００１０】
いくつかのワーピングソフトウェア／システムは、ソース仮想コンテンツを２回の処理工程においてワーピングする。ワーピングシステムは、第１の工程において、ソース仮想コンテンツにおいて３−Ｄシナリオを形成するソースサブ部分の全てをワーピングする。ワーピングシステムは、この第１の工程において、深度試験も実施し、深度データを生成するが、深度試験は、ソース座標系において実施される。ワーピングシステムは、その第１の工程において、３−Ｄシナリオを形成するソースサブ部分の変換から生じる全てのワーピングされたサブ部分と、ソース座標系における相対的深度とを記憶する（例えば、リスト内に）。
【００１１】
ワーピング中、３−Ｄシナリオの２つ以上の異なるサブ部分が、最終ディスプレイ画像の同一ピクセルの中にワーピング／投影され得る（すなわち、割り当てられる）。これらのサブ部分は、「競合」し、ワーピングシステムは、現実的２−Ｄディスプレイ画像を生成するために、競合を解決しなければならない。
【００１２】
第１の工程後、ワーピングされたサブ部分のうちのいくつかは、最終２−Ｄディスプレイ画像のピクセルに対して競合し得る。ワーピングシステムは、次いで、第１の工程において記憶された中間ワーピングデータを通して、第２の工程を実施し、競合するワーピングされたサブ部分の深度試験データを分析し、出力座標系における視認場所に最も近いワーピングされたサブ部分を識別する。出力座標系における視認場所に最も近い競合するワーピングされたサブ部分は、最終２−Ｄディスプレイ画像を生成するために使用される。残りの競合するワーピングされたサブ部分は、破棄される。しかしながら、ソースからの仮想コンテンツをワーピングするためのこの多工程システムは、算出上高価であり（プロセッサ／メモリ関連システム限界をもたらす）、かつ時間がかかり得る（システム待ち時間をもたらす）。
【発明の概要】
【課題を解決するための手段】
【００１３】
一実施形態では、仮想コンテンツをワーピングするコンピュータ実装方法は、ソース仮想コンテンツを変換することによって、ワーピングされた仮想コンテンツを生成することを含む。方法は、出力座標系におけるワーピングされた仮想コンテンツのＸ、Ｙ場所に対応するメモリ場所が既存の仮想コンテンツによって占有されているかどうかを決定することも含む。方法は、既存の仮想コンテンツによってメモリ場所が占有されていない場合、ワーピングされた仮想コンテンツをメモリ場所に記憶することをさらに含む。さらに、方法は、メモリ場所が既存の仮想コンテンツによって占有されている場合、ワーピングされた仮想コンテンツおよび既存の仮想コンテンツのそれぞれのＺ場所を比較し、出力座標系における視認場所により近いＺ場所を伴う仮想コンテンツを識別することを含む。加えて、方法は、ワーピングされた仮想コンテンツのＺ場所が出力座標系における既存の仮想コンテンツの既存のＺ場所より視認場所に近い場合、ワーピングされた仮想コンテンツをＸ、Ｙ場所に対応するメモリ場所に記憶することを含む。
【００１４】
１つ以上の実施形態では、既存の仮想コンテンツの既存のＺが出力座標系におけるワーピングされた仮想コンテンツのＺ場所より視認場所に近い場合、ワーピングされた仮想コンテンツを破棄することも含む。ワーピングされた仮想コンテンツを生成すること、メモリ場所が占有されているかどうかを決定すること、メモリ場所が占有されている場合、それぞれのＺ場所を比較すること、およびワーピングされた仮想コンテンツをメモリ内に記憶することの全ては、１回の工程において生じ得る。
【００１５】
１つ以上の実施形態では、仮想コンテンツを変換することは、画像のピクセルをマッピングすることによって、ピクセルマップを生成することを含む。変換することは、ピクセルマップを複数のプリミティブに分割することも含み得る。変換することはさらに、複数のプリミティブのうちの１つの出力座標系への変換を実施することを含み得る。仮想コンテンツは、複数のプリミティブのうちの１つであり得る。複数のプリミティブの各々は、四辺形、三角形、および／またはピクセルであり得る。変換は、フーリエ変換であり得る。
【００１６】
１つ以上の実施形態では、方法は、出力座標系と異なるソース座標系を使用して、ソース仮想コンテンツを生成することも含む。仮想コンテンツは、ソース座標系から出力座標系に変換され得る。それぞれのＺ場所は、仮想コンテンツを生成するために使用されるソース座標系と異なる出力座標系におけるものであり得る。
【００１７】
１つ以上の実施形態では、仮想コンテンツは、画像情報およびソース座標系におけるソースＸ、Ｙ場所を含む。画像情報は、明度、色、および／またはソース座標系におけるＺ場所を含み得る。ワーピングされた仮想コンテンツは、出力座標系における出力Ｘ、Ｙ場所を含み得る。
【００１８】
別の実施形態では、仮想コンテンツをワーピングするためのシステムは、ソース仮想コンテンツを記憶するための入力メモリを含む。システムは、ソース仮想コンテンツを複数のスケジューリングユニットに分割するためのコマンドプロセッサも含む。システムは、処理順序を決定するためのスケジューラをさらに含む。さらに、システムは、ＧＰＵコアを含み、ＧＰＵコアは、複数のシェーダコアを有し、複数のシェーダコアは、複数のスケジューリングユニットのうちの１つを処理し、ワーピングされた仮想コンテンツを生成する。加えて、システムは、ＧＰＵコアからの出力を記憶するためのＦＩＦＯメモリを含む。システムは、表示のためにワーピングされた仮想コンテンツをラスタ化するためのＲＯＰも含む。システムは、ワーピングされた仮想コンテンツを一時的に記憶するためのバッファメモリをさらに含む。バッファメモリに一時的に記憶された既存の仮想コンテンツがワーピングされた仮想コンテンツと競合するとき、ＲＯＰは、既存の仮想コンテンツおよびワーピングされた仮想コンテンツのそれぞれのＺ場所を比較する。
【００１９】
１つ以上の実施形態では、ソース仮想コンテンツは、ソース座標系におけるソースＸ、Ｙ値を含む。ワーピングされた仮想コンテンツは、出力座標系における出力Ｘ、Ｙ値を含み得る。
【００２０】
さらに別の実施形態では、コンピュータプログラム製品は、非一過性コンピュータ読み取り可能な媒体内に具現化され、コンピュータ読み取り可能な媒体は、プロセッサによって実行されると、プロセッサに、仮想コンテンツをワーピングする方法を実行させる一連の命令を記憶している。方法は、ソース仮想コンテンツを変換することによって、ワーピングされた仮想コンテンツを生成することを含む。方法は、出力座標系におけるワーピングされた仮想コンテンツのＸ、Ｙ場所に対応するメモリ場所が既存の仮想コンテンツによって占有されているかどうかを決定することも含む。方法は、メモリ場所が既存の仮想コンテンツによって占有されていない場合、ワーピングされた仮想コンテンツをメモリ場所に記憶することをさらに含む。さらに、方法は、メモリ場所が既存の仮想コンテンツによって占有されている場合、ワーピングされた仮想コンテンツおよび既存の仮想コンテンツのそれぞれのＺ場所を比較し、出力座標系における視認場所により近いＺ場所を伴う仮想コンテンツを識別することを含む。加えて、方法は、ワーピングされた仮想コンテンツのＺ場所が出力座標系における既存の仮想コンテンツの既存のＺ場所より視認場所に近い場合、ワーピングされた仮想コンテンツをＸ、Ｙ場所に対応するメモリ場所に記憶することを含む。
【００２１】
１つ以上の実施形態では、コンピュータプログラミング製品は、ＡＰＩである。
【００２２】
さらに別の実施形態では、仮想コンテンツをワーピングするためのシステムは、ワーピングされた仮想コンテンツを生成するためのワーピングユニットを含む。ワーピングユニットは、姿勢推定器と、変換ユニットとを含む。システムは、混成ユニットを含む合成ユニットも含む。システムは、ワーピングされた仮想コンテンツを一時的に記憶するためのデータベースをさらに含む。データベースに一時的に記憶された既存の仮想コンテンツがワーピングされた仮想コンテンツと競合するとき、合成ユニットの混成ユニットは、既存の仮想コンテンツおよびワーピングされた仮想コンテンツのそれぞれのＺ場所を比較する。
【００２３】
本開示の追加のおよび他の目的、特徴、ならびに利点は、発明を実施するための形態、図、および請求項に説明される。
【００２４】
図面は、本開示の種々の実施形態の設計および利用可能性を図示する。図は、正確な縮尺で描かれておらず、類似構造または機能の要素は、図全体を通して同様の参照番号によって表されることに留意されたい。本開示の種々の実施形態の上で列挙される利点ならびに他の利点および目的を取得する方法をより深く理解するために、上で簡単に説明された本開示の発明を実施するための形態は、付随の図面に図示されるその具体的実施形態を参照することによって与えられるであろう。これらの図面は、本開示の典型的実施形態のみを描写し、したがって、その範囲の限定と見なされないことを理解されたい、本開示は、付随の図面の使用を通して、追加の具体性および詳細とともに記載ならびに説明されるであろう。
【図面の簡単な説明】
【００２５】
【図１】図１は、いくつかの実施形態による、ウェアラブルＡＲユーザデバイスを通した拡張現実（ＡＲ）のユーザのビューを描写する。
【図２Ａ】図２Ａ−２Ｄは、いくつかの実施形態による、ＡＲシステムおよびそのサブシステムを図式的に描写する。
【図２Ｂ】図２Ａ−２Ｄは、いくつかの実施形態による、ＡＲシステムおよびそのサブシステムを図式的に描写する。
【図２Ｃ】図２Ａ−２Ｄは、いくつかの実施形態による、ＡＲシステムおよびそのサブシステムを図式的に描写する。
【図２Ｄ】図２Ａ−２Ｄは、いくつかの実施形態による、ＡＲシステムおよびそのサブシステムを図式的に描写する。
【図３】図３および４は、いくつかの実施形態による、高速頭部移動に伴うレンダリングアーチファクトを図示する。
【図４】図３および４は、いくつかの実施形態による、高速頭部移動に伴うレンダリングアーチファクトを図示する。
【図５】図５−８は、いくつかの実施形態による、仮想コンテンツをワーピングする種々の側面を図示する。
【図６】図５−８は、いくつかの実施形態による、仮想コンテンツをワーピングする種々の側面を図示する。
【図７】図５−８は、いくつかの実施形態による、仮想コンテンツをワーピングする種々の側面を図示する。
【図８】図５−８は、いくつかの実施形態による、仮想コンテンツをワーピングする種々の側面を図示する。
【図９】図９は、いくつかの実施形態による、グラフィック処理ユニット（ＧＰＵ）を図式的に描写する。
【図１０】図１０は、いくつかの実施形態による、プリミティブとして記憶される仮想オブジェクトを描写する。
【図１１】図１１は、いくつかの実施形態による、仮想コンテンツをワーピングする方法を描写する。
【図１２】図１２は、いくつかの実施形態による、例証的コンピューティングシステムを図式的に描写するブロック図である。
【発明を実施するための形態】
【００２６】
本開示の種々の実施形態は、単一実施形態または複数の実施形態における、仮想コンテンツをワーピングするためのシステム、方法、および製造品を対象とする。本開示の他の目的、特徴、および利点は、発明を実施するための形態、図、および請求項に説明される。
【００２７】
種々の実施形態が、ここで、図面を参照して詳細に説明され、それらは、当業者が本開示を実践することを可能にするように、本開示の例証的例として提供されるであろう。着目すべきこととして、以下の図および例は、本開示の範囲を限定することを意味するものではない。本開示のある要素が、部分的または完全に、公知のコンポーネント（または方法もしくはプロセス）を使用して実装され得る場合、本開示の理解のために必要なそのような公知のコンポーネント（または方法もしくはプロセス）の一部のみが、説明され、そのような公知のコンポーネント（または方法もしくはプロセス）の他の部分の詳細な説明は、本開示を曖昧にしないように、省略されるであろう。さらに、種々の実施形態は、本明細書に例証として参照されるコンポーネントの現在および将来的公知の均等物を包含する。
【００２８】
仮想コンテンツワーピングシステムは、複合現実システムから独立して実装され得るが、下記のいくつかの実施形態は、例証的目的のためだけに、ＡＲシステムに関連して説明される。さらに、本明細書に説明される仮想コンテンツワーピングシステムも、ＶＲシステムと同じ様式で使用され得る。
【００２９】
（例証的複合現実シナリオおよびシステム）
続く説明は、ワーピングシステムが実践され得る例証的拡張現実システムに関する。しかしながら、実施形態は、他のタイプのディスプレイシステム（他のタイプの複合現実システムを含む）における用途にも適しており、したがって、実施形態は、本明細書に開示される例証的システムのみに限定されないことを理解されたい。
【００３０】
複合現実（例えば、ＶＲまたはＡＲ）シナリオは、多くの場合、実世界オブジェクトに関連して仮想オブジェクトに対応する仮想コンテンツ（例えば、画像および音）の提示を含む。例えば、図１を参照すると、拡張現実（ＡＲ）場面１００が、描写され、ＡＲ技術のユーザは、人々、木々、背景における建物、および実世界の物理的コンクリートプラットフォーム１０４を特徴とする実世界の物理的公園状設定１０２を見ている。これらのアイテムに加え、ＡＲ技術のユーザは、物理的コンクリートプラットフォーム１０４上に立っている仮想ロボット像１０６と、マルハナバチの擬人化のように見える、飛んでいる仮想漫画状アバタキャラクタ１０８とも「見えている」と知覚するが、これらの仮想オブジェクト１０６、１０８は、実世界には存在しない。
【００３１】
ＡＲシナリオのように、ＶＲシナリオも、仮想コンテンツを生成／レンダリングするために使用される姿勢を考慮する。仮想コンテンツをＡＲ／ＶＲディスプレイ座標系に対して正確にワーピングし、ワーピングされた仮想コンテンツをワーピングすることは、ＡＲ／ＶＲシナリオを改良すること、または少なくともＡＲ／ＶＲシナリオを損なわせないことができる。
【００３２】
続く説明は、本開示が実践され得る例証的ＡＲシステムに関する。しかしながら、本開示は、他のタイプの拡張現実および仮想現実システムにおける用途にも適し、したがって、本開示は、本明細書に開示される例証的システムのみに限定されないことを理解されたい。
【００３３】
図２Ａは、いくつかの実施形態による、拡張現実（ＡＲ）システム２００を図示する。ＡＲシステム２００は、投影サブシステム２０８と併せて動作させられ、物理的オブジェクトと混合された仮想オブジェクトの画像をユーザ２５０の視野内に提供し得る。このアプローチは、１つ以上の少なくとも部分的に透明な表面を採用し、それを通して、物理的オブジェクトを含む周囲環境が、見られることができ、それを通して、ＡＲシステム２００は、仮想オブジェクトの画像を生産する。投影サブシステム２０８は、リンク２０７を通してディスプレイシステム／サブシステム２０４に動作可能に結合された制御サブシステム２０１内に格納される。リンク２０７は、有線または無線通信リンクであり得る。
【００３４】
ＡＲアプリケーションに対して、それぞれの物理的オブジェクトに対して種々の仮想オブジェクトをユーザ２５０の視野内に空間的に位置付けることが望ましくあり得る。仮想オブジェクトは、画像として表されることが可能な任意の種々のデータ、情報、概念、または論理構造を有する多種多様な形態のいずれかをとり得る。仮想オブジェクトの非限定的例は、仮想テキストオブジェクト、仮想数値オブジェクト、仮想英数字オブジェクト、仮想タグオブジェクト、仮想フィールドオブジェクト、仮想チャートオブジェクト、仮想マップオブジェクト、仮想計器オブジェクト、または物理的オブジェクトの仮想視覚的表現を含み得る。
【００３５】
ＡＲシステム２００は、ユーザ２５０によって装着されるフレーム構造２０２と、ディスプレイシステム２０４がユーザ２５０の眼の正面に位置付けられるように、フレーム構造２０２によって支持されるディスプレイシステム２０４と、ディスプレイシステム２０４の中に組み込まれる、またはそれに接続される、スピーカ２０６とを含む。図示される実施形態では、スピーカ２０６は、スピーカ２０６がユーザ２５０の外耳道（内またはその周囲）に隣接して位置付けられるように、フレーム構造２０２によって支持される（例えば、イヤーバッドまたはヘッドホン）。
【００３６】
ディスプレイシステム２０４は、２次元および３次元コンテンツの両方を含む周囲環境に対する拡張として快適に知覚され得る光ベースの放射パターンをユーザ２５０の眼に提示するように設計される。ディスプレイシステム２０４は、単一コヒーレント場面の知覚を提供する一連のフレームを高周波数で提示する。この目的を達成するために、ディスプレイシステム２０４は、投影サブシステム２０８と、それを通して投影サブシステム２０８が画像を投影する部分的に透明なディスプレイ画面とを含む。ディスプレイ画面は、ユーザ２５０の眼と周囲環境との間のユーザ２５０の視野内に位置付けられる。
【００３７】
いくつかの実施形態では、投影サブシステム２０８は、走査ベースの投影デバイスの形態をとり、ディスプレイ画面は、導波管ベースのディスプレイの形態をとり、その中に、投影サブシステム２０８からの走査光が投入され、例えば、無限遠より近い単一光学視認距離（例えば、腕の長さ）における画像、複数の別々の光学視認距離または焦点面における画像、および／または複数の視認距離または焦点面にスタックされ、立体３Ｄオブジェクトを表す画像層を生産する。明視野内のこれらの層は、ヒト視覚サブシステムに連続して現れるように十分に一緒に緊密にスタックされ得る（例えば、１つの層が、隣接する層の混同の円錐内にある）。加えて、または代替として、画素が、２つ以上の層にわたって混成され、それらの層がより疎らにスタックされる（例えば、１つの層が、隣接する層の混同の円錐外にある）場合でも、明視野内の層間の移行の知覚される連続性を増加させ得る。ディスプレイシステム２０４は、単眼または双眼であり得る。走査アセンブリは、光ビームを生産する（例えば、異なる色の光を定義されたパターンで放出する）１つ以上の光源を含む。光源は、ピクセル情報またはデータのそれぞれのフレーム内で規定された定義されたピクセルパターンに従って、赤色、緑色、および青色のコヒーレントなコリメートされた光をそれぞれ生産するように動作可能である多種多様な形態のいずれか、例えば、ＲＧＢソースの組（例えば、赤色、緑色、および青色光を出力することが可能なレーザダイオード）をとり得る。レーザ光は、高色飽和を提供し、高度にエネルギー効率的である。光学結合サブシステムは、光をディスプレイ画面の端部の中に光学的に結合する光学導波管入力装置（例えば、１つ以上の反射表面、回折格子、ミラー、ダイクロイックミラー、またはプリズム等）を含む。光学結合サブシステムは、光ファイバからの光をコリメートする、コリメーション要素をさらに含む。随意に、光学結合サブシステムは、コリメーション要素からの光を光学導波管入力装置の中心内の焦点に向かって収束させ、それによって、光学導波管入力装置のサイズが最小化されることを可能にするために構成された光学変調装置を含む。したがって、ディスプレイシステム２０４は、１つ以上の仮想オブジェクトの歪曲されていない画像をユーザに提示するピクセル情報の一連の合成画像フレームを生成する。ディスプレイサブシステムを説明するさらなる詳細は、「Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ」と題された米国実用特許出願第１４／２１２，９６１号（代理人整理番号ＭＬ．２０００６．００）および「Ｐｌａｎａｒ  Ｗａｖｅｇｕｉｄｅ  Ａｐｐａｒａｔｕｓ  Ｗｉｔｈ  Ｄｉｆｆｒａｃｔｉｏｎ  Ｅｌｅｍｅｎｔ  ａｎｄ  Ｓｕｂｓｙｓｔｅｍ  Ｅｍｐｌｏｙｉｎｇ  Ｓａｍｅ」と題された第１４／３３１，２１８号（代理人整理番号ＭＬ．２００２０．００）（その内容は、参照することによって、全体として記載される場合と同様、その全体として明示的かつ完全に本明細書に組み込まれる）に提供される。
【００３８】
ＡＲシステム２００は、ユーザ２５０の頭部の位置（向きを含む）および移動および／またはユーザ２５０の眼位置および眼球間距離を検出するためにフレーム構造２０２に搭載された１つ以上のセンサをさらに含む。そのようなセンサは、画像捕捉デバイス、マイクロホン、慣性測定ユニット（ＩＭＵ）、加速度計、コンパス、ＧＰＳユニット、無線デバイス、ジャイロスコープ等を含み得る。例えば、一実施形態では、ＡＲシステム２００は、ユーザ２５０の頭部の移動を示す慣性測定値を捕捉するための１つ以上の慣性変換器を含む頭部装着型変換器サブシステムを含む。そのようなデバイスは、ユーザ２５０の頭部移動についての情報を感知、測定、または収集するために使用され得る。例えば、これらのデバイスは、ユーザの頭部２５０の移動、速度、加速、および／または位置を検出／測定するために使用され得る。ユーザ２５０の頭部の位置（向きを含む）は、ユーザ２５０の「頭部姿勢」としても知られる。
【００３９】
図２ＡのＡＲシステム２００は、１つ以上の前方に面したカメラを含み得る。カメラは、システム２００の前方方向からの画像／ビデオの記録等、任意の数の目的のために採用され得る。加えて、カメラは、環境および環境内の特定のオブジェクトに対するユーザ２５０の距離、向き、および／または角位置を示す情報等、ユーザ２５０が位置する環境についての情報を捕捉するために使用され得る。
【００４０】
ＡＲシステム２００は、後ろ向きに面したカメラをさらに含み、ユーザ２５０の眼の角位置（片眼または両眼が向いている方向）、瞬目、および焦点深度（眼収束を検出することによって）を追跡し得る。そのような眼追跡情報は、例えば、光をエンドユーザの眼に投影し、その投影された光の少なくとも一部の戻りまたは反射を検出することによって、判別され得る。
【００４１】
拡張現実システム２００は、多種多様な形態のいずれかをとり得る制御サブシステム２０１をさらに含む。制御サブシステム２０１は、いくつかのコントローラ、例えば１つ以上のマイクロコントローラ、マイクロプロセッサまたは中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ、グラフィック処理ユニット（ＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）等の他の集積回路コントローラ、プログラマブルゲートアレイ（ＰＧＡＳ）、例えば、フィールドＰＧＡＳ（ＦＰＧＡＳ）、および／またはプログラマブル論理コントローラ（ＰＬＵ）を含む。制御サブシステム２０１は、デジタル信号プロセッサ（ＤＳＰ）、中央処理ユニット（ＣＰＵ）２５１、グラフィック処理ユニット（ＧＰＵ）２５２、および１つ以上のフレームバッファ２５４を含み得る。ＣＰＵ２５１は、システムの全体的動作を制御する一方、ＧＰＵ２５２は、フレームをレンダリングし（すなわち、３次元場面を２次元画像に変換する）、これらのフレームをフレームバッファ２５４内に記憶する。図示されないが、１つ以上の追加の集積回路は、フレームバッファ２５４の中へのフレームの読み込みおよび／またはそれからの読み取りならびにディスプレイシステム２０４の動作を制御し得る。フレームバッファ２５４の中への読み込みおよび／またはそれからの読み取りは、動的アドレス指定を採用し得、例えば、フレームは、オーバーレンダリングされる。制御サブシステム２０１は、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）をさらに含む。制御サブシステム２０１は、３次元データベース２６０をさらに含み、それから、ＧＰＵ２５２は、フレームをレンダリングするための１つ以上の場面の３次元データおよび３次元場面内に含まれる仮想音源に関連付けられた合成音データにアクセスすることができる。
【００４２】
制御ＡＲ拡張現実サブシステム２０１０は、ユーザ向き検出モジュール２４８をさらに含む。ユーザ向きモジュール２４８は、ユーザ２５０の頭部の瞬間位置を検出し、センサから受信された位置データに基づいて、ユーザ２５０の頭部の位置を予測し得る。ユーザ向きモジュール２４８は、センサから受信された追跡データに基づいて、ユーザ２５０の眼、特に、ユーザ２５０が焦点を合わせている方向および／または距離も追跡する。
【００４３】
図２Ｂは、いくつかの実施形態による、ＡＲシステム２００’を描写する。図２Ｂに描写されるＡＲシステム２００’は、図２Ａに描写され、上で説明される、ＡＲシステム２００に類似する。例えば、ＡＲシステム２００’は、フレーム構造２０２と、ディスプレイシステム２０４と、スピーカ２０６と、リンク２０７を通してディスプレイシステム２０４に動作可能に結合された制御サブシステム２０１’とを含む。図２Ｂに描写される制御サブシステム２０１’は、図２Ａに描写され、上で説明される、制御サブシステム２０１に類似する。例えば、制御サブシステム２０１’は、投影サブシステム２０８と、画像／ビデオデータベース２７１と、ユーザ向きモジュール２４８と、ＣＰＵ２５１と、ＧＰＵ２５２と、３Ｄデータベース２６０と、ＲＯＭと、ＲＡＭとを含む。
【００４４】
制御サブシステム２０１’、したがって、図２Ｂに描写されるＡＲシステム２００’と、図２Ａに描写される対応するシステム／システムコンポーネントとの間の差異は、図２Ｂに描写される制御サブシステム２０１’内のブロック２９０の存在である。ブロック２９０は、ＧＰＵ２５２またはＣＰＵ２５１のいずれかから独立する、別個のワーピングブロックである。図２Ｃに図示されるように、ブロック２９０は、ワーピングユニット２８０と、データベース２９２と、合成ユニット２９４とを含む。合成ユニット２９４は、混成ユニット２９６を含む。図２Ｄに図示されるように、ワーピングユニット２８０は、姿勢推定器２８２と、変換ユニット２８４とを含む。
【００４５】
ＡＲシステム２００、２００’の種々の処理コンポーネントは、分散型サブシステム内に含まれ得る。例えば、ＡＲシステム２００、２００’は、有線導線または無線接続性２０７等によって、ディスプレイシステム２０４の一部に動作可能に結合されたローカル処理およびデータモジュール（すなわち、制御サブシステム２０１、２０１’）を含む。ローカル処理およびデータモジュールは、フレーム構造２０２に固定して取り付けられる構成、ヘルメットまたは帽子に固定して取り付けられる構成、ヘッドホンに内蔵される構成、ユーザ２５０の胴体に除去可能に取り付けられる構成、またはベルト結合式構成においてユーザ２５０の腰部に除去可能に取り付けられる構成等、種々の構成において搭載され得る。ＡＲシステム２００、２００’は、遠隔モジュールが、互いに動作可能に結合され、ローカル処理およびデータモジュールに対するリソースとして利用可能であるように、有線導線または無線接続性等によって、ローカル処理およびデータモジュールに動作可能に結合された遠隔処理モジュールおよび遠隔データリポジトリをさらに含み得る。ローカル処理およびデータモジュールは、電力効率的プロセッサまたはコントローラとフラッシュメモリ等のデジタルメモリとを備え得、それらの両方は、可能性として、処理または読み出し後、ディスプレイシステム２０４への通過のために、センサから捕捉されたデータ、および／または遠隔処理モジュールおよび／または遠隔データリポジトリを使用して入手および／または処理されたデータの処理、キャッシュ、および記憶を補助するために利用され得る。遠隔処理モジュールは、データおよび／または画像情報を分析および処理するように構成された１つ以上の比較的に強力なプロセッサまたはコントローラを備え得る。遠隔データリポジトリは、比較的に大規模デジタルデータ記憶設備を備え得、それは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であり得る。いくつかの実施形態では、全てのデータは、記憶され、全ての算出は、ローカル処理およびデータモジュール内で実施され、任意の遠隔モジュールからの完全な自律的使用を可能にする。上で説明される種々のコンポーネント間の結合は、ワイヤまたは光学通信を提供するために、１つ以上の有線インターフェースまたはポート、もしくは無線通信を提供するために、ＲＦ、マイクロ波、およびＩＲ等を介した１つ以上の無線インターフェースまたはポートを含み得る。いくつかの実装では、全ての通信は、有線であり得る一方、他の実装では、全ての通信は、光ファイバを除き、無線であり得る。
【００４６】
（問題およびソリューションの概要）
光学システムが仮想コンテンツを生成／レンダリングするとき、光学システムは、仮想コンテンツがレンダリングされるときのシステムの姿勢に関連し得るソース座標系を使用し得る。ＡＲシステムでは、レンダリングされた仮想コンテンツは、実際の物理的オブジェクトと所定の関係を有し得る。例えば、図３は、実際の物理的台３１２の上部に位置付けられた仮想植木鉢３１０を含むＡＲシナリオ３００を図示する。ＡＲシステムは、仮想植木鉢３１０が実際の台３１２の上部に置かれているように見えるように、ソース座標系（それにおいて実際の台３１２の場所が、既知である）に基づいて、仮想植木鉢３１０をレンダリングした。ＡＲシステムは、第１の時間において、ソース座標系を使用して、仮想植木鉢３１０をレンダリングし、第１の時間の後の第２の時間において、レンダリングされた仮想植木鉢３１０を出力座標系に表示／投影し得る。ソース座標系および出力座標系が、同一である場合、仮想植木鉢３１０は、意図された場所（例えば、実際の物理的台３１２の上部）に現れるであろう。
【００４７】
しかしながら、ＡＲシステムの座標系が、仮想植木鉢３１０がレンダリングされる第１の時間と、レンダリングされた仮想植木鉢３１０が表示／投影される第２の時間との間の間隙において変化する場合（例えば、高速ユーザ頭部移動に伴って）、ソース座標系と出力座標系との間の不整合／差異は、視覚的アーチファクト／異常／グリッチをもたらし得る。例えば、図４は、実際の物理的台４１２の上部に位置付けられるようにレンダリングされた仮想植木鉢４１０を含むＡＲシナリオ４００を示す。しかしながら、ＡＲシステムは、仮想植木鉢４１０がレンダリングされた後であるが、表示／投影される前、右に（急速に）移動されたので、仮想植木鉢４１０は、その意図される位置４１０’（想像線で示される）の右に表示される。したがって、仮想植木鉢４１０は、実際の物理的台４１２の右の空中に浮いているように見える。このアーチファクトは、仮想植木鉢が出力座標系において再レンダリングされると是正されるであろう（ＡＲシステム運動が中止すると仮定して）。しかしながら、アーチファクトは、依然として、一部のユーザに見えており、仮想植木鉢４１０は、予期しない位置に一時的にジャンプすることによって、グリッチとして現れるであろう。このグリッチおよびそのような他のものは、ＡＲシナリオの連続性の錯覚に悪影響を及ぼし得る。
【００４８】
いくつかの光学システムは、ソース仮想コンテンツの座標系を仮想コンテンツが生成されたソース座標系から、仮想コンテンツが表示されるであろう出力座標系にワーピングまたは変換するワーピングシステムを含み得る。図４に描写される例では、ＡＲシステムは、出力座標系および／または姿勢を検出および／または予測することができる（例えば、ＩＭＵまたは眼追跡を使用して）。ＡＲシステムは、次いで、ソース座標系からのレンダリングされた仮想コンテンツを出力座標系におけるワーピングされた仮想コンテンツにワーピングまたは変換することができる。
【００４９】
いくつかのワーピングソフトウェア／システムは、ソース仮想コンテンツを２回の処理工程においてワーピングする。図５−７における例を参照すると、ＡＲシステムは、第１の工程において、ソース仮想コンテンツにおける３−Ｄシナリオを形成する全てのソースサブ部分（例えば、チェスの駒５１０および立方体５１２を形成するプリミティブ）をワーピングする。第１の工程は、ワーピングされた仮想コンテンツ（例えば、ワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’）を形成する。チェスの駒５１０および立方体５１２は、図５−７では想像線で示され、それらがソース座標系におけるものであり、表示されないであろうことを示す。代わりに、出力座標系におけるワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’（実線で示される）が、表示されるであろう。いくつかのワーピングシステムは、第１の工程において、全てのサブ部分（例えば、ワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’を形成する各プリミティブ）を深度試験し、深度データを生成する。深度試験後、ＡＲシステムは、第１の工程において、全てのワーピングされたサブ部分（例えば、プリミティブ）とソース座標系における相対的深度とを記憶する（例えば、リスト内に）。第１の工程の終了時、ワーピングされた仮想コンテンツは、出力仮想コンテンツ（競合するワーピングされた仮想データの全てのインスタンスを含む）における各Ｘ、Ｙ位置（例えば、ピクセル）における全ての明度／色のリストとして記憶され得る。
【００５０】
ワーピングシステムは、次いで、第２の工程において、記憶されたワーピングされたサブ部分の各Ｘ、Ｙの位置および相対的深度（例えば、リスト）における全ての競合する仮想データを解決する。３−Ｄシナリオの２つ以上の異なるサブ部分（例えば、チェスの駒５１０および立方体５１２）が、出力座標系にワーピングされると（例えば、ワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’）、これらのサブ部分の一部は、最終ディスプレイ画像の同一ピクセルの中にワーピング／投影され得る（すなわち、割り当てられる）。例えば、図６におけるエリア５１４は、ワーピングされたチェスの駒５１０’とワーピングされた立方体５１２’との「競合する」部分を表す。ワーピングシステムは、出力仮想コンテンツを生成するとき、ワーピングされた仮想コンテンツのこれらの競合する部分を解決／解消する。
【００５１】
いくつかの実施形態では、ワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’（例えば、第１および第２の仮想コンテンツ）のそれぞれのピクセルが、ディスプレイの同一ピクセル（すなわち、衝突するピクセル）上に表示されるであろう場合、ワーピングシステムは、それぞれの衝突／競合するピクセルに対応する記憶された深度データを比較することができる。出力座標系において視認場所により近い衝突するピクセル（例えば、ワーピングされた仮想コンテンツ）が、表示される（コンテンツは不透明であると仮定する）。出力座標系において視認場所に最も近い衝突するピクセルは、最終ディスプレイ画像を生成するために使用される。残りの衝突するピクセルは、破棄される。
【００５２】
図７に示される１つのインスタンスでは、ワーピングされたチェスの駒５１０’は、ワーピングされた立方体５１２’よりユーザに近い。したがって、ワーピングされたチェスの駒５１０’とワーピングされた立方体５１２’とのピクセルが衝突するとき、ワーピングされたチェスの駒５１０’のピクセルが、出力コンテンツに表示される。図８に示される別のインスタンスでは、ワーピングされた立方体５１２’は、ワーピングされたチェスの駒５１０’よりユーザに近い。したがって、ワーピングされたチェスの駒５１０’とワーピングされた立方体５１２’とのピクセルが衝突するとき、ワーピングされた立方体５１２’のピクセルが、出力コンテンツに表示される。いくつかのワーピングシステムは、ソース座標系における深度データを生成するので、第２の工程における深度比較は、複数の変換を伴い、直接比較より複雑である。
【００５３】
この２工程システムは、仮想コンテンツをワーピングし、表示のために、衝突／競合するワーピングされた仮想コンテンツを解決する（例えば、現実的ＡＲシナリオにおいて）。しかしながら、この２工程ワーピングシステムは、算出上高価であり（プロセッサ／メモリ関連システム限界をもたらす）、かつ時間がかかる（システム待ち時間をもたらす）。要求される算出費用および時間は、表示のためにワーピングなければならない３−Ｄシナリオの複雑性に伴って増加する。シナリオ複雑性の増加に伴って増加させられる現在のワーピングソフトウェア／システムの時間要件は、いくつかの複合現実システム等のリアルタイムシステムとの適合がないこともある。さらに、シナリオ複雑性の増加に伴って増加させられるいくつかのワーピングソフトウェア／システムの算出費用は、サイズ、電力、熱、および他の処理関連限界に現れ得、いくつかの複合現実システム等のポータブルシステムとの適合がないこともある。
【００５４】
これらの限界に対処するために、本明細書に説明されるシステムは、単一工程において、仮想コンテンツをワーピングし、競合する仮想コンテンツを解消する。仮想コンテンツは、ソース座標系に基づいて、ディスプレイ座標系にワーピングされる。競合するワーピングされた仮想コンテンツを解消することは、表示のために、出力仮想コンテンツの特定のピクセルにおける全てのワーピングされた仮想コンテンツの深度試験を含む。いくつかのワーピングシステムと異なり、本明細書の実施形態による深度試験は、出力座標系において生じる。
【００５５】
（例証的グラフィック処理ユニット）
図９は、いくつかの実施形態による、仮想コンテンツを出力座標系にワーピングし、ワーピングされた仮想コンテンツの競合部分を解消するための例示的グラフィック処理ユニット（ＧＰＵ）２５２を図式的に描写する。ＧＰＵ２５２は、ワーピングされるための生成された仮想コンテンツを記憶するための入力メモリ９１０を含む。いくつかの実施形態では、仮想コンテンツは、プリミティブ（例えば、図１０では、三角形１０００）として記憶される。ＧＰＵ２５２は、コマンドプロセッサ９１２も含み、それは、（１）仮想コンテンツを入力メモリ９１０から受信し／読み取り、（２）仮想コンテンツをスケジューリングユニットに分割し、（３）並列処理のために、スケジューリングユニットをレンダリングパイプラインに沿って波またはワープで送信する。ＧＰＵ２５２は、スケジューラ９１４をさらに含み、スケジューラ９１４は、（１）スケジューリングユニットをコマンドプロセッサ９１２から受信し、（２）コマンドプロセッサ９１２からの「新しい作業」またはレンダリングパイプライン（下で説明される）内の下流から戻る「古い作業」がレンダリングパイプラインを辿って任意の特定の時間に送信されるべきであるかどうかを決定する。事実上、スケジューラ９１４は、ＧＰＵ２５２が種々の入力データを処理する順序を決定する。
【００５６】
ＧＰＵ２５２は、１つ以上のＧＰＵコア９１６を含み、各ＧＰＵコア９１６は、スケジューリングユニットを並行して処理するために、いくつかの並行実行可能コア／ユニット（「シェーダコア」）９１８を有する。コマンドプロセッサ９１２は、仮想コンテンツをシェーダコア９１８の数と等しい数（例えば、３２）に分割する。ＧＰＵ２５２は、ＧＰＵコア９１６からの出力を受信するための「先入れ先出し」（「ＦＩＦＯ」）メモリ９２０も含む。ＦＩＦＯメモリ９２０から、出力は、ＧＰＵコア９１６によるレンダリングパイプラインの追加の処理の中への挿入のために、スケジューラ９１４に「古い作業」として戻るようにルーティングされ得る。
【００５７】
ＧＰＵ２５２は、ＦＩＦＯメモリ９２０からの出力を受信し、表示のために、出力をラスタ化するラスタ演算ユニット（「ＲＯＰ」）９２２をさらに含む。例えば、仮想コンテンツのプリミティブは、三角形の頂点の座標として記憶され得る。ＧＰＵコア９１６による処理（その間に図１０の三角形１０００の３つの頂点１０１０、１０１２、１０１４がワーピングされ得る）後、ＲＯＰ９２２は、３つの頂点１０１０、１０１２、１０１４によって画定された三角形１０００の内側にあるピクセル１０１６を決定し、仮想コンテンツ内のそれらのピクセル１０１６を充填する。ＲＯＰ９２２は、仮想コンテンツに深度試験も実施し得る。
【００５８】
ＧＰＵ２５２はまた、ＲＯＰ９２２からのワーピングされた仮想コンテンツを一時的に記憶するためのバッファメモリ９２４を含む。バッファメモリ９２４内のワーピングされた仮想コンテンツは、出力座標系における視野の複数のＸ、Ｙ位置における明度／色および深度情報を含み得る。バッファメモリ９２４からの出力は、ＧＰＵコア９１６によるレンダリングパイプラインの追加の処理の中への挿入のために、またはディスプレイシステムの対応するピクセルにおける表示のために、スケジューラ９１４に「古い作業」として戻るようにルーティングされ得る。ＧＰＵコア９１６は、最初に、三角形１０００の頂点１０１０、１０１２、１０１４を処理し、次いで、三角形１０００の内側のピクセル１０１６を処理する。入力メモリ９１０内の仮想コンテンツの全てのフラグメントが、ワーピングおよび深度試験されると（必要な場合）、バッファメモリ９２４は、出力座標系において視野を表示するために必要とされる明度／色および深度情報の全てを含むであろう。
【００５９】
（仮想コンテンツワーピングシステムおよび方法）
頭部姿勢変化からの入力を伴わない画像処理では、ＧＰＵ２５２による処理の結果は、それぞれのＸ、Ｙ値（例えば、各ピクセル）における色／明度値および深度値である。しかしながら、頭部姿勢の変化に伴って、仮想コンテンツが生成されたソース座標系と異なる出力座標系における視認場所から視認される仮想コンテンツの異なる部分は、ピクセルにおいて重なり得る。仮想コンテンツをワーピングし、競合する仮想コンテンツを解決するためのいくつかの方法では、出力仮想コンテンツ内の各Ｘ、Ｙ位置を占有し得る全ての仮想コンテンツは、ワーピングされ（ソース座標系から）、記憶される（例えば、リスト内に）。記憶された仮想コンテンツは、色／明度および深度情報を含む。次いで、任意の競合する仮想コンテンツの深度は、互いに比較され、出力座標系における視認場所に最も近い仮想コンテンツを決定し、それは、出力仮想コンテンツにおいて使用される。上で説明されるように、この多工程ワーピングプロセスは、算出上高価かつ低速であり、複合現実システム等のポータブルディスプレイシステムとの使用を困難にし得る。
【００６０】
図１１は、いくつかの実施形態による、単一工程において、仮想コンテンツをワーピングし、競合する仮想コンテンツを解決する方法１１００を描写する。ステップ１１０２では、ワーピングシステム（例えば、ＧＰＵ２５２のＧＰＵコア９１６および／またはブロック２９０のワーピングユニット２８０の姿勢推定器２８２および変換ユニット２８４）が、ワーピングされた仮想コンテンツ（出力座標系におけるＸ’、Ｙ’、およびＺ’場所を有する）をソース仮想コンテンツ（ソース座標系におけるＸ、Ｙ、およびＺ場所を有する）から生成する。ワーピングされた仮想コンテンツは、色／明度、出力座標系におけるＸ’、Ｙ’、およびＺ’場所を含む情報によって表されるワーピングされたプリミティブであり得る。Ｘ’、Ｙ’、およびＺ’値は、出力座標系における視認場所に対して計算される。いくつかの実施形態では、ワーピングされた仮想コンテンツは、図５−８に示されるように、チェスの駒５１０’の一部に対応し得る。
【００６１】
ステップ１１０４では、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、ワーピングされた仮想コンテンツのＸ’、Ｙ’場所に対応するバッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’場所が、現在のワーピングされた仮想コンテンツが生成される前にバッファメモリ９２４および／またはデータベース２９２内に記憶された既存の仮想コンテンツによって占有されているかどうかを決定する。例えば、図６−８におけるワーピングされた仮想コンテンツ５１０’、５１２’の部分５１４’は、競合するワーピングされた仮想コンテンツを含む。バッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’場所が既存の仮想コンテンツによって占有されている場合、方法１１００は、ステップ１１０６／１１０６’に進む。
【００６２】
バッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’場所が、ステップ１１０４において、占有されていないと決定される場合、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、ステップ１１０８において、ワーピングされた仮想コンテンツ（明度／色およびＺ’情報を含む）をバッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’の場所に書き込む。方法１１００は、次いで、ステップ１１１２に進む。
【００６３】
ステップ１１１２では、ワーピングシステムは、全てのワーピングされた仮想コンテンツが生成されたかどうかを決定する。全てのワーピングされた仮想コンテンツが生成された場合、方法１１００は、終了され、バッファメモリ９２４および／またはデータベース２９２内に記憶されたワーピングされた仮想コンテンツは、表示されることができる。全てのワーピングされた仮想コンテンツが生成されていない場合、方法１１００は、ステップ１１０２に戻り、さらなるワーピングされた仮想コンテンツを生成する。
【００６４】
ステップ１１０６／１１０６’では、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、バッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’場所内のワーピングされた仮想コンテンツおよび既存の仮想コンテンツのＺ’（例えば、深度）情報を比較し、出力座標系における視認場所により近い仮想コンテンツを決定する。Ｚ’情報は、出力座標系におけるものであるので、比較は、簡単である。ワーピングシステムが、既存の仮想コンテンツがワーピングされた仮想コンテンツより視認場所に近いことを決定する場合、方法１１００は、ステップ１１１０に進む。
【００６５】
ステップ１１１０では、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、随意に、ワーピングされた仮想コンテンツを破棄し、それは、より近い既存の仮想コンテンツによって妨害されるであろうから、視認場所から見えないであろう（既存の仮想コンテンツは不透明であると仮定する）。
【００６６】
ステップ１１１２では、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、全てのワーピングされた仮想コンテンツが生成されたかどうかを決定する。全てのワーピングされた仮想コンテンツが生成された場合、方法１１００は、終了され、バッファメモリ９２４内に記憶されるワーピングされた仮想コンテンツは、表示されることができる。全てのワーピングされた仮想コンテンツが生成されていない場合、方法１１００は、ステップ１１０２に戻り、さらなるワーピングされた仮想コンテンツを生成する。
【００６７】
ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）が、ワーピングされた仮想コンテンツが既存の仮想コンテンツより視認場所に近いことを決定する場合、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、ステップ１１０８において、ワーピングされた仮想コンテンツ（明度／色およびＺ’情報を含む）をバッファメモリ９２４および／またはデータベース２９２のＸ’、Ｙ’場所内に書き込む。ワーピングされた仮想コンテンツをＸ’、Ｙ’場所内に書き込むことにおいて、Ｘ’、Ｙ’場所内に以前に記憶された既存の仮想コンテンツは、破棄されるであろう。方法１１００は、次いで、ステップ１１１２に進む。
【００６８】
ステップ１１１２では、ワーピングシステム（例えば、ＧＰＵ２５２のＲＯＰ９２２および／またはブロック２９０の合成ユニット２９４および混成ユニット２９６）は、全てのワーピングされた仮想コンテンツが生成されたかどうかを決定する。全てのワーピングされた仮想コンテンツが生成された場合、方法１１００は、終了され、バッファメモリ９２４内に記憶されるワーピングされた仮想コンテンツは、表示されることができる。全てのワーピングされた仮想コンテンツが生成されていない場合、方法１１００は、ステップ１１０２に戻り、さらなるワーピングされた仮想コンテンツを生成する。
【００６９】
単一工程において、仮想コンテンツをワーピングし、競合するワーピングされた仮想コンテンツを解決するステップは、仮想コンテンツをワーピングし、表示のための出力コンテンツを形成するために要求される、プロセッサ負担および時間を低減させる。図１１に描写される方法１１００は、ＧＰＵ２５２上で実行される「シェーダ拡張」またはアプリケーションプログラムインターフェース（「ＡＰＩ」）として具現化され得る。上で説明されるように、図１１に描写される方法１１００は、任意のＧＰＵ２５２またはＣＰＵ２５１のいずれからも独立した別個のワーピングブロック２９０上で実行され得る。さらに別の実施形態では、図１１に描写される方法１１００は、ＣＰＵ２５１上で実行され得る。さらに他の実施形態では、図１１に描写される方法１１００は、ＧＰＵ２５２、ＣＰＵ２５１、および別個のワーピングブロック２９０の種々の組み合わせ／副次的組み合わせ上で実行され得る。図１１に描写される方法１１００は、システムリソース利用可能性に従って特定の時間における種々の実行モデルを使用して実行され得る画像処理パイプラインである。
【００７０】
チェスの駒５１０および立方体５１２は、図５−８では、想像線で示され、チェスの駒５１０および立方体５１２が、ソース座標系内に生成され、ディスプレイ座標系内にないことを示す。ワーピングシステムが、チェスの駒５１０および立方体５１２をワーピングされた後のみ、ワーピングされたチェスの駒５１０’およびワーピングされた立方体５１２’は、実線で示される。
【００７１】
（システムアーキテクチャ概要）
図１２は、本開示の実施形態を実装するために好適な例証的コンピューティングシステム１２００のブロック図である。コンピュータシステム１２００は、プロセッサ１２０７、システムメモリ１２０８（例えば、ＲＡＭ）、静的記憶デバイス１２０９（例えば、ＲＯＭ）、ディスクドライブ１２１０（例えば、磁気または光学）、通信インターフェース１２１４（例えば、モデムまたはＥｔｈｅｒｎｅｔ（登録商標）カード）、ディスプレイ１２１１（例えば、ＣＲＴまたはＬＣＤ）、入力デバイス１２１２（例えば、キーボード）、およびカーソル制御等のサブシステムおよびデバイスを相互接続する、情報を通信するためのバス１２０６または他の通信機構を含む。
【００７２】
本開示の一実施形態によると、コンピュータシステム１２００は、プロセッサ１２０７がシステムメモリ１２０８内に含まれる１つ以上の一連の１つ以上の命令を実行することによって、具体的動作を実施する。そのような命令は、静的記憶デバイス１２０９またはディスクドライブ１２１０等の別のコンピュータ読み取り可能な／使用可能媒体からシステムメモリ１２０８の中に読み込まれ得る。代替実施形態では、有線回路が、ソフトウェア命令の代わりに、またはそれと組み合わせて、本開示を実装するために使用され得る。したがって、本開示の実施形態は、ハードウェア回路および／またはソフトウェアの任意の具体的組み合わせに限定されない。一実施形態では、用語「論理」は、本開示の全部または一部を実装するために使用される、任意の組み合わせのソフトウェアまたはハードウェアを意味し得る。
【００７３】
用語「コンピュータ読み取り可能な媒体」または「コンピュータ使用可能媒体」は、本明細書で使用されるように、実行のための命令をプロセッサ１２０７に提供することにおいて関与する任意の媒体を指す。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む多くの形態をとり得る。不揮発性媒体は、例えば、ディスクドライブ１２１０等の光学または磁気ディスクを含む。揮発性媒体は、システムメモリ１２０８等の動的メモリを含む。
【００７４】
一般的形態のコンピュータ読み取り可能な媒体は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ（例えば、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ）、任意の他のメモリチップまたはカートリッジ、もしくはコンピュータが読み取り得る、任意の他の媒体を含む。
【００７５】
本開示のある実施形態では、本開示を実践するための一連の命令の実行は、単一コンピュータシステム１２００によって実施される。本開示の他の実施形態によると、通信リンク１２１５（例えば、ＬＡＮ、ＰＴＳＮ、または無線ネットワーク）によって結合される、２つ以上のコンピュータシステム１２００が、互いに協調して、本開示を実践するために要求される一連の命令を実施し得る。
【００７６】
コンピュータシステム１２００は、通信リンク１２１５および通信インターフェース１２１４を通して、プログラム、例えば、アプリケーションコードを含むメッセージ、データ、および命令を伝送および受信し得る。受信されたプログラムコードは、プロセッサ１２０７によって、受信されるにつれて実行され、および／または後の実行のために、ディスクドライブ１２１０もしくは他の不揮発性記憶装置内に記憶され得る。記憶媒体１２３１内のデータベース１２３２は、データインターフェース１２３３を介して、システム１２００によってアクセス可能なデータを記憶するために使用され得る。
【００７７】
本開示は、本主題のデバイスを使用して実施され得る方法を含む。方法は、そのような好適なデバイスを提供する作用を含み得る。そのような提供は、ユーザによって実施され得る。言い換えると、「提供する」作用は、単に、ユーザが、本主題の方法において必要なデバイスを取得し、それにアクセスし、それに接近し、それを位置付け、それを設定し、それをアクティブ化し、それに電源を入れ、または別様にそれを提供するように作用することを要求する。本明細書に列挙される方法は、論理的に可能な列挙されたイベントの任意の順序ならびにイベントの列挙された順序で行われ得る。
【００７８】
本開示の例示的側面が、材料選択および製造に関する詳細とともに、上で記載された。本開示の他の詳細に関して、これらは、前述の参照特許および刊行物に関連して理解され、概して、当業者によって公知であり、または理解され得る。同じことは、一般または論理的に採用されるような追加の作用の観点から、本開示の方法ベースの側面に関しても当てはまり得る。
【００７９】
加えて、本開示は、随意に、種々の特徴を組み込むいくつかの例を参照して説明されたが、本開示は、開示の各変形例に関して検討されるように説明または図示されるものに限定されるものではない。種々の変更が、説明される本開示に行われ得、均等物（本明細書に列挙されるか、またはある程度の簡潔目的のために含まれないかどうかにかかわらず）は、本開示の精神および範囲から逸脱することなく代用され得る。加えて、値の範囲が提供される場合、その範囲の上限と下限との間の全ての介在値および任意の他の述べられた値または述べられた範囲内の介在値が、本開示内に包含されるものと理解されたい。
【００８０】
説明される本発明の変形例の任意の随意の特徴が、独立して、または本明細書に説明される特徴のうちの任意の１つ以上のものと組み合わせて、記載および請求され得ることも考えられる。単数形アイテムの言及は、存在する複数の同一アイテムが存在する可能性を含む。より具体的には、本明細書および本明細書に関連付けられた請求項で使用されるように、単数形「ａ」、「ａｎ」、「ｓａｉｄ」、および「ｔｈｅ」は、別様に具体的に述べられない限り、複数の言及を含む。言い換えると、冠詞の使用は、上記の説明ならびに本開示に関連付けられる請求項における本主題のアイテムのうちの「少なくとも１つ」を可能にする。さらに、そのような請求項は、任意の随意の要素を除外するように起草され得ることに留意されたい。したがって、本文言は、請求項の要素の列挙と関連する「単に」、「のみ」等等の排他的専門用語の使用、または「消極的」限定の使用のための先行詞としての役割を果たすことが意図される。
【００８１】
そのような排他的専門用語を使用しなければ、本開示に関連付けられる請求項における用語「〜を備えている」は、所与の数の要素がそのような請求項で列挙されるかどうかにかかわらず、任意の追加の要素の包含を可能にするものとし、または、特徴の追加は、そのような請求項に記載される要素の性質を変換すると考えられ得る。本明細書で具体的に定義される場合を除いて、本明細書で使用される全ての技術および科学用語は、請求項の正当性を維持しながら、可能な限り広い一般的に理解されている意味を与えられるべきである。
【００８２】
本開示の範疇は、提供される例および／または本主題の明細書に限定されるべきではなく、むしろ、本開示に関連付けられた請求項の言語の範囲によってのみ限定されるべきである。
【００８３】
前述の明細書では、本開示は、その具体的実施形態を参照して説明された。しかしながら、種々の修正および変更が、本開示のより広義の精神および範囲から逸脱することなく、そこに行われ得ることが明白であろう。例えば、前述のプロセスフローは、プロセスアクションの特定の順序を参照して説明される。しかしながら、説明されるプロセスアクションの多くの順序は、本開示の範囲または動作に影響を及ぼすことなく、変更され得る。明細書および図面は、故に、限定的意味ではなく、例証と見なされるべきである。
【図１】
2020515954.tif 000003
【図２Ａ】
2020515954.tif 000004
【図２Ｂ】
2020515954.tif 000005
【図２Ｃ】
2020515954.tif 000006
【図２Ｄ】
2020515954.tif 000007
【図３】
2020515954.tif 000008
【図４】
2020515954.tif 000009
【図５】
2020515954.tif 000010
【図６】
2020515954.tif 000011
【図７】
2020515954.tif 000012
【図８】
2020515954.tif 000013
【図９】
2020515954.tif 000014
【図１０】
2020515954.tif 000015
【図１１】
2020515954.tif 000016
【図１２】
2020515954.tif 000017
【国際調査報告】
2020515954.tif 000018