(57)【要約】立体画像のタイルをインターリーブ型の方法でレンダリングすることに関する実施形態が開示される。例えば開示される一実施形態は、第１の画像の第１のタイルをレンダリングするステップと、第１の画像の第１のタイルをレンダリングした後に、第２の画像の第１のタイルをレンダリングするステップを備える方法を提供する。第２の画像の第１のタイルをレンダリングした後に、第１の画像の第２のタイルがレンダリングされ、第１の画像の第２のタイルをレンダリングした後に、第２の画像の第２のタイルがレンダリングされる。この方法は、第１の画像を第１のアイディスプレイに送信し、第２の画像を第２のアイディスプレイに送信するステップを更に備える。
2016529593.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて、タイル型レンダラを使用して立体画像を生成するための方法であって、前記立体画像は、第１の視点からのシーンの第１の画像と、第２の視点からの前記シーンの第２の画像とを備え、当該方法は、
前記第１の画像の第１のタイルをレンダリングするステップと；
前記第１の画像の第１のタイルをレンダリングした後に、前記第２の画像の第１のタイルをレンダリングするステップと；
前記第２の画像の第１のタイルをレンダリングした後に、前記第１の画像の第２のタイルをレンダリングするステップと；
前記第１の画像の第２のタイルをレンダリングした後に、前記第２の画像の第２のタイルをレンダリングするステップと；
前記第１の画像を第１のアイディスプレイに送信し、前記第２の画像を第２のアイディスプレイに送信するステップと；
を含む、方法。
【請求項２】
前記第１の画像の第１のタイルをレンダリングするステップに先立って、前記第１の画像及び前記第２の画像に関連付けられるデータを、メモリキャッシュ内のコマンドバッファにコピーするステップ
を更に含む、請求項１に記載の方法。
【請求項３】
前記第２の画像の第１のタイルをレンダリングするステップの結果、前記第２の画像の第１のタイルをレンダリングする前に前記第１の画像の全てのタイルをレンダリングすることに比べて、前記コマンドバッファへのメモリフェッチの数が減少する、
請求項２に記載の方法。
【請求項４】
前記第１の画像の第１のタイルをレンダリングするステップに先立って、かつ前記データをコマンドバッファにコピーするステップの後に、前記第１の画像の第１のタイルに関連付けられるデータを、前記コマンドバッファからタイルバッファにコピーするステップ
を更に含む、請求項２に記載の方法。
【請求項５】
前記コマンドバッファが第１の待機時間を有し、前記タイルバッファが第２の待機時間を有し、前記第２の待機時間は前記第１の待機時間より少ない、
請求項４に記載の方法。
【請求項６】
タイルバッファ欠損が生じる場合、前記第２の画像の第１のタイルの残りの部分は、前記コマンドバッファ内のデータに基づいてレンダリングされる、
請求項４に記載の方法。
【請求項７】
前記第２の画像の第１のタイルは、前記第１の画像の前記第１のタイルに関連付けられるデータに少なくとも部分的に基づいてレンダリングされる、
請求項２に記載の方法。
【請求項８】
連続するタイルペアの間で算出される誤差は、より大きい誤差とより小さい誤差とを交互に生じる、
請求項１に記載の方法。
【請求項９】
前記第１の視点は、前記第２の視点と少なくとも部分的に重なる、
請求項１に記載の方法。
【請求項１０】
前記第１の画像の第１のタイルは、前記第２の画像の第１のタイルに空間的に対応する、
請求項１に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
立体的なレンダリングでは、シーンの画像はユーザの左右の目に対して別個にレンダリングされ、左目画像の視点（perspective）及び右目画像の視点は、実世界のシーンの左目のビュー及び右目のビューと同様にオフセットされる。左目画像と右目画像との間のオフセットは、レンダリングされるシーンが、ビューアに対して単一の３次元のシーンとして見えることを可能にする。
【発明の概要】
【０００２】
タイル型レンダラ（tiled  renderer）を使用して立体シーンをレンダリングすることに関する実施形態が開示される。例えば開示される一実施形態は、第１の画像の第１のタイルをレンダリングするステップと、第１の画像の第１のタイルをレンダリングした後に、第２の画像の第１のタイルをレンダリングするステップとを備える方法を提供する。第２の画像の第１のタイルをレンダリングした後に、第１の画像の第２のタイルがレンダリングされる。第１の画像の第２のタイルをレンダリングした後に、第２の画像の第２のタイルがレンダリングされる。この方法は、第１の画像を第１のアイディスプレイに送信し、第２の画像を第２のアイディスプレイに送信するステップを更に備える。
【０００３】
この発明の概要の記載は、詳細な説明において下記で更に説明される概念の選択を簡略化した形で紹介するために提供される。この発明の概要の記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、特許請求に係る主題の範囲を限定するのに使用されるようにも意図されていない。さらに、特許請求に係る主題は、本開示の任意の箇所において示される欠点のいずれか又は全てを解決する実装に限定されない。
【図面の簡単な説明】
【０００４】
【図１】ヘッドマウントディスプレイデバイスで表示される立体的にレンダリングされるシーンの例を概略的に示す図である。
【０００５】
【図２】図１の立体シーンの左右の画像のタイルを概略的に示す図である。
【０００６】
【図３】本開示に係るメモリ階層の実施形態のブロック図である。
【０００７】
【図４】立体シーンの画像のタイルをインターリーブ方式でレンダリングするための方法の実施形態を示すフロー図である。
【０００８】
【図５Ａ】立体シーンの画像のタイルを非インターリーブ方式でレンダリングする順序を概略的に示す図である。
【０００９】
【図５Ｂ】図５Ａのレンダリングの順序に従う連続するタイルペアの間の誤差（error）のグラフを示す図である。
【００１０】
【図６Ａ】立体シーンの画像のタイルをインターリーブ方式でレンダリングする順序を概略的に示す図である。
【００１１】
【図６Ｂ】図６Ａのレンダリングの順序に従う連続するタイルペアの間の誤差のグラフを示す図である。
【００１２】
【図７】本開示に係るコンピューティングデバイスの実施形態のブロック図である。
【発明を実施するための形態】
【００１３】
３次元グラフィクスをレンダリングする幾つかのアプローチでは、タイル型レンダリングを使用して、例えば限られたメモリ帯域といった、そのようなレンダリングを行うのに使用されるハードウェアに関連付けられる潜在的な問題を克服する。タイル型レンダリングは、レンダリングされるべき画像をサブ画像へと細分し、全体の画像がディスプレイ上に表示されるまでサブ画像を連続的にレンダリングする。
【００１４】
立体レンダリングでは、シーンの左右の画像が、異なる視点から別個にレンダリングされる。同時に（又は十分に高いフレームレートで連続的に）表示されるとき、左右の画像は、シーンを３次元方式で再現するように見える。２つの画像がレンダリングされると、立体レンダリングは実質的に、メモリ帯域、時間及び電力消費を含め、３次元のシーンをレンダリングするのに使用されるリソースを増加（例えば倍増）させる。
【００１５】
したがって、本明細書では、立体画像のタイルをレンダリングするのに使用されるリソースを減少させることに関する実施形態が開示される。簡潔に言うと、開示される実施形態は、第１の画像の第１のタイルをレンダリングした後、第２の画像の第２のタイルをレンダリングすることに先立って、第２の画像の第１のタイルをレンダリングすることに関する。左目及び右目の画像の対応するタイルは多くの類似する特徴を有することがあるので、この方式によるインターリーブ型のレンダリングは、第１の画像の第１のタイルに関連付けられるデータの少なくとも一部を第２の画像の第１のタイルをレンダリングするのに使用することにより、メモリアクセスの不利益を低減することができる。
【００１６】
図１は、ユーザ１０４によって見られている立体オブジェクト１０２を含む立体的にレンダリングされるシーン１００の例を概略的に示している。立体シーン１００及び立体オブジェクト１０２は、この例では、ユーザ１０４により装着されるヘッドマウントディスプレイ（ＨＭＤ）１０６によってレンダリングされ、表示される。ここでは、立体オブジェクト１０２の２つの画像がそれぞれ、ユーザ１０４の左右の目のためにレンダリングされる。これらの画像はそれぞれ、３次元の印象を与えるよう適切にオフセットされる第１の視点及び第２の視点からレンダリングされ得る。
【００１７】
図示される例では、立体画像はＨＭＤ１０６によって表示される。ＨＭＤ１０６は、ユーザ１０４がそのようなＨＭＤによって表示されるコンテンツを知覚し、かつ周囲の物理的環境の要素は知覚しないように、ユーザ１０４の視野を実質的に占有するディスプレイを有する、仮想現実デバイスを表すことがある。別の例では、ＨＭＤ１０６は、画像が背景の物理的環境上に表示され得る、シースルーのディスプレイを備える拡張現実デバイスを表してもよい。
【００１８】
認識されるように、ＨＭＤ１０６は、単に例示として提供されており、限定するようには意図されていない。他の実施形態では、立体シーン１００及び立体オブジェクト１０２は、ユーザ１０４の頭部に装着されないディスプレイデバイスを介して提示されてもよい。例えばディスプレイデバイスは、立体オブジェクト１０２の画像を提示し、次いで、この画像が、ユーザ１０４によって装着されるフレーム内の偏光レンズによって別個の左右の画像に区分される。あるいは、ディスプレイデバイスは、立体オブジェクト１０２の左右の画像を比較的早いスピード（例えば毎秒１２０フレーム）で交互に表示してもよい。左右の画像は、ある瞬間に左右の画像のうちの１つのみが知覚されるように、ディスプレイ出力のフレームレートに同期されるシャッターガラスを介して選択的にブロックされ、ユーザ１０４に伝送され得る。
【００１９】
図２は、立体的ペア画像の左画像２０２と右画像２０４の例を示している。左画像２０２及び右画像２０４はそれぞれ、ユーザ１０４の左右の目の視点からの立体シーン１００及び立体オブジェクト１０２を示す。この例では、第１及び第２の視点は、立体オブジェクト１０２のより左方向の部分が左画像２０２内で見え、オブジェクト１０２のより右方向の部分が右画像２０４内で見えるように、オフセット角によって、相互から角度的にオフセットされている。
【００２０】
図２はまた、左右の画像２０２及び２０４のタイル型レンダリングも概略的に図示している。上述のように、タイル型レンダラは、一部のデバイスに存在し得るハードウェア制約を軽減するのを助けることができる。例えばレンダラからの出力を書き込むバッファ（例えばフレームバッファ）は、シーンの所与の画像についてレンダリングされる出力の全体を格納するには小さすぎることがある。したがって、タイル型レンダラは、単一のタイルのレンダリングされる出力が、任意の所与の時間にバッファを占有するよう、レンダリングされるべきシーンの画像をタイルへとサブ分割するのに使用され得る。バッファに書き込まれると、そのタイルのレンダリングされた出力は、別のタイルをレンダリングする前に、ディスプレイデバイスに送信されることがある。あるいは、所与のタイルのレンダリングされた出力は、別のタイルがレンダリングされる前に、メモリ内の別の場所（例えば別のバッファ）に書き込まれることがある。一部の実装において、タイル型レンダラの使用は、各タイルが独立にレンダリングされ得るので、レンダリングパラダイムを容易にすることができる。
【００２１】
図示される例では、タイル型レンダラは、左右の画像２０２及び２０４を４つの等しい矩形のタイルにサブ分割している。しかしながら、認識されるように、左右の画像２０２及び２０４を実質的に任意の適切な形状の任意の数のタイルにサブ分割してもよい。
【００２２】
左画像２０２は、時計まわりに連続的に指定された４つのタイル：Ｌ１、Ｌ２、Ｌ３及びＬ４を備える。同様に、右画像２０４は、時計まわりに連続的に指定された４つのタイル：Ｒ１、Ｒ２、Ｒ３及びＲ４を備える。図示されるように、対応する画像の４つのタイルの各セット（例えば左画像２０２のＬ１、Ｌ２、Ｌ３及びＬ４）は実質的に、立体シーン１００及び立体オブジェクト１０２の異なる要素を含む。対照的に、左画像２０２と右画像２０４との間の空間的に対応するタイルペア（例えばＬ１とＲ１、Ｌ２とＲ２、Ｌ３とＲ３及びＬ４とＲ４）は実質的に、上述のように角度のオフセットを有するが、立体シーン１００及び立体オブジェクト１０２の類似する領域に対応するので、これらの空間的に対応するタイルペアは実質的に、立体シーン１００及び立体オブジェクト１０２の類似する要素を含む。そのようなタイルペアは、実質的に空間的にコヒーレント（干渉性）があると言うことができる。そのようなタイルペアのコヒーレンスを用いて、図４、図６Ａ及び図６Ｂに関連して下記で詳細に説明されるように、左右の画像２０２及び２０４をレンダリングすることに関連する時間、電力及びメモリアクセスを減少させることができる。
【００２３】
図３は、左右の画像２０２及び２０４をレンダリングするために、タイルベースのレンダリングパイプラインで使用することができる例示のメモリ階層３００を図示している。階層３００は、メインメモリ３０２を含む。メインメモリ３０２は、最高容量だけでなく、最高の待機時間も有し、ここで、待機時間とは、データが、メモリ内で、そのデータを求める要求に続いて利用可能になる時間を指す。左右の画像２０２及び２０４がレンダリングされるレンダリングパイプラインの実行に先行して、又は実行中に、立体シーン１００及び立体オブジェクト１０２をレンダリングするために使用されるデータを、メインメモリ３０２に書き込むことができる。そのようなシーンデータは、例えばレンダリングエンジン及び他のアプリケーションのコード、基本（要素）データ、テクスチャ等を含み得る。
【００２４】
メモリ階層３００は更に、図３では破線で表されるバスを介して、メインメモリ３０２に動作可能に結合されるコマンドバッファ３０４も含む。この例では、コマンドバッファ３０４は、メモリのより小さな別個の領域を占有し、メインメモリ３０２と比べて少ない待機時間を有することができる。したがって、コマンドバッファ３０４内のデータを求める要求は、より短い時間で満たされ得る。左右の画像２０２及び２０４の一方（又は一部の実施形態では双方）のデータを、該データがレンダリングパイプラインによって迅速にアクセスされ得るように、メインメモリ３０２からコマンドバッファ３０４に書き込むことができる。このデータは、コマンドプログラム、関連するパラメータ及び画像をレンダリングするのに必要とされる任意の他のリソースを含むことがあり、そのようなリソースは、これらに限られないが、シェーダ（shader）、定数、テクスチャ、頂点（vertex）バッファ、インデックスバッファ及びビュー変換マトリクス又は画像（例えば左画像２０２）がレンダリングされる視点に関する情報を符号化する他のデータ構造を含む。
【００２５】
メモリ階層３００は、破線で表されるバスを介して、コマンドバッファ３０４に動作可能に結合されるタイルバッファ３０６も含む。タイルバッファ３０６は、メモリのより小さな別個の領域を占有し、コマンドバッファ３０４と比べて少ない待機時間を有することができる。特定のタイル（例えばＬ１）のデータを、この特定のタイルのデータが、レンダリングパイプライン及びタイル型レンダラによって更に迅速にアクセスされ得るように、コマンドバッファ３０４からタイルバッファ３０６に書き込むことができる。タイルバッファ３０６は、所与のタイル及び所与のタイルサイズについてタイルデータの全体を格納するように構成され得る。
【００２６】
一部の実施形態において、コマンドバッファ３０４及びタイルバッファ３０６は、これらのバッファにそれぞれ割り当てられる第１のキャッシュ及び第２のキャッシュの領域を占有する。第１のキャッシュは、第１の待機時間を有し、第２のキャッシュは、第１の待機時間よりも短い第２の待機時間を有することができる。このようにして、タイルデータについてのメモリフェッチが最適化され、タイルデータフェッチの結果から生じる待機時間の不利益は減少した。
【００２７】
認識されるように、メインメモリ３０２、コマンドバッファ３０４及びタイルバッファ３０６はそれぞれ、論理デバイスに動作可能に結合され得る個別の物理メモリモジュールに対応し得る。あるいは、メインメモリ３０２、コマンドバッファ３０４及びタイルバッファ３０６のうちの１つ以上が単一の物理メモリモジュールに対応してもよく、システムオンチップ（ＳｏＣ）構成内の論理デバイスにより更に具現化されてもよい。さらに、メインメモリ３０２、コマンドバッファ３０４及びタイルバッファ３０６の間の読取及び書込を容易にするバスは、その性質上例示である。他の実施形態では、例えばバッファ３０６は、メインメモリ３０２に動作可能に直接結合されてもよい。
【００２８】
図４は、立体シーンの画像のタイルをインターリーブ方式でレンダリングするための方法４００の実施形態を示すフロー図である。方法４００は、立体シーン１００、左右の画像２０２及び２０４とその構成タイル、並びにメモリ階層３００に関連して説明される。しかしながら、理解されるように、方法は、共通のシーンが２つ以上の視点からレンダリングされる、任意の他のタイル型レンダリングシナリオ及びハードウェア環境において使用されてもよい。適切なハードウェアの例は、図７に関連して以下でより詳細に説明される。
【００２９】
４０２において、方法４００は、立体シーン１００のシーンデータを、メインメモリ３０２からコマンドバッファに書き込む工程を含む。上述のように、シーンデータは、実質的に球形状のオブジェクトをモデル化する基本要素（primitive）、オブジェクトの表面の外観に影響するテクスチャ等のように、立体シーン１００及び立体オブジェクト１０２をレンダリングするための複数の要素を備えることができる。認識されるように、コマンドバッファ３０４及びタイルバッファ３０６が、メインメモリからシーンデータを読み出すことができるように、４０２に先行して、そのようなシーンデータを、レンダリングパイプラインや他のアプリケーションコードのような他のデータとともにメインメモリ３０２に書き込むことができる。
【００３０】
４０４において、方法４００は、第１の画像についての第１のタイルデータを、コマンドバッファに書き込まれたシーンデータから抽出する工程を含む。例えば左画像２０２のタイルＬ１に関連するタイルデータが、シーンデータから抽出され得る。このタイルデータは、左画像の第１のタイルに対応するが他のタイルには対応しない、基本要素、テクスチャ等を含むシーンデータのサブセットとすることができる。第１のタイルデータの抽出は、クリッピング、切り抜き（scissor）、オクルージョン選別操作（occlusion  culling  operation）といった、第１のタイルに特有のシーンデータを決定するアクションを含み得る。方法４００は、４０６において、第１の画像についての第１のタイルデータをタイルバッファ３０６に書き込む工程を更に含む。
【００３１】
４０８において、第１の画像（例えば左画像２０２）の第１のタイル（例えばＬ１）がレンダリングされる。上述のように、レンダリングは、変換、テクスチャ付け、シェーディング等を含んでよく、これは、第１のタイルデータをまとめて、ディスプレイデバイス（例えばＨＭＤ１０６）に送信可能なデータに変換して、観察可能な画像（例えばユーザ１０４によって観察される立体シーン１００）を生成する。
【００３２】
次に、４１０において、第２の画像（例えば右画像２０４）の第１のタイル（例えばＲ１）が、タイルバッファ３０６に先に書き込まれ、かつタイルバッファ３０６を現在占有している、第１の画像のタイルについてのタイルデータに基づいてレンダリングされる。ここで、タイルバッファ３０６に既に書き込まれているＬ１の多くの部分が、Ｒ１をレンダリングするのに再利用され得るので、空間的に対応するタイルペアＬ１−Ｒ１間の潜在的にかなりの空間的コヒーレンスが使用される。このようにして、他の方法では立体シーンの２つの異種の画像タイルをレンダリングする際に倍増する可能性がある時間、処理リソース、電力等を、減少させることができる。より具体的には、第１の画像（例えば左画像２０２）の空間的に対応するタイル（例えばＬ１）をレンダリングした後に、第２の画像（例えば右画像２０４）のタイル（例えばＲ１）をレンダリングすることにより、第２の画像の第１のタイル（例えばＲ１）をレンダリングする前に第１の画像の全てのタイル（例えばＬ１−Ｌ４）をレンダリングすることに比べて、コマンドバッファ３０４に対するメモリフェッチの数を減らすことができる。
【００３３】
認識されるように、処理４１０を実行することに先行して、コマンドバッファ３０４内に存在し得る上述のようなビュー変換マトリクスを使用して、第２の画像（例えば右画像２０４）がレンダリングされる視点を再決定することができる。
【００３４】
一部の例では、第２の画像の第１のタイルのレンダリングに使用される一部のデータが、（例えば立体画像のわずかに異なる視点に起因して）タイルバッファ内にないことがある。したがって、第２の画像の第１のタイルのレンダリング中にタイルバッファ欠損（ミス）が生じる場合、タイルバッファ内のタイルデータを使用して第２の画像の第１のタイルの少なくとも一部をレンダリングした後、第２の画像の第２のタイルをレンダリングすることに先立って、第２の画像の第１のタイルの残りの部分をコマンドバッファ内のタイルデータに基づいてレンダリングすることができる。これは、４１２において示されており、４１２では、タイルバッファ３０６内にタイルデータの欠損が存在する場合、第２の画像（例えば右画像２０４）のタイルデータ（例えばＲ１のデータ）がコマンドバッファ３０４から取得される。タイルバッファ３０６がキャッシュを占有する実施形態では、タイルバッファ欠損はキャッシュ欠損に対応する。一部のシナリオでは、４０６においてタイルバッファ３０６に既に書き込まれたタイルデータが、このタイルを完全にレンダリングするのに十分であるとき、コマンドバッファ３０４へのアクセスは省略され得る。
【００３５】
４１４において、方法４００は、第１及び第２の画像について更にレンダリングしなければならない追加のタイルが存在するかどうかを決定する工程を含む。第１及び第２の画像について更にレンダリングしなければならない追加のタイルが存在しない場合、方法４００は４１８に進み、ここで、第１の画像が第１のアイディスプレイに送信され、第２の画像が第２のアイディスプレイに送信され得る。
【００３６】
一方、第１及び第２の画像について更にレンダリングしなければならない追加のタイルが存在する場合、方法４００は次いで４１６に進み、ここで第１の画像（例えば左画像２０２）の次のタイル（例えばＬ２）のタイルデータが、４０４のようにコマンドバッファ３０４内のシーンデータから抽出される。第１の画像の次のタイルのタイルデータの抽出に続いて、４０８のように次のタイルデータがレンダリングされる。したがって、方法４００は、第１及び第２の画像の全てのタイルがレンダリングされるまで繰り返し進行し、第１及び第２の画像の全てのタイルがレンダリングされた時点で、第１及び第２の画像がそれぞれ第１のアイディスプレイ及び第２のアイディスプレイに送信される。認識されるように、４１８及び４２０において、それぞれのアイディスプレイに送信される第１及び第２の画像は、上述のように同時又は連続的に実行されてよい。さらに、第１及び第２のアイディスプレイは、別個のディスプレイであるか、隣接するディスプレイデバイスを形成してもよく、ＨＭＤ１０６のように装着可能なディスプレイデバイスの一部であっても、コンピュータディスプレイ（例えばモニタ、タブレット画面、スマートフォン画面、ラップトップ画面等）のように装着不可能なディスプレイデバイスの一部であってもよい。
【００３７】
方法４００の後に達成され得る計算リソースの潜在的な節約は、図５Ａ〜図５Ｂ及び図６Ａ〜図６Ｂを通して実証される。なお、図５Ａ及び図５Ｂは、立体画像の非インターリーブのタイル型レンダリングを示し、図６Ａ及び図６Ｂは、方法４００に係る立体画像のタイル型レンダリングの例を示す。
【００３８】
まず、図５Ａ〜図５Ｂに関して、左画像２０２のタイルセットが、Ｌ１、Ｌ２、Ｌ３、Ｌ４という順序で連続的にレンダリングされる。左画像２０２のタイルセットがレンダリングされた後に、右画像２０４のタイルセットの全体が、Ｒ１、Ｒ２、Ｒ３、Ｒ４という順序で連続的にレンダリングされる。このアプローチでは、２つの画像の空間的に対応するタイルのペアの間の空間的コヒーレンシは利用されない。したがって、データのセットのほぼ全体が、各レンダリングされたタイルのタイルバッファに書き込まれる。その結果、このアプローチでは、シーン（例えばシーン１００）の２つの画像の立体的なレンダリングは、同じシーンの単一の画像をレンダリングする際と比べて、計算リソースを概ね倍増させ得る。
【００３９】
図５Ｂは、図５Ａに表されるアプローチに基づいてタイルがレンダリングされる順序に従って、左右の画像２０２及び２０４の各々連続するタイルペアの間で算出される画像の誤差のグラフ５５０を示している。図示されるように、各々連続するタイルペアの間の誤差は、比較的高い誤差値のあたりを上下し、これは、連続するタイルペア間の画像コンテンツにおける顕著な相違を示す。認識されるように、誤差グラフ５５０は、具体的な例として提供されており、図５Ａのレンダリングアプローチを使用して生成される同様の誤差グラフは、レンダリングされているタイルの視覚的コンテンツに応じて、連続するタイル間のより多く又はより少ない誤差を表示することがある。
【００４０】
誤差グラフ５５０は、各々隣接するタイルのペアの第２のタイルをレンダリングするときに、コマンドバッファ３０４からタイルバッファ３０６にコピーされるデータの相対的な量も表し得る−例えばＬ４とＲ１のペアに対応する誤差値は、タイルＬ４をレンダリングした後にタイルＲ１をレンダリングするときに、タイルバッファにコピーされるデータの量を表すことができる。一部の例では、各タイルペアの第２のタイルの一部は、第１のタイルをレンダリングするために先に書き込まれたタイルバッファ３０６内に存在するデータに基づいてレンダリングされ得るが（例えばキャッシュヒットに対応する）、この例では、第２のタイルをレンダリングするのに必要なタイルデータの大部分は、コマンドバッファ３０４からタイルバッファ３０６にコピーされる（例えばキャッシュミスに対応する）。
【００４１】
次に、図６Ａは、図２の左右の画像２０２及び２０４のタイルが、図４の方法４００に従ってレンダリングされる順序を示す。ここで、タイルは、以下の方式：Ｌ１、Ｒ１、Ｌ２、Ｒ２、Ｌ３、Ｒ３、Ｌ４及びＲ４により、空間的コヒーレンシに基づいてインターリーブ方式でレンダリングされる。左右の画像２０２及び２０４のタイルをこの順序でレンダリングすることにより、空間的に対応するタイルペアの第１のタイルをレンダリングするためにタイルバッファ３０６（図３）に既に書き込まれているタイルデータが、タイルペアの第２のタイルをレンダリングする際に利用される。したがって、立体シーンの画像をレンダリングする間に発生する計算コスト（例えば時間、電力等）を、かなり減少させることができ、一部の場合には２倍近くも減少させることができる。
【００４２】
図６Ｂは、図４及び図６Ａのアプローチに基づいてタイルがレンダリングされる順序に従って、隣接するタイルの間で算出される画像誤差を例示するグラフ６５０を示す。インターリーブ型のレンダリングにより、誤差は、タイルＬ１とＲ１との間の空間的対応に起因するより小さい誤差値で始まり、（互いに対して）比較的大きい誤差と比較的小さい誤差の間で交互に起こる。
【００４３】
グラフ６５０は、各ペアの第２のタイルをレンダリングするときに、コマンドバッファ３０４からタイルバッファ３０６（図３）にコピーされるデータの量も表すことができる。例えばタイルＬ１のレンダリングに続いてタイルＲ１をレンダリングするとき、タイルＬ１をレンダリングするためにタイルバッファに先にコピーされたタイルデータの多くの部分がＲ１をレンダリングするのに再利用されるので、比較的少ない量のデータがタイルバッファにコピーされる。反対に、空間的に対応しないタイルペアをレンダリングするとき、例えばタイルＲ１をレンダリングした後にタイルＬ２をレンダリングするときは、タイルバッファ３０６に先に書き込まれ、その中に存在している比較的少ない量のデータが利用されることになる。
【００４４】
したがって、開示される実施形態は、立体画像のタイル型レンダリングを実行するときに、計算リソースの効率的な使用を可能にすることができる。一部の実施形態において、本明細書で説明される方法及び処理は、１つ以上のコンピューティングデバイスのコンピューティングシステムに結び付けられることがある。特に、そのような方法及び処理は、コンピュータアプリケーションプログラム若しくはサービス、アプリケーションプログラミングインタフェース（ＡＰＩ）、ライブラリ及び／又は他のコンピュータプログラム製品として実装され得る。
【００４５】
図７は、上述の方法及び処理のうちの１つ以上を実行することができる、コンピューティングシステム７００の非限定的な実施形態を概略的に示している。コンピューティングシステム７００は、簡略化された形で示されている。コンピューティングシステム７００は、１つ以上のパーソナルコンピュータ、サーバコンピュータ、タブレットコンピュータ、ホームエンターテイメントコンピュータ、ネットワークコンピューティングデバイス、ゲームデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス（例えばスマートフォン）及び／又は他のコンピューティングデバイスの形を取り得る。
【００４６】
コンピューティングシステム７００は、論理サブシステム７０２及びストレージサブシステム７０４を含む。コンピューティングシステム７００は、任意選択により、ディスプレイサブシステム７０６、入力サブシステム７０８、通信サブシステム７１０及び／又は図７には図示されていない他のコンポーネントを含んでもよい。
【００４７】
論理サブシステム７０２は、命令を実行するように構成される１つ以上の物理デバイスを含む。例えば論理サブシステムは、１つ以上のアプリケーション、サービス、プログラム、ルーチン、ライブラリ、オブジェクト、コンポーネント、データ構造又は他の論理構造の一部である命令を実行するように構成され得る。そのような命令は、タスクを実行し、データタイプを実装し、１つ以上のコンポーネントの状態を変換し、技術的効果を達成し、あるいは他の方法で所望の結果に到達するよう実装され得る。
【００４８】
論理サブシステムは、ソフトウェア命令を実行するように構成される１つ以上のプロセッサを含み得る。あるいはまた、論理サブシステムは、ハードウェア又はファームウェア命令を実行するように構成される１つ以上のハードウェア又はファームウェア論理サブシステムを含んでもよい。論理サブシステムのプロセッサは、シングルコアであってもマルチコアであってもよく、そのプロセッサ上で実行される命令は、逐次処理、並列処理及び／又は分散処理のために構成され得る。論理サブシステムの個々のコンポーネントは、任意選択により、協調的処理のためにリモートに配置及び／又は構成され得る、２つ以上の別個のデバイス間で分散されてもよい。論理サブシステムの態様は、クラウドコンピューティング構成で構成されるリモートアクセス可能なネットワーク化されたコンピューティングデバイスにより仮想化され、実行され得る。
【００４９】
ストレージサブシステム７０４は、本明細書で説明される方法及び処理を実行するために論理サブシステムにより実行可能な命令を保持するよう構成されるコンピュータ読取可能記憶媒体を備える、１つ以上の物理デバイスを含む。そのような方法及び処理が実装されると、ストレージサブシステム７０４の状態は−例えば異なるデータを保持するように−変換され得る。
【００５０】
ストレージサブシステム７０４は、取外し可能及び／又は内蔵デバイスを含み得る。ストレージサブシステム７０４は、他の中でも特に、光学メモリ（例えばＣＤ、ＤＶＤ、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙ（登録商標）ディスク等）、図３のメモリ階層を３００含む半導体メモリ（例えばＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）、１つ以上のキャッシュ（例えばレベル１キャッシュ、レベル２キャッシュ等）及び／又は磁気メモリ（例えばハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、ＭＲＡＭ等）を含み得る。ストレージサブシステム７０４は、揮発性、不揮発性、動的、静的、読取／書込、読取専用、ランダムアクセス、逐次アクセス、位置アドレス可能、ファイルアドレス可能及び／又はコンテンツアドレス可能なデバイスを含み得る。
【００５１】
認識されるように、ストレージサブシステム７０４は、１つ以上の物理デバイスを含み、伝搬信号自体は除く。しかしながら、本明細書で説明される命令の態様は代替的に、コンピュータ読取可能記憶媒体に格納されるものとは反対に、通信媒体（例えば電磁気信号、光信号等）によって伝搬されてもよい。
【００５２】
論理サブシステム７０２及びストレージサブシステム７０４の態様は一緒に、１つ以上のハードウェア論理コンポーネントに統合されてもよい。そのようなハードウェア論理コンポーネントは、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定プログラム及び特定用途向け集積回路（ＰＡＳＩＣ／ＡＳＩＣ）、特定プログラム及び特定用途向け規格品（ＰＳＳＰ／ＡＳＳＰ）、システムオンチップ（ＳＯＣ）及び結合プログラム可能論理回路（ＣＰＬＤ）を含み得る。
【００５３】
「プログラム」という用語は、特定の機能を実行するよう実装されるコンピューティングシステム７００の態様を説明するのに使用され得る。一部の場合において、プログラムは、ストレージサブシステム７０４によって保持される命令を実行する論理サブシステム７０２を介して、インスタンス化され得る。理解されるように、異なるプログラムが同じアプリケーション、サービス、コードブック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、関数等からインスタンス化されてもよい。同様に、同じプログラムが、異なるアプリケーション、サービス、コードブック、オブジェクト、ライブラリ、ルーチン、ＡＰＩ、関数等からインスタンス化されてもよい。「プログラム」という用語は、実行可能ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコード等の個々を及びグループを包含し得る。
【００５４】
ディスプレイサブシステム７０６は、ストレージサブシステム７０４によって保持されるデータの視覚的表現を提示するのに使用され得る。本明細書で説明される方法及び処理が、ストレージマシンによって保持されるデータを変更し、したがって、ストレージマシンの状態を変換すると、ディスプレイサブシステム７０６の状態も同様に、元となるデータの変更を視覚的に表すよう変換され得る。ディスプレイサブシステム７０６は、これに限定されないが図１のＨＭＤ１０６を含め、実質的に任意のタイプの技術を使用する１つ以上のディスプレイデバイスを含むことができる。そのようなディスプレイデバイスは、論理サブシステム７０２及び／又はストレージサブシステム７０４と共有の筐体内で組み合わされてよく、あるいはそのようなディスプレイデバイスは周辺機器のディスプレイデバイスであってもよい。
【００５５】
入力サブシステム７０８は、含まれるとき、キーボード、マウス、タッチスクリーン又はゲームコントローラといった、１つ以上のユーザ入力デバイスを備えるか、これらとインタフェースし得る。一部の実施形態において、入力サブシステムは、選択されたナチュラルユーザインプット（ＮＵＩ）の構成部品を備えるか、これとインタフェースし得る。そのような構成部品は一体型でも周辺機器であってもよく、入力アクションの変換及び／又は処理は、オンボード又はオフボードで処理され得る。例示のＮＵＩ構成部品は、スピーチ及び／又は音声認識のためのマイクロフォン；マシンビジョン及び／又はジェスチャ認識のための赤外、色、立体及び／又は深度カメラ；動き検出及び／又は意図認識のためのヘッドトラッカ、アイトラッカ、加速度計及び／又はジャイロスコープ；並びに脳活性を評価するための電場感知構成物品を含み得る。
【００５６】
通信サブシステム７１０は、含まれるとき、コンピューティングシステム７００を１つ以上の他のコンピューティングデバイスと通信的に結合するように構成され得る。通信サブシステム７１０は、１つ以上の異なる通信プロトコルと互換性のある、有線及び／又は無線の通信デバイスを含み得る。非限定的な例として、通信サブシステムは、無線の電話ネットワーク、あるいは有線又は無線のローカル又はワイドエリアネットワークを介する通信のために構成され得る。一部の実施形態において、通信サブシステムは、コンピューティングシステム７００が、インターネットのようなネットワークを介して、他のデバイスへメッセージを送信し、かつ／又は他のデバイスからメッセージを受け取ることを可能にすることができる。
【００５７】
理解されるように、様々な変更が可能であるので、本明細書で説明される構成及び／又はアプローチはその性質上例示であり、これらの具体的な実施形態又は例は、限定的意味に解釈されるべきではない。本明細書で説明される具体的なルーチン又は方法は、任意の数の処理ストラテジのうちの１つ又は複数を表すことがある。したがって、図示及び／又は説明される様々な動作は、図示及び／又は説明されるシーケンスで実行されても、他のシーケンス又は並列に実行されてもよく、あるいは省略されてもよい。同様に、上述の処理の順序を変更してもよい。
【００５８】
本開示の主題は、様々な処理、システム及び構成、並びに本明細書で開示される他の特徴、機能、動作及び／又は特性、並びにそのいずれか又は全ての均等物について、全ての新規かつ非自明な組み合わせ及び副次的な組み合わせを含む。
【図１】
2016529593.tif 000003
【図２】
2016529593.tif 000004
【図３】
2016529593.tif 000005
【図４】
2016529593.tif 000006
【図５Ａ】
2016529593.tif 000007
【図５Ｂ】
2016529593.tif 000008
【図６Ａ】
2016529593.tif 000009
【図６Ｂ】
2016529593.tif 000010
【図７】
2016529593.tif 000011
【国際調査報告】
2016529593.tif 000012
2016529593.tif 000013