(57)【要約】      （修正有）【課題】広ＦＯＶディスプレイ装置によって提示するグラフィックスの中心部を高画質にする。【解決手段】頂点の仮想空間から、複数の下位区分へと再分割される複数のピクセルを含むディスプレイ装置の画面空間のシーンのビューポートへの投影を計算するために、プリミティブアセンブリが頂点において行われる。複数の内のどのピクセルが、画面空間座標に変換された各プリミティブの一部となるかを走査変換が決定する。各プリミティブのための粗いラスタライズは、１つまたは複数の下位区分のうち、プリミティブが重複するものはどれかを決定する。プリミティブが重複する下位区分に関連するメタデータが、下位区分のためのピクセル解像度を決定する。２つの異なる下位区分におけるシーンの部分が異なるピクセル解像度を有するような方法でディスプレイ装置上に表示されるシーンのビューポートのための最終ピクセル値の生成のためにメタデータが利用される。【選択図】図３Ｂ
2018129050.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理方法であって、
仮想空間におけるシーンの複数の頂点上でプリミティブアセンブリを実行し、前記仮想空間から、複数の下位区分へと再分割される複数のピクセルを含むディスプレイ装置の画面空間における前記シーンのビューポートへの前記頂点の投影を計算するステップと、
前記複数のピクセルのうちどのピクセルが、画面空間座標に変換された各プリミティブの一部となるかを決定するステップと、
プリミティブが重複する下位区分に関連づけられたメタデータであって、前記下位区分に対する前記画面の単位面積当たりのアクティブピクセルの数であるピクセル解像度を決定する前記メタデータを受信するステップと、
２つの異なる下位区分における前記シーンの部分が異なるピクセル解像度を有するような方法での、前記ディスプレイ装置上に表示される前記シーンの前記ビューポートのための最終ピクセル値を生成するための前記下位区分のためのピクセルの処理における前記メタデータを利用するステップと、
を含む、方法。
【請求項２】
前記メタデータが前記下位区分においてアクティブピクセル数を指定し、前記最終ピクセル値を生成するための前記下位区分のための前記ピクセルの処理における前記メタデータの利用が、前記下位区分のための前記指定された数のアクティブピクセル上のみでのピクセル処理の実行を含む、請求項１に記載の方法。
【請求項３】
前記メタデータがスケーリングパラメータを含み、前記下位区分のためのピクセルの処理における前記メタデータの利用が、画面空間における頂点位置及び、前記下位区分のための前記ピクセル解像度を構成するための前記プリミティブのためのテクスチャ空間勾配の調整を含む、請求項２に記載の方法。
【請求項４】
前記下位区分のための前記ピクセル解像度が標準解像度である場合に前記下位区分のための前記ピクセルのすべてがアクティブピクセルであることを前記メタデータが指定し、前記ピクセル解像度下位区分が前記標準解像度未満である場合に、前記下位区分のためのすべてより少ない前記ピクセルがアクティブピクセルであることを前記メタデータが指定する、請求項２に記載の方法。
【請求項５】
前記下位区分が前記画面空間の中央に、またはその付近に位置する場合に前記メタデータが標準解像度を指定し、前記下位区分が前記画面空間のエッジまたは角に、またはその付近に位置する場合に前記標準解像度未満を前記メタデータが指定する、請求項２に記載の方法。
【請求項６】
前記メタデータが１つまたは複数のスケーリングパラメータを含み、前記下位区分のためのピクセルの処理における前記メタデータの利用が、画面空間における頂点位置ならびに、前記下位区分のための前記ピクセル解像度を構成するための前記プリミティブのためのテクスチャ空間勾配及びパラメータ重心座標補間値の調整を含み、テクスチャ空間勾配の調整が、前記複数の下位区分の近傍下位区分のための異なるピクセル解像度を構成するためのテクスチャの応用におけるピクセルごとの勾配スケール補正の実行を含む、請求項２に記載の方法。
【請求項７】
前記ディスプレイ装置が９０度以上の視野によって特徴づけられる、請求項１に記載の方法。
【請求項８】
前記ディスプレイ装置がヘッドマウントディスプレイ装置である、請求項１に記載の方法。
【請求項９】
前記画面空間が曲面スクリーンに対応する、請求項１に記載の方法。
【請求項１０】
ユーザが見ている前記ディスプレイ装置のスクリーンの部分の決定をさらに含み、前記ユーザが見ている前記部分を含む前記スクリーンの１つまたは複数の下位区分についてピクセル解像度が最高となるように前記ピクセル解像度を変化させるように前記メタデータが構成される、請求項１に記載の方法。
【請求項１１】
前記ディスプレイ装置の所与の光学素子及び所与の視野に関して、前記メタデータが静的である、請求項１に記載の方法。
【請求項１２】
前記メタデータが前記下位区分におけるアクティブピクセル数を指定し、前記最終ピクセル値を生成するための前記下位区分のための前記ピクセルの処理における前記メタデータの利用が、前記下位区分のための前記指定された数のアクティブピクセル上のみでのピクセル処理の実行を含み、前記複数の下位区分の異なる下位区分のために異なる数のアクティブピクセルを指定するように前記メタデータが構成される、請求項１に記載の方法。
【請求項１３】
前記複数の下位区分の各下位区分が前記画面空間の固定サイズの部分に対応する、請求項１に記載の方法。
【請求項１４】
前記複数の下位区分の各下位区分が前記画面空間の可変サイズの部分に対応する、請求項１に記載の方法。
【請求項１５】
前記メタデータが垂直及び水平方向におけるピクセルの範囲によって、前記複数の下位区分の各下位区分を画定する、請求項１に記載の方法。
【請求項１６】
前記メタデータが同じサイズの粗いラスタライズタイルによって、前記複数の下位区分の各下位区分を画定する、請求項１に記載の方法。
【請求項１７】
前記下位区分及びピクセル構成メタデータにおける規則性の利用によって、出力スクリーン領域がより小さいメモリフットプリントへとパッキングされる、請求項１に記載の方法。
【請求項１８】
出力メモリオフセットを符号化するために付加的な情報を前記メタデータに組み込むことにより、出力スクリーン領域がより小さいメモリフットプリントへとパッキングされる、請求項１に記載の方法。
【請求項１９】
前記複数の下位区分の特定の下位区分に関連する前記メタデータの一部が、前記特定の下位区分のためのアクティブピクセル数を指定する情報を含む、請求項１に記載の方法。
【請求項２０】
前記メタデータがメモリ及び／またはグラフィックスメモリにおける表の形式で格納される、請求項１に記載の方法。
【請求項２１】
グラフィックス処理のためのシステムであって、
実行可能な命令を格納するメモリと、
前記命令を実行することによってグラフィックス処理方法を実行するように構成されたグラフィックス処理装置とを含み、前記方法は、
仮想空間におけるシーンの複数の頂点上でプリミティブアセンブリを実行し、前記仮想空間から、複数の下位区分へと再分割される複数のピクセルを含むディスプレイ装置の画面空間における前記シーンのビューポートへの前記頂点の投影を計算するステップと、
前記複数のピクセルのうちどのピクセルが、画面空間座標に変換された各プリミティブの一部となるかを決定するステップと、
プリミティブが重複する下位区分に関連づけられたメタデータであって、前記下位区分に対する前記画面の単位面積当たりのアクティブピクセルの数であるピクセル解像度を決定する前記メタデータを受信するステップと、
２つの異なる下位区分における前記シーンの部分が異なるピクセル解像度を有するような方法での、前記ディスプレイ装置上に表示される前記シーンの前記ビューポートのための最終ピクセル値を生成するための前記下位区分のためのピクセルの処理における前記メタデータを利用するステップと、
を含む、システム。
【請求項２２】
前記メタデータが前記下位区分においてアクティブピクセル数を指定し、前記下位区分のための前記指定された数のアクティブピクセル上のみでのピクセル処理の実行によって、前記最終ピクセル値を生成するための前記下位区分のための前記ピクセルの処理における前記メタデータを利用するように前記グラフィックス処理装置が構成される、請求項２１に記載のシステム。
【請求項２３】
前記下位区分のための前記ピクセル解像度が標準解像度である場合に前記下位区分のための前記ピクセルのすべてがアクティブピクセルであることを前記メタデータが指定し、前記ピクセル解像度下位区分が前記標準解像度未満である場合に、前記下位区分のためのすべてより少ない前記ピクセルがアクティブピクセルことを前記メタデータが指定する、請求項２２に記載のシステム。
【請求項２４】
前記メタデータがスケーリングパラメータを含み、画面空間における頂点位置ならびに、前記下位区分のための前記ピクセル解像度を構成するための前記プリミティブのためのテクスチャ空間勾配及びパラメータ重心座標補間値の調整により、前記下位区分のためのピクセルの処理において前記メタデータを利用するように前記グラフィックス処理装置が構成され、前記複数の下位区分の近傍下位区分のための異なるピクセル解像度を構成するためのテクスチャの応用におけるピクセルごとの勾配スケール補正の実行によって前記テクスチャ空間勾配を調整するように前記グラフィックス処理装置が構成される、請求項２２に記載のシステム。
【請求項２５】
前記下位区分が前記画面空間の中央に、またはその付近に位置する場合に前記メタデータが標準解像度を指定し、前記下位区分が前記画面空間のエッジまたは角に、またはその付近に位置する場合に前記標準解像度未満を前記メタデータが指定する、請求項２１に記載のシステム。
【請求項２６】
前記ディスプレイ装置が９０度以上の視野によって特徴づけられる、請求項２１に記載のシステム。
【請求項２７】
前記ディスプレイ装置がヘッドマウントディスプレイ装置である、請求項２１に記載のシステム。
【請求項２８】
前記画面空間が曲面スクリーンに対応する、請求項２１に記載のシステム。
【請求項２９】
前記ディスプレイ装置をさらに含む、請求項２１に記載のシステム。
【請求項３０】
前記ディスプレイ装置のスクリーンのユーザが見ている部分を決定するように前記システムが構成され、前記ユーザが見ている前記部分を含む前記スクリーンの１つまたは複数の下位区分についてピクセル解像度が最高となるように前記ピクセル解像度を変化させるように前記メタデータが構成される、請求項２１に記載のシステム。
【請求項３１】
前記ディスプレイ装置の所与の光学素子及び視野のために、静的メタデータを利用するように前記システムが構成される、請求項２１に記載のシステム。
【請求項３２】
前記メタデータが前記下位区分においてアクティブピクセル数を指定し、前記下位区分のための前記指定された数のアクティブピクセル上のみでのピクセル処理の実行によって、前記最終ピクセル値を生成するための前記下位区分のための前記ピクセルの処理における前記メタデータを利用するように前記グラフィックス処理装置が構成され、前記複数の下位区分の異なる下位区分のために異なる数のアクティブピクセルを指定するように前記メタデータが構成される、請求項２１に記載のシステム。
【請求項３３】
前記複数の下位区分の各下位区分が前記画面空間の固定サイズの部分に対応する、請求項２１に記載のシステム。
【請求項３４】
前記複数の下位区分の各下位区分が前記画面空間の可変サイズの部分に対応する、請求項２１に記載のシステム。
【請求項３５】
前記メタデータが垂直及び水平方向におけるピクセルの範囲によって前記複数の下位区分の各下位区分を画定する、請求項２１に記載のシステム。
【請求項３６】
前記メタデータが同じサイズの粗いラスタライズタイルによって前記複数の下位区分の各下位区分を画定する、請求項２１に記載のシステム。
【請求項３７】
前記下位区分及びピクセル構成メタデータにおける規則性の利用によって、出力スクリーン領域がより小さいメモリフットプリントへとパッキングされる、請求項２１に記載のシステム。
【請求項３８】
出力メモリオフセットを符号化するために付加的な情報を前記メタデータに組み込むことにより、出力スクリーン領域がより小さいメモリフットプリントへとパッキングされる、請求項２１に記載のシステム。
【請求項３９】
前記複数の下位区分の特定の下位区分に関連する前記メタデータの一部が、前記特定の下位区分のためのアクティブピクセル数を指定する情報を含む、請求項２１に記載のシステム。
【請求項４０】
前記メタデータがメモリ及び／またはグラフィックスメモリにおける表の形式で格納される、請求項２１に記載のシステム。
【請求項４１】
請求項１に記載の方法の各ステップをコンピュータに実行させるためのプログラムを記録した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、本願の譲受人に譲渡され、本出願と同日に出願されその全体が本明細書に参照として組み込まれる、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆの「ＭＥＴＨＯＤ  ＦＯＲ  ＥＦＦＩＣＩＥＮＴ  ＣＯＮＳＴＲＵＣＴＩＯＮ  ＯＦ  ＨＩＧＨ  ＲＥＳＯＬＵＴＩＯＮ  ＤＩＳＰＬＡＹ  ＢＵＦＦＥＲＳ」（代理人整理番号ＳＣＥＡ１３０５５ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６４号に関する。
【０００２】
本出願は、本願の譲受人に譲渡され、２０１４年４月５日に出願されその全体が本明細書に参照として組み込まれる、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆの「ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＥＮＨＡＮＣＥＭＥＮＴ  ＢＹ  ＴＲＡＣＫＩＮＧ  ＯＢＪＥＣＴ  ＡＮＤ／ＯＲ  ＰＲＩＭＩＴＩＶＥ  ＩＤＥＮＴＩＦＩＥＲＳ」，（代理人整理番号ＳＣＥＡ１３０５６ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６７号に関する。
【０００３】
本出願は、本願の譲受人に譲渡され、２０１４年４月５日に出願されその全体が本明細書に参照として組み込まれる、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙの「ＧＲＡＤＩＥＮＴ  ＡＤＪＵＳＴＭＥＮＴ  ＦＯＲ  ＴＥＸＴＵＲＥ  ＭＡＰＰＩＮＧ  ＴＯ  ＮＯＮ−ＯＲＴＨＯＮＯＲＭＡＬ  ＧＲＩＤ」（代理人整理番号ＳＣＥＡ１３０５７ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６８号に関する。
【０００４】
本出願は、本願の譲受人に譲渡され、２０１４年４月５日に出願されその全体が本明細書に参照として組み込まれる、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆの「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＢＹ  ＣＨＡＮＧＩＮＧ  ＡＣＴＩＶＥ  ＣＯＬＯＲ  ＳＡＭＰＬＥ  ＣＯＵＮＴ  ＷＩＴＨＩＮ  ＭＵＬＴＩＰＬＥ  ＲＥＮＤＥＲ  ＴＡＲＧＥＴＳ」（代理人整理番号ＳＣＥＡ１３０５８ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６１号に関する。
【０００５】
本出願は、本願の譲受人に譲渡され、２０１４年４月５日に出願されその全体が本明細書に参照として組み込まれる、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙの「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＩＮ  ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＢＹ  ＡＰＰＲＯＸＩＭＡＴＩＮＧ  ＰＲＯＪＥＣＴＩＯＮ  ＯＦ  ＶＥＲＴＩＣＥＳ  ＯＮＴＯ  ＣＵＲＶＥＤ  ＶＩＥＷＰＯＲＴ」（代理人整理番号ＳＣＥＡ１３０６０ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６６号に関する。
【０００６】
本出願は、本願の譲受人に譲渡され、２０１４年４月５日に出願されその全体が本明細書に参照として組み込まれる、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙの「ＧＲＡＤＩＥＮＴ  ＡＤＪＵＳＴＭＥＮＴ  ＦＯＲ  ＴＥＸＴＵＲＥ  ＭＡＰＰＩＮＧ  ＦＯＲ  ＭＵＬＴＩＰＬＥ  ＲＥＮＤＥＲ  ＴＡＲＧＥＴＳ  ＷＩＴＨ  ＲＥＳＯＬＵＴＩＯＮ  ＴＨＡＴ  ＶＡＲＩＥＳ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ」（代理人整理番号ＳＣＥＡ１３０６１ＵＳ００）と題した同時係属米国特許出願第１４／２４６，０６２号に関する。
【０００７】
［技術分野］
本開示の態様はコンピュータグラフィックスに関する。本開示は特に、スクリーン位置による解像度の変化に関する。
【背景技術】
【０００８】
グラフィックス処理は通常、中央処理装置（ＣＰＵ）及びグラフィックス処理装置（ＧＰＵ）の２つのプロセッサの調整を含む。ＧＰＵは、ディスプレイへの出力のためのフレームバッファにおける画像の生成を加速するよう設計された特殊な電子回路である。ＧＰＵは、組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、携帯ゲーム装置、ワークステーション、及びゲームコンソールにおいて利用される。ＧＰＵは通常、コンピュータグラフィックスを効率的に処理するよう設計される。ＧＰＵはしばしば、データの大きなブロックの処理が並列して行われるアルゴリズムに関してＧＰＵを汎用ＣＰＵよりも効果的にする高並列処理アーキテクチャを有する。
【０００９】
ＣＰＵは、たとえば画像内の前フレームに対して変化した特定のテクスチャのレンダリングなどの特定のグラフィックス処理タスクを実装するようＧＰＵに指示する、一般に描画コマンドと称される命令をＧＰＵに送信してもよい。これらの描画コマンドは、特定のアプリケーションの仮想環境の状態に対応するグラフィックスレンダリングコマンドを出すために、グラフィックスアプリケーションプログラミングインターフェイス（ＡＰＩ）を有するＣＰＵによって調整されてもよい。
【００１０】
特定のプログラムのためにテクスチャをレンダリングするべく、ＧＰＵは仮想環境のビジュアルをディスプレイ上でレンダリングすることができる画像に変換するために、「グラフィックスパイプライン」において一連の処理タスクを実行してもよい。典型的なグラフィックスパイプラインは、仮想空間内の仮想オブジェクト上での特定のレンダリングまたはシェーディング演算の実行、出力表示に好適なピクセルデータを生成するためのシーンにおける仮想オブジェクトの変換及びラスタライズ、ならびにディスプレイでレンダリングされた画像の出力前のピクセル（またはフラグメント）上での付加的なレンダリングタスクを含んでもよい。
【００１１】
画像の仮想オブジェクトは仮想空間においてしばしば、仮想シーンにおいて物体の形状をともに作成するプリミティブとして知られる形状で描かれる。たとえばレンダリングされる三次元視覚世界内の物体は、三次元空間上のそれらの座標によって画定される頂点を有する一連の個別の三角形プリミティブとされてもよく、それによってこれらのポリゴンが物体の表面を形成する。各ポリゴンは、所与のポリゴンを他のポリゴンから区別するためにグラフィックス処理システムが利用することができる関連インデックスを有してもよい。同様に各頂点は、所与の頂点を他の頂点から区別するために利用することができる関連インデックスを有してもよい。グラフィックスパイプラインは、仮想シーンのためにビジュアルを生成し、このデータをディスプレイのピクセルによる複製に好適な二次元フォーマットに変換するために、これらのプリミティブ上で特定の演算を行ってもよい。本明細書にて利用されるとき、グラフィックスプリミティブ情報（または単に「プリミティブ情報」）という用語は、グラフィックスプリミティブを表すデータを指すために利用される。このようなデータは、頂点情報（たとえば、頂点位置または頂点インデックスを表すデータ）及びたとえば、特定の頂点を特定のポリゴンと関連付けるポリゴンインデックス及び他の情報などのポリゴン情報を含むが、それに限定されない。
【００１２】
グラフィックスパイプラインの一部として、ＧＰＵは一般にシェーダーとして知られるプログラムの実装によってレンダリングタスクを実行してもよい。典型的なグラフィックスパイプラインは、頂点ごとにプリミティブの特定の特性を処理してもよい頂点シェーダー及び、グラフィックスパイプラインにおいて頂点シェーダーよりダウンストリームで動作し、ピクセルデータのディスプレイへの送信前にピクセルごとに特定の値を処理してもよいピクセルシェーダー（「フラグメントシェーダー」としても知られる）を含んでもよい。フラグメントシェーダーは、テクスチャのプリミティブへの応用に関連する値を処理してもよい。パイプラインはまた、パイプライン上の様々なステージにおいて、プリミティブの新しい集合を生成するために、頂点シェーダーの出力を利用するジオメトリシェーダー及び、特定の他の一般的な計算タスクを実行するためにＧＰＵによって実装されてもよい演算シェーダー（ＣＳ）などの他のシェーダーを含んでもよい。
【００１３】
広視野（ＦＯＶ）を有するグラフィカルディスプレイ装置が開発されてきた。このような装置は、ヘッドマウントディスプレイ（ＨＭＤ）装置を含む。ＨＭＤ装置において、小型のディスプレイ装置がユーザの頭部に装着される。ディスプレイ装置は片目（単眼ＨＭＤ）または各目（双眼ＨＭＤ）の前にディスプレイ光学素子を有する。ＨＭＤ装置は通常、装置の向きを感知し、ユーザの頭部が動くにつれてディスプレイ光学素子によって示されるシーンを変化させることができるセンサを含む。広ＦＯＶディスプレイのためのシーンのレンダリングのほとんどのステージは従来、スクリーンのすべての部分が単位面積当たりの同一のピクセル数を有する平面レンダリングによって実行される。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
リアルな体験を提供するためには、広ＦＯＶディスプレイ装置によって提示されるグラフィックスが高質であり、効率的にレンダリングされることが望ましい。
【００１５】
本開示はこうした背景のもと生じる。
【課題を解決するための手段】
【００１６】
本開示の教示は、添付図面とともに以下の詳細な説明を考慮することによって容易に理解することができる。
【図面の簡単な説明】
【００１７】
【図１Ａ−１Ｂ】広視野（ＦＯＶ）ディスプレイ特定のパラメータを示す簡略図である。
【図１Ｃ】広ＦＯＶディスプレイの異なる部分のための異なる立体角を示す。
【図２Ａ−２Ｃ】本開示の態様による、異なる広ＦＯＶディスプレイの異なる領域におけるピクセルの相対的重要性の実施例を示す。
【図２Ｄ】本開示の態様による、ＦＯＶディスプレイのスクリーンの異なる領域のための異なるピクセル解像度の実施例を示す。
【図３Ａ】本開示の態様による、グラフィックス処理システムのブロック図である。
【図３Ｂ】本開示の態様による、グラフィックス処理パイプラインのブロック図である。
【図４Ａ】本開示の態様による、ピクセル解像度がスクリーン位置によって変化する画面空間を示す概略図である。
【図４Ｂ】本開示の態様による、スクリーン位置によってピクセル解像度が変化する画面空間の一部を示す概略図である。
【図４Ｃ】図４Ｂに示される画面空間の部分に対応するメモリの一部の利用を示す概略図である。
【図４Ｄ】本開示の態様による、ピクセル解像度がスクリーン位置によって変化する画面空間の一部におけるプリミティブへのテクスチャマッピングのための勾配のスケーリングを示す概略図の集合である。
【図４Ｅ】本開示の態様による、スクリーン位置によって変化するピクセル解像度の実装のための構成のメタデータの実施例を示す概略図である。
【図４Ｆ】本開示の態様による、スクリーン位置によって変化するピクセル解像度の実装のためのメタデータ構成の代替的な実施例を示す概略図である。
【図５Ａ】本開示の態様による、ピクセル解像度がスクリーン位置によって変化する複数のレンダリングターゲットの実施例を示すブロック図である。
【図５Ｂ】本開示の態様による、ピクセル解像度がスクリーン位置によって変化する複数のレンダリングターゲットの代替的な実施例を示すブロック図である。
【図６Ａ−６Ｅ】代替的な本開示の態様による、テクスチャの応用におけるピクセルごとの勾配スケール補正の実施例を示す。
【発明を実施するための形態】
【００１８】
以下の詳細な説明は説明の目的のために多くの具体的な詳細を含むが、以下の詳細への多くの変化及び変更が本発明の範囲内であることを多くの当業者は理解するであろう。したがって、以下に説明する本発明の例示的な実施形態は、特許請求された発明の一般性を失うことなく、かつ特許請求された発明に制限を課すことなく記される。
【００１９】
［導入］
図１Ａ〜１Ｃは、以前は評価されていなかった大型ＦＯＶディスプレイの問題を示す。図１Ａは９０度ＦＯＶディスプレイを示し、図１Ｂは１１４度ＦＯＶディスプレイを示す。従来の大型ＦＯＶディスプレイにおいて、投影面１０１への平面投影を利用して三次元形状がレンダリングされる。しかし、高ＦＯＶ投影面での形状のレンダリングは非常に非効率であることが判明している。図１Ｃにおいて見られるように、投影面１０１のエッジ領域１１２及び中央領域１１４は同じ面積であるが、視聴者１０３が見る際に極めて異なる立体角を表す。結果的に、スクリーンのエッジ付近のピクセルには、中央付近のピクセルに比べて意味のある情報がはるかに少なくなる。シーンのレンダリングを行う際に、従来はこれらの領域が同じピクセル数を有し、スクリーン上の同一サイズの領域のレンダリングに費やされる時間は同一である。
【００２０】
図２Ａ〜２Ｃは、異なる大きさの視野に関する、二次元の大型ＦＯＶディスプレイの異なる部分の相対的重要性を示す。図２Ａは、チェッカーボードが１１４度の角度に定められる場合の、視野方向に対して垂直な平面チェッカーボードの各正方形の立体角のばらつきを表す。つまり、それは従来の１１４度ＦＯＶディスプレイへの平面投影レンダリングの非効率性を表す。図２Ｂは、９０度ＦＯＶディスプレイのための同じ情報を表す。このような平面投影レンダリングにおいて、画像２０１のエッジにあるタイル２０２及び角にあるタイル２０３が、中央のタイル２０４に比べて小さな立体角へと、投影により圧縮される。この圧縮及び、画像２０１の各タイルが画面空間において同一のピクセル数を有するという事実により、中央タイル２０４と比較してエッジタイル２０２のレンダリングのためにおよそ４Ｘの非効率性因子が存在する。これは、エッジタイル２０２の従来のレンダリングが中央タイル２０４と比較して単位立体角当たりの４倍の処理を含むことを意味する。角タイル２０３については、非効率性因子はおよそ８Ｘである。画像２０１全体で平均化すると、非効率性因子はおよそ２.５Ｘである。
【００２１】
非効率性はＦＯＶの大きさに依存する。たとえば図２Ｂに示される９０度ＦＯＶディスプレイにする非効率性因子は、エッジタイル２０２のレンダリングについてはおよそ２Ｘ、角タイル２０３のレンダリングについておよそ３Ｘ、または画像２０１のレンダリング全体についてはおよそ１.７Ｘである。
【００２２】
スクリーン１０２が単位立体角当たりに定められるピクセルに関してほぼ等しい「重要性」の長方形に分割されている、この状況を見る別の方法が図２Ｃに示される。各長方形は、ディスプレイを通じて見られるように最終画像に対しておよそ同じ貢献をする。平面投影がいかにエッジの長方形２０２及び角の長方形２０３の重要性をゆがめるかを見ることができる。実際に、ピクセルの視感濃度（立体角ごとのピクセルとして表されるように）をディスプレイの中央に向かって高くすることを選択する可能性があるディスプレイ光学素子のために、角の長方形２０３が中央の長方形に対して行う貢献は少ない場合がある。
【００２３】
上述の観察に基づくと、図２Ｄに示すように、広ＦＯＶディスプレイのための画像２１０は、エッジ領域２０２、２０４、２０６、２０８において中央領域２０５よりも小さな、また角領域２０１、２０３、２０７及び２０９においてエッジ領域２０２、２０４、２０６、２０８よりも小さなピクセル密度を有することが有利である。スクリーン上のピクセル密度を変化させるのと同じ効果を得る方法で基本的なグラフィカル画像データ若しくはデータフォーマットを大幅に修正またはデータを処理する必要なく広ＦＯＶディスプレイのスクリーン上の従来のグラフィカル画像をレンダリングすることもまた有利である。
【００２４】
本開示の態様によると、プリミティブが重複する各下位区分と関連するメタデータの利用によって、グラフィックスパイプラインにおけるこれらの利点を得ることができる。メタデータは下位区分のピクセル解像度を決定する。メタデータは下位区分のためのピクセルの処理において、２つの異なる下位区分におけるシーンの部分が異なるピクセル解像度を有するような方法でディスプレイ装置上に表示されるシーンのビューポートのための最終ピクセル値を生成するために利用される。
【００２５】
これを実装するために、仮想空間から画面空間への変換及び裏面に隠れたプリミティブの選別は従来の方法で行うことができる。さらに、プリミティブは１回のみレンダリングされる。スクリーンは単一のピクセルフォーマットを有し、各下位区分が複数のピクセルを含む複数の下位区分に分割される。
【００２６】
解像度は下位区分ごとに指定されてもよい。解像度が通常よりも低い場合、複数のレンダリングターゲット（ＭＲＴ）データの一部のみが、表示される最終ピクセルを生成するために利用される。メタデータは他のパラメータも指定することができる。テクスチャ処理を容易にするために、ピクセルシェーダーがテクスチャマッピングのための水平及び垂直勾配スケール因子を指定するように構成される。
【００２７】
［システム及び機器］
本開示の態様は、テクスチャマッピングにおける勾配スケール補正を実装するように構成されるグラフィックス処理システムを含む。図３Ａは例示として、本開示の態様によるグラフィックス処理を実装するために利用されてもよいコンピュータシステム３００のブロック図を示すがそれに限定されない。本開示の態様によると、システム３００は組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、携帯ゲーム装置、ワークステーション、ゲームコンソールなどであってもよい。
【００２８】
システム３００は一般に、中央処理装置（ＣＰＵ）３０２、グラフィックス処理装置（ＧＰＵ）３０４ならびに、ＣＰＵ及びＧＰＵの両方にアクセス可能であるメモリ３０８を含んでもよい。ＣＰＵ３０２及びＧＰＵ３０４はそれぞれ、たとえば単一のコア、２つのコア、４つのコア、８つのコア、またはそれ以上の、１つまたは複数のプロセッサコアを含んでもよい。メモリ３０８は、たとえばＲＡＭ、ＤＲＡＭなどのアドレス可能なメモリを設ける集積回路の形式であってもよい。メモリ３０８は、グラフィックスレンダリングパイプラインのためにグラフィックスリソースを格納してもよく、データのグラフィックスバッファ３０５を一時的に格納してもよいグラフィックスメモリ３２８を含んでもよい。グラフィックスバッファ３０５は、たとえば、頂点パラメータ値の格納のための頂点バッファ、頂点インデックスの保持のためのインデックスバッファ、グラフィックスコンテンツの深度値の格納のための深度バッファ（たとえば、Ｚバッファ）、ステンシルバッファ、ディスプレイに送信される完成したフレームの格納のためのフレームバッファ、及び他のバッファを含んでもよい。図３Ａに示される実施例において、グラフィックスメモリ３２８はメインメモリの一部として示される。代替的な実施態様において、グラフィックスメモリ３２８は、可能であればＧＰＵ３０４に組み込まれる別個のハードウェア構成要素とすることができる。
【００２９】
例示として、ＣＰＵ３０２及びＧＰＵ３０４はデータバス３０９を利用してメモリ３０８にアクセスしてもよいが、それに限定されない。場合によっては、システム３００が２つ以上の異なるバスを含むことが有用である可能性がある。メモリ３０８はＣＰＵ３０２及びＧＰＵ３０４によるアクセス可能なデータを含んでもよい。ＧＰＵ３０４は、グラフィックス処理タスクを並列で実行するように構成される複数の計算ユニットを含んでもよい。各計算ユニットは、ローカルデータシェアなどの専用のローカルメモリストアを含んでもよい。
【００３０】
ＣＰＵは、グラフィックス、コンパイラ及びグラフィックスＡＰＩを利用するアプリケーションを含んでもよいＣＰＵコード３０３Ｃを実行するように構成されてもよい。グラフィックスＡＰＩは、ＧＰＵによって実装されるプログラムに描画コマンドを出すように構成することができる。ＣＰＵコード３０３Ｃはまた、物理シミュレーション及び他の機能を実装してもよい。ＧＰＵ３０４は上述のように動作するように構成されてもよい。特にＧＰＵは上述のように、演算シェーダーＣＳ、頂点シェーダーＶＳ、及びピクセルシェーダーＰＳなどのシェーダーを実装してもよいＧＰＵコード３０３Ｇを実行してもよい。演算シェーダーＣＳと頂点シェーダーＶＳとの間のデータの受け渡しを容易にするために、システムは、フレームバッファＦＢを含んでもよい１つまたは複数のバッファ３０５を含んでもよい。ＧＰＵコード３０３Ｇはまた、ピクセルシェーダーまたはジオメトリシェーダーなどの他のタイプのシェーダー（図示せず）を任意に実装してもよい。各計算ユニットは、ローカルデータシェアなどの専用のローカルメモリストアを含んでもよい。ＧＰＵ３０４は、グラフィックスパイプラインの一部としてテクスチャのプリミティブへの応用のための特定の演算を実行するように構成される、１つまたは複数のテクスチャユニット３０６を含んでもよい。
【００３１】
本開示の態様によると、ＣＰＵコード３０３ｃ及びＧＰＵコード３０３ｇならびにシステム３００の他の要素は、グラフィックスパイプラインを実装するように構成される。グラフィックスパイプラインの特定のステージは、ディスプレイ装置３１６のスクリーンの１つまたは複数の下位区分に関連するメタデータＭＤを受信し利用する。メタデータは、関連する１つまたは複数の下位区分のためにピクセル解像度を決定する。システム３００のメタデータは、２つの異なる下位区分におけるシーンの部分が異なるピクセル解像度を有することができるような方法で、ディスプレイ装置上に表示されるシーンのビューポートのための最終ピクセル値を生成するための（１つまたは複数の）下位区分のためのピクセルの処理において、メタデータを利用する。
【００３２】
本開示の態様によると、特定の実施態様においてＣＰＵコード３０３ｃ及びＧＰＵコード３０３ｇならびにシステム３００の他の要素は、グラフィックスプリミティブが重複するディスプレイ装置３１６のスクリーンの１つまたは複数の下位区分のためのアクティブピクセルカウントを指定するメタデータＭＤを受信し利用する。メタデータＭＤは、異なるピクセル解像度（スクリーンの単位面積当たりのピクセル数）を有する下位区分のための異なるアクティブピクセルカウントを指定する。このような実施態様において、ＣＰＵコード３０３ｃ及びＧＰＵコード３０３ｇならびにシステム３００の他の関連構成要素は、１つまたは複数の下位区分のための指定された数のアクティブピクセル上でのピクセル処理の実行により、最終ピクセル値を生成するための下位区分のためのピクセルの処理においてメタデータＭＤを利用するように構成することができる。このように、ピクセル解像度をディスプレイ装置３１６のスクリーンの異なる下位区分ごとに変化させることができ、単に高解像度領域に対して低解像度領域のためのメタデータＭＤにおけるアクティブピクセルカウントを削減することにより、ＧＰＵ３０４のグラフィックス処理負荷をディスプレイの低解像度領域のために削減することができる。
【００３３】
いくつかの実施態様において、３２Ｘ３２などのピクセルの粗いラスタライズタイルなどの一貫した大きさのサブ領域の規則的な配列のためのサブ領域ごとのアクティブピクセル構成としてメタデータＭＤが指定されてもよい。他の実施態様において、図５Ａまたは５Ｂに示されるような所定のパターンを構成する水平及び垂直画面座標範囲を構成する配列としてメタデータＭＤが指定されてもよい。スクリーン領域を覆うサブ領域の集合を定義し、各サブ領域のためのアクティブピクセル構成を指定するために多数の選択肢が存在すること、また、本明細書において提案される本発明がこれらの例示的な場合に限定されるべきでないことが理解されるべきである。
【００３４】
いくつかの実施態様において、ＣＰＵコード３０３ｃ、ＧＰＵコード３０３ｇ、及びテクスチャユニット３０６はさらに、スクリーン位置によって変化するピクセル解像度に関連するテクスチャマッピング演算への修正を実装するように構成されてもよい。たとえばピクセルシェーダーＰＳ及びテクスチャユニット３０６は、１つまたは複数のテクスチャマッピング演算のために座標を提供し、テクスチャフィルタリングの利用のために勾配値Ｇｒをテクスチャ座標ＵＶから計算するためにピクセル位置ＸＹごとに１つまたは複数のテクスチャ座標ＵＶを生成するように構成することができる。
【００３５】
いくつかの実施態様において、画面空間領域は異なるピクセルサンプル密度または分布を有する領域間に画定され、結果的に勾配値Ｇｒの突然の遷移及び領域境界におけるテクスチャフィルタリングに至ってもよい。ピクセルテクスチャごとの勾配スケール因子Ｓｃはその後、必要に応じて領域境界上で円滑に変化する勾配値Ｇｒ’を得るために、勾配値Ｇｒに応用することができる。
【００３６】
例示として、以下に記されるグラフィックスパイプラインの他の部分である（１つまたは複数の）テクスチャユニット３０６が特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはシステムオンチップ（ＳｏＣまたはＳＯＣ）などの専用ハードウェアとして実装されてもよいが、それに限定されない。
【００３７】
本明細書にて利用されるとき、当業者によって一般に理解されるように、特定用途向け集積回路（ＡＳＩＣ）は、汎用利用のためではなく特定の利用のためにカスタマイズされた集積回路である。
【００３８】
本明細書にて利用されるとき、当業者によって一般に理解されるように、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、製造後に顧客または設計者によって構成されるよう設計された―したがって「フィールドプログラマブル」な集積回路である。ＦＰＧＡ構成は一般に、ＡＳＩＣのために利用されるのと同様に、ハードウェア記述言語（ＨＤＬ）を利用して指定される。
【００３９】
本明細書にて利用されるとき、当業者によって一般に理解されるように、チップまたはシステムオンチップ（ＳｏＣまたはＳＯＣ）上のシステムは、コンピュータまたは他の電子回路システムのすべての構成要素を単一のチップに統合する集積回路（ＩＣ）である。それには、デジタル、アナログ、混合信号、及びしばしば無線周波機能が、すべて単一のチップ基板上に含まれてもよい。典型的な応用は、組み込みシステムの領域にある。
【００４０】
典型的なＳｏＣは、以下のハードウェア構成要素を含む。
（たとえば、マイクロコントローラ、マイクロプロセッサまたはデジタルシグナルプロセッサ（ＤＳＰ）コアなどの１つまたは複数のプロセッサコア。
たとえば、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的に消去可能なプログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）及びフラッシュメモリなどのメモリブロック。
オシレータまたは位相ロックループなどのタイミングソース。
カウンタータイマー、リアルタイムタイマー、またはパワーオンリセットジェネレータなどの周辺機器。
たとえば、ユニバーサルシリアルバス（ＵＳＢ）、ファイアーワイヤ、イーサネット（登録商標）、汎用非同期送受信機（ＵＳＡＲＴ）、直列周辺装置インターフェイス（ＳＰＩ）バスなどのような業界標準などの外部インターフェイス。
アナログからデジタルへの変換器（ＡＤＣ）及びデジタルからアナログへの変換器（ＤＡＣ）を含むアナログインターフェイス。
電圧調整器及び電力管理回路。
【００４１】
これらの構成要素は独自規格または業界標準のいずれかのバスによって接続される。ダイレクトメモリアクセス（ＤＭＡ）コントローラは、プロセッサコアをバイパスして外部インターフェイスとメモリとの間で直接データを送り、それによってＳｏＣのデータスループットを増加させる。
【００４２】
典型的なＳｏＣは、上述のハードウェア構成要素ならびに、（１つまたは複数の）プロセッサコア、周辺機器及びインターフェイスを制御する実行可能な命令（たとえば、ソフトウェアまたはファームウェア）の両方を含む。
【００４３】
いくつかの実施態様において、テクスチャユニット３０６またはグラフィックスパイプラインの他の部分の機能の一部または全部が、ソフトウェアプログラマブル汎用コンピュータプロセッサによって実行される適切に構成されたソフトウェア命令によって代わりに実装されてもよい。このような命令は、たとえば、メモリ３０８または記憶装置３１５などのコンピュータ可読媒体に組み込まれてもよい。
【００４４】
システム３００はまた、たとえばバス３０９を介してシステムの他の構成要素との通信を行ってもよい周知の支援機能３１０を含んでもよい。このような支援機能は、入力／出力（Ｉ／Ｏ）要素３１１、電源供給部（Ｐ／Ｓ）３１２、クロック（ＣＬＫ）３１３及びキャッシュ３１４を含んでもよいが、それに限定されない。キャッシュ３１４に加えて、ＧＰＵ３０４はＧＰＵキャッシュ３１４Ｇを含んでもよく、ＧＰＵはＧＰＵ３０４上で実行されるプログラムがＧＰＵキャッシュ３１４Ｇのリードスルーまたはライトスルーを行うことができるように構成されてもよい。
【００４５】
システム３００は、レンダリングされたグラフィックス３１７をユーザに提示するディスプレイ装置３１６を含んでもよい。代替的な実施態様において、ディスプレイ装置３１６はシステム３００に関連して機能する別個の構成要素である。ディスプレイ装置３１６は、可視のテキスト、数字、図記号または画像を表示することができるフラットパネルディスプレイ、ヘッドマウントディスプレイ（ＨＭＤ）、ブラウン管（ＣＲＴ）スクリーン、プロジェクト、または他の装置の形式であってもよい。特に有用な実施態様において、ディスプレイ３１６は、曲面スクリーンを有する大型視野（ＦＯＶ）装置である。ディスプレイ装置３１６は、本明細書に記載の様々な技術によって処理された、レンダリング後のグラフィック画像３１７を表示する。
【００４６】
システム３００は、ディスクドライブ、ＣＤ−ＲＯＭドライブ、フラッシュメモリ、テープドライブなどの、プログラム及び／またはデータを格納するための大容量記憶装置３１５を任意に含んでもよい。システム３００はまた、システム３００とユーザとの間の対話を容易にするユーザーインターフェイスユニット３１８を任意に含んでもよい。ユーザーインターフェイス３１８は、キーボード、マウス、ジョイスティック、ライトペン、ゲームコントローラ、またはグラフィカルユーザーインターフェイス（ＧＵＩ）に関連して利用されてもよい他の装置を含んでもよい。システム３００はまた、装置がネットワーク３２２を介して他の装置と通信を行うことを可能にするためのネットワークインターフェイス３２０を含んでもよい。ネットワーク３２２はたとえば、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワークなどのパーソナルエリアネットワーク、または他のタイプのネットワークであってもよい。これらの構成要素は、ハードウェア、ソフトウェア、またはファームウェア、またはこれらの２つ以上のいくつかの組み合わせにおいて実装されてもよい。
【００４７】
［グラフィックスパイプライン］
本開示の態様によると、システム３００は、グラフィックスレンダリングパイプラインの部分を実装するように構成される。図３Ｂは、本開示の態様によるグラフィックスレンダリングパイプライン３３０の実施例を示す。
【００４８】
レンダリングパイプライン３３０は、仮想空間（本明細書において「ワールドスペース」とも称される）において二次元または好ましくは三次元形状を有するシーンを示す画像としてグラフィックスをレンダリングするよう構成されてもよい。パイプラインの初期ステージは、シーンがラスタライズされ、ディスプレイ装置３１６上での出力のための好適な個別の画素の集合として画面空間に変換される前に、仮想空間において実行される演算を含んでもよい。パイプラインを通じて、グラフィックスメモリ３２８に含まれる様々なリソースがパイプラインステージにおいて利用されてもよく、画像の最終値が決定される前にステージへの入力及び出力がグラフィックスメモリに含まれるバッファにおいて一時的に格納されてもよい。
【００４９】
レンダリングパイプラインは、仮想空間において設定される頂点の集合によって画定される１つまたは複数の仮想オブジェクトを含んでもよい入力データ３３２上で動作し、シーンにおける座標に関して画定される形状を有してもよい。パイプラインの初期ステージは、図３Ｂにおいて頂点処理ステージ３３４として大きく分類されるものを含んでもよく、これは、仮想空間において物体の頂点を処理するための様々な計算を含んでもよい。これは、位置値（たとえば、ＸＹ座標及びＺ深度値）、明度、照明値、テクスチャ座標などの、シーンにおける頂点の様々なパラメータ値を処理してもよい頂点シェーディング演算３３６を含んでもよい。好ましくは、頂点シェーディング演算３３６は１つまたは複数のプログラム可能な頂点シェーダーによって実行される。仮想空間において新たな頂点及び新たな形状を生成するために任意に利用されてもよいテセレーション及びジオメトリシェーダー演算３３８などの付加的な頂点処理計算を頂点処理ステージは任意に含んでもよい。頂点処理３３４と称されるステージが完了すると、パイプラインのこのステージにおいて、それぞれが頂点パラメータ値３３９の集合を有する頂点の集合によってシーンが画定される。
【００５０】
パイプライン３３０はその後、シーン形状の画面空間及び個別の画素の集合、すなわちピクセルへの変換に関連するラスタライズ処理ステージ３４０に進んでもよい。仮想空間からシーンの目視用窓（または「ビューポート」）への物体及び頂点の投影の計算を本質的に行ってもよい演算を通じて（三次元とすることができる）仮想空間形状を（通常二次元である）画面空間形状に変換してもよい。プリミティブの集合を画定するために頂点のサブセットがグルーピングされる。
【００５１】
図３Ｂに記されるラスタライズ処理ステージ３４０は、シーンにおいて頂点の集合のそれぞれによって画定されるプリミティブを設定してもよいプリミティブアセンブリ演算３４２を含んでもよい。各頂点はインデックスによって画定されてもよく、各プリミティブは、グラフィックスメモリ３２８内のインデックスバッファに格納されてもよいこれらの頂点インデックスに対して画定されてもよい。プリミティブは好ましくは、少なくとも３つの頂点それぞれによって画定される三角形を含んでもよいが、また、ポイントプリミティブ、ラインプリミティブ、及び他のポリゴン形状を含んでもよい。プリミティブアセンブリステージ３４２の間、特定のプリミティブが任意に選別されてもよい。たとえば、インデックスが特定の巻上げ順序を示すそれらのプリミティブは、裏面にあると見なされてもよく、シーンから選別されてもよい。
【００５２】
例示として、プリミティブが三次元仮想空間において頂点によって画定される三角形の形式である場合、ディスプレイ３１６のスクリーン上のどこに各三角形が位置するかをプリミティブアセンブリが決定するがそれに限定されない。クリッピング及び画面空間変換演算は通常、プリミティブアセンブリユニット３４２によって実行される。
【００５３】
プリミティブが組み合わせられた後、ラスタライズ処理ステージ３４０は、サンプルがプリミティブにより覆われた際のさらなる処理のために、各ピクセルにおいてプリミティブをサンプリングし、プリミティブからフラグメント（ピクセルと称される場合もある）を生成してもよい走査変換演算３４４を含んでもよい。走査変換演算は、画面空間座標に変換されたプリミティブを用いた演算を含み、どのピクセルがプリミティブの一部になるかを決定する。いくつかの実施態様において、走査変換演算３４４の間にピクセルごとに複数のサンプルがプリミティブ内で用いられ、アンチエイリアスプロセスのために利用されてもよい。特定の実施態様において、異なるピクセルが異なる形でサンプリングされてもよい。たとえばいくつかのエッジピクセルは、ヘッドマウントディスプレイ（ＨＭＤ）などの特定のタイプのディスプレイ装置３１６のためにレンダリングの特定の態様を最適化するために、中央ピクセルよりも低いサンプリング密度を含んでもよい。走査変換３４４の間にプリミティブから生成されるフラグメント（または「ピクセル」）は、それらを生成したプリミティブの頂点の頂点パラメータ値３３９からピクセルの位置に補間されてもよいパラメータ値を有してもよい。ラスタライズステージ３４０は、パイプラインの後のステージにおけるさらなる処理のための入力として利用されてもよい、これらの補間フラグメントパラメータ値３４９を計算するためのパラメータ補間演算３４６のステージを含んでもよい。
【００５４】
本開示の態様によると、プリミティブアセンブリ３４２と走査変換３４４との間で、スクリーンの異なる下位区分が異なるピクセル解像度という事実を構成する特定の演算が実行される。特定の実施態様において、プリミティブの頂点のためのスクリーン位置が知られると、プリミティブが重複する所定のスクリーン下位区分（本明細書にて粗いラスタライズタイルとも称される場合がある）のすべてを発見するために粗いラスタライズ３４３を実行することができる。プリミティブが重複する各下位区分に関して、たとえばアクティブピクセルカウント及びスケーリングパラメータなどの下位区分に依存するメタデータＭＤが受信され、下位区分のピクセル解像度を構成するためにプリミティブ及びテクスチャ勾配のための頂点位置を調整することが可能になる。走査変換３４４及びその後の処理ステージは、１つまたは複数の下位区分のための指定された数のアクティブピクセル上のみでのピクセル処理の実行によって最終ピクセル値を生成する。
【００５５】
グラフィックスパイプライン３３０は、補間パラメータ値３４９をさらに処理し、ディスプレイ３１６のためにフラグメントが最終ピクセル値を導く方法を決定するさらなる演算を実行するために、図３Ｂの３５０において一般に示されるピクセル処理演算をさらに含んでもよい。これらのピクセル処理タスクの一部は、フラグメントの補間パラメータ値３４９をさらに処理するピクセルシェーディング演算３５２を含む。ピクセルシェーディング演算３５２は、プログラム可能なピクセルシェーダーまたはＧＰＵ３０４内の専用のハードウェアによって実行されてもよい。ピクセルシェーダー呼出し３４８は、ラスタライズ処理ステージ３４０の間のプリミティブのサンプリングに基づいて起動されてもよい。ピクセルシェーディング演算３５２は、レンダリングターゲット、または複数の場合には複数のレンダリングターゲット（ＭＲＴ）と称される場合もあるグラフィックスメモリ３２８内の１つまたは複数のバッファ３０５に値を出力してもよい。ＭＲＴにより、ピクセルシェーダーが、それぞれが同じスクリーン寸法を有するが潜在的に異なるピクセルフォーマットを有する２つ以上のレンダリングターゲットに任意に出力することが可能になる。レンダリングターゲットフォーマットの限定はしばしば、レンダリングターゲットのいずれか１つが最大４つの独立した出力値（チャネル）を受容することのみが可能であり、４つのチャネルのフォーマットが互いに堅く結びついていることを意味する。ＭＲＴにより、単一のピクセルシェーダーが異なるフォーマットの混合においてより多くの値出力することが可能になる。レンダリングターゲットのフォーマットは、画面空間ピクセルごとに値を格納するが、様々な性能上の理由により、近年のハードウェア生成においてレンダリングターゲットフォーマットはさらに特殊化され、時に（しかし常にではない）テクスチャユニット３０６による読み取りに対応する前にデータを再フォーマットするための「リゾルブ」と呼ばれるものを必要とする「テクスチャ様」である。
【００５６】
図４Ａ〜４Ｃは、ディスプレイ３１６のスクリーン４００の異なる下位区分４０１における異なるピクセル解像度の実施例を概略的に示す。この実施例において、スクリーン４００の下位区分４０１のすべてにおけるすべてのピクセルに関して、ピクセルデータは一貫した方法でフォーマットされる。例示として、深度サンプル及びカラーサンプルの数がスクリーン４００のすべての下位区分４０１におけるすべてのピクセルと同じであるがそれに限定されない。通常、カラーサンプルよりも深度サンプルの方が多い。数値例として、下位区分４０１は３２ピクセルｘ３２ピクセルの粗いラスタライズタイルであってもよく、深度サンプルの数は４であってもよく、カラーサンプルの数は１であってもよいがそれに限定されない。代替的な実施態様において、各下位区分及び対応する異なる数の下位区分において、より多くのピクセル数（たとえば、６４ピクセルｘ６４ピクセル）またはより少ないピクセル数（たとえば、１６ｘ１６）または可変のピクセル（たとえば長方形の大きさの混合）が存在することができる。
【００５７】
図４Ａ〜４Ｃに示されるように、下位区分４０１のそれぞれにおけるアクティブピクセル数は変化する。示される実施例においては、４つの中央下位区分４０１ｃのみにおいてフル解像度である。他の下位区分は、片方または両方の軸においてハーフ解像度である。たとえば、水平エッジ下位区分４０１ＥＨは水平方向においてフル解像度を、垂直方向においてハーフ解像度を有し、垂直エッジ下位区分４０１ＥＶは水平方向においてハーフ解像度を、垂直方向においてフル解像度を有する。角の下位区分４０１Ｒは垂直及び水平方向の両方においてハーフ解像度を有する。この実施例において、グラフィックスパイプライン３３０は中央下位区分４０１ｃを正常にレンダリングすることができる。このような実施態様において、グラフィックスパイプライン３３０は水平エッジ下位区分４０１ＥＨにおけるピクセルのための垂直位置及びテクスチャマッピング勾配を調整し、垂直エッジ下位区分４０１ＥＶにおけるピクセルのための水平位置及びテクスチャマッピング勾配を調整し、角の下位区分４０１Ｒにおけるピクセルのための垂直及び水平位置ならびにテクスチャマッピング勾配を調整する。
【００５８】
メタデータＭＤによる下位区分ごとのアクティブピクセル数の変化は、メモリ内に格納されたピクセルデータ（たとえば、ＭＲＴデータ）を下位区分から下位区分へと変化させないが、そのデータの利用は変化する。特に図４Ｃにおいて示されるように、グラフィックスパイプライン３３０は中央下位区分４０１ｃのためにピクセルデータのすべてを、水平エッジ下位区分４０１ＥＨ及び垂直エッジ下位区分４０１ＥＶのためにデータの半分を、角の下位区分４０１Ｒのためにデータの４分の１を利用する。これらの下位区分のためのデータの利用されない部分が図４Ｃにおいては薄く網掛けされている。メモリ内のピクセルデータの大きさは変化していないが、これらの下位区分のためにピクセルデータのすべてを処理する必要がないため、水平エッジ下位区分４０１ＥＨ、垂直エッジ下位区分４０１ＥＶ及び角の下位区分４０１Ｒについてグラフィックスプロセッサ３０４上の演算負荷が削減される。たとえばサブ領域の行が常に同一の垂直スケールを共有し、列が常に同一の水平スケールを共有する特定の単純な場合においては、ピクセルデータのすべての部分をより小さな１つの長方形パッキングし、またメモリフットプリントを削減するために、スクリーン空間の変換を利用することができる。他の標準的でない場合において、メタデータＭＤへの修正により、同様にメモリオフセットまたはインデックスのオフセットの表への符号化が可能になり、より小さいメモリフットプリントへの出力のより効率的なパッキングが可能になる。
【００５９】
いくつかの実施態様において、各領域４０１がディスプレイ３１６のスクリーンの固定サイズの部分に対応してもよい。他の実施態様において、各領域がディスプレイの可変サイズの部分に対応してもよい。さらなる実施態様において、メタデータＭＤは垂直及び水平方向におけるピクセルの範囲によって各領域４０１を画定することができる。別のさらなる実施態様において、メタデータＭＤは、たとえば３２ピクセルｘ３２ピクセルなどのいくつかの大きさの粗いラスタライズタイルによって、各領域を画定することができる。メタデータは、その領域のためのアクティブピクセル構成を指定する情報を含む特定の領域に関連する。例示として、メタデータは、メモリ３０８及び／またはグラフィックスメモリ３２８において表の形式で格納されてもよいが、それに限定されない。
【００６０】
メタデータＭＤからのアクティブピクセルカウントを利用するために、プリミティブアセンブリ演算３４２は、プリミティブのための頂点情報をからメモリ引き出し、表示されているシーンの視野角錐体の外部のプリミティブをクリッピングし、頂点位置の仮想空間から画面空間への変換を実行し、テクスチャマッピングのための勾配を計算することができる。プリミティブアセンブリ演算３４２は、プリミティブが位置する１つまたは複数の下位区分を決定することができる。走査変換演算３４４は、１つまたは複数の下位区分（たとえば、メモリ３０８またはグラフィックスメモリ３２８に格納された表からのアクティブピクセルカウント）の解像度を決定するメタデータＭＤのルックアップを含むことができる。走査変換演算３４４はまた、頂点画面空間位置を調整するための計算を実行することができる。
【００６１】
可変のアクティブピクセルカウントを含む実施態様において、粗いラスタライズ３４３後に下位区分で特定の数学的処理が行われる。特に変換３４４の間に、各ピクセルのための水平位置Ｈ及び垂直位置Ｖがスケーリングされ、下位区分（ＨＳＵＢ、ＶＳＵＢ）の水平及び垂直位置、水平スケール因子Ｈｓｃａｌｅ及び垂直スケール因子Ｖｓｃａｌｅに依存する更新後の位置Ｈ’及びＶ’へとオフセットされる必要がある。スケール因子Ｈｓｃａｌｅ及びＶｓｃａｌｅはメタデータＭＤに格納することができる。スケール及びオフセット演算は、以下によって数学的に表すことができる。
Ｈ’＝（Ｈ−ＨＳＵＢ）＊Ｈ［ｓｃａｌｅ］＋ＨＳＵＢ
Ｖ’＝（Ｖ−ＶＳＵＢ）＊Ｖｓｃａｌｅ＋ＶＳＵＢ
同じように、これらの演算についても、以下によって数学的に表すことができる。
Ｈ’＝Ｈ＊Ｈｓｃａｌｅ＋ＨＳＵＢ＊(１−Ｈｓｃａｌｅ）
Ｖ’＝Ｖ＊Ｖｓｃａｌｅ＋ＶＳＵＢ＊(１−Ｖｓｃａｌｅ）
【００６２】
図４Ｄにおいて、水平及び垂直スケーリングの実施例が示される。特に図４Ｄの左上部分に示されるように、垂直及び水平においてフル解像度を有する下位区分（たとえば、中央下位区分４０１ｃ）に該当するプリミティブ４０３はスケーリングする必要がない。図４Ｄの右上部分に示されるように、フル水平解像度及び１／２の垂直解像度を有する下位区分（たとえば、水平エッジ下位区分４０１ＥＨ）に該当するプリミティブ４０３は水平においてはスケーリングする必要はないが、垂直においてはＶｓｃａｌｅ＝０.５の因子によってスケーリングする必要がある。図４Ｄの左下部分において示されるように、１／２の水平解像度及びフル垂直解像度を有する下位区分（たとえば、垂直エッジ下位区分４０１ＥＶ）に該当するプリミティブ４０３は、水平においてはＨｓｃａｌｅ＝０.５の因子によってスケーリングする必要があるが、垂直においてはスケーリングする必要はない。図４Ｄの右下手部分において示されるように、１／２の水平解像度及び１／２の垂直解像度を有する下位区分（たとえば、角の下位区分４０１ｃ）に該当するプリミティブ４０３は、水平においてはＨｓｃａｌｅ＝０.５の因子によってスケーリングし、垂直においてはＶｓｃａｌｅ＝０.５の因子によってスケーリングする必要がある。
【００６３】
図５Ａ〜５Ｂは、水平及び垂直アクティブピクセルカウントが下位区分によってスケーリングされる実施態様の利点を図示する。図５Ａ及び図５Ｂは両方とも、たとえば、グラフィックスパイプライン３３０によるシステム３００によって処理されるピクセルのための複数のレンダリングターゲット（ＭＲＴ）を表す。それぞれの図で、１４４０ピクセルＸ１４４０ピクセルのスクリーンのための様々な下位区分における因子Ｈｓｃａｌｅ／Ｖｓｃａｌｅが示される。図５Ａにおいて、８００ピクセルＸ８００ピクセルのスクリーン領域を構成する中央下位区分のための因子Ｈｓｃａｌｅ／Ｖｓｃａｌｅは、１／１である。２つの３２０ピクセルＸ８００ピクセルの領域を構成する垂直エッジ下位区分のためのスケール因子Ｈｓｃａｌｅ／Ｖｓｃａｌｅは、１／０.５である。２つの８００ピクセルＸ３２０ピクセルを構成する水平エッジ下位区分のためのスケール因子は、０.５／１である。４つの３２０ピクセルＸ３２０ピクセル領域を構成する４つの角の下位区分のためのスケール因子は、０.５／０.５である。エッジ及び角の下位区分の処理負荷の軽減により、図５Ａの左に示される１４４０ピクセルＸ１４４０ピクセルＭＲＴの処理負荷は、図５Ａの右に示されるような１１２０ピクセルＸ１１２０ピクセルＭＲＴの処理に等しい。したがって図５Ａに示されるように、水平及び垂直アクティブピクセルカウントが下位区分によってスケーリングされる場合、ＧＰＵ３００上の処理負荷は通常のおよそ６０％まで軽減される。水平及び垂直ピクセルカウントのスケーリングは、図５Ｂにおいて多少現実的に示すことができる。しかし最終的には、従来の処理と比較しておよそ処理負荷の４０％の軽減という同じ結果になる。
【００６４】
メタデータＭＤにおける各下位区分については、情報の多くの異なる潜在的な構成が存在する。図５Ｂに示すように、ある構成によると例示として、メタデータが水平及び垂直方向において４つのうちからアクティブピクセルカウントを指定するがそれに限定されない。これにより、各下位区分のために４ビット、Ｈｓｃａｌｅ（すべての４つのうちから４、３、２、または１つのアクティブピクセル列のためのＨｓｃａｌｅ１、０.７５、０.５、または０.２５）のために２ビット、Ｖｓｃａｌｅ（すべての４つのうちから４、３、２、または１つのアクティブピクセル行のためのＶｓｃａｌｅ１、０.７５、０.５、または０.２５）のために２ビットが利用される。
【００６５】
図５Ａに記されるタイプのスケーリングを実装するために、下位区分ごとに２ビットのみが必要とされる（Ｈｓｃａｌｅ＝１または０.５、Ｖｓｃａｌｅ＝１または０.５）。
【００６６】
スクリーン下位区分ごとのメタデータの格納は極めて柔軟性が高く、大量のデータを含まない。数値例として、８１９２の３２ピクセルｘ３２ピクセルの下位区分を含む４ｋ２ｋディスプレイについて考慮する。各下位区分のために４ビット（２分の１バイト）が必要とされ、このディスプレイのためのメタデータＭＤは、わずか４０９６バイトの情報を含む可能性がある。上述のように、本開示の態様は、ピクセルｘ３２ピクセルの下位区分を含む実施態様に限定されない。より大きい、またはより小さい下位区分が利用されてもよい。下位区分の大きさに関する実用的な選択は、ラスタライズハードウェアによって独立的かつ効率的に調整されたパラメータを有する可能性がある最小のスクリーン領域要素である。
【００６７】
粗いラスタライズタイルの解像度などの、スクリーンラスタライズのハードウェアの実施態様の特定の態様は、いくつかのハードウェアの実施態様においてピクセルの下位区分のために合理的に考えて最小の解像度を設定してもよい。最適なメタデータフォーマットは任意のスクリーン構成を画定する柔軟性とメタデータのために必要なストレージサイズとの間のトレードオフに依存し、それにより、必要なストレージタイプ及び実施態様の処理能力が次に決定されてもよい。たとえば代わりに、同じスケールを共有するいくつかの水平または垂直スクリーン範囲におけるような図５Ａ及び図５Ｂのように単純なパターンのためにメタデータを格納することができ、結果的に柔軟性は制限されるが、ハードウェアレジスタに自明に収まる極めて小さなメタデータを得ることができる。
【００６８】
メタデータＭＤの構成へのいくつかの潜在的な改良が存在する。ある改良によるとメタデータは、メモリ内のピクセルデータの表現の効率性を向上させる方法で構成することができる。特に、各下位区分のデータは１６ビット、Ｈｓｃａｌｅのために２ビット、Ｖｓｃａｌｅのために２ビット、及びインデックスのために４ビットとすることができる。これらの４ビットは、最大１６のＭＲＴアドレスの集合を、異なる解像度のそれぞれに１つのアドレスでインデックス付けすることができる。同じ解像度のすべての領域はその後、同じＭＲＴの集合の対象となる。
【００６９】
たとえばいくつかの実施態様において、メタデータＭＤは、レンダリングターゲット（ＭＲＴ）の特性を現在定義しているか、あるいはグラフィックスパイプライン３３０のラスタライズ３４０及びラスタライズ後の（たとえば、ピクセル処理３５０）ステージを制御する少なくともいくつかのレジスタの複数のコピーへとインデックスを符号化することができる。このような実施態様において、ハードウェアレジスタ値のパレットからすべてのＭＲＴの特性を設定する値を選択するためにインデックスが利用される。
【００７０】
たとえばメタデータＭＤはタイル当たり４ビットである場合、１６値を有する４ビットのインデックスを格納することができ、レンダリングターゲットレジスタのいくつかが１６値のパレットを保持するために拡張される場合、このタイルをレンダリングする際にどのＭＲＴの設定のパレットエントリを利用するべきかをメタデータインデックスが選択することができる。一般にＧＰＵ３０４のハードウェアが支持することができるパレットの大きさに依存する多くまたは少ないビットを有するインデックスを格納することが可能である。
【００７１】
例示として、このような実施態様の最小バージョンがＭＲＴベースアドレスを格納するレジスタ及び寸法を配列へと拡張し、また同じインデックスによってインデックス付けされるオフセット及びタイル変換のスケールを含むいくつかの新たなレジスタをおそらく追加するが、それに限定されない。バッファフォーマットなどを制御する他のＭＲＴレジスタは、任意の１つのＭＲＴのすべての配列要素に関して一定のままである。ピクセルシェーダーＰＳはレンダリングターゲットフォーマットを知る必要があり、粗いラスタライズタイルごとに必ずしもそれを変化させなくてよい。
【００７２】
このような実施態様は、メタデータに格納された（粗いラスタライズタイルまたはおそらくより大きな）下位区分ごとに１つまたは複数の選択インデックスを有するレンダリングターゲット構成レジスタ値の１つまたは複数の「パレット」としてのメタデータＭＤの実装として見なすことができる。例示としてメタデータＭＤは、すべてのレンダリングターゲットのための設定ブロックを調べるためにＧＰＵ３０４のハードウェアが利用するタイルごとにパレットインデックスを格納することができる。このような実施態様におけるレンダリングは、以下のように要約することができる。
１．「仮想３２ｘ３２ピクセル」の粗いラスタライズタイルへの粗いラスタライズ。
２．各仮想の粗いタイルのそれぞれに関して、メタデータインデックスをルックアップする。
３．プリミティブを粗いラスタライズタイル、ピクセル、またはサンプルへとラスタライズする前に、メタデータインデックスを利用して、Ｈｓｃａｌｅ及びＶｓｃａｌｅをルックアップし、それらをプリミティブに応用する。
４．その後、ピクセルシェーディング３５２の後の出力演算３５６の間に、すべてのレンダリングターゲットアドレシングを実行するために利用される、ｘ及びｙオフセット、ベースアドレス、及びピッチをルックアップするためにメタデータインデックスが再度利用される。
【００７３】
たとえば、１.０、０.７５、０.５、０.２５のパレットからＨｓｃａｌｅ、Ｖｓｃａｌｅを取り出すことは特に、たとえばＧＰＵ３０４のハードウェアにおける粗いラスタライズタイルのそれぞれがタイル（それぞれが８ｘ８ピクセル）の４ｘ４の配列を含む場合に、有用である。これは、これらの４つのスケール因子がすべて正確に、１つの粗いラスタライズタイルを、整数のタイルに一致させ、ラスタライズパイプラインの残りを十分な効率性で実行させる（粗いラスタライズの最大限の効率性における効率性の損失を除いて）ことを意味する。
【００７４】
加えてメタデータＭＤは、カスタムスウィズルを可能にするための下位区分オフセットを画定する付加的な１６ビットを含むことができる。下位区分オフセットはタイルサイズを乗算され、利用するためのＭＲＴの面積の決定に利用される。本明細書にて利用されるとき、当業者によって一般に理解されるように、コンピュータグラフィックス、スウィズリングは、ベクトルの要素の再配列を指す。線形代数の観点から、スウィズルは、置換行列によるベクトルの乗算に等しい。スウィズルは、通常はＣＰＵ３０２によって行われる計算をＧＰＵ３０４が実行するグラフィックスユニット（ＧＰＧＰＵ）アプリケーション上の汎用処理において共通である。
【００７５】
レンダリングターゲットへのレンダリングの文脈における「スウィズリング」または「タイリング」は、メモリにおけるピクセルの順序の再配列を指す。「タイリング」または「表面タイリング」は、メモリにおけるピクセル順序のこのタイプの再配列に関してはより一般的な語となりつつある。「スウィズリング」は今では、テクスチャによって利用されるモートン順序として知られる特定の場合を指すためにより頻繁に利用される。メモリにおけるピクセルの順序の再配列は、本質的な二次元処理（ポリゴンのラスタライズ）からの一次元ターゲット（メモリ）への出力のデータ局所性（すなわちコヒーレンス）を向上させるために行われる。例示として、レンダリングターゲットがピクセルの行の単純の配列として格納される場合、細長い三角形ラスタライズの出力は、メモリ内の多くのキャッシュラインにヒットする、多数の行におけるそれぞれの行の少数のピクセルとすることができるが、それに限定されない。メモリ内で近傍のピクセルを近接させて垂直に位置付け、またメモリ内で近傍のピクセルを近接させて水平に位置付けるためにも、メモリ内のピクセルの再順序付けにより、ラスタライズステージ３４０はポリゴンの向きに関するより優れたデータ局所性及びより均一な性能を実現することができる。
【００７６】
本開示の態様によると、レンダリングターゲットのタイリングパラメータはまた、たとえば、レンダリングターゲットベースアドレス及びピッチと同じインデックス、または別個のインデックスなどのメタデータＭＤによってインデックス付けすることができる。
【００７７】
別の改良によると、メタデータＭＤは、上述のインデックスを通じてと同様に異なるピクセルフォーマットを可能にすることができる。異なるインデックスに関連する各ピクセルフォーマットは、異なるカラー及びＺサンプルカウント、異なるカラー及びＺサンプル位置、異なるエンハンスドクオリティアンチエイリアシング（ＥＱＡＡ）パラメータ、または異なるアンロールパラメータまたはそれらの２つ以上の組み合わせを指定することができる。このタイプの改良を含む実施態様はその後、様々な状況下で完全にパッキングされる（または新たな波面を開始する）前にするピクセルシェーダー波面を開始する必要がある。
【００７８】
このような改良は、粗いラスタライズタイルごとに変化する可能性がある、レジスタのパレタイズ、カラー及びＺサンプルカウントの制御、ならびに他の同様のＥＱＡＡ設定を含む。このような改良を含む実施態様においては、サンプルカウントを制御するメタデータインデックスが、ＭＲＴアドレシングを制御するメタデータインデックスに依存しないという選択肢を有することが合理的である。テクスチャ勾配スケール補正を含む実施態様において、テクスチャ勾配相関係数はまた、サンプル構成を制御する同じインデックスによってインデックス付けすることができる。
【００７９】
図４Ｅは、ディスプレイスクリーン３１６の異なる下位区分４０１のために異なるアクティブピクセルを指定するようにメタデータＭＤを構成することができる方法の実施例を示す。図４Ｅにおいて示される実施例において、スクリーン３１６の中央下位区分は、フル解像度を有することが所望され、さらに中央からの下位区分は漸進的により低い解像度を有する。例示として、アクティブピクセルカウントの変化を含む実施態様においては、メタデータＭＤはフル解像度（４）、３／４の解像度（３）、１／２の解像度（２）及び１／４の解像度（４）に対応するＨｓｃａｌｅ及びＶｓｃａｌｅ値を画定することができるが、それに限定されない。例示として、メタデータＭＤは、メモリ３０８及び／またはグラフィックスメモリ３２８における表の形式で格納されてもよいがそれに限定されない。
【００８０】
いくつかの実施態様において、メタデータはディスプレイ３１６の光学素子及びＦＯＶのために固定されている。このようなメタデータ構成の実施例が図４Ｄにおいて概略的に示される。代替的な実施態様において、視線追跡のための中心視覚レンダリングを実装するために、メタデータが変化する可能性がある。このような実施態様において、システム３００は、ユーザの視線、すなわち、ユーザの目がどこに向けられているかの追跡、及びこの情報のユーザが見ている対応するスクリーン位置との関連付けのためのハードウェアを含む。このようなハードウェアのある実施例は、ディスプレイ装置３１６のスクリーンに対して既知の位置にあり、ユーザのおおまかな方向に向けられたデジタルカメラを含むことができる。デジタルカメラは、ユーザーインターフェイス３１８または別個の構成要素の一部とすることができる。ＣＰＵコード３０３ｃは、カメラからの画像の分析を行い、（ａ）ユーザが画像内にいるか否か、（ｂ）ユーザがカメラの方を向いているか否か、（ｃ）ユーザがスクリーンの方を向いているか否か、（ｄ）ユーザの目が見えているか否か、（e）ユーザの頭部に対するユーザの目の瞳孔の向き、及び（ｆ）カメラに対するユーザの頭部の向きを判断する画像分析ソフトウェアを含むことができる。スクリーンに対するカメラの既知の位置及び向き、ユーザの頭部に対するユーザの目の瞳孔の向き、ならびにカメラに対するユーザの頭部の向きから、画像分析ソフトウェアは、ユーザがスクリーンを見ているか否かを、もしそうであれば、ユーザが見ているスクリーンの部分４０１の画面空間座標を判断することができる。ＣＰＵコード３０３ｃはその後、これらの画面座標をＧＰＵコード３０３Ｇに伝え、それによって、部分４０１を含む１つまたは複数の下位区分を決定することができる。したがって図４Ｆにおいて示すように、ＧＰＵコードはその後、部分４０１を含む１つまたは複数の下位区分においてピクセル解像度が最高となり、下位区分において部分４０１から遠ざかると漸進的に低くなるように、メタデータＭＤを修正することができる。
【００８１】
再び図３Ｂを参照すると、下位区分によって変化するアクティブピクセルカウントを含む実施態様において、各下位区分のためのピクセル処理３５０は、各下位区分におけるアクティブピクセルのために、たいていは正常に進む。一般にピクセル処理３５０は、ラスタ演算（ＲＯＰ）として一般に知られるものを含んでもよいレンダリング出力演算３５６において終了する。ラスタライズ演算（ＲＯＰ）は単純にピクセルごとに複数回行われ、複数のレンダリングターゲット（ＭＲＴ）の間の各レンダリングターゲットごとに１度行われる。出力演算３５６の間に、フラグメントのマージ、ステンシル、深度テスト及び特定のサンプルごとの処理タスクの応用を任意に含んでもよいフレームバッファにおいて最終ピクセル値３５９が決定されてもよい。最終ピクセル値３５９は、すべてのアクティブレンダリングターゲット（ＭＲＴ）への収集された出力を含む。ＧＰＵ３０４は、ディスプレイ装置３１６のピクセル上にリアルタイムで任意に表示されてもよい最終フレーム３６０を形成するための最終ピクセル値３５９を利用する。
【００８２】
ラスタライズ処理演算３４０は通常、入力テクスチャ座標、カラー、位置、法線、及び他の値を通常含む頂点シェーダーによって頂点ごとに書き込まれる入力パラメータの補間を含む。パラメータ補間３４６は、レンダリングされているプリミティブ内の各ピクセルまたはサンプルの位置を示すピクセルごとに生成される重心座標補間値を必要とする。各パラメータ構成要素はその後、ピクセルサンプル位置において値を生成するためのプリミティブ頂点における値の間で補間されてもよい。下位区分によるアクティブピクセルカウントの変化を含む実施態様において、これらの重心座標補間値は、下位区分から下位区分へのピクセル構成の変化を構成するために補正されてもよい。
【００８３】
ピクセル処理演算３５０は通常、ある程度は１つまたは複数のピクセルシェーダーＰＳによって、またある程度はテクスチャユニット３０６によって実行されてもよいテクスチャマッピング演算３５４を含む。ピクセルシェーダー演算３５２は、画面空間座標ＸＹからのテクスチャ座標ＵＶの計算、及びテクスチャ座標のテクスチャ演算３５４への送信、及びテクスチャデータＴＸの受信を含む。テクスチャ座標ＵＶについては任意の方法で画面空間座標ＸＹから計算することができるが、通常は補間入力値から、または時には前のテクスチャ演算から計算する。勾配Ｇｒは、テクスチャユニット３０６（テクスチャ演算ハードウェアユニット）によってテクスチャ座標のクォッドからしばしば直接計算されるが、デフォルト計算を行うテクスチャユニット３０６に依拠するのではなく、ピクセルシェーダー演算３５２によって任意に明確に計算してテクスチャ演算３５４に伝えることが可能である。
【００８４】
テクスチャ演算３５６は一般に、ピクセルシェーダーＰＳ及びテクスチャユニット３０６のいくつかの組み合わせによって行うことができる以下のステージを含む。まず、ピクセル位置ＸＹごとの１つまたは複数のテクスチャ座標ＵＶが生成され、各テクスチャマッピング演算のための座標の提供に利用される。テクスチャ座標ＵＶから勾配値Ｇｒが計算される。ピクセルごとの勾配スケール因子Ｓｃは、対応する勾配値Ｇｒを対応する調整済みの勾配値Ｇｒ’に調整するように構成される。勾配スケール因子Ｓｃは、異なるピクセル解像度を有するディスプレイ装置３１６の領域の間で円滑に遷移させるために勾配値Ｇｒを修正することができる。下位区分によるアクティブピクセルカウントの変化を含む実施態様において、勾配Ｇｒはスケール因子Ｈｓｃａｌｅ及びＶｓｃａｌｅの逆数によって補正されてもよいか、またはピクセル構成メタデータＭＤから得られる変換に基づいて補正されてもよい。
【００８５】
特定のグラフィックスアプリケーションビットマップテクスチャがポリゴンに「ペイントされる」。このような場合において、出力装置によって引き出される各ピクセル値は、テクスチャからサンプリングされる１つまたは複数のピクセルから決定される。本明細書にて利用されるとき、ビットマップは一般に、コンピュータモニタ、紙、または他のディスプレイ装置上のピクセルの長方形グリッド、またはカラーのポイントを一般に表すデータファイルまたは構造を指す。各ピクセルのカラーが個別に定義される。たとえば、着色ピクセルは、１バイトがそれぞれ赤、緑及び青の３バイトによって定義されてもよい。ビットマップは通常、おそらくディスプレイのビデオメモリに格納されるのと同じフォーマットで、またはデバイス独立ビットマップとして、スクリーン上に表示される画像にビットごとに対応する。ビットマップは、ピクセルの画像の幅及び高さならびに、それが表現することができるカラー数を決定する、ピクセルごとのビット数によって特徴づけられる。
【００８６】
テクスチャビットマップの表面への転送処理はしばしば、テクスチャＭＩＰマップ（ミップマップとしても知られる）の利用を含む。名称の「ＭＩＰ」の文字は、「小さい空間に多くの」を意味するラテン語の語句、ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏの頭文字である。このようなミップマップは、レンダリングの速度を向上させアーチファクトを削減させることを意図した、メインテクスチャに付随する、事前に計算され最適化されたビットマップ画像群である。
【００８７】
ミップマップセットの各ビットマップ画像はメインテクスチャのバージョンであるが、特定の減少した詳細度（ＬＯＤ）にある。十分詳細にレンダリングを行う上でビューが十分である場合に、メインテクスチャはなお利用されるが、テクスチャが遠くから、または小さなサイズで見られる場合に、最終画像をレンダリングするグラフィックスハードウェアは、好適なミップマップレベルに切り替える（または２つの最も近いレベルの間を補間する）。処理されているテクスチャピクセル（「テクセル」）数を単純なテクスチャよりもはるかに少なくすることができるため、レンダリング速度は向上する。ミップマップ画像がすでに効果的にアンチエイリアス処理済みであるため、アーチファクトは削減され、リアルタイムレンダリングハードウェアから若干の負荷を除いてもよい。
【００８８】
ミップマップレベル間のブレンドは通常、いくつかの形式のテクスチャフィルタリングを含む。本明細書にて利用されるとき、テクスチャフィルタリングは、テクセル（テクスチャのピクセル）を３Ｄオブジェクトのポイントへとマッピングするために利用される方法を指す。単純なテクスチャフィルタリングアルゴリズムはオブジェクト上のポイントを用いてその位置に最も近いテクセルをルックアップしてもよい。結果として得られるポイントはその後、その１つのテクセルからカラーを得る。単純な技術が時に最近傍フィルタリングと称される。さらに洗練された技術は、ポイントごとに２つ以上のテクセルを組み合わせる。実用において最も頻繁に利用されるアルゴリズムは、ミップマップを利用したバイリニアフィルタリング及びトリリニアフィルタリングである。異方性フィルタリング及び、二次または三次フィルタリングなどのより高度な方法により、さらに高質な画像が得られる。
【００８９】
テクスチャは通常正方形であり、２の巾乗に等しい辺長を有さなければならない。たとえばテクスチャが２５６×２５６ピクセルの基本サイズを有する場合、関連するミップマップセットはその後、それぞれが前の画像のサイズの半分である、１２８×１２８ピクセル、６４×６４、３２×３２、１６×１６、８×８、４×４、２×２、及び１×１（単一のピクセル）の一連の８つの画像を含んでもよい。たとえばこのテクスチャが画面空間の４０×４０ピクセル部分にマッピングされる場合、６４×６４及び３２×３２のミップマップの補間がその後利用される。本明細書にて利用されるとき、用語「画面空間」は一般に、グラフィックスパイプライン内のディスプレイバッファに伝えられる座標の集合を指す。
【００９０】
適切なミップマップレベルを決定する処理におけるキー演算は、画面空間（時にＸＹ座標空間と称される）からのピクセル位置の対応する領域のためのテクスチャ座標空間（時にＵＶ座標空間と称される）において覆われる領域の決定を含む。補間テクスチャＵＶ座標の画面空間勾配ｄｕ＿ｄｘ、ｄｖ＿ｄｘ、ｄｕ＿ｄｙ、ｄｖ＿ｄｙは一般的に、シーンの関連部分におけるＸＹ空間ピクセル位置でサンプリングされるＵ及びＶ値から計算される。いくつかの実施態様において、すべてのテクスチャ座標勾配の大きさの計算によって、スクリーンＹを固定保持するスクリーンＸ座標における変化（時に、ｄｕ＿ｄｘ、ｄｖ＿ｄｘの大きさと称される）のための、またスクリーンＸを固定保持するスクリーンＹ座標における変化（時に、ｄｕ＿ｄｙ、ｄｖ＿ｄｙの大きさと称される）に対して各画面空間方向Ｘ及びＹのために単一のテクスチャ座標勾配が計算される。異方性ではないテクスチャルックアップのために、これらの２つの間のより大きい勾配が詳細度（ＬＯＤ）を選択するために利用される。異方性テクスチャリングのために、より小さな勾配が（ＬＯＤ）を選択するために利用され、より大きな勾配に対応するラインにおいてテクスチャがサンプリングされる。
【００９１】
上述の計算が、１、２、３、またはそれ以上のテクスチャ座標次元に汎用化することができることにも留意されたい。典型的なハードウェアは、テクスチャの次元数に応じて、Ｕ空間における１Ｄの大きさまたはＵＶ空間における２Ｄの大きさまたはＵＶＷ空間における３Ｄの大きさを計算する。このように本開示の態様は、２つのテクスチャ座標次元を含む実施態様に限定されない。
【００９２】
［ピクセルごとの勾配スケール補正］
いくつかの実施態様において、ディスプレイ上のピクセル解像度の不連続性を構成するためにテクスチャ勾配ｄｕ＿ｄｘ、ｄｖ＿ｄｘ、ｄｕ＿ｄｙ、ｄｖ＿ｄｙがピクセルごとにスケーリングされる。基本的な概念が図６Ａ〜６Ｃに示される。
【００９３】
図６Ａ及び図６Ｂに示されるように、ディスプレイ領域は、異なるピクセル解像度の２つ以上の領域６０１、６０２、６０３、６０４、６０５、６０６、６０７、６０８、及び６０９に分割されてもよい。たとえばヘッドマウントディスプレイ（ＨＭＤ）の場合において、各領域はディスプレイの領域によって定められた立体角に関する解像度を有してもよい。例示として、中央領域６０５は名目または標準ピクセル解像度Ｒ０を有してもよいが、それに限定されない。エッジ領域６０２、６０４、６０６、６０８は標準解像度の半分である１／２Ｒ０を有することができ、たとえばこれらの領域におけるピクセルの半分はディスプレイ上で「オフになる」かまたはレンダリングされない。角領域６０１、６０３、６０７、及び６０９は標準解像度の４分の１である１／４Ｒ０を有することができ、たとえばこれらの領域におけるピクセルの４分の３はディスプレイ上で「オフになる」かまたはレンダリングされない。図６Ｂは、各領域の解像度に応じて異なるサイズに引き出されるこれらの異なる領域を示す。
【００９４】
勾配はまた、隣接する領域間の境界付近のピクセルのために調整されなければならない場合がある。たとえば図６Ｃにおいて、区分間の境界を示すラインは取り除かれている。しかし、近傍領域間の解像度における不連続性により、境界が視認できる。ＧＰＵは、不連続性を視認しづらくすることで不連続性を解消するために、領域間の境界付近のピクセルのための勾配を調整するように構成することができる。たとえば図６Ｄに示されるように図６ＣのＤ−Ｄ’行のフル解像度の中央領域６０５において選択されたピクセル６１１、６１２のための水平勾配は、ハーフ解像度のエッジ領域６０４、６０６に向かって漸進的にぼやけるようにスケーリングすることができる。
【００９５】
代わりに、ハーフ解像度のエッジ領域６０４、６０６における勾配は、フル解像度の中央領域６０５に向かって漸進的に濃くなるようにスケーリングすることができる。
【００９６】
異なる解像度を構成するための勾配の汎用のスケーリングについては、図６Ｅを参照して理解することができる。ＵＶ空間（ｄｕ＿ｄｘ、ｄｖ＿ｄｘ）、（ｄｕ＿ｄｙ、ｄｖ＿ｄｙ）における勾配は正常に計算される。勾配はその後、適切なミップマップレベルを決定するためにテクスチャユニットが利用する最終調整勾配（ｄｕ＿ｄｘ’、ｄｖ＿ｄｘ’）、（ｄｕ＿ｄｙ’、ｄｖ＿ｄｙ’）を生成するために、勾配スケール因子ｓｃａｌｅＸ、ｓｃａｌｅＹによってピクセルごとに乗算されることができる。
ｄｕ＿ｄｘ’＝ｄｕ＿ｄｘ＊ｓｃａｌｅＸ
ｄｖ＿ｄｘ’＝ｄｖ＿ｄｘ＊ｓｃａｌｅＸ
ｄｕ＿ｄｙ’＝ｄｕ＿ｄｙ＊ｓｃａｌｅＹ
ｄｖ＿ｄｙ’＝ｄｖ＿ｄｙ＊ｓｃａｌｅＹ
【００９７】
勾配スケール因子ｓｃａｌｅＸ及びｓｃａｌｅＹは、テクスチャユニット３０６に伝えられ、最終調整勾配の計算のために利用される。
【００９８】
勾配スケール因子ｓｃａｌｅＸ、ｓｃａｌｅＹのための好適な値は、異なるピクセル解像度の近傍領域の境界に近接する、選択されたピクセルに応用される勾配スケール因子値の反復によって実験的に決定することができる。勾配スケール因子のための好適な値の範囲は、近傍領域の相対的なピクセル解像度から決定することができる。たとえばピクセル解像度は、Ｄ−Ｄ’行に沿って領域６０４における１／２Ｒから領域６０５におけるＲへと、また領域６０６における１／２Ｒへと、変化する。勾配スケール値ｓｃａｌｅＸは、領域６０４及び６０６との境界に近接する領域６０５におけるいくつかのピクセルに渡って、およそ１からおよそ２へと遷移する。同様に勾配スケール値ｓｃａｌｅＸは、領域６０７及び６０９との境界に近接する領域６０８におけるいくつかのピクセルに渡って、およそ１の値からおよそ２の値へと遷移する。勾配スケール因子は、たとえばおよそ４から８ピクセルのいくつかのピクセルに渡って、２つの値の間で変化してもよい。
【００９９】
テクスチャユニット３０６は、適切なＬＯＤを選択するために最終調整勾配を利用し、最終調整勾配からの１つまたは複数のプリミティブに応用してもよい。
【０１００】
［付加的な態様］
付加的な本開示の態様は、仮想空間におけるシーンのための１つまたは複数の頂点を表すデータの受信、仮想空間から複数の下位区分に再分割される複数のピクセルを含むディスプレイ装置の画面空間におけるシーンのビューポートへの頂点の投影を計算するための頂点上でのプリミティブアセンブリの実行、画面空間座標に変換された各プリミティブに関する、複数のピクセルのうちのどのピクセルが各プリミティブの一部となるかの決定、プリミティブが重複する１つまたは複数の下位区分がどれかを決定するための各プリミティブのための粗いラスタライズの実行、プリミティブが重複する下位区分に関連する、下位区分のためのピクセル解像度を決定するメタデータの受信、２つの異なる下位区分におけるシーンの部分が異なるピクセル解像度を有するような方法での、ディスプレイ装置上に表示されるシーンのビューポートのための最終ピクセル値を生成するための下位区分のためのピクセルの処理におけるメタデータの利用を含む、グラフィックス処理方法を含む。
【０１０１】
付加的な本開示の態様は、ディスプレイ装置のスクリーンの異なる領域が異なるピクセル解像度を有するグラフィックス処理方法を含む。
【０１０２】
別の付加的な態様は、そこにおいて組み込まれ、実行される際に上述の方法の１つまたは両方を実装する、コンピュータ実行可能命令を有するコンピュータ可読媒体である。
【０１０３】
さらなる態様は、上述の方法の１つまたは両方を実行するための電磁式または他の信号搬送コンピュータ可読命令である。
【０１０４】
さらなる付加的な態様は、通信ネットワークからダウンロード可能な、かつ／または、上述の方法の１つまたは両方の実装のためのプログラムコード命令を含むことを特徴とする、コンピュータ読み取り可能及び／若しくはマイクロプロセッサによる実行が可能な媒体が格納されたコンピュータプログラム製品である。
【０１０５】
さらに別の付加的な態様は、上述の方法の１つまたは両方を実装するように構成されるグラフィックス処理システムである。
【０１０６】
本発明の好ましい実施形態の詳細な説明をこれまで記したが、様々な代替物、修正及び均等物の利用が可能である。したがって、本発明の範囲は上述の説明を参照することなく決定されるべきではなくむしろ、均等物の全範囲とともに添付の特許請求の範囲を参照することにより決定されるべきである。本明細書に記載の特徴は好むと好まざるとに関わらずすべて、本明細書に記載の任意の他の特徴と好むと好まざるとに関わらず組み合わせることができる。以下の特許請求の範囲において、［「Ａ」または「Ａｎ」の不定冠詞］は、別段に明言されない限りは、以下の文章の項目の１つまたは複数の量を指す。添付の特許請求の範囲は、このような限定が語句「ｍｅａｎｓ  ｆｏｒ」を利用して明確に所与の請求項において記載されない限りは、手段プラス機能の制限として解釈されない。
【図１Ａ】
2018129050.tif 000003
【図１Ｂ】
2018129050.tif 000004
【図１Ｃ】
2018129050.tif 000005
【図２Ａ】
2018129050.tif 000006
【図２Ｂ】
2018129050.tif 000007
【図２Ｃ】
2018129050.tif 000008
【図２Ｄ】
2018129050.tif 000009
【図３Ａ】
2018129050.tif 000010
【図３Ｂ】
2018129050.tif 000011
【図４Ａ】
2018129050.tif 000012
【図４Ｂ】
2018129050.tif 000013
【図４Ｃ】
2018129050.tif 000014
【図４Ｄ】
2018129050.tif 000015
【図４Ｅ】
2018129050.tif 000016
【図４Ｆ】
2018129050.tif 000017
【図５Ａ】
2018129050.tif 000018
【図５Ｂ】
2018129050.tif 000019
【図６Ａ】
2018129050.tif 000020
【図６Ｂ】
2018129050.tif 000021
【図６Ｃ】
2018129050.tif 000022
【図６Ｄ】
2018129050.tif 000023
【図６Ｅ】
2018129050.tif 000024