(57)【要約】      （修正有）【課題】中心窩レンダリングを行うグラフィックス処理システムを提供する。【解決手段】グラフィック処理パイプライン５００は、少なくとも初期処理ステージとさらなる処理ステージとを含む。初期処理ステージにおいて、第１の解像度及び第２の解像度のシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データが受信される。注視追跡データから、シーンの少なくとも１つのサブ領域が特定され、さらなる処理ステージにおいて、第１の解像度のシーンのデータと、第２の解像度のシーンの特定された少なくとも１つのサブ領域に対応するデータのみとが処理され、処理されたシーンのデータを結合することによってシーンがレンダリングされる。【選択図】図５
2018049603.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理システムを動作させる方法であって、前記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、前記方法が、
前記初期処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
前記初期処理ステージにおいて、第２の解像度で前記シーンのデータを処理するステップと、
前記初期処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された前記注視追跡データから、前記シーンの少なくとも１つのサブ領域を特定するステップと、
前記さらなる処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記シーンの特定された前記少なくとも１つのサブ領域に対応するデータのみを前記第２の解像度で処理するステップと、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記少なくとも１つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
を含む、方法。
【請求項２】
前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
前記中間処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理するステップと、
前記中間処理ステージにおいて、前記第２の解像度で前記シーンの特定された前記少なくとも１つのサブ領域に対応するデータのみを処理するステップと、
を含み、
前記注視追跡データが、前記中間処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理する前に受信され、前記中間処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理する前の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在位置に関する、請求項１に記載の方法。
【請求項３】
前記グラフィックス処理パイプラインが、前記初期処理ステージと前記さらなる処理ステージとの間に中間処理ステージを含み、前記方法が、
前記中間処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理するステップと、
前記中間処理ステージにおいて、前記第２の解像度で前記シーンのデータを処理するステップと、
を含み、
前記注視追跡データが、前記中間処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後に受信され、前記中間処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する、請求項１に記載の方法。
【請求項４】
前記さらなる処理ステージの処理が、前記中間処理ステージの処理よりも高い計算負荷を有する、請求項２又は３に記載の方法。
【請求項５】
前記中間処理ステージが、１つ又は複数のジオメトリ演算を含む、請求項２〜４のいずれか一項に記載の方法。
【請求項６】
前記さらなる処理ステージの処理が、前記初期処理ステージの処理よりも高い計算負荷を有する、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記さらなる処理ステージが、１つ又は複数のピクセル処理演算を含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記初期処理ステージが、１つ又は複数のデータバッファリング操作を含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記グラフィックス処理パイプラインの各ステージにおいてシーンのデータを処理するステップが、前記グラフィックス処理パイプラインの各ステージにおいて前記シーンのデータのフレームを処理するサブステップを含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記第１の解像度が前記第２の解像度に比べて比較的高い、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記第１の解像度と前記第２の解像度とが所定の関係を有する、請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
前記所定の関係が、２のべき乗を含む、請求項１１に記載の方法。
【請求項１３】
前記所定の関係が、１／４を含む、請求項１１又は１２に記載の方法。
【請求項１４】
受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点に関し、
前記シーンの特定された前記少なくとも１つのサブ領域が、前記バーチャルリアリティユーザデバイスのユーザの前記少なくとも片目の前記中心窩の前記現在の固視点を中心とするサブ領域に関する、請求項１〜１３のいずれか一項に記載の方法。
【請求項１５】
前記シーンのデータが、左目ビューに関連するデータと右目ビューに関連するデータとを含み、前記グラフィックス処理パイプラインの各ステージの前記データを処理するステップが、前記左目ビューに関連するデータを処理するサブステップと、前記右目ビューに関連するデータを処理するサブステップと、を含み、
受信された前記注視追跡データが、前記バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けと、前記バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けと、に関する、請求項１〜１４のいずれか一項に記載の方法。
【請求項１６】
前記シーンの特定された前記少なくとも１つのサブ領域が、前記バーチャルリアリティユーザデバイスの前記ユーザの前記左目の前記中心窩の前記現在の位置付けを中心とする左目サブ領域と、前記バーチャルリアリティユーザデバイスの前記ユーザの前記右目の前記中心窩の前記現在の位置付けを中心とする右目サブ領域と、に関し、
前記シーンをレンダリングするステップが、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの左目データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記左目サブ領域に対応するデータと、を結合するサブステップと、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの右目データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記右目サブ領域に対応するデータと、を結合するサブステップと、
を含む、請求項１５に記載の方法。
【請求項１７】
特定された前記左目サブ領域のうちの少なくとも一部が、特定された前記右目サブ領域のうちの少なくとも一部と異なる、請求項１６に記載の方法。
【請求項１８】
前記初期処理ステージにおいて、第３の解像度で前記シーンのデータを処理するステップ
を含み、
前記注視追跡データが、前記初期処理ステージにおいて前記第３の解像度で前記シーンのデータを処理した後に受信され、前記初期処理ステージにおいて前記第３の解像度で前記シーンのデータを処理した後の前記バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関し、前記方法が、
前記さらなる処理ステージにおいて、前記第３の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記第３の解像度で前記シーンのさらなるサブ領域に対応するデータのみを処理するステップと、
を含み、
前記シーンをレンダリングするステップが、前記さらなる処理ステージにおいて前記第３の解像度で処理された前記シーンの前記データをさらに結合するサブステップを含む、請求項１〜１７のいずれか一項に記載の方法。
【請求項１９】
受信された前記注視追跡データから前記シーンの前記さらなるサブ領域を特定するステップを含む、請求項１８に記載の方法。
【請求項２０】
前記シーンの特定された前記少なくとも１つのサブ領域に基づいて前記シーンの前記さらなるサブ領域を計算するステップを含む、請求項１８に記載の方法。
【請求項２１】
グラフィックス処理パイプラインを含むグラフィックス処理システムを動作させる方法であって、前記グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの１つ又は複数の領域であり、前記シーンの１つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき１つ又は複数の領域を特定するステップを含む、方法。
【請求項２２】
グラフィックス処理システムを動作させる方法であって、前記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、前記方法が、
グラフィックス処理ワークアイテムについての入力データを前記グラフィックス処理パイプラインに第１の時間に提供するステップと、
前記グラフィックス処理パイプラインが前記グラフィックス処理ワークアイテムを処理している間第２のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを、前記グラフィックス処理パイプラインに提供するステップと、
を含む、方法。
【請求項２３】
グラフィックスプロセッサを動作させる方法であって、前記グラフィックスプロセッサが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられ、前記方法が、
前記初期処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
前記初期処理ステージにおいて、第２の解像度で前記シーンのデータを処理するステップと、
前記初期処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された前記注視追跡データから、前記シーンの少なくとも１つのサブ領域を特定するステップと、
前記さらなる処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理するステップと、
前記さらなる処理ステージにおいて、前記第２の解像度で前記シーンの特定された前記少なくとも１つのサブ領域に対応するデータのみを処理するステップと、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記少なくとも１つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングするステップと、
を含む、方法。
【請求項２４】
グラフィックス処理システムにおいて実行された場合に、請求項１〜２３のいずれか一項に記載の方法を実施するように構成されたソフトウェアコードを含む、コンピュータプログラム。
【請求項２５】
グラフィックス処理パイプラインを含むグラフィックス処理システムであって、前記グラフィックス処理パイプラインが、少なくとも初期処理ステージとさらなる処理ステージとを含み、前記グラフィックス処理システムが、
前記初期処理ステージにおいて、第１の解像度でシーンのデータを処理し、
前記初期処理ステージにおいて、第２の解像度で前記シーンのデータを処理し、
前記初期処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された前記注視追跡データから、前記シーンの少なくとも１つのサブ領域を特定し、
前記さらなる処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理し、
前記さらなる処理ステージにおいて、前記第２の解像度で前記シーンの特定された前記少なくとも１つのサブ領域に対応するデータのみを処理し、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記少なくとも１つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
ように構成された、グラフィックス処理システム。
【請求項２６】
グラフィックス処理パイプラインを含むグラフィックス処理システムであって、前記グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの１つ又は複数の領域であり、前記シーンの１つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき１つ又は複数の領域を特定するように構成された、グラフィックス処理システム。
【請求項２７】
少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含むグラフィックス処理システムであって、
グラフィックス処理ワークアイテムについての入力データを前記グラフィックス処理パイプラインに第１の時間に提供し、
前記グラフィックス処理パイプラインが前記グラフィックス処理ワークアイテムを処理している間第２のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを、前記グラフィックス処理パイプラインに提供する、
ように構成された、グラフィックス処理システム。
【請求項２８】
請求項２５〜２７のいずれか一項に記載のグラフィックス処理システムを備える、バーチャルリアリティユーザデバイス。
【請求項２９】
少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられたグラフィックスプロセッサであって、
前記初期処理ステージにおいて、第１の解像度でシーンのデータを処理し、
前記初期処理ステージにおいて、第２の解像度で前記シーンのデータを処理し、
前記初期処理ステージにおいて前記第１の解像度及び前記第２の解像度で前記シーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された前記注視追跡データから、前記シーンの少なくとも１つのサブ領域を特定し、
前記さらなる処理ステージにおいて、前記第１の解像度で前記シーンのデータを処理し、
前記さらなる処理ステージにおいて、前記第２の解像度で前記シーンの特定された前記少なくとも１つのサブ領域に対応するデータのみを処理し、
前記さらなる処理ステージにおいて前記第１の解像度で処理された前記シーンの前記データと、前記さらなる処理ステージにおいて前記第２の解像度で処理された前記シーンの特定された前記少なくとも１つのサブ領域に対応する前記データと、を結合することによって、前記シーンをレンダリングする、
ように構成された、グラフィックスプロセッサ。
【請求項３０】
請求項２９に記載のグラフィックスプロセッサを備える、バーチャルリアリティユーザデバイス。
【請求項３１】
添付の図面を参照して本明細書において実質的に記載された、方法。
【請求項３２】
添付の図面を参照して本明細書において実質的に記載された、グラフィックス処理システム。
【請求項３３】
添付の図面を参照して本明細書に実質的に記載された、グラフィックスプロセッサ。
【請求項３４】
添付の図面を参照して本明細書に実質的に記載された、グラフィックス処理パイプライン。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、グラフィックス処理システム及びグラフィックスプロセッサに関する。
【背景】
【０００２】
中心窩レンダリング（ｆｏｖｅａｔｅｄ  ｒｅｎｄｅｒｉｎｇ）は、表示される画像の一部がより高い解像度でレンダリングされ、その画像の１つ又は複数の他の部分がより低い解像度でレンダリングされるレンダリング技法である。この理由は、ユーザが直接見ている画像の一部は、視覚的に受容可能となるようにより高い解像度でレンダリングされる必要があり得、一方で、ユーザが直接見ていない、画像の周辺領域は、依然として視覚的に受容可能に見えつつも、より低い解像度でレンダリングされてもよいためである。中心窩レンダリングは、画像全体を最高解像度でレンダリングするのではなく、画像の周辺領域をより低い解像度でレンダリングすることによって、グラフィックス処理ユニット（ＧＰＵ）へのレンダリング負荷を削減するために使用され得る。
【０００３】
中心窩レンダリングは、画像のより高解像度のバージョンがレンダリングされる１つ又は複数の固視点を特定することを含み得、１つ又は複数の固視点から離れた領域がより低い解像度でレンダリングされる。画像の最高解像度の領域の位置、すなわち、１つ又は複数の固視点が決定され得る、異なる方法が存在する。たとえば、頭部追跡システム又は視線追跡システムが、ユーザが画像内で見ている場所の特定を試みるために使用され得る。
【０００４】
中心窩レンダリングの１つの用途は、バーチャルリアリティ（ＶＲ）ディスプレイ、たとえば、バーチャルリアリティヘッドマウントディスプレイ（ＶＲ  ＨＭＤ）に対して画像をレンダリングする場合である。高解像度ＶＲ  ＨＭＤは、深刻な樽形歪みを特徴とするレンズを使用し得る。この効果は、目ごとにディスプレイの中心に向かってレンダリングされる画像が拡大され、周辺エリアが全て縮小されるというものである。したがって、周辺領域は、中心の拡大される領域よりも低い品質で、ユーザにとって全体の視覚効果の著しい損失なしにレンダリングされ得る。
【０００５】
しかしながら、たとえば、中心窩レンダリングを行う場合に、グラフィックスプロセッサ及びグラフィックス処理システムの動作に改善の余地が残っている。
【概要】
【０００６】
本開示の第１の態様によれば、グラフィックス処理システムを動作させる方法であって、上記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、上記方法が、
初期処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて、第２の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて第１の解像度及び第２の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された注視追跡データから、シーンの少なくとも１つのサブ領域を特定するステップと、
さらなる処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
さらなる処理ステージにおいて、第２の解像度でシーンの特定された少なくとも１つのサブ領域に対応するデータのみを処理するステップと、
さらなる処理ステージにおいて第１の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第２の解像度で処理されたシーンの特定された少なくとも１つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングするステップと
を含む、方法が提供される。
【０００７】
本開示の第２の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムを動作させる方法であって、グラフィックス処理パイプラインにおいてレイトラッチ（ｌａｔｅ−ｌａｔｃｈｅｄ）の視線追跡データを用いて、シーンの１つ又は複数の領域であり、シーンの１つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき１つ又は複数の領域を特定するステップを含む、方法が提供される。
【０００８】
本開示の第３の態様によれば、グラフィックス処理システムを動作させる方法であって、上記システムが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含み、上記方法が、
グラフィックス処理ワークアイテムについての入力データをグラフィックス処理パイプラインに第１の時間に提供するステップと、
グラフィックス処理パイプラインがグラフィックス処理ワークアイテムを処理している間第２のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データをグラフィックス処理パイプラインに提供するステップと
を含む、方法が提供される。
【０００９】
本開示の第４の態様によれば、グラフィックスプロセッサを動作させる方法であって、上記グラフィックスプロセッサが、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられ、上記方法が、
初期処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて、第２の解像度でシーンのデータを処理するステップと、
初期処理ステージにおいて第１の解像度及び第２の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信するステップと、
受信された注視追跡データから、シーンの少なくとも１つのサブ領域を特定するステップと、
さらなる処理ステージにおいて、第１の解像度でシーンのデータを処理するステップと、
さらなる処理ステージにおいて、第２の解像度でシーンの特定された少なくとも１つのサブ領域に対応するデータのみを処理するステップと、
さらなる処理ステージにおいて第１の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第２の解像度で処理されたシーンの特定された少なくとも１つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングするステップと
を含む、方法が提供される。
【００１０】
本開示の第５の態様によれば、グラフィックス処理システムにおいて実行された場合に、１つ又は複数のそのような方法を実施するように構成されたソフトウェアコードを含む、コンピュータプログラムが提供される。
【００１１】
本開示の第６の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムであって、上記グラフィックス処理パイプラインが、少なくとも初期処理ステージとさらなる処理ステージとを含み、上記グラフィックス処理システムが、
初期処理ステージにおいて、第１の解像度でシーンのデータを処理し、
初期処理ステージにおいて、第２の解像度でシーンのデータを処理し、
初期処理ステージにおいて第１の解像度及び第２の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された注視追跡データから、シーンの少なくとも１つのサブ領域を特定し、
さらなる処理ステージにおいて、第１の解像度でシーンのデータを処理し、
さらなる処理ステージにおいて、第２の解像度でシーンの特定された少なくとも１つのサブ領域に対応するデータのみを処理し、
さらなる処理ステージにおいて第１の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第２の解像度で処理されたシーンの特定された少なくとも１つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングする
ように構成された、グラフィックス処理システムが提供される。
【００１２】
本開示の第７の態様によれば、グラフィックス処理パイプラインを含むグラフィックス処理システムであって、グラフィックス処理パイプラインにおいてレイトラッチの視線追跡データを用いて、シーンの１つ又は複数の領域であり、シーンの１つ又は複数の他の領域の解像度に比べて比較的高い解像度でレンダリングされるべき１つ又は複数の領域を特定するように構成された、グラフィックス処理システムが提供される。
【００１３】
本開示の第８の態様によれば、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインを含むグラフィックス処理システムであって、
グラフィックス処理ワークアイテムについての入力データをグラフィックス処理パイプラインに第１の時間に提供し、
グラフィックス処理パイプラインがグラフィックス処理ワークアイテムを処理している間第２のより遅い時間に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データをグラフィックス処理パイプラインに提供する
ように構成された、グラフィックス処理システムが提供される。
【００１４】
本開示の第９の態様によれば、１つ又は複数のそのようなグラフィックス処理システムを備える、バーチャルリアリティユーザデバイスが提供される。
【００１５】
本開示の第１０の態様によれば、少なくとも初期処理ステージとさらなる処理ステージとを含むグラフィックス処理パイプラインに関連付けられたグラフィックスプロセッサであって、
初期処理ステージにおいて、第１の解像度でシーンのデータを処理し、
初期処理ステージにおいて、第２の解像度でシーンのデータを処理し、
初期処理ステージにおいて第１の解像度及び第２の解像度でシーンのデータを処理した後、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データを受信し、
受信された注視追跡データから、シーンの少なくとも１つのサブ領域を特定し、
さらなる処理ステージにおいて、第１の解像度でシーンのデータを処理し、
さらなる処理ステージにおいて、第２の解像度でシーンの特定された少なくとも１つのサブ領域に対応するデータのみを処理し、
さらなる処理ステージにおいて第１の解像度で処理されたシーンのデータと、さらなる処理ステージにおいて第２の解像度で処理されたシーンの特定された少なくとも１つのサブ領域に対応するデータとを結合することによって、シーンをレンダリングする
ように構成された、グラフィックスプロセッサが提供される。
【００１６】
本開示の第１１の態様によれば、そのようなグラフィックスプロセッサを備える、バーチャルリアリティユーザデバイスが提供される。
【００１７】
さらなる特徴及び利点は、添付の図面を参照してなされる、単なる例として与えられる以下の説明から明らかとなろう。
【図面の簡単な説明】
【００１８】
【図１】本開示の一実施形態によるグラフィックス処理システムの一例の概略図である。
【図２】本開示の一実施形態によるグラフィックス処理パイプラインの一例の概略図である。
【図３】本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。
【図４】本開示の一実施形態によるフレームパイプライン化の一例の概略図である。
【図５】本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。
【図６】本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。
【図７】本開示の一実施形態によるグラフィックス処理パイプラインの他の例の概略図である。
【図８】グラフィックス処理パイプラインの他の例の概略図である。
【詳細な説明】
【００１９】
本開示の実施形態によるいくつかの例が、表示用のコンピュータグラフィックスの処理の文脈においてここで説明される。
【００２０】
図１を参照すると、グラフィックス処理システム１００の一例が概略的に示されている。
【００２１】
この例では、ホストプロセッサ１１０上で実行されるゲームなどのアプリケーション１０５は、関連付けられたＧＰＵ１１５によってグラフィックス処理演算が実行されるように要求する。これを行うために、アプリケーション１０５は、ＧＰＵ１１５のドライバ１２０によって解釈されるアプリケーションプログラミングインターフェース（ＡＰＩ）コールを生成する。ドライバ１２０はホストプロセッサ１１０上で動作する。ドライバ１２０は、アプリケーション１０５によって要求されたグラフィックス出力を生成するためのＧＰＵ１１５への適切なコマンドを生成する。アプリケーション１０５からのコマンドに応答して、コマンドのセットがＧＰＵ１１５に提供される。コマンドは、ディスプレイに表示されるフレームを生成するためのものであり得る。
【００２２】
図２を参照すると、グラフィックス処理パイプライン２００の一例が概略的に示されている。グラフィックス処理パイプライン２００は、ＧＰＵによって実行され得るアクションのシーケンスを指す。
【００２３】
この例では、ＧＰＵはタイルベースのレンダラである。したがって、ＧＰＵは、生成されるべきレンダー出力データアレイのタイルを生成する。レンダー出力データアレイは、出力フレームであり得る。タイルベースのレンダリングは、レンダー出力全体が一度に処理されるのではなく、レンダー出力が複数のより小さいサブ領域（又は「エリア」）に分割されるという点で、即時モードレンダリングと異なる。それらのサブ領域は、本明細書ではタイルと呼ばれる。各タイルは別々にレンダリングされる。たとえば、各タイルは次々にレンダリングされ得る。次いで、レンダリングされたタイルは再結合されて、表示用の完全なレンダー出力を提供する。タイルベースのレンダリングでは、レンダー出力は、規則的な大きさ及び形状のタイルに分割され得る。タイルは四角形又は他の形状であり得る。
【００２４】
「タイル化」及び「タイルベースの」レンダリングに使用され得る他の用語は、レンダリングタイルが「チャンク」と呼ばれる「チャンキング」、及び「バケット」レンダリングを含む。「タイル」及び「タイル化」という用語が以降便宜上使用されるが、これらの用語が全ての代替的及び等価的な用語及び技法を包含するよう意図されていることは理解されたい。
【００２５】
レンダー出力データアレイは、スクリーン又はプリンタなどの表示デバイスに表示するための出力フレームであり得る。レンダー出力はまた、たとえば、後のレンダリングパスで使用するための中間データを含むことができる。この一例は、「テクスチャへのレンダリング（ｒｅｎｄｅｒ  ｔｏ  ｔｅｘｔｕｒｅ）」出力である。
【００２６】
コンピュータグラフィックス画像が表示される場合、最初にジオメトリのセットとして、たとえばプリミティブのシリーズとして定義され得る。プリミティブの一例はポリゴンである。次いで、ジオメトリはラスタライズ処理においてグラフィックスフラグメントに分割される。これにグラフィックスレンダリングが続く。グラフィックスレンダリング演算の間に、レンダラは各フラグメントに関連するデータを修正して、フラグメントが正しく表示できるようにすることができる。そのようなデータの例は、色及び透明度を含む。フラグメントがレンダラを完全に横断すると、それらに関連するデータ値がメモリに記憶され、出力の準備ができる。
【００２７】
図２は、本明細書に記載の実施形態の動作に関する、ＧＰＵに関連付けられる様々な要素及びパイプラインステージを示す。しかしながら、図２に示されていないグラフィックス処理パイプラインの他の要素及びステージがあり得る。図２が単に概略的であること、また、たとえば、実際には、図示された機能ユニット及びパイプラインステージが、図２では別々のステージとして概略的に示されていても、重要なハードウェア回路を共有できることにも留意されたい。グラフィックス処理パイプライン２００のステージ、要素及びユニットなどのそれぞれが、望み通りに実装され得、したがって、たとえば、関連付けられた動作及び機能を実行するための適切な回路及び／又は処理ロジックなどを含むことも理解されよう。
【００２８】
図２に示されるように、ＧＰＵが実行するグラフィックス処理パイプライン２２０は、いくつかのステージ、たとえば、頂点シェーダ２０５、ハルシェーダ２１０、テッセレータ２１５、ドメインシェーダ２２０、ジオメトリシェーダ２２５、タイラ２３０、ラスタライズステージ２３５、早期（ｅａｒｌｙ：アーリー）Ｚ（又は「深度（ｄｅｐｔｈ：デプス）」）及びステンシルテストステージ２４０、フラグメントシェーディングステージ２４５の形態のレンダラ、後期（ｌａｔｅ：レイト）Ｚ（又は「深度」）及びステンシルテストステージ２５０、ブレンドステージ２５５、タイルバッファ２６０、並びにダウンサンプリング及び書き出しステージ２６５を含む。しかしながら、ＧＰＵの他の構成が可能である。
【００２９】
頂点シェーダ２０５は、生成されるべき出力のために定義された頂点に関連する入力データ値を受信する。頂点シェーダ２０５は、それらのデータ値を処理して、グラフィックス処理パイプライン２００の後続のステージによって使用するための、対応する頂点シェーディングされた出力データ値のセットを生成する。
【００３０】
処理されるべき各プリミティブは、頂点のセットによって定義され表現され得る。プリミティブの各頂点は、属性のセットが関連付けられ得る。属性のセットは、頂点についてのデータ値のセットである。これらの属性は、位置データ及び他の非位置データ（又は「ｖａｒｙｉｎｇ」）を含むことができる。非位置データは、たとえば、問題の頂点についての色、光、法線及び／又はテクスチャ座標を定義することができる。
【００３１】
頂点のセットが、ＧＰＵによって出力される所与の出力について定義される。出力のために処理されるべきプリミティブは、頂点のセットにおける所与の頂点を含む。頂点シェーディング演算は、各頂点の属性を、後続のグラフィックス処理演算のために所望の形態に変換する。これは、たとえば、頂点位置属性を、それらが最初に定義されたワールド又はユーザ空間から、グラフィックス処理システムの出力が表示されるスクリーン空間に変換することを含み得る。これは、たとえば、レンダリングされるべき画像内のライティングの効果を考慮するように入力データを修正することも含み得る。
【００３２】
ハルシェーダ２１０は、パッチ制御点のセットに演算を行い、パッチ定数として知られている追加データを生成する。
【００３３】
テッセレーションステージ２１５は、ジオメトリを細分化して、ハルの高次表現を作成する。
【００３４】
ドメインシェーダ２２０は、頂点シェーダ２０５と同様の方法で、テッセレーションステージによって出力された頂点に演算を行う。
【００３５】
ジオメトリシェーダ２２５は、三角形、点又は線などのプリミティブ全体を処理する。
【００３６】
頂点シェーダ２０５、ハルシェーダ２１０、テッセレータ２１５、ドメインシェーダ２２０及びジオメトリシェーダ２２５は、ＧＰＵに提供されたコマンド及び頂点データに応答して、フラグメントフロントエンド演算、たとえば、変換及びライティング演算、並びにレンダリングされるべきプリミティブをセットアップするためのプリミティブセットアップを行う。
【００３７】
レンダリングされるべき全てのプリミティブが適切にセットアップされると、タイラ２３０は、レンダラ出力が処理用に分割されたタイルごとに処理されるべきプリミティブを決定する。これを行うために、タイラ２３０は、処理されるべき各プリミティブの位置をタイル位置と比較し、プリミティブが入る可能性があると決定したタイルごとに、プリミティブをそれぞれのプリミティブリストに追加する。プリミティブをソートし、タイルリストにビニングするための任意の適切な所望の技法、たとえば正確なビニング、若しくはバウンディングボックスビニング、又はその間にあるものが、タイル化処理に使用され得る。
【００３８】
レンダリングされるべきプリミティブのリスト（又は「プリミティブリスト」）がこのようにレンダリングタイルごとに準備されると、プリミティブリストが使用のために記憶される。プリミティブリストによって、システムは、問題のタイルがレンダリングされる場合に、考慮されレンダリングされるべきプリミティブを特定することが可能になる。
【００３９】
タイラ２３０がタイルリストの全てを準備すると、各タイルがレンダリングされ得る。これを行うために、タイラ２３０に続くグラフィックス処理パイプラインステージによって各タイルが処理される。
【００４０】
所与のタイルが処理される場合、そのタイルについて処理されるべき各プリミティブがラスタライザ２３５に渡される。グラフィックス処理パイプライン２００のラスタライズステージ２３５は、プリミティブを処理用に個々のグラフィックスフラグメントにラスタライズするように動作する。これを行うために、ラスタライザ２３５は、プリミティブをサンプリング点にラスタライズし、プリミティブをレンダリングするための適切な位置を有するグラフィックスフラグメントを生成する。ラスタライザ２３５によって生成されたフラグメントは次いでその先へ、パイプライン２００の残りへ送信されて処理される。
【００４１】
早期Ｚ及びステンシルテストステージ２４０は、ラスタライザ２３５から受信したフラグメントにＺ（又は「深度」）テストを行って、任意のフラグメントがこのステージで破棄（又は「淘汰（ｃｕｌｌｅｄ）」）され得るかを確認する。これを行うために、早期Ｚ及びステンシルテストステージ２４０は、ラスタライザ２３５によって発行されたフラグメントの深度値を、レンダリング済みのフラグメントの深度値と比較する。レンダリング済みのフラグメントの深度値は、タイルバッファ２６０の一部である深度バッファに記憶される。早期Ｚ及びステンシルテストステージ２４０によって行われる比較は、新たなフラグメントがレンダリング済みのフラグメントによって閉塞されるか否かを判定するためのものである。同時に、早期ステンシルテストが実施される。フラグメント早期Ｚ及びステンシルテストステージ２４０を通過したフラグメントは、フラグメントシェーディングステージ２４５に送信される。フラグメントシェーディングステージ２４５は、早期Ｚ及びステンシルテストを通過したフラグメントに適切なフラグメント処理演算を行って、適切なレンダリングされたフラグメントデータを生成する。このフラグメント処理は、任意の適切なフラグメントシェーディング処理、たとえば、フラグメントシェーダプログラムをフラグメントに実行して適切なフラグメントデータを生成すること、テクスチャをフラグメントに適用すること、フォギング又は他の演算をフラグメントに適用することなどを含むことができる。フラグメントシェーディングステージ２４５は、プログラマブルフラグメントシェーダであり得る。
【００４２】
次いで、後期フラグメントＺ及びステンシルテストステージ２５０があり、これはとりわけ、パイプライン深度テストの残りをシェーディングされたフラグメントに実施して、レンダリングされたフラグメントが実際に最終画像で見られるかを判定するものである。この深度テストは、タイルバッファ２６０内のＺバッファに記憶されたフラグメントの位置についてのＺバッファ値を用いて、新たなフラグメントのフラグメントデータがレンダリング済みのフラグメントのフラグメントデータを置き換えるべきであるかを判定する。これは、フラグメントシェーディングステージ２４５によって発行されたフラグメントの深度値を、Ｚバッファに記憶されたレンダリング済みのフラグメントの深度値と比較することを必要とし得る。この後期フラグメント深度及びステンシルテストステージ２５０は、後期アルファ及び／又はステンシルテストをフラグメントに実施することもできる。
【００４３】
後期フラグメントテストステージ２５０を通過したフラグメントは次いで、ブレンダ２５５において、タイルバッファ２６０に記憶済みのフラグメントとの任意のブレンド演算が施され得る。フラグメントに必要な任意の他の残りの演算、たとえばディザなど（図示せず）も、このステージで実施される。
【００４４】
最後に、出力フラグメントデータ（又は「値」）がタイルバッファ２６０に書き込まれる。出力フラグメントデータは次いで、表示用にフレームバッファ２７０に出力され得る。出力フラグメントの深度値も、タイルバッファ２６０内のＺバッファに適切に書き込まれる。タイルバッファ２６０は、色バッファ及び深度バッファを記憶し、これらは、バッファが表すサンプリング点ごとに、それぞれ適切な色など、又はＺ値を記憶するものである。これらのバッファは、レンダー出力全体の一部、この例ではタイルを表すフラグメントデータのアレイを記憶し、バッファ内のそれぞれのサンプル値のセットは、レンダー出力全体のそれぞれのピクセルに対応する。たとえば、２×２のサンプル値の各セットが出力ピクセルに対応し得、ここで４倍のマルチサンプリングが使用される。
【００４５】
タイルバッファ２６０は、グラフィックス処理パイプライン２００にとってローカルであるランダムアクセスメモリ（ＲＡＭ）の一部として設けられる。換言すれば、タイルバッファ２６０はオンチップメモリに設けられる。
【００４６】
タイルバッファ２６０からのデータは、ダウンサンプリング書き出しユニット２６５に入力され、次いで、外部メモリ出力バッファ、たとえば表示デバイス（図示せず）のフレームバッファ２７０に出力される。表示デバイスは、たとえば、ピクセルのアレイを備えるディスプレイ、たとえばコンピュータモニタ又はプリンタを具備することができる。
【００４７】
ダウンサンプリング及び書き出しユニット２６５は、バッファ２６０に記憶されたフラグメントデータを、出力バッファ及びデバイスに適切な解像度にダウンサンプリングして、出力デバイスのピクセルに対応するピクセルデータのアレイが生成されるようにする。この結果、出力値が、出力バッファ２７０への出力用のピクセルの形式となる。
【００４８】
レンダー出力のタイルが処理され、そのデータが記憶用のメインメモリへ、たとえば、メインメモリ内のフレームバッファ２７０へエクスポートされると、次のタイルが処理され、同様に続き、これはレンダー出力全体を生成するのに十分なタイルが処理されるまで行われる。次いで、この処理が次のレンダー出力について反復され、同様に続く。
【００４９】
図２からわかるように、グラフィックス処理パイプライン２００は、いくつかのプログラマブル処理又は「シェーダ」ステージ、すなわち、頂点シェーダ２０５、ハルシェーダ２１０、ドメインシェーダ２２０、ジオメトリシェーダ２２５、及びフラグメントシェーダ２４５を含む。これらのプログラマブルシェーダステージは、１つ又は複数の入力変数を有し、出力変数のセットを生成するそれぞれのシェーダプログラムを実行する。問題のシェーダプログラムは、処理されるべきワークアイテムごとに、たとえば、頂点シェーダ２０５の場合は頂点ごとに実行され得る。実行スレッドは、処理されるべきワークアイテムごとに発行され得、スレッドは次いで、シェーダプログラム内の命令を実行して、所望のシェーディングされた出力データを生成する。
【００５０】
図１に関連して上述したアプリケーション１０５などのアプリケーションは、高水準のシェーダプログラミング言語、たとえば、ＯｐｅｎＧＬ（登録商標）シェーディング言語（ＧＬＳＬ）、高水準のシェーディング言語（ＨＬＳＬ）、オープンコンピューティング言語（ＯｐｅｎＣＬ）などを用いて、実行されるべきシェーダプログラムを提供する。これらのシェーダプログラムは次いでシェーダ言語コンパイラによって、対象のグラフィックス処理パイプライン２００用のバイナリコードに翻訳される。これは、コンパイラにおいてプログラムの１つ又は複数の内部の中間表現を作成することを含むことができる。コンパイラは、たとえばドライバ１２０の一部であり得、コンパイラを動作させる特別なＡＰＩコールが存在する。したがって、コンパイラの実行は、ドライバによって、アプリケーション１０５により生成されたＡＰＩコールに応答してなされる描画コールの準備の一部と見ることができる。
【００５１】
ここで中心窩レンダリングに戻ると、視線追跡としても知られている注視追跡は、中心窩レンダリングを含むＶＲのいくつかのエリアに影響を与える可能性が高い。
【００５２】
人間の目はその受容器のほとんどを、鮮明な中心視力を担う目のエリアである中心窩に有する。中心窩は全視界に比べて小さい。ニアアイディスプレイ、たとえばＶＲシステムで使用されるものでは、目はいかなる瞬間にもディスプレイ上の情報のサブセットしか知覚することができない。注視追跡型の中心窩レンダリングは、中心窩が見ることができる表示エリアにおいて完全な計算を維持するようにレンダリングを構成し、その他の場所での計算を削減する。
【００５３】
図３を参照すると、グラフィックス処理パイプライン３００の一例が概略的に示されている。グラフィックス処理パイプライン３００は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン３００は、初期処理ステージ３０５と、さらなる処理ステージ３１０とを少なくとも含む。グラフィックス処理パイプライン３００は、注視追跡型の中心窩レンダリングを行うために使用され得る。
【００５４】
注視追跡データ３１５は、初期処理ステージ３０５又はさらなる処理ステージ３１０におけるあらゆるデータ処理の前に受信される。注視追跡データ３１５は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の位置付けに関する。シーンの少なくとも１つのサブ領域は、受信された注視追跡データから特定される。シーンの特定された少なくとも１つのサブ領域は、たとえば、ユーザが見ているシーンの１つ又は複数のエリアに対応し得る。第１の解像度のシーンのデータは、初期処理ステージ３０５及び／又はさらなる処理ステージ３１０において処理される。しかしながら、第２の解像度のシーンの特定された少なくとも１つのサブ領域に対応するデータのみが、初期処理ステージ３０５及び／又はさらなる処理ステージ３１０において処理される。第１の解像度は、第２の解像度に比べて比較的高いものであり得る。次いで、シーンは、さらなる処理ステージ３１０により出力されたデータを結合することによって、レンダリングされ得る。したがって、注視追跡型の中心窩レンダリングは、第１の解像度が第２の解像度より低い場合に提供され得、その理由は、注視追跡データ３１５がグラフィックスパイプライン３００内の処理に影響を与えるために使用されるためである。
【００５５】
そのような例は注視追跡型の中心窩レンダリングを提供するが、注視追跡型の中心窩レンダリングの成功は様々な要因に依存する。１つのそのような要因は、視線追跡データ３１５の品質である。他のそのような要因は、視線追跡器デバイスにより取得された視線追跡情報がレンダリングシステムに渡され使用される応答レイテンシである。レイテンシによって結果が古くなったために、及び／又は低品質のトラッキングデータによって、視線追跡データの精度が低いほど、中心窩レンダリングの結果はより成功しなくなる。
【００５６】
レイテンシの観点から、いくつかの例では、ＧＰＵは、たとえば、ジオメトリが最初のフレームで提出されるか、又はジオメトリが次のフレームの開始まで遅延するかに応じて、２フレーム又は３フレームのパイプラインを有する。ＧＰＵは通常は遅延モードで動作し得、その場合、パイプラインは３フレームとなる。
【００５７】
図４を参照すると、フレームパイプライン化４００の一例が概略的に示されている。この例では、ＧＰＵは、中央処理装置（ＣＰＵ）バッファリング４０５がフレーム０で行われ、ジオメトリフェーズ４１０がフレーム１で行われ、ピクセルフェーズ４１５がフレーム２で行われる３フレームパイプラインを有する。６０Ｈｚの表示レートにおいて、これは、新たなデータがグラフィックスＡＰＩを介してグラフィックスパイプラインに提供される時刻と、結果がディスプレイなどに出力される準備ができるまでとの間に５０ｍｓのレイテンシを与える。真のレイテンシは、画像センサのキャプチャ、処理及び転送を含むので、これよりも非常に大きくなり得る。
【００５８】
ＶＲシステムに対して２０ｍｓの運動−光子（ｍｏｔｉｏｎ−ｔｏ−ｐｈｏｔｏｎｓ）レイテンシの目標知覚閾値が与えられた場合、５０ｍｓを超えるレイテンシは、ユーザ体験が懸念される限り、長すぎる可能性がある。
【００５９】
再び中心窩レンダリングに戻ると、ＶＲの文脈におけるコンテンツのレンダリングは、シーンを複数のビューに、目ごとに少なくとも１つのビューを描画することを必要とする。ＯＶＲ＿ｍｕｌｔｉｖｉｅｗの拡張ファミリ（以下、「マルチビュー」）は、組み込みシステム用ＯｐｅｎＧＬ（登録商標）（ＯｐｅｎＧＬ（登録商標）ＥＳ）において、シーンの複数のビューを生成するために使用され得る。原理的には、マルチビューを用いて、４つのビュー、すなわち、高解像度の左目ビュー、高解像度の右目ビュー、低解像度の左目ビュー、及び低解像度の右目ビューが使用される中心窩レンダリングを処理することができる。たとえば、マルチビューを用いて、４つのビューを同時に、すなわち、目ごとに内側及び外側ビューをレンダリングすることができる。
【００６０】
しかしながら、マルチビューの現在のバージョンにおける全てのビューは、互いと同一の解像度を有さなければならない。これは、たとえば非注視追跡型の実装に関して、内側及び外側両方の領域について単一の値が発見され得る場合に、許容可能であり得る。しかしながら、マルチビューの現在のバージョンは、注視追跡型の実装で使用するためのしっかりと焦点を合わせた中心窩領域の使用を許可しない。
【００６１】
さらに、マルチビューの現在のバージョンは、４つのビューまでしか許可しない。新たなマルチビュー拡張で使用され得るビューの数を拡張することが可能であり得るが、追加のビューも単一解像度のルールの対象となる可能性が高い。
【００６２】
さらに、焦点位置に関連する構成を含む各ビューの構成は、アプリケーションによってグラフィックスパイプラインの開始時に提供される。したがって、構成は、少なくともグラフィックスパイプラインと同じ長さのレイテンシを有する。したがって、上述の例では、視聴者の目の位置の追跡と、グラフィックス出力の関連付けとの間のレイテンシは、常に少なくとも５０ｍｓとなる。そのようなレイテンシを念頭に入れて、グラフィックスパイプラインは、出力の高解像度領域の大きさを決定する際に保守的な手法を取り得る。たとえば、グラフィックスパイプラインは、グラフィックスパイプラインの開始時に視聴者の焦点位置を中心とする比較的大きい領域を使用することができ、これは視聴者が、レンダリングが完了したときにその比較的大きい領域内のどこかを見ている可能性が高く、ひいては出力の高解像度部分を見ている可能性が高いことを予想したものである。しかしながら、そのような保守的な手法は、出力が表示されているときに視聴者が見ている場所に関する不確実性のために、シーンの比較的大きい部分をより高解像度でレンダリングすることを必要とする。
【００６３】
マルチビューと互換性のある措置であって、マルチビューを拡張して、低いレイテンシで変化し得る中心窩領域へのレンダリングを可能にし、及び／又は中心窩領域の解像度がマルチビュー解像度と異なることを可能にする措置を提供することが望ましいであろう。
【００６４】
グラフィックスプロセッサを用いて、シーンの同一のビューを表すが異なる解像度である複数の画像をレンダリングすることによって、中心窩レンダリングを行う例がここで説明される。次いで、異なる解像度のビューは結合されて、解像度が画像にわたって変化する出力中心窩画像を提供する。これらの例では、上述のパイプラインレイテンシ、及び異なる解像度におけるレンダリングのオーバーヘッドもまた、削減され得る。
【００６５】
これらの例では、グラフィックスパイプラインの開始後に、たとえば、グラフィックスパイプラインの半ばに、視線追跡データが消費される。したがって、グラフィックスパイプラインの開始時に使用される視線追跡データに比べて、より最近の（すなわち、より直近に受信又は取得された）視線追跡データが使用され得る。レンダリングパイプラインにおける視線追跡データの消費のレイテンシを削減することによって、中心窩レンダリングの利益が増加し得る。さらに、本明細書に記載のようなそのような措置の実施は、既存のアーキテクチャと容易に統合することができ、非常に効率的な実装となる。
【００６６】
図５を参照すると、グラフィックス処理パイプライン５００の一例が概略的に示されている。
【００６７】
グラフィックス処理パイプライン５００は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン５００は、初期処理ステージ５０５と、さらなる処理ステージ５１０とを少なくとも含む。さらなる処理ステージ５１０の処理は、初期処理ステージ５０５の処理よりも高い計算負荷を有し得る。
【００６８】
いくつかの例では、さらなる処理ステージ５１０は、１つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び／又はフラグメントシェーディングを含み、初期処理ステージ５０５は、１つ又は複数のジオメトリ演算、たとえば、頂点シェーディングを含む。いくつかの例では、さらなる処理ステージ５１０は、１つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び／又はフラグメントシェーディングを含み、初期処理ステージ５０５は、１つ又は複数のデータバッファリング操作、たとえば、ＣＰＵバッファリングを含む。いくつかの例では、さらなる処理ステージ５１０は、１つ又は複数のジオメトリ演算、たとえば、フラグメントシェーディングを含み、初期処理ステージ５０５は、１つ又は複数のデータバッファリング操作、たとえば、ＣＰＵバッファリングを含む。
【００６９】
第１の解像度のシーンのデータ及び第２の解像度のシーンのデータが、初期処理ステージ５０５において処理される。初期処理ステージ５０５において第１の解像度及び第２の解像度のシーンのデータを処理した後に、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する注視追跡データ５１５が受信される。シーンの少なくとも１つのサブ領域が、受信された注視追跡データ５１５から特定される。
【００７０】
受信された注視追跡データ５１５は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点に関し得る。シーンの特定された少なくとも１つのサブ領域は、バーチャルリアリティユーザデバイスのユーザの少なくとも片目の中心窩の現在の固視点を中心とするサブ領域に関し得る。
【００７１】
第１の解像度のシーンのデータは、さらなる処理ステージ５１０において処理される。しかしながら、第２の解像度のシーンの特定された少なくとも１つのサブ領域に対応するデータのみが、さらなる処理ステージ５１０において処理される。
【００７２】
グラフィックス処理パイプライン５００の各ステージにおけるシーンのデータの処理は、グラフィックス処理パイプライン５００の各ステージにおけるシーンのデータのフレームの処理を含み得る。
【００７３】
シーンのデータは、左目ビューに関連するデータと、右目ビューに関連するデータとを含み得る。グラフィックス処理パイプラインの各ステージのデータの処理は、左目ビューに関連するデータの処理と、右目ビューに関連するデータの処理とを含み得る。受信された注視追跡データ５１５は、バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けと、バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けとに関し得る。
【００７４】
シーンの特定された少なくとも１つのサブ領域は、バーチャルリアリティユーザデバイスのユーザの左目の中心窩の現在の位置付けを中心とする左目サブ領域と、バーチャルリアリティユーザデバイスのユーザの右目の中心窩の現在の位置付けを中心とする右目サブ領域とに関し得る。
【００７５】
シーンは、第１の解像度でさらなる処理ステージ５１０において処理されたシーンのデータと、第２の解像度でさらなる処理ステージ５１０において処理されたシーンの特定された少なくとも１つのサブ領域に対応するデータとを結合することによってレンダリングされる。
【００７６】
シーンのレンダリングは、最初に、第１の解像度でさらなる処理ステージ５１０において処理されたシーンの左目データと、第２の解像度でさらなる処理ステージ５１０において処理されたシーンの特定された左目サブ領域に対応するデータとを結合し、次に、第１の解像度でさらなる処理ステージ５１０において処理されたシーンの右目データと、第２の解像度でさらなる処理ステージ５１０において処理されたシーンの特定された右目サブ領域に対応するデータとを結合することを含み得る。特定された左目サブ領域の少なくとも一部は、特定された右目サブ領域の少なくとも一部と異なり得る。
【００７７】
いくつかの例では、第３の解像度のシーンのデータが、初期処理ステージ５０５において処理される。注視追跡データ５２０は、初期処理ステージ５０５において第３の解像度のシーンのデータを処理した後に受信され、初期処理ステージ５０５において第３の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。第３の解像度のシーンのデータは、さらなる処理ステージ５１０において処理される。しかしながら、第３の解像度のシーンのさらなるサブ領域に対応するデータのみが、さらなる処理ステージ５１０において処理される。シーンのレンダリングは、第３の解像度でさらなる処理ステージ５１０において処理されたシーンのデータをさらに結合することを含む。シーンのさらなるサブ領域は、受信された注視追跡データ５１５から特定され得る。シーンのさらなるサブ領域は、シーンの特定された少なくとも１つのサブ領域に基づいて計算され得る。
【００７８】
図６を参照すると、グラフィックス処理パイプライン６００の一例が概略的に示されている。グラフィックス処理パイプライン６００は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン６００は、初期処理ステージ６０５と、さらなる処理ステージ６１０とを含む。
【００７９】
グラフィックス処理パイプライン６００は、初期処理ステージ６０５と、さらなる処理ステージ６１０とを含む点で、上述のグラフィックス処理パイプライン５００と類似している。
【００８０】
しかしながら、この例では、グラフィックス処理パイプライン６００は、初期処理ステージ６０５と、さらなる処理ステージ６１０との間に中間処理ステージ６２０をさらに含む。
【００８１】
さらなる処理ステージ６１０の処理は、中間処理ステージ６２０の処理よりも高い計算負荷を有し得る。たとえば、さらなる処理ステージ６１０は、１つ又は複数のピクセル処理演算、たとえば、ラスタライズ及び／又はフラグメントシェーディングを含み得、中間処理ステージ６２０は、１つ又は複数のジオメトリ演算、たとえば、頂点シェーディングを含み得る。
【００８２】
第１の解像度のシーンのデータ及び第２の解像度のシーンのデータが、中間処理ステージ６２０において処理される。中間処理ステージ６２０において第１の解像度及び第２の解像度のシーンのデータを処理した後に、注視追跡データ６１５が受信される。この例では、注視追跡データ６１５は、中間処理ステージ６２０において第１の解像度及び第２の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。注視追跡データ６１５は、グラフィックス処理パイプライン６００の比較的遅くに受信され、したがって、視聴者の１つ又は複数の現在の焦点位置を正確に反映している可能性がより高い。しかしながら、グラフィックス処理パイプライン６００の比較的遅くに受信されるので、グラフィックス処理パイプライン６００において行われる処理全体に与える影響が少ない。
【００８３】
図７を参照すると、グラフィックス処理パイプライン７００の一例が概略的に示されている。グラフィックス処理パイプライン７００は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン７００は、初期処理ステージ７０５と、中間処理ステージ７２０と、さらなる処理ステージ７１０とを含む。
【００８４】
グラフィックス処理パイプライン７００は、初期処理ステージ７０５と、中間処理ステージ７２０と、さらなる処理ステージ７１０とを含む点で、図６に関連して上述したグラフィックス処理パイプライン６００と類似している。
【００８５】
しかしながら、グラフィックス処理パイプライン６００では、中間処理ステージ６２０において第１の解像度及び第２の解像度のシーンのデータを処理した後に、注視追跡データ６１５が受信されるが、グラフィックス処理パイプライン７００では、中間処理ステージ７２０において第１の解像度及び第２の解像度でシーンのデータを処理する前に、注視追跡データ７１５が受信される。さらに、この例では、注視追跡データ７１５は、中間処理ステージ７２０において第１の解像度及び第２の解像度でシーンのデータを処理する前のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置に関する。したがって、この例では、第１の解像度のシーンのデータが、中間処理ステージ７２０において処理される。しかしながら、第２の解像度のシーンの特定された少なくとも１つのサブ領域に対応するデータのみが、中間処理ステージ７２０において処理される。加えて、上述のように、第１の解像度のシーンのデータ、及び第２の解像度のシーンの特定された少なくとも１つのサブ領域に対応するデータのみが、さらなる処理ステージ７１０において処理される。注視追跡データ７１５は、グラフィックス処理パイプライン７００のかなり初期の後にやはり受信されるが、上述の注視追跡データ６１５ほどグラフィックス処理パイプライン７００の遅くではない。したがって、注視追跡データ７１５は、注視追跡データ６１５に比べて、視聴者の１つ又は複数の現在の焦点を正確に反映している可能性が低い。しかしながら、注視追跡データ７１５は注視追跡データ６１５よりもグラフィックス処理パイプライン７００の早期に受信されるので、グラフィックス処理パイプライン７００において行われる処理全体に与える影響が大きくなり得る。
【００８６】
図８を参照すると、グラフィックス処理パイプライン８００の一例が概略的に示されている。グラフィックス処理パイプライン８００は、グラフィックス処理システム内に構成される。グラフィックス処理パイプライン８００は、初期処理ステージ８０５と、中間処理ステージ８２０と、さらなる処理ステージ８１０とを含む。
【００８７】
グラフィックス処理パイプライン８００は、初期処理ステージ８０５と、中間処理ステージ８２０と、さらなる処理ステージ８１０とを含む点で、図６及び図７に関連して上述したグラフィックス処理パイプライン６００、７００と類似している。
【００８８】
この例では、中間処理ステージ８２０において第１の解像度及び第２の解像度でシーンのデータを処理する前に、第１の注視追跡データ８１５が受信される。シーンの少なくとも１つの第１のサブ領域が、第１の注視追跡データ８１５から特定される。この例では、注視追跡データ８１５は、中間処理ステージ８２０において第１の解像度及び第２の解像度でシーンのデータを処理する前のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置に関する。したがって、この例では、第１の解像度のシーンのデータが、中間処理ステージ８２０において処理される。しかしながら、第２の解像度のシーンの特定された少なくとも１つの第１のサブ領域に対応するデータのみが、中間処理ステージ８２０において処理される。
【００８９】
この例では、中間処理ステージ８２０において第１の解像度及び第２の解像度のシーンのデータを処理した後に、第２の注視追跡データ８２５が受信される。シーンの少なくとも１つの第２のサブ領域が、第２の注視追跡データ８２５から特定される。この例では、第２の注視追跡データ８２５は、中間処理ステージ８２０において第１の解像度及び第２の解像度のシーンのデータを処理した後のバーチャルリアリティユーザデバイスのユーザの少なくとも片目の現在の位置付けに関する。
【００９０】
シーンの少なくとも１つの第２のサブ領域は、シーンの少なくとも１つの第１のサブ領域に含まれ得る。たとえば、第１の注視追跡データ８１５を用いて、第１の注視追跡データ８１５に基づいて視聴者が見ている可能性が高いシーンの１つ又は複数の第１の部分に処理を制限することができる。これは、中間処理ステージ８２０における第２の解像度のシーン全体の処理を節約する。第２の注視追跡データ８２５を用いて、第２の注視追跡データ８２５に基づいて視聴者が見ている可能性が高いシーンの１つ又は複数の第２の部分であって、シーンの１つ又は複数の第１の部分より小さいシーンの１つ又は複数の第２の部分にさらなる処理を制限することができる。第２の注視追跡データ８２５は、シーンが出力されたときにユーザが見ているシーンの部分を指す可能性がより高い。
【００９１】
システムは、２つ以上のビューのセットに同時にレンダリングするように構成され得る。これは、混合解像度への効率的なレンダリングを容易にし、レイトラッチの視線追跡データを可能にし得る。レイトラッチの視線追跡データは、グラフィックスパイプラインの初期ステージの後の視線追跡データの消費に関する。本明細書に記載の例では、グラフィックスパイプラインが提出された後に、視線追跡データのレイトラッチが行われる。
【００９２】
最初に視線追跡なしの、複数の解像度にレンダリングするための例示的な技法がここで説明される。上述のように、マルチビューは、同一解像度の単一のビューのセットへのレンダリングを可能にする。これは、ＧＬ＿ＴＥＸＴＵＲＥ＿２Ｄ＿ＡＲＲＡＹからの連続した範囲をＧＬ＿ＤＲＡＷ＿ＦＲＡＭＥＢＵＦＦＥＲターゲットへ、たとえば、色、深度及びステンシルなどの１つ又は複数のアタッチメントポイントにおいてバインドするＯｐｅｎＧＬ（登録商標）ＥＳ  ＡＰＩによって説明される。ＧＬ＿ＤＲＡＷ＿ＦＲＡＭＥＢＵＦＦＥＲターゲットは、本明細書では描画ターゲットとも呼ばれる。
【００９３】
たとえば、２つのビューへの深度テストを伴うレンダリングは、幅×高さ×ｎｕｍ＿ｖｉｅｗｓの深度テクスチャのＧＬ＿ＴＥＸＴＵＲＥ＿２Ｄ＿ＡＲＲＡＹを作成し、幅×高さ×ｎｕｍ＿ｖｉｅｗｓの色テクスチャのＧＬ＿ＴＥＸＴＵＲＥ＿２Ｄ＿ＡＲＲＡＹを作成し、フレームバッファオブジェクトを作成し、深度範囲をフレームバッファ描画ターゲットの深度アタッチメントにバインドし、色範囲をフレームバッファ描画ターゲットの色アタッチメントにバインドし、そして、ｎｕｍ＿ｖｉｅｗｓで、この例では、ｎｕｍ＿ｖｉｅｗｓ＝２で出力するように構成されたシェーダによってジオメトリを描画するアプリケーションを必要とし得る。
【００９４】
これは、ＧＬ＿ＤＲＡＷ＿ＡＬＴ＿ＦＲＡＭＥＢＵＦＦＥＲとラベル付けされ、以下、ｄｒａｗ＿ａｌｔと称される新たなフレームバッファターゲットを導入することによって、拡張され得る。この新たなターゲットタイプは、異なるが関連する解像度で描画ターゲットに描画されたものの結果を複製するように作用する。ｄｒａｗ＿ａｌｔフレームバッファは、実際には描画フレームバッファをミラーリングする。バインド処理は、上述のものと同一であり得るが、簡単のため、ｄｒａｗ＿ａｌｔテクスチャは、元の描画構成と一致し得る。たとえば、解像度Ｘの深度及び色を有する２つのビューが描画ターゲットにバインドされた場合、ｄｒａｗ＿ａｌｔにバインドされた関連する解像度Ｙ（Ｘ）の深度及び色を有する２つのビューが存在することになる。いくつかの例では、２つ以上の「ｄｒａｗ＿ａｌｔ」ターゲットが使用される。いくつかのそのような例では、各「ｄｒａｗ＿ａｌｔ」ターゲットは異なる関連する解像度を有する。この場合、ターゲットのアレイが使用され得る。
【００９５】
描画ターゲットのそれぞれは、完全に異なる解像度を有することが許可され得る。代替的には、ターゲットは、たとえば２のべき乗の拡大縮小を可能にするように、関連する解像度を有することができる。これによって、頂点及びタイル化ステージを通じて処理されたジオメトリを、以下説明されるように２つのセット間で再使用することが可能になる。したがって、上記で言及された第１の解像度と第２の解像度とは、たとえば１／４などの２のべき乗を含む所定の関係を有することができる。しかしながら、両方のセットは、依然としてフラグメントシェーディングされ得る。
【００９６】
ＧＰＵは、中心窩レンダリングを行う場合に、シーンの同一のビューの複数の異なる解像度のバージョンをレンダリングするように制御され得る。ＧＰＵは、たとえば、シーンの同一のビューの３つの異なる解像度のバージョン、すなわち、最高解像度のビュー、中間解像度のビュー、及び最低解像度のビューをレンダリングすることができる。ビューのそれらの異なる解像度の画像は次いで適切に結合（又は「合成」）されて、表示などのために出力中心窩画像を提供する。異なる解像度の画像のそれぞれは、レンダリングされるシーン全体の異なる視野（又は「部分」）を示し得る。一例では、固視点に関連する中心窩画像の領域は最高解像度を有し、固視点から離れた画像の１つ又は複数の領域はより低い解像度で表示される。
【００９７】
レンダリングを要求するアプリケーションは、シーンのジオメトリを中心窩ビューに関連する倍率と共に複数のビューにレンダリングされるべきことをグラフィックスプロセッサのドライバに指示することができる。アプリケーションからのそのようなコマンドに応答して、ドライバは次いで、ＧＰＵに送信する適切なタイル化及びレンダリングのタスクを、本明細書に記載のように中心窩レンダリングを行うように構成する。
【００９８】
一例では、シーンのジオメトリは、処理されタイル化され、換言すれば、一度のみレンダリングされる画像のそれぞれのレンダリングタイルにソートされる。これは単一のタイルジオメトリリストのセットを提供し、これは次いで、各それぞれの解像度の画像をレンダリングする場合に、すなわち、各それぞれの解像度の画像をレンダリングするためにフラグメント処理を行う場合に、共通で使用される（又は「共有される」）。特に、ＧＰＵは、出力画像に必要とされる最高解像度で、レンダリングされるシーンに対して一度のみ頂点位置処理及びジオメトリリスト生成処理の両方を行うように制御され得る。このようにジオメトリリストが準備されると、その単一のジオメトリリストのセットは次いで、ビューの一部又は全部を示す各それぞれの異なる解像度の画像をレンダリングする場合に使用され得る。
【００９９】
最高解像度のビューについて、準備されたジオメトリリストは、その最高解像度の画像をレンダリングする場合に各レンダリングタイルについて処理されるべきジオメトリを特定するときに使用され得る。他のより低い解像度の画像について、最高解像度で準備されたジオメトリリスト及びそれらのリスト内のジオメトリを用いて、完全解像度のジオメトリリスト内のジオメトリを適切な倍率で縮小することによって、より低い解像度の画像についてレンダリングされるべきジオメトリを特定し定義する。倍率は、線形の拡大縮小などを用いて、ジオメトリリストが準備された最高解像度に、問題のより低い解像度の画像の解像度を関連付ける。この縮小は、頂点位置ロード操作の一部としてなされ得るが、他の構成も所望であれば可能である。
【０１００】
いくつかの例では、最終画像の全部ではなく一部のみが異なるそれぞれの解像度でレンダリングされる。特に、最終的な合成で使用されない画像の領域はレンダリングされなくてもよい。各異なる解像度の画像の選択部分のみのレンダリングは、出力画像のレンダリングタイルごとに、そのタイル位置について生成されるべき１つ又は複数の解像度の画像を指示することによって実現され得る。この情報は、レンダリングタイルについてのジオメトリリストと共に提供され得る。他の構成、たとえば、ＧＰＵのドライバが、レンダリングタスクをグラフィックスプロセッサに提供し、及び／又は、画像についてタイルがレンダリングされるべきでないエリアを特定するレンダー除外領域を指示する場合に、レンダリングされるべき適切なタイルのリストを提供するように構成されたものが代わりに使用され得る。
【０１０１】
各異なる解像度の画像の適切な部分がＧＰＵによってレンダリングされると、それらの画像はグラフィックス処理システムのメモリ内の適切なフレームバッファに記憶される。それらの画像は次いで適切に結合されて、表示される最終的な出力中心窩ビューを提供する。
【０１０２】
最終的な中心窩出力ビューを提供するためのビューの異なる解像度の画像の合成は、ＧＰＵが、各異なる解像度のビューをグラフィックステクスチャとして扱い、次いで、フラグメントシェーダの一部として実装され得るテクスチャマッピング演算を用いて、表示される最終的な出力中心窩ビューにわたって異なる解像度の画像を適切にサンプリングし結合することによって行われ得る。
【０１０３】
そのような中心窩レンダリングを行う場合、最高解像度の画像は、表示される最終出力画像の中心に必ずしもある必要はないが、たとえば、視聴者が実際に見ている場所を特定するための注視追跡センサを使用して決定され得る１つ又は複数の固視点の位置に応じて、ビューの任意の場所にオフセットされ得る。
【０１０４】
最高解像度のセットをレンダリングしダウンサンプリングして他のセットを生成することは、同一の結果を生成しない。
【０１０５】
マルチサンプリングのシェーディングレートは、セット間で変更し得る。マルチビューでは、ターゲットにバインドされた全てのテクスチャ間で解像度が一致することが好ましいように、マルチサンプルカウントもそのように一致することが好ましい。しかしながら、解像度、マルチサンプルカウント、テクスチャフォーマット及びレイアウトは、異なるセット間で変更し得る。レンダリングされ得るテクスチャを記述するものは変更し得る。
【０１０６】
上記のように、本明細書に記載の例は、レイトラッチの視線追跡データを用いた中心窩レンダリングに関する。
【０１０７】
いくつかの例では、ハードウェアフラグメントジョブ、又はワークアイテムの記述子は、２Ｄの軸調整されたバウンディングボックスを含み、これはバウンディングボックスによって囲まれた領域のちょうど内側にフラグメントシェーディングを制限するものである。これは、完全解像度のビューのシェーディングを中心窩領域ちょうどに制限するための効率的なメカニズムであり、中心窩領域はバウンディングボックスに関連付けられる。バウンディングボックスデータは、フラグメントシェーディングの開始の直前に使用され、したがって、グラフィックスパイプラインの遅くに変更し得る。これは、使用されている注視追跡データの期間に関連して、せいぜい１フレームのレイテンシ、すなわち、６０Ｈｚで１６．７ｍｓが存在することを意味する。これは、完全なグラフィックスパイプラインでの５０ｍｓと対照的である。レイテンシは、単一のフレーム内でジオメトリが提出され、タイル化され、シェーディングされる場合にさらに削減され得る。
【０１０８】
以前に提出されたハードウェアフラグメントジョブ記述子にコピーされた任意の「後期の」バウンディングボックスデータが、それを正しく読み取るために必要とされ得る。新たなデータが与えられれば、これは、フラグメントジョブがまだ開始されていないことを知っている場合はドライバが、又はＧＰＵコンピュートシェーダが、共有バッファからデータをコピーすることによってなされ得る。
【０１０９】
パイプラインの遅くにデータを提供することは、ＯｐｅｎＧＬ（登録商標）ＥＳでは一般的ではないが、データへの手動で同期されるアクセスはよく理解されている。ＯｐｅｎＧＬ（登録商標）ＥＳにおけるコンピュートシェーダは、デフォルトでは同期していない。ユーザは同期プリミティブを用いて正しい動作を実現する。これは、フラグメント記述子を適時に更新するのに十分なインフラストラクチャを提供する。一実装は、アトミック（ａｔｏｍｉｃｓ）及び共有バッファを活用する、又はカスタムＡＰＩエントリポイントを介して等価な機能を公開することができる。
【０１１０】
Ｖｕｌｋａｎは、ＯｐｅｎＧＬ（登録商標）ＥＳよりもローレベルであり、また、明示的に要求されない限り、いかなる同期も行わず、したがって、ＯｐｅｎＧＬ（登録商標）ＥＳと同様のメカニズムがＶｕｌｋａｎで動作する。Ｖｕｌｋａｎの一つの特徴は、そのＶｋＲｅｎｄｅｒＰａｓｓオブジェクトが、シェーディングを指定領域に制限する２Ｄの軸調整されたバウンディングボックスを定義する明示的な「ｒｅｎｄｅｒＡｒｅａ」特性を既に有していることである。Ｖｕｌｋａｎ拡張の開発は、ＯｐｅｎＧＬ（登録商標）ＥＳ拡張の開発よりも効率的であり得、その理由は、バウンディングボックスの概念がＶｕｌｋａｎのＡＰＩに既に存在するためである。ＶｕｌｋａｎはｖｋＲｅｎｄｅｒＰａｓｓオブジェクトの拡張を導入することができ、これによってユーザは、その他を「ミラーリング」する第２のターゲットのセットを定義することができる。これは、上述の「ＧＬ＿ＤＲＡＷ＿ＡＬＴ＿ＦＲＡＭＥＢＵＦＦＥＲ」機能の等価物を可能にし得る。
【０１１１】
特定の例では、２つのビューを有するマルチビューを仮定すると、一実装は、完全解像度の２つのビューのテクスチャアレイ（色、深度など）のセットを作成し、それらのアレイをフレームバッファ内の「描画」ターゲットにバインドする。それらのテクスチャアレイに対するフラグメントバウンディングボックスは、最も直近に報告された視線追跡データに適合するように更新される。システムは、他の２つのビューであるが、完全解像度のビューの解像度の４分の１のものについて作成された適合するテクスチャアレイのセットを作成し、それらのビューを「ｄｒａｗ＿ａｌｔ」ターゲットにバインドする。次いで、描画ターゲット及びｄｒａｗ＿ａｌｔターゲットを消費することによって、シーンが描画される。したがって、この例では、第１の解像度と第２の解像度との間の所定の関係は１／４である。
【０１１２】
次いで、各フレームの開始時に、又は定期的な間隔で、全ての関連する提出された、まだ修正可能なフラグメントジョブは、最新のバウンディングボックスを使用するように更新される。このための理想的な時間は、新たなトラッキングデータが受信された後であり、これはメインのレンダリングループとは非同期に動作することができる。
【０１１３】
この特定の例は、ステレオ画像全体についての４分の１の解像度の出力と、目の位置に一致する小さいが完全解像度の領域のペアとを生成する。これらは次いでオーバレイされて、最終画像を生成する。このオーバレイ処理は、後続のレンズ補正又は合成処理、たとえば、低レイテンシＶＲシステムに存在し、他の用語の中でも特に、「タイムワープ」、「非同期タイムワープ」、「電子ディスプレイ同期」として知られているものに含めるのに適している。これは、領域の位置及び大きさの知識を追跡して使用する。また、タイムワープ処理は、２つの領域間でブレンドして、よりソフトな遷移を作成する、又は完全解像度をより小さい代替的な形状にトリミングする、たとえば、ボックスを球にトリミングすることを選択することもできる。
【０１１４】
上記の実施形態は、例示的な例として理解されるべきである。さらなる実施形態が想定される。任意の１つの実施形態に関して記載された任意の特徴が、単独で又は記載の他の特徴と組み合わせて使用され得、また、任意の他の実施形態又は任意の他の実施形態の任意の組み合わせの１つ又は複数の特徴と組み合わせて使用され得ることは理解されたい。さらに、上記で説明されていない等価物及び修正物もまた、添付の特許請求の範囲に定義された、本開示の実施形態の範囲から逸脱することなく利用され得る。
【符号の説明】
【０１１５】
１０５  アプリケーション
１１０  ホスト
１１５  ＧＰＵ
１２０  ドライバ
２０５  頂点シェーダ
２１０  ハルシェーダ
２１５  テッセレータ
２２０  ドメインシェーダ
２２５  ジオメトリシェーダ
２３０  タイラ
２３５  ラスタライザ
２４０  早期深度及びステンシルテスト
２４５  フラグメントシェーダ
２５０  後期深度及びステンシルテスト
２５５  ブレンダ
２６０  タイルバッファ
２６５  書き出し
２７０  フレームバッファ
３０５  初期処理ステージ
３１０  さらなる処理ステージ
３１５  注視追跡データ
４０５  ＣＰＵバッファリング
４１０  ジオメトリフェーズ
４１５  ピクセルフェーズ
５０５  初期処理ステージ
５１０  さらなる処理ステージ
５１５  注視追跡データ
６０５  初期処理ステージ
６１０  さらなる処理ステージ
６１５  注視追跡データ
６２０  中間処理ステージ
７０５  初期処理ステージ
７１０  さらなる処理ステージ
７１５  注視追跡データ
７２０  中間処理ステージ
８０５  初期処理ステージ
８１０  さらなる処理ステージ
８１５  第１の注視追跡データ
８２０  中間処理ステージ
８２５  第２の注視追跡データ
【図１】
2018049603.tif 000003
【図２】
2018049603.tif 000004
【図３】
2018049603.tif 000005
【図４】
2018049603.tif 000006
【図５】
2018049603.tif 000007
【図６】
2018049603.tif 000008
【図７】
2018049603.tif 000009
【図８】
2018049603.tif 000010
【外国語明細書】
2018049603000001.pdf