(57)【要約】      （修正有）【課題】コンピュータ・グラフィックに関し、テクスチャ・マッピングに使用される傾きの調整の方法を提供する。【解決手段】シェーダ及びテクスチャ・ユニットを有するコンピュータ・グラフィック演算処理装置（ＧＰＵ）において、ピクセル・シェーダは、ピクセル・サンプル位置毎のテクスチャ座標の１つまたは複数のセットを受信あるいは生成するように構成される。ピクセル・シェーダ及びテクスチャ・ユニットがそれらの間で、１つまたは複数の原形に関してテクスチャ空間の傾き値を計算し、傾き値を変更して、異なるピクセルの解像度を有するディスプレイ・デバイスの領域間で傾き値を滑らかに遷移させるように構成されたピクセル毎の傾きのスケール要素を生成及び適用するように構成される。【選択図】図１Ａ
2018129051.tif 000002
【特許請求の範囲】
【請求項１】
ピクセル・シェーダ及びテクスチャ・ユニットを有するグラフィック演算処理装置（ＧＰＵ）を備え、
前記ピクセル・シェーダが、ピクセル・サンプル位置毎のテクスチャ座標の１つまたは複数のセットを受信あるいは生成するように構成され、前記ピクセル・シェーダ及びテクスチャ・ユニットがそれらの間で、１つまたは複数の原形に関するテクスチャ空間の傾き値を計算し、前記傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の領域間で前記傾き値を遷移させるように構成されたピクセル毎の傾きスケール要素を生成及び適用するように構成された、コンピュータ・グラフィック・システム。
【請求項２】
前記テクスチャ空間の傾き値は、スクリーン空間のサンプル分布の非正規直交性に関する訂正を含む、請求項１に記載のシステム。
【請求項３】
前記テクスチャ・ユニットは、特定用途の集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはチップ上のシステム（ＳＯＣ）である、請求項１に記載のシステム。
【請求項４】
前記テクスチャ・ユニットは、さらに、前記調整された傾き値からの１つまたは複数の原形に適用される、テクスチャに関する複数のディテールのレベルから１つのディテールのレベルを選択するように構成された、請求項１に記載のシステム。
【請求項５】
前記テクスチャ・ユニットは、さらに、前記１つまたは複数の原形に前記テクスチャを適用するように構成された、請求項４に記載のシステム。
【請求項６】
前記ＧＰＵに結合されたディスプレイ・ユニットをさらに備え、前記ディスプレイ・ユニットは、前記１つまたは複数の原形に適用された前記テクスチャを含む画像を表示するように構成された、請求項５に記載のシステム。
【請求項７】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャ空間の傾き値を計算し、スケールが訂正された傾き値を得るために、前記ピクセル毎の傾きスケール要素を生成及び適用する、請求項１に記載のシステム。
【請求項８】
前記ピクセル・シェーダは、前記ピクセル毎の傾きのスケール要素を計算し、それらを、前記テクスチャ座標を有する前記テクスチャ・ユニットに提供する、請求項１に記載のシステム。
【請求項９】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャ空間の傾き値を計算し、次いで、調整された傾き値を得るために、前記供給された傾きのスケール要素を前記テクスチャ空間の傾きに適用する、請求項８に記載のシステム。
【請求項１０】
前記ピクセル・シェーダは、前記テクスチャ座標から前記テクスチャ空間の傾きを計算し、前記テクスチャ座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダが前記テクスチャ・ユニットに、前記テクスチャ・ユニットが前記サンプル格子の任意の非正規直交性について前記テクスチャの傾き値を訂正しなければならないことを示す、請求項１に記載のシステム。
【請求項１１】
前記ピクセル・シェーダはまた、前記ピクセル毎の傾きのスケール要素を判定し、それらを前記テクスチャ・ユニットに提供し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記調整された傾きを得るために前記傾きのスケール要素を前記傾きに適用しなければならないことを通知する、請求項１０に記載のシステム。
【請求項１２】
前記ピクセル・シェーダは、前記テクスチャ座標から前記調整されたテクスチャの傾きを計算し、それらを前記テクスチャ空間座標とともに前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記調整された傾きが、原形に適用されるテクスチャに関するディテールのレベルを選択するように使用されるものとすることを示す、請求項１に記載のシステム。
【請求項１３】
ピクセル・シェーダ及びハードウェアで実施されたテクスチャ・ユニットを有するコンピュータ・グラフィック演算処理装置（ＧＰＵ）におけるグラフィック処理方法であって、
前記ピクセル・シェーダが、ピクセル位置毎の１つまたは複数のテクスチャ座標を生成して、１つまたは複数のテクスチャ・マッピング操作のための座標セットを提供することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、前記テクスチャ座標から傾き値を計算することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、対応する傾き値を対応する調整された傾き値に調整するように構成された傾きスケール要素を判定することと、
前記ピクセル・シェーダとテクスチャ・ユニットの間で、前記傾きスケール要素を前記傾き値に適用することであって、前記調整要素は、前記傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスのスクリーン空間の領域間で前記傾き値を遷移させるように構成された、適用することと、を含む、グラフィック処理方法。
【請求項１４】
前記テクスチャ空間の傾き値は、スクリーン空間のサンプル分布の非正規直交性に関する訂正を含む、請求項１３に記載の方法。
【請求項１５】
前記テクスチャ・ユニットで、前記調整された傾き値から１つまたは複数の原形に適用されるテクスチャに関して、複数のディテールのレベルから１つのディテールのレベルを選択することをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記テクスチャ・ユニットで、前記１つまたは複数の原形に前記テクスチャを適用することをさらに含む、請求項１３に記載の方法。
【請求項１７】
ディスプレイ・ユニットで、前記１つまたは複数の原形に適用された前記テクスチャを含む画像を表示することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記ピクセル・シェーダはピクセル位置毎に前記テクスチャ座標を生成し、各テクスチャ・マッピング操作に関する座標セットを前記テクスチャ・ユニットに提供する、請求項１７に記載の方法。
【請求項１９】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給された前記テクスチャ座標からテクスチャの傾斜を計算し、前記訂正された傾き値を得るために、前記傾きのスケール要素を生成及び適用する、請求項１８に記載の方法。
【請求項２０】
前記ピクセル・シェーダは、前記傾きのスケール要素を計算し、それらを、前記テクスチャ座標とともに前記テクスチャ・ユニットに提供する、請求項１３に記載の方法。
【請求項２１】
前記テクスチャ・ユニットは、前記ピクセル・シェーダによって供給される前記テクスチャ座標からテクスチャ空間の傾き値を計算し、次いで、調整された傾き値を得るために、前記供給された傾きのスケール要素を前記テクスチャ空間の傾きに適用する、請求項２０に記載の方法。
【請求項２２】
前記ピクセル・シェーダは、前記テクスチャ座標から前記テクスチャ空間の傾きを計算し、前記テクスチャ座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記サンプル格子の任意の非正規直交性に関して前記テクスチャ傾き値を訂正しなければならないことを示す、請求項１３に記載の方法。
【請求項２３】
前記ピクセル・シェーダはまた、前記傾きのスケール要素を判定し、それらを前記テクスチャ・ユニットに提供し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記テクスチャ・ユニットが、前記調整された傾きを得るために、前記傾きのスケール要素を前記傾きに適用しなければならないことを通知する、請求項２２に記載の方法。
【請求項２４】
前記ピクセル・シェーダは、前記テクスチャ座標から前記調整されたテクスチャの傾きを計算し、前記テクスチャ空間の座標とともにそれらを前記テクスチャ・ユニットに渡し、前記ピクセル・シェーダは前記テクスチャ・ユニットに、前記調整された傾きが、原形に適用されるテクスチャに関するディテールのレベルを選択するように使用されるものとすることを示す、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆによる、「ＭＥＴＨＯＤ  ＦＯＲ  ＥＦＦＩＣＩＥＮＴ  ＣＯＮＳＴＲＵＣＴＩＯＮ  ＯＦ  ＨＩＧＨ  ＲＥＳＯＬＵＴＩＯＮ  ＤＩＳＰＬＡＹ  ＢＵＦＦＥＲＳ（高解像度ディスプレイ・バッファの効果的な製造方法）」（代理人整理番号ＳＣＥＡ１３０５５ＵＳ００）と題され、本出願と同じ日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６４号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００２】
本出願は、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆによる、「ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＥＮＨＡＮＣＥＭＥＮＴ  ＢＹ  ＴＲＡＣＫＩＮＧ  ＯＢＪＥＣＴ  ＡＮＤ／ＯＲ  ＰＲＩＭＩＴＩＶＥ  ＩＤＥＮＴＩＦＩＥＲＳ（物体追跡及び／またはプリミティブ識別子によるグラフィック処理向上）」（代理人整理番号ＳＣＥＡ１３０５６ＵＳ００）と題され、２０１４年４月５日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６７号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００３】
本出願は、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙによる、「ＧＲＡＤＩＥＮＴ  ＡＤＪＵＳＴＭＥＮＴ  ＦＯＲ  ＴＥＸＴＵＲＥ  ＭＡＰＰＩＮＧ  ＴＯ  ＮＯＮ−ＯＲＴＨＯＮＯＲＭＡＬ  ＧＲＩＤ（非正規直交性格子に対するテクスチャ・マッピングの傾き調整）」（代理人整理番号ＳＣＥＡ１３０５７ＵＳ００）と題され、２０１４年４月５日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６８号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００４】
本出願は、Ｔｏｂｉａｓ  Ｂｅｒｇｈｏｆｆによる、「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＢＹ  ＣＨＡＮＧＩＮＧ  ＡＣＴＩＶＥ  ＣＯＬＯＲ  ＳＡＭＰＬＥ  ＣＯＵＮＴ  ＷＩＴＨＩＮ  ＭＵＬＴＩＰＬＥ  ＲＥＮＤＥＲ  ＴＡＲＧＥＴＳ（マルチプル・レンダリング目標でアクティブなカラーサンプル数を変更することによりスクリーンの位置によって変化する有効解像度）」（代理人整理番号ＳＣＥＡ１３０５８ＵＳ００）と題され、２０１４年４月５日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６１号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００５】
本出願は、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙによる、「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＢＹ  ＡＬＴＥＲＩＮＧ  ＲＡＳＴＥＲＩＺＡＴＩＯＮ  ＰＡＲＡＭＥＴＥＲＳ（ラスタ化パラメータを変更することによりスクリーンの位置によって変化する有効解像度）」（代理人整理番号ＳＣＥＡ１３０５９ＵＳ００）と題され、２０１４年４月５日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６３号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００６】
本出願は、Ｍａｒｋ  Ｅｖａｎ  Ｃｅｒｎｙによる、「ＶＡＲＹＩＮＧ  ＥＦＦＥＣＴＩＶＥ  ＲＥＳＯＬＵＴＩＯＮ  ＢＹ  ＳＣＲＥＥＮ  ＬＯＣＡＴＩＯＮ  ＩＮ  ＧＲＡＰＨＩＣＳ  ＰＲＯＣＥＳＳＩＮＧ  ＢＹ  ＡＰＰＲＯＸＩＭＡＴＩＮＧ  ＰＲＯＪＥＣＴＩＯＮ  ＯＦ  ＶＥＲＴＩＣＥＳ  ＯＮＴＯ  ＣＵＲＶＥＤ  ＶＩＥＷＰＯＲＴ（湾曲したビューポートに近似の頂点の投影によるグラフィック処理におけるスクリーンの位置によって変化する有効解像度）」（代理人整理番号ＳＣＥＡ１３０６０ＵＳ００）と題され、２０１４年４月５日に出願された、共通に付与され、同時係属中の米国特許出願番号第１４／２４６，０６６号に関する。この文献は、参照することによりその全体が本明細書に組み込まれる。
【０００７】
［技術分野］
本開示の態様は、コンピュータ・グラフィックに関する。具体的には、本開示はテクスチャ・マッピングに使用される傾きの調整に関する。
【背景技術】
【０００８】
グラフィック処理は通常、中央演算処理装置（ＣＰＵ）とグラフィック演算処理装置（ＧＰＵ）の２つのプロセッサの協同を伴う。ＧＰＵは、ディスプレイへの出力を意図したフレーム・バッファ内の画像の形成を促進するように設計された専門の電子回路である。ＧＰＵは、埋込型システム、携帯電話、パーソナル・コンピュータ、タブレット・コンピュータ、ポータブル・ゲーム・デバイス、ワークステーション、及びゲーム・コンソールに使用される。ＧＰＵは通常、コンピュータ・グラフィックの操作に効果的であるように設計されている。ＧＰＵはしばしば、ＧＰＵを、大きいブロックのデータの処理が並行して行われるアルゴリズムに関して多目的ＣＰＵよりも効果的とする、高度に並行な処理のアーキテクチャを有する。
【０００９】
ＣＰＵは、一般にドロー・コマンドと呼ばれ、ＧＰＵに特定のグラフィック処理タスクを実施するように（たとえば、画像の以前のフレームに対して変化した特定のテクスチャをレンダリングするように）指示するＧＰＵ指示を送る場合がある。これらドロー・コマンドは、特定のアプリケーションの仮想環境の状態に対応するグラフィック・レンダリング・コマンドを出すために、ＣＰＵにより、グラフィック・アプリケーション・プログラミング・インターフェース（ＡＰＩ）と協同させられる場合がある。
【００１０】
特定のプログラム用のテクスチャをレンダリングするために、ＧＰＵは、「グラフィック・パイプライン」の一連の処理タスクを実施して、仮想環境における外観をディスプレイ上にレンダリングすることができる画像に変換することができる。通常のグラフィック・パイプラインは、仮想空間内の仮想対象への特定のレンダリングまたはシェーディング操作、出力ディスプレイに適切なピクセル・データを提供するための、そのシーンの仮想対称の変換及びラスタ化、ならびにディスプレイ上にレンダリングされた画像を出力する前のピクセル（またはフラグメント）上の追加のレンダリング・タスクを実施することを含み得る。
【００１１】
画像の仮想対象はしばしば、原形として知られる形状に関して仮想空間に記載され、ともに仮想シーンにおいて対称の形状を形成する。たとえば、レンダリングされる３次元の仮想世界における対称は、３次元空間で協同し、それによりそれらポリゴンが対称の表面を形成することに関して規定される頂点を有する一連の別個の３角形の原形に低減される。各ポリゴンは、グラフィック処理システムによって使用されて、所与のポリゴンを他のポリゴンから区別することができる、関連するインデックスを有する場合がある。同様に、各頂点は、所与の頂点を他の頂点から区別するのに使用することができる、関連するインデックスを有し得る。グラフィック・パイプラインは、それら原形に特定の操作を実施して、仮想シーンのための外見を与え、このデータをディスプレイ上のピクセルによって再現するのに適切な２次元フォーマットに変換することができる。本明細書において使用されるグラフィック原形情報（またはシンプルに「原形情報」）は、グラフィックの原形を示すデータに言及するのに使用される。そのようなデータには、それに限定されないが、頂点情報（たとえば、頂点位置または頂点インデックスを示すデータ）及びポリゴン情報、たとえばポリゴン・インデックス、ならびに、特定の頂点を特定のポリゴンに関連付ける情報が含まれる。
【００１２】
ＧＰＵは、一般にシェーダとして知られるプログラムを実行することにより、グラフィック・パイプラインのレンダリング・タスクを実行し得る。通常のグラフィック・パイプラインは、各頂点ベースで原形の特定の特性を操作し得る頂点シェーダ、及び、グラフィック・パイプラインにおける頂点シェーダから下流で作動し、ピクセル・データをディスプレイに伝達する前にピクセル毎ベースで特定の値を操作し得るピクセル・シェーダ（「フラグメント・シェーダ」としても知られる）を含み得る。フラグメント・シェーダは、テクスチャを原形に適用することに関する値を操作し得る。パイプラインは、頂点シェーダの出力を使用して、原形の新しいセットを生成する形状シェーダ、及び、ＧＰＵによって実施されて、特定の他の一般計算タスクを実施し得る計算シェーダ（ＣＳ）などの、パイプラインの様々なステージにおける他のシェーダをも含み得る。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
テクスチャを原形にマッピングするプロセスの一部には、スクリーン空間のピクセル位置からテクスチャ空間の傾きを計算することが含まれる。傾きの計算ではしばしば、ピクセル位置が矩形の正規直交の格子に基づくと見なされる。
【００１４】
本開示が生じるのはこの文脈においてである。
【課題を解決するための手段】
【００１５】
本開示の教示は、以下の詳細な説明を添付図面と関連して考慮することにより、容易に理解することができる。
【図面の簡単な説明】
【００１６】
【図１Ａ】本開示の一態様に係るグラフィック処理システムのブロック図。
【図１Ｂ】グラフィック処理パイプラインのブロック図。
【図２Ａ】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【図２Ｂ】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【図２Ｃ】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【図２Ｄ】本開示の一態様に係る様々な解像度の領域を有するディスプレイの一部分を示す図。
【図２Ｅ】本開示の一態様に係るピクセル毎の傾きスケールの訂正の一般化された例を示す図。
【発明を実施するための形態】
【００１７】
以下の詳細な説明には、説明の目的のために、多くの具体的詳細が含まれるが、当業者であれば誰でも、以下の詳細に対する多くの変形及び変更が本発明の範囲内にあることを理解するであろう。したがって、以下に記載の本発明の例示的実施形態は、請求される発明に対し一般性を失うことなく、かつ、請求される発明を限定することなく説明される。
【００１８】
イントロダクション
特定のグラフィック・アプリケーションでは、ビットマップで表示されたテクスチャがポリゴン上に「ペイント」される。そのような場合、出力デバイスによって抽出された各ピクセル値は、テクスチャからサンプリングされた１つまたは複数のピクセルから判定される。本明細書において使用される場合、ビットマップは概して、コンピュータのモニタ、紙、または他のディスプレイ・デバイス上の概ね矩形のピクセルの格子または色点を示すデータ・ファイルまたは構造に言及する。各ピクセルの色は個別に規定される。たとえば、色付けされたピクセルは、赤、緑、及び青に１バイトずつの、３バイトで規定され得る。ビットマップは通常、ビット用ビットをデバイス・テクスチャ・サンプリング・ユニットによって支持されるデータ・フォーマットに一致させる。デバイス・テクスチャ・サンプリング・ユニットは通常、たいていはディスプレイのビデオ・メモリに記憶されているのと同じか、デバイス個別のビットマップと同じ場合があるフォーマットで、チャンネル毎の様々なビット深度またはブロックの圧縮を含む任意選択範囲を含む。ビットマップは、ピクセルの画像の幅及び高さ、ならびに、表示できる色の数を判定するピクセル毎のビット数によって特徴付けられる。
【００１９】
テクスチャ・ビットマップを表面に伝達するプロセスにはしばしば、テクスチャＭＩＰマップ（ｍｉｐｍａｐとしても知られる）の使用が含まれる。この名称の中の「ＭＩＰ」との文字は、ラテン語のフレーズｍｕｌｔｕｍ  ｉｎ  ｐａｒｖｏの頭文字であり、「小さい空間内に多く」を意味する。そのようなｍｉｐｍａｐは予め計算され、最適化されたビットマップ画像のコレクションである。このビットマップ画像のコレクションは、レンダリング速度を増大させ、エイリアシング・アーチファクトを低減することが意図されたメイン・テクスチャを伴う。
【００２０】
ｍｉｐｍａｐセットの各ビットマップ画像は、メイン・テクスチャのバージョンであるが、ディテールのレベル（ＬＯＤ）がある程度低減されている。外観がフル・ディテールでレンダリングするのに十分である場合、メイン・テクスチャが依然として使用されることになるが、テクスチャが遠くから見られるか、小さいサイズである場合は、最終画像をレンダリングするグラフィック・ハードウェアが適切なｍｉｐｍａｐレベルに切り換える（またはもっとも近い２つのレベルの間に差し込む）。レンダリング速度が上昇するが、この理由は、処理されるテクスチャ・ピクセル（「テクセル」）数をかなり少なくすることができ、メモリ内におけるテクスチャ・ピクセルの分配をシンプルなテクスチャに比べてより整合したものにできるためである。アーチファクトを低減できるが、この理由は、ｍｉｐｍａｐ画像がすでに効果的にアンチエイリアシングされ、リアルタイムのレンダリング・ハードウェアから負荷がいくぶん除かれたためである。
【００２１】
ｍｉｐｍａｐレベル間の混合は通常、ある形態のテクスチャ・フィルタリングを伴う。本明細書で使用される場合は、テクスチャ・フィルタリングはテクセル（テクスチャのピクセル）を３Ｄ対象のポイントにマッピングするのに使用される方法に関する。シンプルなテクスチャ・フィルタリング・アルゴリズムは、対象上のポイントを取り、その位置にもっとも近いテクセルを探し出すことができる。次いで、結果として得られるポイントが、その１つのテクセルからその色を得る。このシンプルな技術は、ときには最近傍フィルタリングと呼ばれる。より洗練された技術では、ポイント毎に２つ以上のテクセルを合わせる。実際にもっとも頻繁に使用されるアルゴリズムは、ｍｉｐｍａｐを使用する２直線に関するフィルタリングと３直線に関するフィルタリングである。２次または３次のフィルタリングなどの、異方性のフィルタリング及び高位の方法により、さらにより高品質の画像が得られる。
【００２２】
テクスチャは通常、正方形であり、辺の長さは２の累乗に等しい。たとえば、テクスチャが２５６かける２５６ピクセルの基本寸法を有する場合、関連するｍｉｐｍａｐセットは連続する８つの画像を含み得、それぞれのサイズは前のもののサイズの半分である。すなわち、１２８×１２８ピクセル、６４×６４、３２×３２、１６×１６、８×８、４×４、２×２、そして１×１（単一のピクセル）となる。たとえば、このテクスチャが、スクリーン空間の４０×４０ピクセルの部分にマッピングされると、６４×６４のｍｉｐｍａｐと３２×３２のｍｉｐｍａｐとの間への差込が使用されることになる。本明細書で使用される場合、「スクリーン空間」との用語は概して、グラフィック・パイプラインでディスプレイ・バッファによって使用される座標のセットに言及する。
【００２３】
適切なｍｉｐｍａｐレベルを判定するプロセスにおける重要な操作には、スクリーン空間からのピクセル位置の対応するエリア（ＸＹ座標空間と呼ばれることもある）に関する、テクスチャ座標空間で覆われたエリア（ＵＶ座標空間と呼ばれることもある）を判定することを伴う。大まかにいえば、差し込まれた、または計算されたテクスチャＵＶ座標のスクリーン空間の傾きは、シーンの関連する部分におけるＸＹ空間のピクセル位置でサンプリングされるＵとＶの値から計算される。いくつかの実施態様では、テクスチャ座標の傾きは、スクリーンのＹ座標が固定でスクリーンのＸ座標が変化する場合（ｄｕ＿ｄｘ，ｄｖ＿ｄｘと呼ばれる場合もある）に生じるテクスチャ座標の変化と、スクリーンのＸ座標が固定でスクリーンのＹ座標が変化する場合（ｄｕ＿ｄｙ，ｄｖ＿ｄｙと呼ばれる場合もある）に生じるテクスチャ座標の変化とを計算することにより、各スクリーン空間の方向Ｘ及びＹについて判定される。このテクスチャ座標の傾きの計算は、任意選択的にサンプル格子の非正規直交性に関する訂正をも含み得る。非異方性のテクスチャの検索に関して、これら２つの内のより大きい規模の傾きが、ディテールのレベル（ＬＯＤ）を選択するために使用される。異方性テクスチャリングに関して、規模の小さい傾きが、ＬＯＤを選択するために使用され、規模の大きい傾斜に対応する線においてテクスチャがサンプリングされる。
【００２４】
上述の計算は、１、２、３、またはそれ以上のテクスチャ座標の次元に一般化することができることにも留意されたい。通常のハードウェアは、テクスチャの次元数に応じて、Ｕ空間の１Ｄの傾き、またはＵＶ空間の２Ｄの傾き、またはＵＶＷ空間の３Ｄの傾きを計算する。したがって、本開示の態様は、２つのテクスチャ座標の次元を伴う実施態様に限定されない。
【００２５】
しかし、適切なＭＩＰのディテールのレベルを判定するプロセスは、テクスチャが適用される仮想空間の関連する部分がサンプルの正規配置である、すなわち、スクリーン・ピクセル内のサンプル・ポイントが、垂直方向及び水平方向で、スクリーン空間全体にわたって均等に離間しているとの推定に基づく。しかし、可視アーチファクトは、サンプル・パターンの不連続性、たとえば、スクリーン空間においてサンプルの空間の空け方が異なるスクリーン・エリア間の境界から生じ得る。そのような境界では、境界の一方の側における局所的に適正なテクスチャ・フィルタリングが、著しく異なるＭＩＰのディテールのレベルにアクセスする場合があり、境界の両側の出力画像の表示に顕著な変化をもたらす。そのような状況では、傾きは、滑らかに変化するテクスチャ・フィルタリングを提供し、それによって境界の可視性を低減するために、境界の各側で調整されなければならない。
【００２６】
システム及び装置
本開示の態様には、テクスチャ・マッピングの傾き調整を実施するように構成されたグラフィック処理システムが含まれる。限定ではなく例として、図１Ａは、本開示の態様に係るグラフィック処理を実施するために使用され得るコンピュータ・システム１００のブロック図を示している。本開示の態様によれば、システム１００は、埋込型システム、携帯電話、パーソナル・コンピュータ、タブレット・コンピュータ、ポータブル・ゲーム・デバイス、ワークステーション、及びゲーム・コンソールなどである。
【００２７】
システム１００は通常、中央演算処理装置（ＣＰＵ）１０２、グラフィック処理装置（ＧＰＵ）１０４、及び、ＣＰＵとＧＰＵとの両方にアクセス可能なメモリ１０８を含み得る。ＣＰＵ１０２及びＧＰＵ１０４は各々が、１つまたは複数のプロセッサ・コア、たとえば単一のコア、２つのコア、４つのコア、８つのコア、またはそれ以上を含み得る。メモリ１０８は、アドレス可能メモリ、たとえばＲＡＭ、ＤＲＡＭなどを提供する集積回路の形態であり得る。メモリ１０８は、グラフィック・リソースを記憶し得、グラフィック・レンダリング・パイプラインのためのデータのグラフィック・バッファ１０５を一時的に記憶し得るグラフィック・メモリ１２８を含み得る。グラフィック・バッファ１０５は、たとえば、強い頂点パラメータ値に関する頂点バッファ、頂点インデックスを保持するためのインデックス・バッファ、グラフィック・コンテンツの深度を記憶する深度バッファ（たとえばＺバッファ）、ステンシル・バッファ、ディスプレイに送られる完全なフレームを記憶するフレーム・バッファ、及び他のバッファを含み得る。図１Ａに示す例では、グラフィック・メモリ１２８がメイン・メモリの一部として示されている。代替的実施態様では、グラフィック・メモリは別の構成要素とすることができ、場合によってはＧＰＵ１０４に統合される。
【００２８】
限定ではなく例として、ＣＰＵ１０２及びＧＰＵ１０４は、データ・バス１０９を使用してメモリ１０８にアクセスし得る。いくつかの場合では、システム１００が２つ以上の異なるバスを含むことが有用であり得る。メモリ１０８は、ＣＰＵ１０２及びＧＰＵ１０４によってアクセス可能なデータを含み得る。ＧＰＵ１０４は、グラフィック処理タスクを並行して実施するように構成された複数の計算ユニットを含み得る。各計算ユニットは、ローカル・データ・シェアなどの、それ自体の専用のローカル・メモリ・ストアを含み得る。
【００２９】
ＣＰＵは、グラフィック、コンパイラ、及びグラフィックＡＰＩを利用するアプリケーションを含む場合があるＣＰＵコード１０３Ｃを実行するように構成され得る。グラフィックＡＰＩは、ドロー・コマンドをＧＰＵに実施されるプログラムに発するように構成され得る。ＣＰＵコード１０３Ｃは、物理シミュレーション及び他の機能をも実施し得る。ＧＰＵ１０４は、上述のように動作するように構成され得る。具体的には、ＧＰＵは、上述のように計算シェーダＣＳ、頂点シェーダＶＳ、及びピクセル・シェーダＰＳなどのシェーダを実施し得るＧＰＵコード１０３Ｇを実行し得る。計算シェーダＣＳと頂点シェーダＶＳとの間のデータのやり取りを促進するために、システムは、フレーム・バッファＦＢを含み得る１つまたは複数のバッファ１０５を含み得る。ＧＰＵコード１０３Ｇは任意選択的に、ピクセル・シェーダまたは形状シェーダなどの他のタイプのシェーダ（図示せず）をも実施し得る。各計算ユニットは、ローカル・データ・シェアなどの、それ自体の専用のローカル・メモリ・ストアを含み得る。ＧＰＵ１０４は、グラフィック・パイプラインの一部として、テクスチャを原形に適用するための特定の操作を実施するように構成された、１つまたは複数のテクスチャ・ユニット１０６を含み得る。
【００３０】
本開示の態様によれば、ピクセル・シェーダＰＳ及びテクスチャ・ユニット１０６は、１つまたは複数のテクスチャ座標ＵＶを生成するように構成され、潜在的には、１つまたは複数の対応するピクセル・サンプル位置に関する各座標についてのテクスチャ空間の傾き値Ｇｒをも生成するように構成される。これら傾き値は、潜在的に、サンプル格子の非正規直交性に関して訂正され得る。これら傾き値Ｇｒにより、局所的に適正なテクスチャ・フィルタリングが提供されるが、いくつかの構成では、テクスチャ・フィルタリング表示の突然の変化として出力画像において視認可能になる場合がある様々なピクセル・サンプル構成を有するスクリーン・エリア間の突然の遷移が生じている場合がある。本開示の態様によれば、ピクセル・シェーダＰＳは、テクスチャ・ユニット１０６をスクリーン空間の傾きスケール要素Ｓｃとともに計算および供給し得る。傾きスケール要素Ｓｃは調整された傾き値Ｇｒ’を得るために、テクスチャ・ユニット１０６が、傾きＧｒに対し直線スクリーン軸と整列されたスケール変異として適用し得る。これら傾きスケール要素Ｓｃは、傾き値Ｇｒを変更し、異なるピクセル解像度を有するディスプレイ・デバイス１１６の領域間で傾きＧｒが滑らかに遷移するために、スクリーン・エリアの境界に漸次繋げるために使用され得る。
【００３１】
限定ではなく例として、テクスチャ・ユニット１０６は、特定用途の集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはチップ上のシステム（ＳｏＣ若しくはＳＯＣ）などの特定目的のためのハードウェアとして実施され得る。
【００３２】
本明細書で使用される場合、及び、当業者に通常理解されているように、特定用途の集積回路（ＡＳＩＣ）は、多目的の使用を意図されているというよりは、特定の使用のためにカスタマイズされた集積回路である。
【００３３】
本明細書で使用される場合、及び、当業者に通常理解されているように、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）は、カスタマまたは設計者によって製造の後に構成されるように設計された集積回路であり、したがって、「フィールド・プログラマブル」である。ＦＰＧＡ構成は通常、ＡＳＩＣに使用されるものと同様に、ハードウェア記載言語（ＨＤＬ）を使用して特定される。
【００３４】
本明細書で使用される場合、及び、当業者に通常理解されているように、１つのチップ上のシステムまたはチップ上のシステム（ＳｏＣまたはＳＯＣ）は、コンピュータまたは他の電子システムの構成要素すべてを単一のチップに統合する集積回路（ＩＣ）である。この集積回路は、デジタル、アナログ、混合信号、及び、しばしばラジオ周波数機能を含み、すべて単一のチップ基板上にある。一般的な用途は、埋込型システムのエリア内にある。
【００３５】
一般的なＳｏＣは、以下のハードウェア構成要素を含む。
１つまたは複数のプロセッサ・コア（たとえば、マイクロコントローラ、マイクロプロセッサ、またはデジタル信号プロセッサ（ＤＳＰ）のコア）。
メモリ・ブロック、たとえば、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、電気的に消去可能なプログラマブル・リードオンリ・メモリ（ＥＥＰＲＯＭ）、及びフラッシュメモリ。
発振器または位相ロック・ループなどのタイミング・ソース。
カウンタタイマ、リードタイム・タイマ、またはパワーオン・リセット・ジェネレータなどの周辺機器。
外部インターフェース、たとえば、ユニバーサル・シリアル・バス（ＵＳＢ）、ファイアワイア、イーサネット（登録商標）、汎用非同期式受信／送信回路（ＵＳＡＲＴ）、シリアル周辺インターフェース（ＳＰＩ）バスなどの工業規格。
アナログ・デジタル・コンバータ（ＡＤＣ）及びデジタル・アナログ・コンバータ（ＤＡＣ）を含むアナログ・インターフェース。
電圧レギュレータ及びパワー・マネジメント回路。
【００３６】
これら構成要素は、専用または工業規格のバスによって接続されている。直接メモリ・アクセス（ＤＭＡ）コントローラは、外部インターフェースとメモリとの間でデータを直接繋げ、プロセッサ・コアをバイパスし、それにより、ＳｏＣのデータ処理量を増大させる。
【００３７】
一般的なＳｏＣは、上述のハードウェア構成要素と、プロセッサ・コア（複数の場合もある）、周辺機器、及びインターフェースを制御する実行可能な指示（たとえば、ソフトウェアまたはファームウェア）との両方を含む。
【００３８】
本開示の態様によれば、テクスチャ・ユニット１０６のいくつかまたはすべての機能は、代替的に、ソフトウェア・プログラマブル多目的コンピュータ・プロセッサによって実行される、適切に構成されたソフトウェア指示によって実施され得る。そのような指示は、コンピュータ可読媒体、たとえばメモリ１０８または記憶デバイス１１５内で実施され得る。
【００３９】
システム１００は、たとえばバス１０９を介して、システムの他の構成要素と通信し得る周知のサポート機能１１０をも含み得る。そのようなサポート機能は、それに限定されないが、入力／出力（Ｉ／Ｏ）要素１１１、電源（Ｐ／Ｓ）１１２、クロック（ＣＬＫ）１１３、及びキャッシュ１１４を含み得る。キャッシュ１１４に加え、ＧＰＵ１０４は、それ自体のＧＰＵキャッシュ１１４Ｇを含む場合があり、ＧＰＵは、ＧＰＵ１０４上で実行されるプログラムがＧＰＵキャッシュ１１４Ｇをリードスルーまたはライトスルー可能であるように構成され得る。
【００４０】
システム１００は、任意選択的に、プログラム及び／またはデータを記憶するディスク・ドライブ、ＣＤ−ＲＯＭドライブ、フラッシュメモリ、テープ・ドライブなどのマス・ストレージ・デバイス１１５を含み得る。システム１００は任意選択的に、レンダリングされたグラフィック１１７をユーザに提供するディスプレイ・デバイス１１６と、システム１００とユーザとの間の相互作用を促進するユーザ・インターフェース・ユニット１１８をも含み得る。ディスプレイ・デバイス１１６は、可読テキスト、数字、グラフィカル・シンボル、または画像を表示可能であるフラット・パネル・ディスプレイ、ヘッド・マウント・ディスプレイ（ＨＭＤ）、ブラウン管（ＣＲＴ）スクリーン、プロジェクタ、または他のデバイスの形態をとり得る。ディスプレイ１１６は、本明細書に記載の様々な技術に従って処理された、レンダリングされたグラフィック画像１１７を表示し得る。ユーザ・インターフェース１１８は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）と関連して使用され得るキーボード、マウス、ジョイスティック、ライト・ペン、ゲーム・コントローラ、または他のデバイスを含み得る。システム１００は、デバイスがネットワーク１２２を越えて他のデバイスと通信することを可能にするネットワーク・インターフェース１２０をも含み得る。ネットワーク１２２は、たとえば、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワークなどのパーソナル・エリア・ネットワーク、または他のタイプのネットワークなどである場合がある。これら構成要素は、ハードウェア、ソフトウェア、若しくはファームウェア、またはこれらの内の２つ以上のある組合せの中で実施され得る。
【００４１】
グラフィック・パイプライン
本開示の態様によれば、システム１００は、グラフィック・レンダリング・パイプラインの各部分を実施するように構成される。図１Ｂは、本開示の態様に係るグラフィック・レンダリング・パイプライン１３０の例を示している。
【００４２】
レンダリング・パイプライン１３０は、グラフィックを、２次元、好ましくは、仮想空間（本明細書において「世界空間（ｗｏｒｌｄ  ｓｐａｃｅ）」と呼ばれる場合もある）における３次元形状のシーンを表示する画像としてレンダリングするように構成され得る。パイプラインの初期のステージには、シーンがラスタ化され、ディスプレイ・デバイス１１６上の出力に適切な別個のピクチャ要素のセットとしてスクリーン空間に変換される前に、仮想空間で実施される操作が含まれ得る。パイプラインを通して、グラフィック・メモリ１２８に含まれる様々なリソースがパイプラインの各ステージにおいて利用され得、画像の最終的な値が判定される前に、各ステージへの入力及び出力が一時的に、グラフィック・メモリに含まれるバッファ内に記憶され得る。
【００４３】
レンダリング・パイプラインは、仮想空間でセットアップされ、シーンの座標に関して規定された形状を有する頂点のセットによって規定された１つまたは複数の仮想対象を含み得るデータ入力１３２上で作動し得る。パイプラインの初期のステージには、図１Ｂの頂点処理ステージ１３４として広く分類されるものが含まれ得、このことは、仮想空間における対象の頂点を処理するための様々な計算を含み得る。このことは、位置値（たとえば、Ｘ−Ｙ座標及びＺ深度）、色値、ライティング値、テクスチャ座標などの、シーンの頂点の様々なパラメータ値を操作し得る頂点シェーディング計算１３６が含まれ得る。好ましくは、頂点シェーディング計算１３６は１つまたは複数のプログラム可能な頂点シェーダによって実施される。頂点処理ステージは任意選択的に、仮想空間に新たな頂点及び新たな形状を生成するのに任意選択的に使用され得るモザイク及び形状シェーダ計算１３８などの、追加の頂点処理計算を含み得る。頂点計算１３４と呼ばれるステージが完了すると、パイプラインのこのステージにおいて、各々が頂点パラメータ値１３９のセットを有する頂点のセットによってシーンが規定される。
【００４４】
次いで、パイプライン１３０は、シーンの形状をスクリーン空間及び別個のピクチャ要素のセット、すなわちピクセルに変換することに関連するラスタ化処理ステージ１４０に進むことができる。仮想空間の形状は、スクリーン空間形状に、対象及び頂点の仮想空間からシーンのビューイング・ウインドウ（または「ビューポート」）への投影を効果的に計算し得る操作を通して変換される場合がある。頂点は、原形のセットを規定する場合がある。
【００４５】
図１Ｂに示すラスタ化処理ステージ１４０は、シーンの頂点の各セットによって規定される原形をセットアップし得る原形アセンブリ操作１４２を含む場合がある。各頂点はインデックスによって規定される場合があり、各原形は、グラフィック・メモリ１２８内のインデックス・バッファ内に記憶され得るこれら頂点のインデックスに関して規定される場合がある。原形は好ましくは、各々が３つの頂点によって規定された３角形を少なくとも含むが、点の原形、線の原形、及び他の多角形形状をも含み得る。原形アセンブリステージ１４２の間は、特定の原形が任意選択的に集められ得る。たとえば、頂点が特定の巻込み順を示すそれら原形は、後ろ向きと見なされる場合があり、また、シーンから集められる場合がある。
【００４６】
限定ではなく例として、原形が、３次元の仮想空間の頂点によって規定される三角形の形態である場合、原形アセンブリは、ディスプレイ１１６のスクリーン上の、各トライアングルが位置する場所を判定する。クリッピング及びスクリーン空間の変換操作は、通常、原形アセンブリ・ユニット１４２によって実施される。
【００４７】
原形が組み立てられた後に、ラスタ化処理ステージは、各ピクセルの原形をサンプリングし、サンプルが原形で覆われている場合には、さらなる処理のために、原形からフラグメント（ピクセルと呼ばれる場合もある）を生成し得る、スキャン変換操作１４４を含む場合がある。スキャン変換操作には、スクリーン空間座標に変換された原形を取り、どのピクセルがその原形の一部であるかを判定する操作が含まれる。いくつかの実施態様では、スキャン変換操作１４４の間、各ピクセルについて複数のサンプルが原形内に取られ、このことは、アンチエイリアシング目的のために使用され得る。特定の実施態様では、様々なピクセルが別様にサンプリングされ得る。たとえば、ヘッド・マウント・ディスプレイ（ＨＭＤ）などの特定のタイプのディスプレイ・デバイス１１６についてレンダリングする特定の態様を最適化するために、いくつかのエッジ・ピクセルが、中心のピクセルよりも低いサンプリング密度を含み得る。スキャン変換１４４の間に原形から生じるフラグメント（または「ピクセル」）は、それらを形成した原形の頂点の頂点パラメータ値１３９からピクセルの位置に差し込まれ得るパラメータ値を有する場合がある。ラスタ化ステージ１４０は、パイプラインの後のステージにおいてさらに処理するための入力として使用され得る、これら差し込まれたフラグメント・パラメータ値１４９を計算するためのパラメータ差込操作１４６のステージを含む場合がある。
【００４８】
パイプライン１３０は、差込パラメータ値１４９をさらに操作し、フラグメントがディスプレイのための最終ピクセル値にどのように寄与するかを判定するさらなる操作を実施するための、図１Ｂにおいては概して１５０で示されるさらなるピクセル処理操作を含み得る。これらピクセル処理タスクのいくつかは、フラグメントの差込パラメータ値１４９をさらに操作するのに使用され得るピクセル・シェーディング計算１５２を含む場合がある。ピクセル・シェーディング計算は、プログラマブル・ピクセル・シェーダによって実施され得、ピクセル・シェーダ実施１４８は、ラスタ化処理ステージ１４０の間に原形のサンプリングに基づき開始され得る。ピクセル・シェーディング計算１５２は、グラフィック・メモリ１２８内の１つまたは複数のバッファ１０５に値を出力し得る。このことは、レンダリング目標、または、複数の場合には、マルチプル・レンダリング目標（ＭＲＴ）と呼ばれる場合がある。
【００４９】
ＭＲＴにより、ピクセル・シェーダが、各々が同じスクリーン形状を有するが、潜在的に異なるピクセル・フォーマットの、２つ以上のレンダリング目標に任意選択的に出力することが可能になる。レンダリング目標のフォーマットの制限はしばしば、いずれか１つのレンダリング目標が４つもの個別の出力値（チャネル）を許容することのみ可能であり、これら４つのチャネルのフォーマットがしっかりと相互に結び付けられていることを意味している。ＭＲＴにより、単一のピクセル・シェーダが、様々なフォーマットが混合されている中に、多くのさらなる値を出力することが可能になる。レンダリング目標のフォーマットは「テクスチャ状」であり、その中では、フォーマットには、スクリーン空間・ピクセル毎に値を記憶しているが、様々なパフォーマンス上の理由から、レンダリング目標のフォーマットは、近年のハードウェアの世代ではより特殊化されるようになってきており、（常にではないが）ときには、テクスチャ・ユニット１０６に読み込まれるように互換性を有する前に、データをフォーマットし直す「分解（ｒｅｓｏｌｖｅ）」と呼ばれるものを要求する。
【００５０】
ピクセル処理１５０は通常、一般にラスタ化操作（ＲＯＰ）として知られるものを含む場合があるレンダリング出力操作１５６で完結し得る。ラスタ化操作（ＲＯＰ）は単に、複数のレンダリング目標（ＭＲＴ）の中の各レンダリング目標について１回ずつ、ピクセル毎に複数回実行する。出力操作１５６の間、最終ピクセル値１５９はフレーム・バッファ内で判定され得る。このことは任意選択的に、フラグメントの結合、ステンシルの適用、深度テスト、及び特定のサンプル毎の処理タスクを含み得る。最終ピクセル値１５９には、すべてのアクティブなレンダリング目標（ＭＲＴ）に対する集められた出力が含まれる。ＧＰＵ１０４は、最終ピクセル値１５９を使用して、最終フレーム１６０を形成する。最終フレーム１６０は任意選択的に、リアルタイムでディスプレイ・デバイス１１６のピクセル上に表示され得る。
【００５１】
出力操作１５０は、１つまたは複数のピクセル・シェーダＰＳによって幾分実施され、テクスチャ・ユニット１０６によって幾分実施され得る、テクスチャ・マッピング操作１５４をも含む場合がある。ピクセル・シェーディング計算１５２は、テクスチャ座標ＵＶをスクリーン空間座標ＸＹから計算することと、テクスチャ座標をテクスチャ操作１５４に送ることと、テクスチャ・データＴＸを受信することと、を含む。テクスチャ座標ＵＶは、スクリーン空間座標ＸＹから任意の方式で計算することができるが、通常は差し込まれた入力値から計算されるか、ときには前のテクスチャ操作の結果から計算される。傾きＧｒはしばしば、テクスチャ・ユニット１０６（テクスチャ操作ハードウェア・ユニット）により、テクスチャ座標のカッドから直接計算されるが、任意選択的に、ピクセル・シェーディング計算１５２によって明示的に計算され得、テクスチャ・ユニット１０６に頼るというよりはむしろ、テクスチャ操作１５４に渡して、標準的な計算を実施する。
【００５２】
テクスチャ操作１５４は通常、ピクセル・シェーダＰＳとテクスチャ・ユニット１０６とのいくつかの組合せによって実施され得る以下のステージを含む。最初に、ピクセル位置ＸＹ毎の１つまたは複数のテクスチャ座標ＵＶが生成され、各テクスチャ・マッピング操作について座標セットを提供するように使用される。次いで、潜在的にサンプル格子の非正規直交性に関する訂正を含み、ピクセル・サンプル位置に関するテクスチャ空間の傾き値Ｇｒが生成される。最後に、テクスチャ・フィルタリング操作に使用される最終的なテクスチャ空間の傾きＧｒ’を提供するために、傾きＧｒが、ピクセル・シェーダＰＳによって供給される、ピクセル毎のスクリーン空間の傾きスケール要素Ｓｃによって変更される。傾きスケール要素Ｓｃは、様々なピクセルの解像度またはサンプル分布を有するディスプレイ・デバイス１１６の領域間で滑らかに遷移する傾き値Ｇｒ’を提供するために選択され得る。
【００５３】
いくつかの実施態様では、ピクセル・シェーダＰＳは、ピクセル位置ＸＹ毎にテクスチャ座標ＵＶ及び傾きスケール要素Ｓｃを生成し、テクスチャ・ユニット１０６に各テクスチャ・マッピング操作のための座標セットを提供することができる。これにより、テクスチャ空間の傾き値Ｇｒを生成し、訂正されたテクスチャ空間の傾き値Ｇｒ’を提供するためにそれらを変更し得る。
【００５４】
他の実施態様では、ピクセル・シェーダＰＳがテクスチャ空間座標ＵＶ、ピクセル位置ＸＹからの十分な差異Ｇｒ、及び傾きスケール要素Ｓｃを計算し、これら値すべてをテクスチャ・ユニット６０６に渡し、テクスチャ・ユニット６０６に、依然としてあらゆる訂正を標準的に非正規直交性について実施し、次いで傾きスケール要素Ｓｃを適用して調整された傾き値Ｇｒ’を得なければならないことを示すことができる。
【００５５】
他の代替的な実施態様では、ピクセル・シェーダＰＳは、テクスチャ空間座標ＵＶ及び十分に訂正された傾きＧｒ’を計算し、それらをテクスチャ・ユニットに渡し、テクスチャ・ユニット１０６に、あらゆる必要な訂正がすでにソフトウェア内で適用されたこと、及び、訂正された傾きＧｒ’を、ＬＯＤを選択するように使用されるものとすることを示すことができる。
【００５６】
ピクセル毎の傾き調整
本開示の態様は、テクスチャ・ユニット１０６に使用されて、グラフィック・パイプラインにおいて原形に適用されるテクスチャに関するｍｉｐｍａｐレベル（ＬＯＤ）を判定する傾きＧｒの調整を対象としている。基本的なコンセプトは図２Ｅに示されている。図２Ｅは、２つの直角のカッド（Ｅ０及びＥ１）の４つのピクセル・サンプルのテクスチャＵＶ座標を示している。カッドＥ０では、ＸＹ空間内のすべてのサンプル・ポイントが、水平方向および垂直方向に１つのスクリーン・ピクセルの間隔を伴って直交格子上にある。
【００５７】
カッドＥ０では、ＵＶ空間内のテクスチャの傾きＧｒが、テクスチャ座標ＵＶから瑣末に計算される。テクスチャの傾きＧｒは、左上、右上、及び左下のピクセルのテクスチャ座標ＵＶ、それぞれ（ｕ０，ｖ０）、（ｕ１，ｖ１）、及び（ｕ２，ｖ２）に関して、以下のように数学的に表現され得る。
ｄｕ＿ｄｘ  ＝  ｕ１−ｕ０
ｄｖ＿ｄｘ  ＝  ｖ１−ｖ０
ｄｕ＿ｄｙ  ＝  ｕ２−ｕ０
ｄｖ＿ｄｙ  ＝  ｖ２−ｖ０
【００５８】
ｄｕ＿ｄｘ  ＝  ｕ１−ｕ０などのこれら計算は、ピクセル・シェーダＰＳが、ソフトウェアが計算した値でそれらをオーバーライドすることを選択しない場合に、テクスチャ・ユニット・ハードウェア１０６によって実施され得る。テクスチャの傾きＧｒは次いで、テクスチャ・ユニット１０６によって使用されて、サンプルに対するｍｉｐｍａｐＬＯＤレベルを判定する。
【００５９】
本開示の態様によれば、傾きＧｒ  ｄｕ＿ｄｘ、ｄｖ＿ｄｘ、ｄｕ＿ｄｙ、ｄｖ＿ｄｙは、ピクセル毎ベースで調整されて、ディスプレイにわたるピクセル解像度の不連続性に対処する。たとえば、特定のディスプレイ構成（たとえば、ヘッド・マウント・ディスプレイ（ＨＭＤ）の用途）では、ディスプレイの異なる部分には異なる解像度を使用することが有利である。そのような場合、ピクセル毎ベースで傾きをスケーリングして、異なる解像度の隣接する領域間の境界またはその付近においてテクスチャ・フィルタリングで変化を平滑化することが非常に有利である。基本的なコンセプトは図２Ａ〜２Ｃに記載されている。
【００６０】
図２Ａ及び図２Ｂに示すように、表示エリアは、様々なピクセルの解像度の２つ以上の領域２０１、２０２、２０３、２０４、２０５、２０６、２０７、２０８、及び２０９に分けられ得る。各領域は、たとえばヘッド・マウント・ディスプレイ（ＨＭＤ）の場合に、ディスプレイの領域に沿っている立体角に関連する解像度を有し得る。限定ではなく例として、中央領域２０５は名目または基準ピクセル解像度Ｒ０を有し得る。エッジ領域２０２、２０４、２０６、２０８は、基準解像度の半分である１／２Ｒ０を有し得る。たとえば、これら領域のピクセルの半分が「オフにされて」いるか、ディスプレイ上にレンダリングされていない。コーナ領域２０１、２０３、２０７、及び２０９は、基準解像度の４分の１である１／４Ｒ０を有し得る。たとえば、これら領域のピクセルの４分の３が「オフにされて」いるか、ディスプレイ上にレンダリングされていない。図２Ｂは、各領域の解像度に応じた様々なサイズに引き出された、これら様々な領域を示している。
【００６１】
傾きは、隣接する領域間の境界付近のピクセルについて調整される必要がある場合がある。たとえば、図２Ｃでは、セクション間の境界をマークする線が移動された。しかし、隣り合う領域間のテクスチャ・フィルタリングにおける不連続性により境界が視認可能になる。ＧＰＵは、領域間の境界付近のピクセルについて傾きを調整して、不連続性を滑らかにして、境界をより視認しにくくするように構成することができる。たとえば、図２Ｄに示すように、図２Ｃにおける列Ｄ−Ｄ’の全解像度の中央領域２０５における選択されたピクセル２１１、２１２に関する水平方向の傾きは、半解像度のエッジ領域２０４、２０６に向かって漸次ぼやけていくテクスチャ・フィルタリングを提供するようにスケーリングすることができ、それにより、境界の両側ですぐ隣接する２つのピクセルがほぼ同じＭＩＰ  ＬＯＤレベルにアクセスするようになっている。
【００６２】
代替的には、半解像度のエッジ領域２０４、２０６の傾きは、全解像度の中央領域２０５に向かって漸次シャープになるようにスケーリングすることもできる。
【００６３】
異なる解像度に対処するための傾きの一般化された調整は、図２Ｅを参照して理解することができる。図２Ｅは、ＵＶ空間において、水平スクリーン・エリアにおける境界の両側の２つの隣接するピクセルのカッドＥ０及びＥ１に関するテクスチャ座標を示している。図２Ｃのスクリーン空間において対応して分類された長方形でも示されている。図２Ｅでは、Ｅ０とＥ１の間のサンプルの水平方向の密度を半分にすることで、Ｅ０について計算される（ｄｕ＿ｄｘ，ｄｖ＿ｄｘ）の長さの約２倍の、Ｅ１に関する（ｄｕ＿ｄｘ，ｄｖ＿ｄｘ）が得られる。このことはとりわけ、Ｅ０に関するよりも低い、Ｅ１に関するディテールのレベルを選択することに繋がり得る。なお、カッドＥ０及びカッドＥ１に関するこれら傾きの計算は、約１つのテクスチャ・ピクセル（「テクセル」）を有する各スクリーン・ピクセルをカバーするｍｉｐｍａｐ  ＬＯＤを各々が正確に選択することにおいて、局所的には正確であるが、テクスチャ・フィルタリングにおけるこの突然の変化により、Ｅ０と同様のサンプル・パターンのカッドと、Ｅ１と同様のサンプル・パターンのカッドとの間の境界の両側において出力画像の表示における視認可能な変化を生じ得る。この境界の視認性は、滑らかに変化するｍｉｐｍａｐ  ＬＯＤの選択を提供するために、境界付近のピクセルの傾き値の調整を選択することによって低減され得る。
【００６４】
ＵＶ空間における傾き（ｄｕ＿ｄｘ，ｄｖ＿ｄｘ）、（ｄｕ＿ｄｙ，ｄｖ＿ｄｙ）は、通常は各カッドについて計算される。このことは、いくつかの他の場合では、ローカル・サンプル分布の非正規直交性についての訂正を含む場合がある。傾きは次いで、ピクセル毎ベースで、ピクセル毎の傾きのスケール要素ｓｃａｌｅＸ、ｓｃａｌｅＹで乗算されて、テクスチャ・ユニットが使用して適切なｍｉｐｍａｐレベルを判定する、最終的な調整された傾き（ｄｕ＿ｄｘ’，ｄｖ＿ｄｘ’）、（ｄｕ＿ｄｙ’，ｄｖ＿ｄｙ’）を提供する。
ｄｕ＿ｄｘ’  ＝  ｄｕ＿ｄｘ  ＊  ｓｃａｌｅＸ
ｄｕ＿ｄｙ’  ＝  ｄｕ＿ｄｙ  ＊  ｓｃａｌｅＹ
ｄｖ＿ｄｘ’  ＝  ｄｖ＿ｄｘ  ＊  ｓｃａｌｅＸ
ｄｖ＿ｄｙ’  ＝  ｄｖ＿ｄｙ  ＊  ｓｃａｌｅＹ
【００６５】
傾きのスケール要素ｓｃａｌｅＸ及びｓｃａｌｅＹは、ピクセル・シェーダＰＳによって計算され、テクスチャ・ユニット１０６に渡される。テクスチャ・ユニット１０６は、それらを使用して最終的な調整された傾きを計算する。
【００６６】
上述の傾きのスケーリングの訂正は、各テクスチャ座標Ｕ及びＶに同一に適用されるものであり、このため、１次元の座標（Ｕ）、２次元の座標（ＵＶ）、または３次元の座標（ＵＶＷ）に瑣末に延ばすことができることを理解されたい。
【００６７】
傾きのスケール要素ｓｃａｌｅＸ、ｓｃａｌｅＹに適切な値は、異なるピクセル解像度の隣接する領域の境界に近い、選択されたピクセルに適用される傾きのスケール要素の値を繰り返すことによって経験的に判定され得る。傾きのスケール要素に適切な値の範囲は、隣接する領域の相対的なピクセル解像度から判定することができる。たとえば、列Ｄ−Ｄ’に沿って、ピクセルの解像度が、領域２０４の１／２Ｒから領域２０５のＲに変化し、再び領域２０６の１／２Ｒに変化する。傾きのスケール値ｓｃａｌｅＸは、領域２０４と２０６との境界に近い領域２０５のいくつかのピクセルにわたって約１から約２に遷移する。図２Ｅでは、２の傾きｓｃａｌｅＸの要素の領域２０５からのカッドＥ０への適用が、領域２０６からの隣接するカッドＥ１について計算された傾きに概ねマッチする（ｄｕ＿ｄｘ’，ｄｖ＿ｄｘ’）になり、このため、スケーリングが訂正された傾きの連続性と、テクスチャ・フィルタリングＬＯＤの選択を形成することを見て取ることができる。同様に、傾きのスケール値ｓｃａｌｅＸ、ｓｃａｌｅＹは、約１の値から約２の値に、領域２０７と２０９との境界に近い領域２０８のいくつかのピクセルにわたって遷移する。傾きのスケール要素は、いくつかのピクセル、たとえば約４から８のピクセルにわたって、２つの値の間で変化し得る。
【００６８】
テクスチャ・ユニット１０６は、最終的な調整された傾きを使用して、最終的な調整された傾きからの１つまたは複数の原形への適用のための適切なＬＯＤを選択し得る。
【００６９】
さらなる態様
本開示のさらなる態様には、ピクセル・サンプル位置毎のテクスチャ座標の１つまたは複数のセットを受信あるいは生成することと、１つまたは複数の原形についてテクスチャ空間の傾き値を計算することと、傾き値を変更して、異なるピクセル解像度を有するディスプレイ・デバイスの領域間で傾き値を滑らかに遷移させるように構成されたピクセル毎の傾きスケール要素を生成及び適用することと、を含むグラフィック処理方法が含まれる。
【００７０】
別の追加の態様は、前述の方法を実施するように構成されたグラフィック処理システムである。
【００７１】
さらに別の追加の態様は、実行されると前述の方法を実施する、コンピュータ実施可能な指示を内部に有するコンピュータ可読媒体である。
【００７２】
さらなる一態様は、前述の方法を実施するコンピュータ可読指示を伴う電磁信号または他の信号である。
【００７３】
別のさらなる態様は、通信ネットワークからダウンロード可能であり、及び／または、コンピュータ可読及び／またはマイクロプロセッサで実行可能な媒体に記憶されたコンピュータ・プログラム製品であって、上述の方法を実施するプログラム・コード指示を備えることを特徴とする。
【００７４】
上記は、本発明の好ましい実施形態の完全な記載であるが、様々な代替形態、変形形態、及び均等を使用することが可能である。したがって、本発明の範囲は、上述の記載を参照して判定されるべきではなく、代わりに、添付の特許請求の範囲を参照して、その均等の全範囲を伴って判定されるべきである。本明細書に記載の任意の特徴は、好ましいか好ましくないかに関わらず、本明細書に記載の任意の他の特徴と、好ましいか好ましくないかに関わらず、組み合わせてもよい。添付の特許請求の範囲においては、不定冠詞「Ａ」または「Ａｎ」は、別様に明確に述べられていなければ、その冠詞に続くアイテムの１つまたは複数の量に言及する。添付の特許請求の範囲は、「ｍｅａｎｓ  ｆｏｒ」とのフレーズを使用して、そのような限定が所与の請求項に明確に列挙されていない限り、ミーンズプラスファンクションの限定として解されるものではない。
【図１Ａ】
2018129051.tif 000003
【図１Ｂ】
2018129051.tif 000004
【図２Ａ】
2018129051.tif 000005
【図２Ｂ】
2018129051.tif 000006
【図２Ｃ】
2018129051.tif 000007
【図２Ｄ】
2018129051.tif 000008
【図２Ｅ】
2018129051.tif 000009