(57)【要約】      （修正有）【課題】非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整方法を提供する。【解決手段】テクスチャユニットを有するコンピュータグラフィックス処理デバイス（ＧＰＵ）において、ピクセルサンプル位置が、シーン空間において非正規直交グリッドに基づく場合、テクスチャユニットは、テクスチャ空間グラデーション値を、たとえばシェーダユニットから直接受けるか、またはたとえばシェーダユニットによって与えられたテクスチャ座標から生成し、その後、グラデーション値を正規直交スクリーン空間グリッドの使用から発生したものに調整するように構成された変換にグラデーション値を適用する。【選択図】図６Ｂ
2020113301.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックス方法であって、
テクスチャユニットが、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換をテクスチャ空間グラデーション値に適用するステップとを含む、コンピュータグラフィックス方法。
【請求項２】
前記テクスチャユニットが、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはシステムオンチップ（ＳＯＣ）である、請求項１に記載の方法。
【請求項３】
前記サンプル点の非正規直交グリッドが、交互の列パターンである、請求項１に記載の方法。
【請求項４】
前記サンプル点の非正規直交グリッドが、交互の行パターンである、請求項１に記載の方法。
【請求項５】
前記サンプル点の非正規直交グリッドが、「市松模様」パターンである、請求項１に記載の方法。
【請求項６】
前記変換が、ピクセルごとの変更を含む、請求項１に記載の方法。
【請求項７】
前記テクスチャユニットが、ピクセルサンプル位置差分値に前記変換を適用するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記テクスチャユニットが、前記グラデーション値を用いて、１以上のプリミティブに適用されるテクスチャの複数の詳細レベルから、詳細レベルを選択するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記テクスチャユニットが、前記１以上のプリミティブに前記テクスチャを適用するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
グラフィックス処理装置（ＧＰＵ）に結合されたディスプレイユニットが、前記１以上のプリミティブに適用された前記テクスチャを含む画像を表示するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
実行されたときにグラフィックス処理方法を実施するコンピュータ実行可能命令を格納した非一時的コンピュータ可読媒体であって、前記方法は、
テクスチャユニットが、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換をテクスチャ空間グラデーション値に適用するステップとを含む、非一時的コンピュータ可読媒体。
【請求項１２】
前記サンプル点の非正規直交グリッドが、交互の列パターンである、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記サンプル点の非正規直交グリッドが、交互の行パターンである、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記サンプル点の非正規直交グリッドが、「市松模様」パターンである、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記変換が、ピクセルごとの変更を含む、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記テクスチャユニットが、ピクセルサンプル位置差分値に前記変換を適用するステップをさらに含む、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記テクスチャユニットが、前記グラデーション値を用いて、１以上のプリミティブに適用されるテクスチャの複数の詳細レベルから、詳細レベルを選択するステップをさらに含む、請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記テクスチャユニットが、前記１以上のプリミティブに前記テクスチャを適用するステップをさらに含む、請求項１７に記載の非一時的コンピュータ可読媒体。
【請求項１９】
グラフィックス処理装置（ＧＰＵ）に結合されたディスプレイユニットが、前記１以上のプリミティブに適用された前記テクスチャを含む画像を表示するステップをさらに含む、請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆへの「ＭＥＴＨＯＤ  ＦＯＲ  ＥＦＦＩＣＩＥＮＴ  ＣＯＮＳＴＲＵＣＴＩＯＮ  ＯＦ  ＨＩＧＨ  ＲＥＳＯＬＵＴＩＯＮ  ＤＩＳＰＬＡＹ  ＢＵＦＦＥＲＳ」と題する米国特許出願第１４／２４６，０６４号（代理人整理番号ＳＣＥＡ１３０５５ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００２】
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆへの「ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＥＮＨＡＮＣＥＭＥＮＴ  ＢＹ  ＴＲＡＣＫＩＮＧ  ＯＢＪＥＣＴ  ＡＮＤ／ＯＲ  ＰＲＩＭＩＴＩＶＥ  ＩＤＥＮＴＩＦＩＥＲＳ」と題する米国特許出願第１４／２４６，０６７号（代理人整理番号ＳＣＥＡ１３０５６ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００３】
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆへの「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＢＹ  ＣＨＡＮＧＩＮＧ  ＡＣＴＩＶＥ  ＣＯＬＯＲ  ＳＡＭＰＬＥ  ＣＯＵＮＴ  ＷＩＴＨＩＮ  ＭＵＬＴＩＰＬＥ  ＲＥＮＤＥＲ  ＴＡＲＧＥＴＳ」と題する米国特許出願第１４／２４６，０６１号（代理人整理番号ＳＣＥＡ１３０５８ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００４】
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙへの「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＢＹ  ＡＬＴＥＲＩＮＧ  ＲＡＳＴＥＲＩＺＡＴＩＯＮ  ＰＡＲＡＭＥＴＥＲＳ」と題する米国特許出願第１４／２４６，０６３号（代理人整理番号ＳＣＥＡ１３０５９ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００５】
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙへの「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＩＮ  ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＢＹ  ＡＰＰＲＯＸＩＭＡＴＩＮＧ  ＰＲＯＪＥＣＴＩＯＮ  ＯＦ  ＶＥＲＴＩＣＥＳ  ＯＮＴＯ  ＣＵＲＶＥＤ  ＶＩＥＷＰＯＲＴ」と題する米国特許出願第１４／２４６、０６６号（代理人整理番号ＳＣＥＡ１３０６０ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００６】
本出願は、２０１４年４月５日出願の、本発明の譲受人に譲渡された同時継続中の、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙへの「ＧＲＡＤＩＥＮＴ  ＡＤＪＵＳＴＭＥＮＴ  ＦＯＲ  ＴＥＸＴＵＲＥ  ＭＡＰＰＩＮＧ  ＦＯＲ  ＭＵＬＴＩＰＬＥ  ＲＥＮＤＥＲ  ＴＡＲＧＥＴＳ  ＷＩＴＨ  ＲＥＳＯＬＵＴＩＯＮ  ＴＨＡＴ  ＶＡＲＩＥＳ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ」と題する米国特許出願第１４／２４６、０６２号（代理人整理番号ＳＣＥＡ１３０６１ＵＳ００）に関連し、その全内容は、参照により本明細書に組み入れられる。
【０００７】
［技術分野］
本開示の態様は、コンピュータグラフィックスに関する。本開示は、特にテクスチャマッピングのために用いられるグラデーションの調整に関する。
【背景技術】
【０００８】
グラフィックス処理は、典型的に２つの処理デバイス、すなわち中央処理装置（ＣＰＵ）及びグラフィックス処理装置（ＧＰＵ）の連携を含む。ＧＰＵは、ディスプレイへの出力を意図したフレームバッファ内での画像の作成を加速させるように設計された、特化された電子回路である。ＧＰＵは、組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、ポータブルゲーム機、ワークステーション、及びゲームコンソールで用いられる。ＧＰＵは、典型的にコンピュータグラフィックスの操作において効率的であるように設計される。ＧＰＵは、多くの場合、大きなデータブロックの処理が並行して行われるアルゴリズムに対して、ＧＰＵが汎用ＣＰＵよりもさらに効率的となる、高い並列処理アーキテクチャを有する
【０００９】
ＣＰＵは、特定のグラフィックス処理タスクを実施するための、たとえば画像内の以前のフレームに対して変更された特定のテクスチャをレンダリングするためのコマンドをＧＰＵに、送り得る。特定のアプリケーションの仮想環境の状態に対応するグラフィックスレンダリングコマンドを発行するために、これらの描画コマンドをＣＰＵによってグラフィックスアプリケーションインターフェイス（ＡＰＩ）と連携させてもよい。
【００１０】
特定のプログラムのためのテクスチャをレンダリングするために、ＧＰＵは、「グラフィックスパイプライン」において一連の処理タスクを行って、仮想環境内の映像を、ディスプレイ上にレンダリングすることができる画像に変換し得る。典型的なグラフィックスパイプラインは、仮想空間内の仮想オブジェクトでのある特定のレンダリングまたはシェーディング作業、出力表示に好適なピクセルデータを作り出すシーンでの仮想オブジェクトの変換及びラスタ化、及びディスプレイ上にレンダリングされた画像を出力する前のピクセル（またはフラグメント）への付加的なレンダリングタスクを行うことを含み得る。
【００１１】
画像の仮想オブジェクトは、仮想空間において、プリミティブとして知られる形状的観点で描かれることが多く、これらは共に、仮想シーン内のオブジェクトの形状を形成する。たとえば、レンダリングされる三次元仮想世界内のオブジェクトは、三次元空間におけるそれらの座標の観点から定義された頂点を有する、一連の別個の三角形のプリミティブに縮小される場合があり、それによって、これらのポリゴンがオブジェクトの面を形成する。各ポリゴンは、所与のポリゴンを他のポリゴンと区別するためにグラフィックス処理システムによって用いられることができる、関連付けられたインデックスを有し得る。同様に、各頂点は、所与の頂点を他の頂点と区別するために用いられることができる、関連付けられたインデックスを有し得る。グラフィックスパイプラインは、これらのプリミティブに対してある特定の作業を行って、仮想シーン用の映像を作り出し、このデータを、ディスプレイのピクセルによる再生に好適な二次元形式に変換し得る。グラフィックスプリミティブ情報（または単に「プリミティブ情報」）という用語は、本明細書で用いられる場合、グラフィックスプリミティブを表すデータを意味するために用いられる。そのようなデータは、頂点情報（たとえば、頂点の場所または頂点のインデックスを表すデータ）と、ポリゴン情報、たとえば、ポリゴンインデックス、及び特定の頂点と特定のポリゴンを関連付ける情報とを含むが、これらに限定されない。
【００１２】
ＧＰＵは、シェーダとして周知であるプログラムを実施することによって、グラフィックスパイプラインのレンダリングタスクを行い得る。典型的なグラフィックスパイプラインは、頂点ごとにプリミティブのある特定のプロパティを操作し得る頂点シェーダと、それに加えて、グラフィックスパイプラインにおいて頂点シェーダの下流で動作し、かつディスプレイにピクセルデータを送信する前に、ピクセルごとにある特定の値を操作し得るピクセルシェーダ（「フラグメントシェーダ」としても知られる）とを含み得る。フラグメントシェーダは、プリミティブにテクスチャを適用することに関連する値を操作し得る。パイプラインは、パイプラインのさまざまな段階で他のシェーダ、たとえば頂点シェーダの出力を用いてプリミティブの新しいセットを生成するジオメトリシェーダ、及びＧＰＵによって実施されてある特定の他の一般的な演算タスクを行い得る演算シェーダ（ＣＳ）をさらに含み得る。
【００１３】
プリミティブにテクスチャをマッピングするプロセスの一部は、スクリーン空間内のピクセル位置から、テクスチャ空間内のグラデーションを算出することを含む。グラデーションの算出は、多くの場合、ピクセル位置が正方正規直交グリッドに基づくことを前提とする。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本開示が生じるのはこの文脈においてである。
【課題を解決するための手段】
【００１５】
本開示の教示は、以下に続く詳細な説明を添付の図面と共に考察することによって容易に理解されることができる。
【図面の簡単な説明】
【００１６】
【図１】図１Ａ〜１Ｃは、テクスチャの適用における従来のグラデーション変換を図示する。
【図２】図２Ａ〜２Ｃは、本開示の態様による、テクスチャの適用におけるグラデーション変換を図示する。
【図３】図３Ａ〜３Ｂは、本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット（ＭＲＴ）を図示する。
【図４】本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット（ＭＲＴ）のセットアップを図示する。
【図５】本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット（ＭＲＴ）のセットアップを図示する。
【図６Ａ】本開示の態様による、グラフィックス処理システムのブロック図である。
【図６Ｂ】グラフィックス処理パイプラインのブロック図である。
【発明を実施するための形態】
【００１７】
以下に続く詳細な説明は、例示を目的として多くの具体的な詳細を含むが、当業者であれば誰もが、以下に続く詳細の多くの変形及び代替が、本発明の範囲内であることを理解するであろう。したがって、以下に記載される本発明の代表的な実施形態は、特許請求の範囲に係る発明に対するあらゆる普遍性を失うことなく、またそれに対する限定を課することなく述べられている。
【００１８】
序
ある特定のグラフィックスアプリケーションでは、ビットマップテクスチャは、ポリゴン上に「ペイント」される。そのような場合では、出力デバイスによって引き出される各ピクセル値は、テクスチャからサンプリングされた１以上のピクセルから判定される。本明細書で用いられる場合、ビットマップは概して、一般的にはコンピュータモニタ、紙、または他のディスプレイデバイス上のピクセルの矩形のグリッド、すなわち色点を表すデータファイルまたは構造を表す。各ピクセルの色は、個別に定義される。たとえば、着色ピクセルは、３バイト、すなわち赤、緑、及び青に対して各々１バイトで定義され得る。ビットマップは、典型的には、デバイステクスチャサンプリングユニットによってサポートされたデータ形式とビット単位で対応し、これは、典型的にはある範囲のオプションを含み得、例えばチャネルごとのさまざまなビット深度またはブロック圧縮を、おそらくはディスプレイのビデオメモリに格納されであろうものと同じ形式で、または場合によってはデバイス非依存ビットマップとして含む。ビットマップは、画像のピクセルでの幅及び高さと、ピクセルあたりのビット数とによって特徴付けられ、これによって、表すことができる色数が決定される。一般にはビットマップでは格納されないが、多くのデータ形式は、テクスチャリング形式とビット単位で重複する。いくつかのディスプレイ形式は、テクスチャリングハードウェアによってサポートされておらず（たとえばＹＵＶ）、またいくつかのテクスチャリング形式は、ディスプレイハードウェアによってサポートされていない（たとえばブロック圧縮）。重複するデータ形式は、さまざまなチャネルごとのビットＲＧＢＡのオプションを含む。
【００１９】
テクスチャビットマップを平面に転送するプロセスは、多くの場合、テクスチャＭＩＰマップ（ミップマップとしても知られる）の使用を伴う。名称の「ＭＩＰ」の文字は、「狭い空間に多く」を意味するラテン語の文言ｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏの頭字語である。そのようなミップマップは、レンダリング速度を上げ、エイリアシングアーチファクトを低減させることが意図された、メインテクスチャに付随する、予め算出されて最適化されたビットマップ画像の一群である。
【００２０】
ミップマップセットの各ビットマップ画像は、メインテクスチャの一形態であるが、ある特定の低減された詳細レベル（ＬＯＤ）である。メインテクスチャは、視像がメインテクスチャを十分詳細に描画するために十分であるときに、依然として用いられるが、最終的な画像をレンダリングするグラフィックスハードウェアは、テクスチャを距離を置いて、または小さなサイズで見るときに好適なミップマップレベルに切り替える（すなわち、２つの最も近いレベル間で補間する）。レンダリング速度が向上するが、これは処理されているテクスチャピクセル数（「テクセル」）をはるかに少なくすることができ、それらのメモリ内での分布が、シンプルなテクスチャによるものよりも一貫性のあるものとなるためである。アーチファクトを低減させ得るが、これはミップマップ画像が事実上すでにアンチエイリアスであり、リアルタイムレンダリングハードウェアの負荷の一部が取り除かれるためである。
【００２１】
ミップマップレベル間の混合は、典型的には何らかの形のテクスチャフィルタリングを伴う。本明細書で用いられる場合、テクスチャフィルタリングは、テクセル（テクスチャのピクセル）を３Ｄオブジェクト上の点にマッピングするための方法を指す。単純なテクスチャフィルタリングアルゴリズムは、オブジェクト上の点を取り、その場所に最も近接したテクセルを照合検索し得る。そして、結果として得られた点は、その１つのテクセルからその点自体の色を得る。この単純な手法は、最近傍フィルタリングと称される場合がある。より高度な手法では、１つの点につき２以上のテクセルを組み合わせる。実際に最も頻繁に用いられるアルゴリズムは、ミップマップを用いるバイリニアフィルタリング及びトリリニアフィルタリングである。異方性フィルタリング及びより高次の方法、たとえば二次または三次フィルタリングは、結果として画像の質がさらに高くなる。
【００２２】
テクスチャは、典型的には正方形であり、２の累乗に等しい辺長を有する。たとえば、テクスチャが、２５６×２５６ピクセルの基本サイズを有すると、その場合、関連付けられたミップマップセットは、各々前のものの半分のサイズ、すなわち１２８×１２８ピクセル、６４×６４、３２×３２、１６×１６、８×８、４×４、２×２、及び１×１（単一ピクセル）の一続きの８つの画像を包含し得る。たとえば、このテクスチャが、スクリーン空間の４０×４０ピクセル部分に対して適用されると、その場合６４×６４の補間及び３２×３２ミップマップが用いられる。本明細書で用いられる場合、「スクリーン空間」という用語は、一般的には、グラフィックスパイプライン内のディスプレイバッファによって用いられる座標のセットを指す。
【００２３】
適切なミップマップレベルを判定するプロセスにおける鍵となる作業は、スクリーン空間（ＸＹ座標空間と称される場合がある）から、ピクセル位置の対応する領域について、テクスチャ座標空間（ＵＶ座標空間と称される場合がある）内でカバーされる領域を決定することを伴う。一般論として、補間されるかまたは演算されたテクスチャＵＶ座標のスクリーン空間グラデーションは、シーンの関連する部分において、ＸＹ空間ピクセル位置でサンプリングされたＵ値及びＶ値から算出される。いくつかの実施では、テクスチャ座標グラデーションは、各スクリーン空間方向Ｘ及びＹについて、スクリーンＸ座標が変化しかつスクリーンＹが固定されたときに生じるテクスチャ座標の変化（ｄＵ／ｄＸ、ｄＶ／ｄＸと称される場合がある）、及びスクリーンＹ座標が変化しかつスクリーンＸが固定されたときに生じるテクスチャ座標の変化（ｄＵ／ｄＹ、ｄＶ／ｄＹと称される場合がある）を算出することによって決定される。非異方性テクスチャ照合については、これら２者間でのより大きな規模を有するグラデーションを用いて、詳細レベル（ＬＯＤ）を選択する。異方性テクスチャリングについては、より小さな規模のグラデーションを用いて（ＬＯＤ）を選択し、テクスチャは、より大きな規模のグラデーションに対応する線でサンプリングされる。
【００２４】
また、上述の算出は、１、２、または３以上のテクスチャ座標寸法に汎用化されることができることに留意すべきである。典型的なハードウェアは、テクスチャの次元数に依存して、Ｕ空間内の１Ｄグラデーション、もしくはＵＶ空間内の２Ｄグラデーション、またはＵＶＷ−空間内の３Ｄグラデーションを算出する。このように、本開示の態様は、２つのテクスチャ座標寸法を伴う実施に限定されない。
【００２５】
しかしながら、適切なミップマップレベルを判定する本プロセスは、テクスチャが適用されるスクリーン空間の関連部分が、「正方形」の正規直交のサンプル配列である、すなわち、スクリーンピクセル内のサンプル点が、スクリーン空間内で垂直及び水平方向に向かって均等に間隔を置かれているという前提に基づいている。しかしながら、スクリーン空間の関連部分が非正規直交である、すなわちサンプルが規則的な正方形グリッドに配列されていないという状況が起こる可能性がある。そのような状況では、グラデーションを調整して、それによってテクスチャがオブジェクトに正しく適用されるようにする必要がある。
【００２６】
システム及びデバイス
本開示の態様は、テクスチャマッピングにおけるグラデーション調整を実施するように構成されたグラフィックス処理システムを含む。例示を目的として、かつ限定を目的とせずに、図６Ａは、本開示の態様による実施するグラフィックス処理に用いられ得るコンピュータシステム６００のブロック図を例示する。本開示の態様によれば、システム６００は、組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、ポータブルゲーム機、ワークステーション、ゲームコンソール等であってもよい。
【００２７】
システム６００は、一般的には、中央処理装置（ＣＰＵ）６０２と、グラフィックス処理装置（ＧＰＵ）６０４と、ＣＰＵ及びＧＰＵの両方がアクセス可能であるメモリ６０８とを含み得る。ＣＰＵ６０２及びＧＰＵ６０４は、１以上のプロセッサコア、たとえば単一のコア、２つのコア、４つのコア、８つのコア、またはそれより多いコアを各々含み得る。メモリ６０８は、アドレス可能メモリ提供する集積回路、たとえば、ＲＡＭ、ＤＲＡＭ等の形状であってもよい。メモリ６０８は、グラフィックスリソースを格納し、グラフィックスレンダリングパイプラインのためのデータのグラフィックスバッファ６０５を一時的に格納し得るグラフィックスメモリ６２８を含んでもよい。グラフィックスバッファ６０５は、たとえば頂点パラメータ値を格納するための頂点バッファ、頂点インデックスを保持するためのインデックスバッファ、グラフィックスコンテンツの深度値を格納するための深度バッファ（たとえばＺバッファ）、ステンシルバッファ、ディスプレイに送られる完成フレームを格納するためのフレームバッファ、及び他のバッファを含んでもよい。図６Ａに示された例では、グラフィックスメモリ６２８は、メインメモリの一部として示されている。代替の実施では、グラフィックスメモリは、別個の構成要素である可能性があり、ＧＰＵ６０４に組み込まれるかもしれない。
【００２８】
例示を目的として、かつ限定を目的とせずに、ＣＰＵ６０２及びＧＰＵ６０４は、データバス６０９を用いてメモリ６０８にアクセスし得る。いくつかの場合では、システム６００が２以上の異なるバスを含むことが有用であることがある。メモリ６０８は、ＣＰＵ６０２及びＧＰＵ６０４によってアクセスされることができるデータを包含し得る。ＧＰＵ６０４は、グラフィックス処理タスクを並行して行うように構成された複数の演算ユニットを含み得る。各演算ユニットは、それ自体専用のローカルメモリストア、たとえばローカルデータシェアを含み得る。
【００２９】
ＣＰＵは、グラフィックス、コンパイラ、及びグラフィックスＡＰＩを利用するアプリケーションを含み得るＣＰＵコード６０３Ｃを実行するように構成されてもよい。グラフィックスＡＰＩは、ＧＰＵによって実施されるプログラムに、描画コマンドを発行するように構成されることができる。また、ＣＰＵコード６０３Ｃは、物理学シミュレーション及び他の機能を実施してもよい。ＧＰＵ６０４は、上述のように動作するように構成され得る。特に、ＧＰＵは、シェーダ、たとえば上述のような演算シェーダＣＳ、頂点シェーダＶＳ、及びピクセルシェーダＰＳを実施し得るＧＰＵコード６０３Ｇを実行し得る。演算シェーダＣＳと頂点シェーダＶＳとの間のデータの受け渡しを助けるために、システムは、フレームバッファＦＢを含み得る１以上の環状バッファ６０５を含んでもよい。また、ＧＰＵコード６０３Ｇは、任意には、他のタイプのシェーダ（図示せず）、たとえばピクセルシェーダまたはジオメトリシェーダを実施してもよい。各演算ユニットは、それ自体専用のローカルメモリストア、たとえばローカルデータシェアを含み得る。ＧＰＵ６０４は、グラフィックスパイプラインの一部として、プリミティブにテクスチャを適用するためのある特定の作業を行うように構成されたテクスチャユニット６０６を含み得る。
【００３０】
シェーダは、スクリーン空間内の非正規直交グリッドに基づく１以上の対応するピクセルサンプル位置に対して、１以上のテクスチャ座標値ＵＶのセット、及びさらに場合によっては座標ｇｒごとのテクスチャ空間グラデーション値を受けるかまたは生成するように構成されたピクセルシェーダＰＳを含み得る。これらのピクセルサンプル位置は、グラフィックスパイプラインのより早い段階で定義された１以上のプリミティブから導き出され得る。テクスチャユニット６０６は、これらのテクスチャ空間グラデーション値ｇｒを受けるか、またはそれらをテクスチャ座標値ＵＶから算出し、その後調整マトリックスｔｒａｎｓを適用して、ピクセルサンプル位置の非正規直交スクリーン空間グリッドの使用から発生するエイリアシングアーチファクトがほぼない調整されたグラデーション値Ｇｒを得るように構成される。
【００３１】
例示を目的として、かつ限定を目的とせずに、テクスチャユニット６０６は、特殊用途ハードウェア、たとえば特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはシステムオンチップ（ＳｏＣまたはＳＯＣ）として実施され得る。
【００３２】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、特定用途向け集積回路（ＡＳＩＣ）は、汎用が意図されるのではなく、特定の使用向けにカスタマイズされた集積回路である。
【００３３】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、製造後に顧客または設計者によって構築される、したがって「フィールドプログラマブル」（現場でプログラム可能）であるように設計された集積回路である。ＦＰＧＡ設定は、一般的には、ＡＳＩＣに用いられるものと同様のハードウェア記述言語（ＨＤＬ）を用いて特定される。
【００３４】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、システムオンアチップまたはシステムオンチップ（ＳｏＣまたはＳＯＣ）は、コンピュータまたは他の電子システムのすべての構成要素を、単一のチップに組み込んだ集積回路（ＩＣ）である。システムオンチップは、デジタル、アナログ、混合信号、及び多くの場合高周波機能を、すべて単一のチップ基板上に包含し得る。典型的なアプリケーションは、組み込みシステムの領域内である。
【００３５】
典型的なＳｏＣは、以下のハードウェア構成要素を含む。
マイクロコントローラ、マイクロプロセッサ、またはデジタル信号プロセッサ（ＤＳＰ）コア等の１以上のプロセッサコア。
リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、及びフラッシュメモリ等のメモリブロック。
オシレータまたは位相ロックループ等のタイミング源。
カウンタ／タイマ、リアルタイムタイマ、またはパワーオンリセットジェネレータ等の周辺機器。
業界標準規格類、たとえばユニバーサルシリアルバス（ＵＳＢ）、ファイヤワイヤ、イーサネット（登録商標）、汎用同期非同期式伝送装置（ＵＳＡＲＴ）、シリアルペリフェラルインターフェイス（ＳＰＩ）バス等の外部インターフェイス。
アナログ・デジタルコンバータ（ＡＤＣ）及びデジタル・アナログコンバータ（ＤＡＣ）を含むアナログインターフェイス。
電圧調整器及び電力管理回路。
【００３６】
これらの構成要素は、独自仕様かあるいは業界標準のバスによって接続される。ダイレクトメモリアクセス（ＤＭＡ）コントローラは、プロセッサコアを経由せずに、外部インターフェイスとメモリとの間でデータを直接ルーティングし、それによってＳｏＣのデータスループットを向上させる。
【００３７】
典型的なＳｏＣは、上述のハードウェア構成要素と、プロセッサコア、周辺機器、及びインターフェイスを制御する実行可能命令（たとえば、ソフトウェアまたはファームウェア）との両方を含む。
【００３８】
本開示の態様によれば、テクスチャユニット６０６の機能のいくつかまたはすべては、ソフトウェアプログラム可能汎用コンピュータプロセッサによって実行される、適切に構成されたソフトウェア命令によって代替的に実施され得る。そのような命令は、コンピュータ可読媒体、たとえば、メモリ６０８または記憶デバイス６１５において具現化され得る。
【００３９】
システム６００は、周知の支援機能６１０をさらに含んでもよく、これはシステムの他の構成要素と、たとえばバス６０９を介して通信し得る。そのような支援機能は、入出力（Ｉ／Ｏ）要素６１１、電源（Ｐ／Ｓ）６１２、クロック（ＣＬＫ）６１３、及びキャッシュ６１４を含み得るが、これらに限定されない。キャッシュ６１４に加えて、ＧＰＵ６０４は、それ自体のＧＰＵキャッシュ６１４Ｇを含んでもよく、及びＧＰＵは、ＧＰＵ６０４上で稼働するプログラムが、ＧＰＵキャッシュ６１４Ｇを通して読み取るかまたは書き込むことができるように構成される
【００４０】
システム６００は、任意には、プログラム及び／またはデータを格納するための大容量記憶デバイス６１５たとえばディスクドライブ、ＣＤ−ＲＯＭドライブ、フラッシュメモリ、テープドライブ等を含み得る。システム６００は、任意には、ユーザ及びユーザインターフェイスユニット６１８にレンダリングされたグラフィックス６１７を提示して、システム６００とユーザとの間の対話を容易にするディスプレイデバイス６１６をさらに含み得る。ディスプレイデバイス６１６は、フラットパネルディスプレイ、頭部搭載型ディスプレイ（ＨＭＤ）、陰極線管（ＣＲＴ）スクリーン、プロジェクタ、または目に見える文字、数字、グラフィカルシンボル、または画像を表示することができる他のデバイスの形式であってもよい。ディスプレイデバイス６１６は、本明細書に記載されるさまざまな手法によって処理された、レンダリングされたグラフィック画像６１７を表示し得る。ユーザインターフェイス６１８は、キーボード、マウス、ジョイスティック、ライトペン、ゲームコントローラ、またはグラフィカルユーザインターフェイス（ＧＵＩ）とともに用いられ得る他のデバイスを含んでもよい。システム６００は、デバイスが、ネットワーク６２２を経由して他のデバイスと通信することを可能にするためのネットワークインターフェイス６２０をさらに含んでもよい。ネットワーク６２２は、たとえば、ローカルエリアネットワーク（ＬＡＮ）、インターネット等の広域ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク等のパーソナルエリアネットワーク、または他のタイプのネットワークであってもよい。これらの構成要素は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの２以上の何らかの組み合わせで実施されてもよい。
【００４１】
グラフィックスパイプライン
本開示の態様によれば、システム６００は、グラフィックスレンダリングパイプラインの一部を実施するように構成される。図６Ｂは、本開示の態様による、グラフィックスレンダリングパイプライン６３０の一例を例示する。
【００４２】
レンダリングパイプライン６３０は、グラフィックスを、仮想空間（本明細書においては「世界空間」と称される場合がある）内に二次元または好ましくは三次元ジオメトリを有するシーンを描く画像としてレンダリングするように構成され得る。パイプラインの早い段階は、シーンがラスタ化されて、ディスプレイデバイス６１６上への出力に好適な離散的な画素のセットとしてスクリーン空間に転換される前に、仮想空間で行われる作業を含み得る。パイプライン全体にわたって、グラフィックスメモリ６２８に包含されたさまざまなリソースが、パイプラインの段階で利用されてもよく、段階への入力及び出力は、画像の最終的な値が決定される前に、グラフィックスメモリに包含されたバッファに一時的に格納されてもよい。
【００４３】
レンダリングパイプラインは、入力データ６３２に対して動作することができ、これは仮想空間内で設定された頂点のセットによって定義され、シーン内の座標に対して定義されたジオメトリを有する１以上の仮想オブジェクトを含み得る。パイプラインの早い段階は、図６Ｂの頂点処理段階６３４として大きく分類されるものを含んでもよく、これは仮想空間内のオブジェクトの頂点を処理するためのさまざまな演算を含み得る。これは、シーン内の頂点の様々なパラメータ値、たとえば場所値（たとえば、Ｘ−Ｙ座標及びＺ深度値）、色値、照明値、テクスチャ座標等を操作し得る頂点シェーディング演算６３６を含んでもよい。好ましくは、頂点シェーディング演算６３６は、１以上のプログラム可能な頂点シェーダによって行われる。頂点処理段階は、任意には、付加的な頂点処理演算、たとえば、仮想空間に新しい頂点及び新しいジオメトリを精製するために任意に用いられ得るテセレーション／ジオメトリシェーダ演算６３８を含み得る。頂点処理６３４と称される段階が完了した時点で、パイプライン内のこの段階において、当該シーンは、各々が頂点パラメータ値６３９のセットを有する頂点のセットによって定義される。
【００４４】
そして、パイプライン６３０は、シーンジオメトリをスクリーン空間及び離散画素のセット、すなわちピクセルに転換することに関連する、ラスタ化処理段階６４０に進み得る。仮想空間ジオメトリは、仮想空間からシーンの表示窓へのオブジェクト及び頂点の投影（すなわち「視点」）を本質的に演算し得る作業を通して、スクリーン空間ジオメトリに変換され得る。頂点は、プリミティブのセットを定義し得る。
【００４５】
図６Ｂに図示されるラスタ化処理段階６４０は、プリミティブ組立作業６４２を含んでもよく、ここでは、シーン内の頂点の各セットによって定義されたプリミティブを設定し得る。各頂点は、インデックスによって定義されてもよく、各プリミティブは、これらの頂点インデックスに関して定義されてもよく、それらのインデックスはグラフィックスメモリ６２８内のインデックスバッファに格納され得る。プリミティブは、好ましくは、３つの各頂点によって定義された三角形を少なくとも含み得るが、ポイントプリミティブ、ラインプリミティブ、及び他の多角形状をさらに含んでもよい。プリミティブ組立段階６４２中、任意には、ある特定のプリミティブをカリングしてもよい。たとえば、インデックスがある特定の屈曲順を示すプリミティブは、バックフェーシングであるとみなされることがあり、シーンからカリングされ得る。
【００４６】
プリミティブが組み立てられた後、ラスタ化処理段階は、走査変換作業６４４を含んでもよく、これは、各ピクセルでプリミティブをサンプリングし、サンプルがプリミティブによっておおわれている場合に、さらなる処理のためにプリミティブからフラグメント（ピクセルと称される場合がある）を生成し得る。任意に、走査変換作業６４４中に、プリミティブ内部でピクセルごとに複数のサンプルが取られ、これはアンチエイリアシングの目的のために用いられ得る。ある特定の実施では、異なるピクセルが異なったようにサンプリングされ得る。たとえば、いくつかの端部のピクセルは、頭部搭載型ディスプレイ（ＨＭＤ）のためのレンダリングのある特定の態様を最適化し得るために、中央のピクセルよりも低いサンプリング密度を包含する。走査変換６４４中にプリミティブから生成されたフラグメント（すなわち「ピクセル」）は、それらを作成したプリミティブの頂点の頂点パラメータ値６３９から、ピクセルの位置に対して補間され得るパラメータ値を有し得る。ラスタ化段階６４０は、パイプラインのより後方の段階でのさらなる処理のための入力として用いられ得る、これらの補間されたフラグメントパラメータ値６４９を演算するためのパラメータ補間作業６４６段階を含んでもよい。
【００４７】
パイプライン６３０は、概して図６Ｂに６５０で示される、補間されたパラメータ値６４９さらに操作して、フラグメントがディスプレイのための最終的なピクセル値にどのように寄与するかを決定するさらなる作業を行うさらなるピクセル処理作業を含んでもよい。これらのピクセル処理タスクのいくつかは、フラグメントの補間されたパラメータ値６４９をさらに操作するために用いられ得るピクセルシェーディング演算６５２を含み得る。ピクセルシェーディング演算は、プログラム可能なピクセルシェーダによって行われてもよく、ピクセルシェーダ呼び出し６４８は、ラスタ化処理段階６４０中に、プリミティブのサンプリングに基づいて開始され得る。ピクセルシェーディング演算６５２は、グラフィックスメモリ６２８内の１以上のバッファ６０５に値を出力し得、レンダーターゲット、または複数の場合にはマルチプルレンダーターゲット（ＭＲＴ）と称される場合がある。
【００４８】
ＭＲＴは、任意には、ピクセルシェーダが、各々が同じスクリーンサイズを有するが、異なるピクセル形式である可能性のある２以上のレンダーターゲットに出力することを可能にする。レンダーターゲット形式の制限は、多くの場合、任意の１つのレンダーターゲットが、最大で４つの独立した出力値（チャネル）のみを受け入れることができること、及びそれら４つのチャネルの形式が、互いに対して緊密に関係していることを意味する。ＭＲＴは、単一のピクセルシェーダが、さらに多くの値を異なる形式の組み合わせで出力することを可能にする。レンダーターゲットの形式は、それらがスクリーン空間ピクセルごとの値を格納する点において「テクスチャ様」であるが、さまざまな性能上の理由から、レンダーターゲット形式は、近年のハードウェア世代ではより特化されてきており、「分解」と呼ばれる、テクスチャユニットによって読み込まれることに適合する前に、データを再フォーマットすることが必要とされる場合がある（が常にではない）。
【００４９】
ピクセル処理６５０は、一般的には、ラスタ化作業（ＲＯＰ）として一般に周知であるものを含み得るレンダー出力作業６５６で終了し得る。ラスタ化作業（ＲＯＰ）は単に、ピクセルごとに複数回、マルチプルレンダーターゲット（ＭＲＴ）間のレンダーターゲットごとに１回稼働される。レンダー出力作業６５６中、最終的なピクセル値６５９は、フレームバッファにおいて決定されてもよく、これは、任意には、フラグメントのマージ、ステンシルの適用、深度テスト、及びある特定のサンプルごとの処理タスクを含んでもよい。最終的なピクセル値６５９は、すべてのアクティブなレンダーターゲット（ＭＲＴ）に対する収集された出力を含む。ＧＰＵ６０４は、最終的なピクセル値６５９を用いて完成フレーム６６０を作り上げ、これは任意には、ディスプレイデバイス６１６のピクセルにリアルタイムで表示され得る
【００５０】
出力作業６５０は、含むテクスチャマッピング作業６５４をさらに含んでもよく、これは、１以上のピクセルシェーダＰＳによってある程度行われ、テクスチャユニット６０６によってある程度行われ得る。ピクセルシェーダ演算６５２は、含むスクリーン空間座標ＸＹからテクスチャ座標ＵＶを算出し、テクスチャ作業６５４にテクスチャ座標を送り、テクスチャデータＴＸを受信することを含む。テクスチャ座標ＵＶは、任意のやり方でスクリーン空間座標ＸＹから算出されることができるが、典型的には補間された入力値から、または場合によっては以前のテクスチャ作業の結果から算出される。グラデーションｇｒは、多くの場合テクスチャユニット６０６（テクスチャ作業ハードウェアユニット）によって、テクスチャ座標の四角形（ｑｕａｄｓ）から直接算出されるが、任意には、テクスチャユニット６０６に依存してデフォルトの算出を行うのではなく、ピクセルシェーダ演算６５２によって明示的に算出されてテクスチャ作業６５４に移ることができる。
【００５１】
テクスチャ作業６５４は、一般的には以下の段階を含み、これらはピクセルシェーダＰＳ及びテクスチャユニット６０６のいくつかの組み合わせによって行われることができる。まず、ピクセル位置ＸＹごとに１以上のテクスチャ座標ＵＶを生成して、これを用いてテクスチャマッピング作業ごとに設定される座標を提供する。そして、スクリーン空間内の非正規直交グリッドに基づいて、ピクセル位置に対するテクスチャ空間グラデーション値ｇｒを生成する。最後に、調整値ｔｒａｎｓによってテクスチャ空間グラデーション値ｇｒを修正して、補正されたテクスチャ空間値Ｇｒを作り出す。
【００５２】
いくつかの実施では、ピクセルシェーダＰＳは、ピクセル位置ＸＹごとにテクスチャ座標ＵＶを生成し、テクスチャユニット６０６に対するテクスチャマッピング作業ごとに設定された座標を提供することができ、これによって、テクスチャ空間グラデーション値ｇｒを生成し、それらを修正して、補正されたテクスチャ空間グラデーション値Ｇｒを作り出し得る。
【００５３】
他の実施では、ピクセルシェーダＰＳは、ピクセル位置ＸＹからテクスチャ空間座標ＵＶ及び明示的差分ｇｒを算出し、差分及びテクスチャ空間座標をテクスチャユニット６０６に（任意には調整マトリックスｔｒａｎｓとともに）受け渡し、テクスチャユニット６０６に対して、グラデーション値Ｇｒを得るために、変換ｔｒａｎｓを適用することによって明示的差分ｇｒを修正する必要が依然としてあることを示すことができる。
【００５４】
他の代替の実施では、ピクセルシェーダＰＳは、テクスチャ空間座標ＵＶ及び明示的な補正されたグラデーションＧｒを算出し、これらをテクスチャユニットに受け渡し、テクスチャユニット６０６に対して、マトリックスｔｒａｎｓを用いた任意の必要とされる変換がすでにソフトウェアに適用されており、補正されたグラデーションＧｒが、ＬＯＤを選択するものとして用いられるべきであることを示すことができる。
【００５５】
グラデーション調整
本開示の態様は、グラフィックスパイプラインにおいてプリミティブに適用されるテクスチャに対するミップマップレベル（ＬＯＤ）を判定するために、テクスチャユニット６０６によって用いられるグラデーションｇｒの調整を対象とする。基本概念が、図２Ａ〜２Ｃに例示される。図２Ａは、ＸＹ空間内の「四角形」における４つのピクセルサンプルを図示する。図２Ｂは、ＸＹ空間ｄｘ１、ｄｙ１、ｄｘ２、ｄｙ２における差分値Δｘｙを図示し、それぞれが（ｘ０、ｙ０）、（ｘ１、ｙ１）、及び（ｘ２、ｙ２）である左上、右上、及び左下のピクセルのＸＹ空間におけるピクセルサンプル位置に関して数式で表現されることができ、以下の通りである。
ｄｘ１＝ｘ１−ｘ０
ｄｙ１＝ｙ１−ｙ０
ｄｘ２＝ｘ２−ｘ０
ｄｙ２＝ｙ２−ｙ０
【００５６】
図２Ｃは、テクスチャ座標ＵＶから演算された、ＵＶ空間におけるテクスチャグラデーションｇｒを図示する。テクスチャグラデーションｇｒは、それぞれ（ｕ０、ｖ０）、（ｕ１、ｖ１）及び（ｕ２、ｖ２）である左上、右上、及び左下のピクセルのテクスチャ座標ＵＶに関して数式で表現されることができ、以下の通りである。
ｄｕ＿ｄｘ＝ｕ１−ｕ０
ｄｖ＿ｄｘ＝ｖ１−ｖ０
ｄｕ＿ｄｙ＝ｕ２−ｕ０
ｄｖ＿ｄｙ＝ｖ２−ｖ０
【００５７】
これらのｄｕ＿ｄｘ＝ｕ１−ｕ０等の算出は、ピクセルシェーダＰＳがソフトウェア算出値でそれらを無効にすることを選ばない場合、テクスチャユニットハードウェア１０６によって行われることができる。そして、テクスチャグラデーションｇｒは、テクスチャユニット６０６によって用いられて、サンプリングのためのミップマップＬＯＤレベルが判定される。
【００５８】
この例では、（ｘ３、ｙ３）でのピクセル位置及びそれに対応するテクスチャ座標ＵＶは、グラデーションを算出する目的のために無視される。この例では、ハードウェアは、２ｘ２ピクセルの四角形に対して作動するが、サンプリングのためのミップマップＬＯＤレベルを判定するために、テクスチャ座標ごとに１つのｄ＿ｄｘ及びｄ＿ｄｙグラデーションのみを必要とすることが仮定されている。３ピクセルは、値がほぼ直線状に変化するという過程を用いてグラデーションを生成するために十分である。テクスチャユニット６０６がこの簡易化された過程を用いる場合、右下のピクセルサンプル（ｘ３、ｙ３）からＵＶ値を破棄することができる。いくつかの実施では、ＵＶ値が、４番目のサンプルの値を考慮に入れることがグラデーション算出を著しく向上させるのに十分な程度に非線形に変化する場合、ピクセルシェーダは、ソフトウェアでグラデーションｇｒを算出することを選ぶことがある。
【００５９】
ピクセル位置の正規直交のセット、すなわちｄｘ１＝１、ｄｙ１＝０、ｄｘ２＝０及びｄｙ２＝１では、ｇｒ（ｄｕ＿ｄｘ、ｄｖ＿ｄｘ、ｄｕ＿ｄｙ及びｄｖ＿ｄｙ）を含むテクスチャグラデーションは、変更なく用いられ得る。正規直交ではないピクセル位置のセットでは、値ｄｕ＿ｄｘ’、ｄｖ＿ｄｘ’、ｄｕ＿ｄｙ’及びｄｖ＿ｄｙ’で構成される補正されたテクスチャグラデーションＧｒを生成することが望ましい。これらは、実際のピクセルサンプル位置（ｘ０、ｙ０）、（ｘ１、ｙ１）及び（ｘ２、ｙ２）に代えて、テクスチャ座標ＵＶが正規直交ピクセルサンプル位置（ｘ０、ｙ０）、（ｘ１’、ｙ１’）及び（ｘ２’、ｙ２’）で生成された場合にグラデーションが取るであろう値の近似値を表す。テクスチャグラデーションｇｒと補正されたテクスチャグラデーションＧｒとの間の調整マトリックスｔｒａｎｓを用いた一般化変換は、非正規直交ピクセルサンプル位置のＸＹ空間座標の差分値ｄｅｌｔａｘｙに関して数式で表されることができ、以下の通りである。
Ｄ＝ｄｘ１＊ｄｙ２−ｄｘ２＊ｄｙ１
ｔｒａｎｓ＿ｘｘ＝ｄｙ２／Ｄ
ｔｒａｎｓ＿ｘｙ＝−ｄｙ１／Ｄ
ｔｒａｎｓ＿ｙｘ＝−ｄｘ２／Ｄ
ｔｒａｎｓ＿ｙｙ＝ｄｘ１／Ｄ
【００６０】
ここで、ｔｒａｎｓ＿ｘｘ、ｔｒａｎｓ＿ｘｙ、ｔｒａｎｓ＿ｙｘ、及びｔｒａｎｓ＿ｙｙは、変換係数と称される場合がある。
【００６１】
そして、仮定された正規直交ピクセル位置に基づいてテクスチャユニットまたはピクセルシェーダによって算出された各テクスチャ座標グラデーションｇｒは、この変換を適用することによって、テクスチャユニットによって補正されることができ、以下の通りである。
ｄｕ＿ｄｘ’＝ｔｒａｎｓ＿ｘｘ＊ｄｕ＿ｄｘ＋ｔｒａｎｓ＿ｘｙ＊ｄｕ＿ｄｙ
ｄｕ＿ｄｙ’＝ｔｒａｎｓ＿ｙｘ＊ｄｕ＿ｄｘ＋ｔｒａｎｓ＿ｙｙ＊ｄｕ＿ｄｙ
【００６２】
その他同様に、テクスチャユニットの要求に応じて、２または３つのテクスチャ座標に対しては以下のとおりである。
ｄｖ＿ｄｘ’＝ｔｒａｎｓ＿ｘｘ＊ｄｖ＿ｄｘ＋ｔｒａｎｓ＿ｘｙ＊ｄｖ＿ｄｙ
ｄｖ＿ｄｙ’＝ｔｒａｎｓ＿ｙｘ＊ｄｖ＿ｄｘ＋ｔｒａｎｓ＿ｙｙ＊ｄｖ＿ｄｙ
ｄｗ＿ｄｘ’＝ｔｒａｎｓ＿ｘｘ＊ｄｗ＿ｄｘ＋ｔｒａｎｓ＿ｘｙ＊ｄｗ＿ｄｙ
ｄｗ＿ｄｙ’＝ｔｒａｎｓ＿ｙｘ＊ｄｗ＿ｄｘ＋ｔｒａｎｓ＿ｙｙ＊ｄｗ＿ｄｙ
【００６３】
変換マトリックスｔｒａｎｓの算出は、典型的には四角形に対するピクセルサンプル位置ＸＹを設定するときにＧＰＵ６０４の外部で、たとえばＣＰＵ６０２上で稼働するＣＰＵコード６０３Ｃによって行われる。たとえば、ピクセルサンプル位置またはレンダーターゲット設定の特定のセットを有するＧＰＵ６０４のハードウェアを構成するときに、ＣＰＵコード６０３Ｃは、差分値ｄｘ１、ｄｙ１、ｄｘ２、ｄｙ２から変換マトリックスｔｒａｎｓの４つのマトリックス変換要素をさらに算出することができる。例示を目的として、かつ限定を目的とせずに、システム６００は、変換マトリックスｔｒａｎｓを算出する特殊用途ハードウェアまたはソフトウェアをさらに含むことができる。
【００６４】
ｄｘ１、ｄｙ１、ｄｘ２、ｄｙ２は、同じ繰り返しサンプル分布を共有するスクリーンの広い領域にわたって一定であり、変換マトリックスｔｒａｎｓも同様であることに留意すべきである。この理由から、グラフィックスパイプライン６３０のラスタ化段階６４０において、スクリーン位置に基づいて、値のパレット間で選択することは有用である。
【００６５】
時間的アンチエイリアシング
グラデーション調整は、時間的アンチエイリアシングにおいて特に有用であり得る。このことの例は、図３Ａ〜３Ｂ、４及び５を参照することによって理解され得る。図３Ａ〜３Ｂ、４及び５では、色及び深度値を有するピクセルは、灰色の円として示される。深度値のみを有するピクセルは、より小さな黒い円として示される。いくつかの実施では、グラフィックス処理は、連続するフレーム間の共通性を利用して、２つのフレーム間の画像処理を、分割することによってスピードアップすることができ、各フレームは当該画像からピクセルの交互の列から成る。
【００６６】
交互の列の時間的アンチエイリアシング構成では、ＧＰＵは、１つのフレーム内で画像におけるピクセル列を１列おきにレンダリングを行い、その後次のフレームでフィルインを行う。たとえば、図３Ａに示されるように、フレーム３０２は、各列の左に色及び深度サンプルを有し、右のみに深度サンプルを有する。次のフレーム３０４では、これが反転する。ＧＰＵは、各フレームのピクセルの半分のみをシェーディングする。いくつかの実施では、２つのフレーム３０２及び３０４内のピクセルは、他の構成において交代してもよい。当業者においては、色見本を有するピクセル行と有していないピクセル行が交代する交互の行構成を用いてもよいことが認識されよう。加えて、図３Ｂに示されるように、２つのフレーム内のピクセルは、色見本を有するピクセルと有していないピクセルとが行をわたって、また同様に列に沿って交代する「市松模様」状態で交代してもよい。ここでも、ＧＰＵは、各フレーム内のピクセルの半分のみをシェーディングする。
【００６７】
フレーム３０２内の色見本を有するピクセル列（灰色の円）は、ともに単一の画像３０６を形成するようにフレーム３０４内の対応するピクセル列と交互配置される。フレーム３０２及び３０４の色及び深度値の分析は、典型的にはピクセルシェーダまたは演算シェーダを用いてＧＰＵによって行われ、フレーム３０４の空隙をフィルインして単一の画像３０６を形成するときに、フレーム３０２の色値を完全にまたは部分的に用いることを可能にする。このことは、フレームごとに処理される必要があるピクセル数を低減させ、それによって、各フレームをレンダリングするための作業負荷を低減させる点において特に有利であり得る。このタイプのレンダリングは、本明細書においては「低減解像度レンダリング」と称される。これらの時間的アンチエイリアシングの場合では、当該概念は、あたかも各色見本がより高解像度のディスプレイの一部であるかのようにフレームをレンダリングすることである。
【００６８】
そのような時間的アンチエイリアシングにおいてグラデーションを調整する必要性は、図４〜５を参照して理解することができる。具体的には、図３Ａに示された場合では、フレーム３０２内の四角形３０１についてのグラデーションは、ＸＹ空間内の（ｘ０、ｙ０）、（ｘ１、ｙ１）、及び（ｘ２、ｙ２）におけるピクセル位置から算出される。このフレーム内のピクセル構成に起因して、グリッドが正規直交グリッドではない。代わりに、グリッドは水平方向に「引き延ばされ」ている（換言すると、垂直方向に「つぶされて」いる）。このことは、グラデーション成分ｄｕ＿ｄｘ及びｄｖ＿ｄｘをひずませる。正規直交グリッドに基づいて、対応するＵＶ空間グラデーション成分ｄｕ＿ｄｘ’及びｄｖ＿ｄｘ’を算出するために、（ｘ１、ｙ１）におけるピクセルが、（ｘ１’、ｙ１’）における「空の」列に位置することが望ましいであろう。この例では、フレーム３０２及び３０４が交互のピクセル列構成であるために、ＵＶ空間グラデーション成分ｄｕ＿ｄｙ及びｄｖ＿ｄｙは、調整される必要がなく、実際のサンプル位置（ｘ０、ｙ０）及び（ｘ２、ｙ２）から計算することができる。上記の式を用いると、これは結果として、ｄ＿ｄｘグラデーションを二分させる。
ｄｘ１＝２．０
ｄｙ１＝０．０
ｄｘ２＝０．０
ｄｙ２＝１．０
Ｄ＝（２．０）＊（１．０）−（０．０）＊（０．０）＝２．０
ｔｒａｎｓ＿ｘｘ＝１．０／２．０＝０．５
ｔｒａｎｓ＿ｘｙ＝−０．０／２．０＝０．０
ｔｒａｎｓ＿ｙｘ＝−０．０／２．０＝０．０
ｔｒａｎｓ＿ｙｙ＝２．０／２．０＝１．０
ｄｕ＿ｄｘ’＝ｔｒａｎｓ＿ｘｘ＊ｄｕ＿ｄｘ＋ｔｒａｎｓ＿ｘｙ＊ｄｕ＿ｄｙ＝０．５＊ｄｕ＿ｄｘ
ｄｖ＿ｄｘ’＝ｔｒａｎｓ＿ｘｘ＊ｄｖ＿ｄｘ＋ｔｒａｎｓ＿ｘｙ＊ｄｖ＿ｄｙ＝０．５＊ｄｖ＿ｄｘ
ｄｕ＿ｄｙ’＝ｔｒａｎｓ＿ｙｘ＊ｄｕ＿ｄｘ＋ｔｒａｎｓ＿ｙｙ＊ｄｕ＿ｄｙ＝ｄｕ＿ｄｙ
ｄｖ＿ｄｙ’＝ｔｒａｎｓ＿ｙｘ＊ｄｖ＿ｄｘ＋ｔｒａｎｓ＿ｙｙ＊ｄｖ＿ｄｙ＝ｄｖ＿ｄｙ
【００６９】
図３Ｂに示された「市松模様」のケースでは、ＧＰＵは、ＵＶ空間グラデーションの水平及び垂直成分の両方を調整することが必要とされることとなる。たとえば、図５に示されるように、点（ｘ０、ｙ０）、（ｘ１’、ｙ１’）及び（ｘ０、ｙ０）、（ｘ２’、ｙ２’）を用いてＵＶ空間グラデーションを算出することが望ましいであろう。上記の式を用いると、これは結果として、ｄ＿ｄｘグラデーションを二分させ、それらをｄ＿ｄｙグラデーションから減じる。
ｄｕ＿ｄｘ’＝０．５＊ｄｕ＿ｄｘ
ｄｖ＿ｄｘ’＝０．５＊ｄｖ＿ｄｘ
ｄｕ＿ｄｙ’＝ｄｕ＿ｄｙ−０．５＊ｄｕ＿ｄｘ
ｄｖ＿ｄｙ’＝ｄｖ＿ｄｙ−０．５＊ｄｖ＿ｄｘ
【００７０】
さらなる態様
本開示のさらなる態様は、グラフィックス処理方法を含み、その方法は、スクリーン空間内のサンプル点の非正規直交グリッドに基づいて、１以上のプリミティブについてのテクスチャ空間グラデーション値を受けるかまたは生成し、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換を適用し、テクスチャ座標値間の差分値に変換を適用して、グラデーション値を生成することを含む。
【００７１】
別のさらなる態様は、先に述べた方法を実施するように構成されたグラフィックス処理システムである。
【００７２】
また別のさらなる態様は、実行されたときに、先に述べた方法を実施する、内部に具現化されたコンピュータ実行可能命令を有するコンピュータ可読媒体である。
【００７３】
さらなる態様は、先に述べた方法を行うための電磁的または他の信号搬送コンピュータ可読命令である。
【００７４】
通信ネットワークからダウンロード可能な、及び／またはコンピュータ可読及び／またはマイクロプロセッサ実行可能媒体に格納されたコンピュータプログラム製品であって、先に述べた方法を実施するためのプログラムコード命令を含むことを特徴とする。
【００７５】
上記は、本発明の好ましい実施形態の完全な説明であるが、さまざまな代替、変更及び等価物を用いることが可能である。したがって、本発明の範囲は、上記の説明を参照せずに判断されるべきであり、代わりに、添付の特許請求の範囲を参照して、それらの等価物の全範囲とともに判断されるべきである。好ましいか否かに関わらず、本明細書に記載されるあらゆる特徴は、好ましいか否かに関わらず、本明細書に記載された任意の他の特徴と組み合わせられてもよい。以下に続く特許請求の範囲では、不定冠詞「Ａ」または「Ａｎ」は、特に断らない限り、冠詞に続く１以上の量の要素を指す。添付の特許請求の範囲は、そのような限定が所与の請求項において文言「ｍｅａｎｓ  ｆｏｒ」を用いて明白に挙げられていない限りミーンズプラスファンクションの限定を含むとして解釈されるものではない。
【図１Ａ】
2020113301.tif 000003
【図１Ｂ】
2020113301.tif 000004
【図１Ｃ】
2020113301.tif 000005
【図２Ａ】
2020113301.tif 000006
【図２Ｂ】
2020113301.tif 000007
【図２Ｃ】
2020113301.tif 000008
【図３Ａ】
2020113301.tif 000009
【図３Ｂ】
2020113301.tif 000010
【図４】
2020113301.tif 000011
【図５】
2020113301.tif 000012
【図６Ａ】
2020113301.tif 000013
【図６Ｂ】
2020113301.tif 000014