(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022078281
(43)【公開日】2022-05-24
(54)【発明の名称】非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
(51)【国際特許分類】
G06T 15/04 20110101AFI20220517BHJP
【FI】
G06T15/04
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022039030
(22)【出願日】2022-03-14
(62)【分割の表示】P 2020045666の分割
【原出願日】2015-03-23
(31)【優先権主張番号】14/246,068
(32)【優先日】2014-04-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】サーニー、マーク エヴァン
(57)【要約】 (修正有)
【課題】スクリーン空間内の非正規直交グリッドに基づいて、ピクセル位置に対するテクスチャ空間グラデーション値を生成するコンピュータグラフィックス方法及び非一時的コンピュータ可読媒体を提供する。
【解決手段】コンピュータグラフィックス方法は、テクスチャユニットを有するコンピュータグラフィックス処理デバイス(GPU)において、ピクセルサンプル位置が、シーン空間において非正規直交グリッドに基づく場合、テクスチャユニットが、テクスチャ空間グラデーション値を、たとえばシェーダユニットから直接受けるか又はシェーダユニットによって与えられたテクスチャ座標から生成し、その後、グラデーション値を正規直交スクリーン空間グリッドの使用から発生したものに調整するように構成された変換に、グラデーション値を適用する。
【選択図】
図6B
【特許請求の範囲】
【請求項1】
コンピュータグラフィックス方法であって、
テクスチャユニットが、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換を、スクリーン空間内のサンプル点の非正規直交グリッドに基づいて、1以上のプリミティブに対するテクスチャ空間グラデーション値に適用するステップとを含む、コンピュータグラフィックス方法。
【請求項2】
前記テクスチャユニットが、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはシステムオンチップ(SOC)である、請求項1に記載の方法。
【請求項3】
前記非正規直交グリッドが、交互の列パターンである、請求項1に記載の方法。
【請求項4】
前記非正規直交グリッドが、交互の行パターンである、請求項1に記載の方法。
【請求項5】
前記非正規直交グリッドが、「市松模様」パターンである、請求項1に記載の方法。
【請求項6】
前記変換が、ピクセルごとの変更を含む、請求項1に記載の方法。
【請求項7】
前記テクスチャユニットが、ピクセルサンプル位置差分値に前記変換を適用するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記テクスチャユニットが、前記グラデーション値を用いて、1以上のプリミティブに適用されるテクスチャの複数の詳細レベルから、詳細レベルを選択するステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記テクスチャユニットが、前記1以上のプリミティブに前記テクスチャを適用するステップをさらに含む、請求項8に記載の方法。
【請求項10】
グラフィックス処理装置(GPU)に結合されたディスプレイユニットが、前記1以上のプリミティブに適用された前記テクスチャを含む画像を表示するステップをさらに含む、請求項9に記載の方法。
【請求項11】
実行されたときにグラフィックス処理方法を実施するコンピュータ実行可能命令を格納した非一時的コンピュータ可読媒体であって、前記方法は、
テクスチャユニットが、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換を、スクリーン空間内のサンプル点の非正規直交グリッドに基づいて、1以上のプリミティブに対するテクスチャ空間グラデーション値に適用するステップとを含む、非一時的コンピュータ可読媒体。
【請求項12】
前記非正規直交グリッドが、交互の列パターンである、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記非正規直交グリッドが、交互の行パターンである、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記非正規直交グリッドが、「市松模様」パターンである、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記変換が、ピクセルごとの変更を含む、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記テクスチャユニットが、ピクセルサンプル位置差分値に前記変換を適用するステップをさらに含む、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記テクスチャユニットが、前記グラデーション値を用いて、1以上のプリミティブに適用されるテクスチャの複数の詳細レベルから、詳細レベルを選択するステップをさらに含む、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記テクスチャユニットが、前記1以上のプリミティブに前記テクスチャを適用するステップをさらに含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
グラフィックス処理装置(GPU)に結合されたディスプレイユニットが、前記1以上のプリミティブに適用された前記テクスチャを含む画像を表示するステップをさらに含む、請求項18に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Tobias Berghoffへの「METHOD FOR EFFICIENT CONSTRUCTION OF HIGH RESOLUTION DISPLAY BUFFERS」と題する米国特許出願第14/246,064号(代理人整理番号SCEA13055US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0002】
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Tobias Berghoffへの「GRAPHICS PROCESSING ENHANCEMENT BY TRACKING OBJECT AND/OR PRIMITIVE IDENTIFIERS」と題する米国特許出願第14/246,067号(代理人整理番号SCEA13056US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0003】
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Tobias Berghoffへの「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY CHANGING ACTIVE COLOR SAMPLE COUNT WITHIN MULTIPLE RENDER TARGETS」と題する米国特許出願第14/246,061号(代理人整理番号SCEA13058US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0004】
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Mark Evan Cernyへの「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY ALTERING RASTERIZATION PARAMETERS」と題する米国特許出願第14/246,063号(代理人整理番号SCEA13059US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0005】
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Mark Evan Cernyへの「VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION IN GRAPHICS PROCESSING BY APPROXIMATING PROJECTION OF VERTICES ONTO CURVED VIEWPORT」と題する米国特許出願第14/246、066号(代理人整理番号SCEA13060US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0006】
本出願は、2014年4月5日出願の、本発明の譲受人に譲渡された同時継続中の、Mark Evan Cernyへの「GRADIENT ADJUSTMENT FOR TEXTURE MAPPING FOR MULTIPLE RENDER TARGETS WITH RESOLUTION THAT VARIES BY SCREEN LOCATION」と題する米国特許出願第14/246、062号(代理人整理番号SCEA13061US00)に関連し、その全内容は、参照により本明細書に組み入れられる。
【0007】
[技術分野]
本開示の態様は、コンピュータグラフィックスに関する。本開示は、特にテクスチャマッピングのために用いられるグラデーションの調整に関する。
【背景技術】
【0008】
グラフィックス処理は、典型的に2つの処理デバイス、すなわち中央処理装置(CPU)及びグラフィックス処理装置(GPU)の連携を含む。GPUは、ディスプレイへの出力を意図したフレームバッファ内での画像の作成を加速させるように設計された、特化された電子回路である。GPUは、組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、ポータブルゲーム機、ワークステーション、及びゲームコンソールで用いられる。GPUは、典型的にコンピュータグラフィックスの操作において効率的であるように設計される。GPUは、多くの場合、大きなデータブロックの処理が並行して行われるアルゴリズムに対して、GPUが汎用CPUよりもさらに効率的となる、高い並列処理アーキテクチャを有する
【0009】
CPUは、特定のグラフィックス処理タスクを実施するための、たとえば画像内の以前のフレームに対して変更された特定のテクスチャをレンダリングするためのコマンドをGPUに、送り得る。特定のアプリケーションの仮想環境の状態に対応するグラフィックスレンダリングコマンドを発行するために、これらの描画コマンドをCPUによってグラフィックスアプリケーションインターフェイス(API)と連携させてもよい。
【0010】
特定のプログラムのためのテクスチャをレンダリングするために、GPUは、「グラフィックスパイプライン」において一連の処理タスクを行って、仮想環境内の映像を、ディスプレイ上にレンダリングすることができる画像に変換し得る。典型的なグラフィックスパイプラインは、仮想空間内の仮想オブジェクトでのある特定のレンダリングまたはシェーディング作業、出力表示に好適なピクセルデータを作り出すシーンでの仮想オブジェクトの変換及びラスタ化、及びディスプレイ上にレンダリングされた画像を出力する前のピクセル(またはフラグメント)への付加的なレンダリングタスクを行うことを含み得る。
【0011】
画像の仮想オブジェクトは、仮想空間において、プリミティブとして知られる形状的観点で描かれることが多く、これらは共に、仮想シーン内のオブジェクトの形状を形成する。たとえば、レンダリングされる三次元仮想世界内のオブジェクトは、三次元空間におけるそれらの座標の観点から定義された頂点を有する、一連の別個の三角形のプリミティブに縮小される場合があり、それによって、これらのポリゴンがオブジェクトの面を形成する。各ポリゴンは、所与のポリゴンを他のポリゴンと区別するためにグラフィックス処理システムによって用いられることができる、関連付けられたインデックスを有し得る。同様に、各頂点は、所与の頂点を他の頂点と区別するために用いられることができる、関連付けられたインデックスを有し得る。グラフィックスパイプラインは、これらのプリミティブに対してある特定の作業を行って、仮想シーン用の映像を作り出し、このデータを、ディスプレイのピクセルによる再生に好適な二次元形式に変換し得る。グラフィックスプリミティブ情報(または単に「プリミティブ情報」)という用語は、本明細書で用いられる場合、グラフィックスプリミティブを表すデータを意味するために用いられる。そのようなデータは、頂点情報(たとえば、頂点の場所または頂点のインデックスを表すデータ)と、ポリゴン情報、たとえば、ポリゴンインデックス、及び特定の頂点と特定のポリゴンを関連付ける情報とを含むが、これらに限定されない。
【0012】
GPUは、シェーダとして周知であるプログラムを実施することによって、グラフィックスパイプラインのレンダリングタスクを行い得る。典型的なグラフィックスパイプラインは、頂点ごとにプリミティブのある特定のプロパティを操作し得る頂点シェーダと、それに加えて、グラフィックスパイプラインにおいて頂点シェーダの下流で動作し、かつディスプレイにピクセルデータを送信する前に、ピクセルごとにある特定の値を操作し得るピクセルシェーダ(「フラグメントシェーダ」としても知られる)とを含み得る。フラグメントシェーダは、プリミティブにテクスチャを適用することに関連する値を操作し得る。パイプラインは、パイプラインのさまざまな段階で他のシェーダ、たとえば頂点シェーダの出力を用いてプリミティブの新しいセットを生成するジオメトリシェーダ、及びGPUによって実施されてある特定の他の一般的な演算タスクを行い得る演算シェーダ(CS)をさらに含み得る。
【0013】
プリミティブにテクスチャをマッピングするプロセスの一部は、スクリーン空間内のピクセル位置から、テクスチャ空間内のグラデーションを算出することを含む。グラデーションの算出は、多くの場合、ピクセル位置が正方正規直交グリッドに基づくことを前提とする。
【発明の概要】
【発明が解決しようとする課題】
【0014】
本開示が生じるのはこの文脈においてである。
【課題を解決するための手段】
【0015】
本開示の教示は、以下に続く詳細な説明を添付の図面と共に考察することによって容易に理解されることができる。
【図面の簡単な説明】
【0016】
【
図1】
図1A~1Cは、テクスチャの適用における従来のグラデーション変換を図示する。
【
図2】
図2A~2Cは、本開示の態様による、テクスチャの適用におけるグラデーション変換を図示する。
【
図3】
図3A~3Bは、本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット(MRT)を図示する。
【
図4】本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット(MRT)のセットアップを図示する。
【
図5】本開示の態様による、時間的アンチエイリアシングで用いられるマルチプルレンダーターゲット(MRT)のセットアップを図示する。
【
図6A】本開示の態様による、グラフィックス処理システムのブロック図である。
【
図6B】グラフィックス処理パイプラインのブロック図である。
【発明を実施するための形態】
【0017】
以下に続く詳細な説明は、例示を目的として多くの具体的な詳細を含むが、当業者であれば誰もが、以下に続く詳細の多くの変形及び代替が、本発明の範囲内であることを理解するであろう。したがって、以下に記載される本発明の代表的な実施形態は、特許請求の範囲に係る発明に対するあらゆる普遍性を失うことなく、またそれに対する限定を課することなく述べられている。
【0018】
序
ある特定のグラフィックスアプリケーションでは、ビットマップテクスチャは、ポリゴン上に「ペイント」される。そのような場合では、出力デバイスによって引き出される各ピクセル値は、テクスチャからサンプリングされた1以上のピクセルから判定される。本明細書で用いられる場合、ビットマップは概して、一般的にはコンピュータモニタ、紙、または他のディスプレイデバイス上のピクセルの矩形のグリッド、すなわち色点を表すデータファイルまたは構造を表す。各ピクセルの色は、個別に定義される。たとえば、着色ピクセルは、3バイト、すなわち赤、緑、及び青に対して各々1バイトで定義され得る。ビットマップは、典型的には、デバイステクスチャサンプリングユニットによってサポートされたデータ形式とビット単位で対応し、これは、典型的にはある範囲のオプションを含み得、例えばチャネルごとのさまざまなビット深度またはブロック圧縮を、おそらくはディスプレイのビデオメモリに格納されであろうものと同じ形式で、または場合によってはデバイス非依存ビットマップとして含む。ビットマップは、画像のピクセルでの幅及び高さと、ピクセルあたりのビット数とによって特徴付けられ、これによって、表すことができる色数が決定される。一般にはビットマップでは格納されないが、多くのデータ形式は、テクスチャリング形式とビット単位で重複する。いくつかのディスプレイ形式は、テクスチャリングハードウェアによってサポートされておらず(たとえばYUV)、またいくつかのテクスチャリング形式は、ディスプレイハードウェアによってサポートされていない(たとえばブロック圧縮)。重複するデータ形式は、さまざまなチャネルごとのビットRGBAのオプションを含む。
【0019】
テクスチャビットマップを平面に転送するプロセスは、多くの場合、テクスチャMIPマップ(ミップマップとしても知られる)の使用を伴う。名称の「MIP」の文字は、「狭い空間に多く」を意味するラテン語の文言multum in parvoの頭字語である。そのようなミップマップは、レンダリング速度を上げ、エイリアシングアーチファクトを低減させることが意図された、メインテクスチャに付随する、予め算出されて最適化されたビットマップ画像の一群である。
【0020】
ミップマップセットの各ビットマップ画像は、メインテクスチャの一形態であるが、ある特定の低減された詳細レベル(LOD)である。メインテクスチャは、視像がメインテクスチャを十分詳細に描画するために十分であるときに、依然として用いられるが、最終的な画像をレンダリングするグラフィックスハードウェアは、テクスチャを距離を置いて、または小さなサイズで見るときに好適なミップマップレベルに切り替える(すなわち、2つの最も近いレベル間で補間する)。レンダリング速度が向上するが、これは処理されているテクスチャピクセル数(「テクセル」)をはるかに少なくすることができ、それらのメモリ内での分布が、シンプルなテクスチャによるものよりも一貫性のあるものとなるためである。アーチファクトを低減させ得るが、これはミップマップ画像が事実上すでにアンチエイリアスであり、リアルタイムレンダリングハードウェアの負荷の一部が取り除かれるためである。
【0021】
ミップマップレベル間の混合は、典型的には何らかの形のテクスチャフィルタリングを伴う。本明細書で用いられる場合、テクスチャフィルタリングは、テクセル(テクスチャのピクセル)を3Dオブジェクト上の点にマッピングするための方法を指す。単純なテクスチャフィルタリングアルゴリズムは、オブジェクト上の点を取り、その場所に最も近接したテクセルを照合検索し得る。そして、結果として得られた点は、その1つのテクセルからその点自体の色を得る。この単純な手法は、最近傍フィルタリングと称される場合がある。より高度な手法では、1つの点につき2以上のテクセルを組み合わせる。実際に最も頻繁に用いられるアルゴリズムは、ミップマップを用いるバイリニアフィルタリング及びトリリニアフィルタリングである。異方性フィルタリング及びより高次の方法、たとえば二次または三次フィルタリングは、結果として画像の質がさらに高くなる。
【0022】
テクスチャは、典型的には正方形であり、2の累乗に等しい辺長を有する。たとえば、テクスチャが、256×256ピクセルの基本サイズを有すると、その場合、関連付けられたミップマップセットは、各々前のものの半分のサイズ、すなわち128×128ピクセル、64×64、32×32、16×16、8×8、4×4、2×2、及び1×1(単一ピクセル)の一続きの8つの画像を包含し得る。たとえば、このテクスチャが、スクリーン空間の40×40ピクセル部分に対して適用されると、その場合64×64の補間及び32×32ミップマップが用いられる。本明細書で用いられる場合、「スクリーン空間」という用語は、一般的には、グラフィックスパイプライン内のディスプレイバッファによって用いられる座標のセットを指す。
【0023】
適切なミップマップレベルを判定するプロセスにおける鍵となる作業は、スクリーン空間(XY座標空間と称される場合がある)から、ピクセル位置の対応する領域について、テクスチャ座標空間(UV座標空間と称される場合がある)内でカバーされる領域を決定することを伴う。一般論として、補間されるかまたは演算されたテクスチャUV座標のスクリーン空間グラデーションは、シーンの関連する部分において、XY空間ピクセル位置でサンプリングされたU値及びV値から算出される。いくつかの実施では、テクスチャ座標グラデーションは、各スクリーン空間方向X及びYについて、スクリーンX座標が変化しかつスクリーンYが固定されたときに生じるテクスチャ座標の変化(dU/dX、dV/dXと称される場合がある)、及びスクリーンY座標が変化しかつスクリーンXが固定されたときに生じるテクスチャ座標の変化(dU/dY、dV/dYと称される場合がある)を算出することによって決定される。非異方性テクスチャ照合については、これら2者間でのより大きな規模を有するグラデーションを用いて、詳細レベル(LOD)を選択する。異方性テクスチャリングについては、より小さな規模のグラデーションを用いて(LOD)を選択し、テクスチャは、より大きな規模のグラデーションに対応する線でサンプリングされる。
【0024】
また、上述の算出は、1、2、または3以上のテクスチャ座標寸法に汎用化されることができることに留意すべきである。典型的なハードウェアは、テクスチャの次元数に依存して、U空間内の1Dグラデーション、もしくはUV空間内の2Dグラデーション、またはUVW-空間内の3Dグラデーションを算出する。このように、本開示の態様は、2つのテクスチャ座標寸法を伴う実施に限定されない。
【0025】
しかしながら、適切なミップマップレベルを判定する本プロセスは、テクスチャが適用されるスクリーン空間の関連部分が、「正方形」の正規直交のサンプル配列である、すなわち、スクリーンピクセル内のサンプル点が、スクリーン空間内で垂直及び水平方向に向かって均等に間隔を置かれているという前提に基づいている。しかしながら、スクリーン空間の関連部分が非正規直交である、すなわちサンプルが規則的な正方形グリッドに配列されていないという状況が起こる可能性がある。そのような状況では、グラデーションを調整して、それによってテクスチャがオブジェクトに正しく適用されるようにする必要がある。
【0026】
システム及びデバイス
本開示の態様は、テクスチャマッピングにおけるグラデーション調整を実施するように構成されたグラフィックス処理システムを含む。例示を目的として、かつ限定を目的とせずに、
図6Aは、本開示の態様による実施するグラフィックス処理に用いられ得るコンピュータシステム600のブロック図を例示する。本開示の態様によれば、システム600は、組み込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、ポータブルゲーム機、ワークステーション、ゲームコンソール等であってもよい。
【0027】
システム600は、一般的には、中央処理装置(CPU)602と、グラフィックス処理装置(GPU)604と、CPU及びGPUの両方がアクセス可能であるメモリ608とを含み得る。CPU602及びGPU604は、1以上のプロセッサコア、たとえば単一のコア、2つのコア、4つのコア、8つのコア、またはそれより多いコアを各々含み得る。メモリ608は、アドレス可能メモリ提供する集積回路、たとえば、RAM、DRAM等の形状であってもよい。メモリ608は、グラフィックスリソースを格納し、グラフィックスレンダリングパイプラインのためのデータのグラフィックスバッファ605を一時的に格納し得るグラフィックスメモリ628を含んでもよい。グラフィックスバッファ605は、たとえば頂点パラメータ値を格納するための頂点バッファ、頂点インデックスを保持するためのインデックスバッファ、グラフィックスコンテンツの深度値を格納するための深度バッファ(たとえばZバッファ)、ステンシルバッファ、ディスプレイに送られる完成フレームを格納するためのフレームバッファ、及び他のバッファを含んでもよい。
図6Aに示された例では、グラフィックスメモリ628は、メインメモリの一部として示されている。代替の実施では、グラフィックスメモリは、別個の構成要素である可能性があり、GPU604に組み込まれるかもしれない。
【0028】
例示を目的として、かつ限定を目的とせずに、CPU602及びGPU604は、データバス609を用いてメモリ608にアクセスし得る。いくつかの場合では、システム600が2以上の異なるバスを含むことが有用であることがある。メモリ608は、CPU602及びGPU604によってアクセスされることができるデータを包含し得る。GPU604は、グラフィックス処理タスクを並行して行うように構成された複数の演算ユニットを含み得る。各演算ユニットは、それ自体専用のローカルメモリストア、たとえばローカルデータシェアを含み得る。
【0029】
CPUは、グラフィックス、コンパイラ、及びグラフィックスAPIを利用するアプリケーションを含み得るCPUコード603Cを実行するように構成されてもよい。グラフィックスAPIは、GPUによって実施されるプログラムに、描画コマンドを発行するように構成されることができる。また、CPUコード603Cは、物理学シミュレーション及び他の機能を実施してもよい。GPU604は、上述のように動作するように構成され得る。特に、GPUは、シェーダ、たとえば上述のような演算シェーダCS、頂点シェーダVS、及びピクセルシェーダPSを実施し得るGPUコード603Gを実行し得る。演算シェーダCSと頂点シェーダVSとの間のデータの受け渡しを助けるために、システムは、フレームバッファFBを含み得る1以上の環状バッファ605を含んでもよい。また、GPUコード603Gは、任意には、他のタイプのシェーダ(図示せず)、たとえばピクセルシェーダまたはジオメトリシェーダを実施してもよい。各演算ユニットは、それ自体専用のローカルメモリストア、たとえばローカルデータシェアを含み得る。GPU604は、グラフィックスパイプラインの一部として、プリミティブにテクスチャを適用するためのある特定の作業を行うように構成されたテクスチャユニット606を含み得る。
【0030】
シェーダは、スクリーン空間内の非正規直交グリッドに基づく1以上の対応するピクセルサンプル位置に対して、1以上のテクスチャ座標値UVのセット、及びさらに場合によっては座標grごとのテクスチャ空間グラデーション値を受けるかまたは生成するように構成されたピクセルシェーダPSを含み得る。これらのピクセルサンプル位置は、グラフィックスパイプラインのより早い段階で定義された1以上のプリミティブから導き出され得る。テクスチャユニット606は、これらのテクスチャ空間グラデーション値grを受けるか、またはそれらをテクスチャ座標値UVから算出し、その後調整マトリックスtransを適用して、ピクセルサンプル位置の非正規直交スクリーン空間グリッドの使用から発生するエイリアシングアーチファクトがほぼない調整されたグラデーション値Grを得るように構成される。
【0031】
例示を目的として、かつ限定を目的とせずに、テクスチャユニット606は、特殊用途ハードウェア、たとえば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはシステムオンチップ(SoCまたはSOC)として実施され得る。
【0032】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、特定用途向け集積回路(ASIC)は、汎用が意図されるのではなく、特定の使用向けにカスタマイズされた集積回路である。
【0033】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、フィールドプログラマブルゲートアレイ(FPGA)は、製造後に顧客または設計者によって構築される、したがって「フィールドプログラマブル」(現場でプログラム可能)であるように設計された集積回路である。FPGA設定は、一般的には、ASICに用いられるものと同様のハードウェア記述言語(HDL)を用いて特定される。
【0034】
本明細書で用いられる場合、及び当業者には一般的に理解されるように、システムオンアチップまたはシステムオンチップ(SoCまたはSOC)は、コンピュータまたは他の電子システムのすべての構成要素を、単一のチップに組み込んだ集積回路(IC)である。システムオンチップは、デジタル、アナログ、混合信号、及び多くの場合高周波機能を、すべて単一のチップ基板上に包含し得る。典型的なアプリケーションは、組み込みシステムの領域内である。
【0035】
典型的なSoCは、以下のハードウェア構成要素を含む。
マイクロコントローラ、マイクロプロセッサ、またはデジタル信号プロセッサ(DSP)コア等の1以上のプロセッサコア。
リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、及びフラッシュメモリ等のメモリブロック。
オシレータまたは位相ロックループ等のタイミング源。
カウンタ/タイマ、リアルタイムタイマ、またはパワーオンリセットジェネレータ等の周辺機器。
業界標準規格類、たとえばユニバーサルシリアルバス(USB)、ファイヤワイヤ、イーサネット(登録商標)、汎用同期非同期式伝送装置(USART)、シリアルペリフェラルインターフェイス(SPI)バス等の外部インターフェイス。
アナログ・デジタルコンバータ(ADC)及びデジタル・アナログコンバータ(DAC)を含むアナログインターフェイス。
電圧調整器及び電力管理回路。
【0036】
これらの構成要素は、独自仕様かあるいは業界標準のバスによって接続される。ダイレクトメモリアクセス(DMA)コントローラは、プロセッサコアを経由せずに、外部インターフェイスとメモリとの間でデータを直接ルーティングし、それによってSoCのデータスループットを向上させる。
【0037】
典型的なSoCは、上述のハードウェア構成要素と、プロセッサコア、周辺機器、及びインターフェイスを制御する実行可能命令(たとえば、ソフトウェアまたはファームウェア)との両方を含む。
【0038】
本開示の態様によれば、テクスチャユニット606の機能のいくつかまたはすべては、ソフトウェアプログラム可能汎用コンピュータプロセッサによって実行される、適切に構成されたソフトウェア命令によって代替的に実施され得る。そのような命令は、コンピュータ可読媒体、たとえば、メモリ608または記憶デバイス615において具現化され得る。
【0039】
システム600は、周知の支援機能610をさらに含んでもよく、これはシステムの他の構成要素と、たとえばバス609を介して通信し得る。そのような支援機能は、入出力(I/O)要素611、電源(P/S)612、クロック(CLK)613、及びキャッシュ614を含み得るが、これらに限定されない。キャッシュ614に加えて、GPU604は、それ自体のGPUキャッシュ614Gを含んでもよく、及びGPUは、GPU604上で稼働するプログラムが、GPUキャッシュ614Gを通して読み取るかまたは書き込むことができるように構成される
【0040】
システム600は、任意には、プログラム及び/またはデータを格納するための大容量記憶デバイス615たとえばディスクドライブ、CD-ROMドライブ、フラッシュメモリ、テープドライブ等を含み得る。システム600は、任意には、ユーザ及びユーザインターフェイスユニット618にレンダリングされたグラフィックス617を提示して、システム600とユーザとの間の対話を容易にするディスプレイデバイス616をさらに含み得る。ディスプレイデバイス616は、フラットパネルディスプレイ、頭部搭載型ディスプレイ(HMD)、陰極線管(CRT)スクリーン、プロジェクタ、または目に見える文字、数字、グラフィカルシンボル、または画像を表示することができる他のデバイスの形式であってもよい。ディスプレイデバイス616は、本明細書に記載されるさまざまな手法によって処理された、レンダリングされたグラフィック画像617を表示し得る。ユーザインターフェイス618は、キーボード、マウス、ジョイスティック、ライトペン、ゲームコントローラ、またはグラフィカルユーザインターフェイス(GUI)とともに用いられ得る他のデバイスを含んでもよい。システム600は、デバイスが、ネットワーク622を経由して他のデバイスと通信することを可能にするためのネットワークインターフェイス620をさらに含んでもよい。ネットワーク622は、たとえば、ローカルエリアネットワーク(LAN)、インターネット等の広域ネットワーク、Bluetooth(登録商標)ネットワーク等のパーソナルエリアネットワーク、または他のタイプのネットワークであってもよい。これらの構成要素は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの2以上の何らかの組み合わせで実施されてもよい。
【0041】
グラフィックスパイプライン
本開示の態様によれば、システム600は、グラフィックスレンダリングパイプラインの一部を実施するように構成される。
図6Bは、本開示の態様による、グラフィックスレンダリングパイプライン630の一例を例示する。
【0042】
レンダリングパイプライン630は、グラフィックスを、仮想空間(本明細書においては「世界空間」と称される場合がある)内に二次元または好ましくは三次元ジオメトリを有するシーンを描く画像としてレンダリングするように構成され得る。パイプラインの早い段階は、シーンがラスタ化されて、ディスプレイデバイス616上への出力に好適な離散的な画素のセットとしてスクリーン空間に転換される前に、仮想空間で行われる作業を含み得る。パイプライン全体にわたって、グラフィックスメモリ628に包含されたさまざまなリソースが、パイプラインの段階で利用されてもよく、段階への入力及び出力は、画像の最終的な値が決定される前に、グラフィックスメモリに包含されたバッファに一時的に格納されてもよい。
【0043】
レンダリングパイプラインは、入力データ632に対して動作することができ、これは仮想空間内で設定された頂点のセットによって定義され、シーン内の座標に対して定義されたジオメトリを有する1以上の仮想オブジェクトを含み得る。パイプラインの早い段階は、
図6Bの頂点処理段階634として大きく分類されるものを含んでもよく、これは仮想空間内のオブジェクトの頂点を処理するためのさまざまな演算を含み得る。これは、シーン内の頂点の様々なパラメータ値、たとえば場所値(たとえば、X-Y座標及びZ深度値)、色値、照明値、テクスチャ座標等を操作し得る頂点シェーディング演算636を含んでもよい。好ましくは、頂点シェーディング演算636は、1以上のプログラム可能な頂点シェーダによって行われる。頂点処理段階は、任意には、付加的な頂点処理演算、たとえば、仮想空間に新しい頂点及び新しいジオメトリを精製するために任意に用いられ得るテセレーション/ジオメトリシェーダ演算638を含み得る。頂点処理634と称される段階が完了した時点で、パイプライン内のこの段階において、当該シーンは、各々が頂点パラメータ値639のセットを有する頂点のセットによって定義される。
【0044】
そして、パイプライン630は、シーンジオメトリをスクリーン空間及び離散画素のセット、すなわちピクセルに転換することに関連する、ラスタ化処理段階640に進み得る。仮想空間ジオメトリは、仮想空間からシーンの表示窓へのオブジェクト及び頂点の投影(すなわち「視点」)を本質的に演算し得る作業を通して、スクリーン空間ジオメトリに変換され得る。頂点は、プリミティブのセットを定義し得る。
【0045】
図6Bに図示されるラスタ化処理段階640は、プリミティブ組立作業642を含んでもよく、ここでは、シーン内の頂点の各セットによって定義されたプリミティブを設定し得る。各頂点は、インデックスによって定義されてもよく、各プリミティブは、これらの頂点インデックスに関して定義されてもよく、それらのインデックスはグラフィックスメモリ628内のインデックスバッファに格納され得る。プリミティブは、好ましくは、3つの各頂点によって定義された三角形を少なくとも含み得るが、ポイントプリミティブ、ラインプリミティブ、及び他の多角形状をさらに含んでもよい。プリミティブ組立段階642中、任意には、ある特定のプリミティブをカリングしてもよい。たとえば、インデックスがある特定の屈曲順を示すプリミティブは、バックフェーシングであるとみなされることがあり、シーンからカリングされ得る。
【0046】
プリミティブが組み立てられた後、ラスタ化処理段階は、走査変換作業644を含んでもよく、これは、各ピクセルでプリミティブをサンプリングし、サンプルがプリミティブによっておおわれている場合に、さらなる処理のためにプリミティブからフラグメント(ピクセルと称される場合がある)を生成し得る。任意に、走査変換作業644中に、プリミティブ内部でピクセルごとに複数のサンプルが取られ、これはアンチエイリアシングの目的のために用いられ得る。ある特定の実施では、異なるピクセルが異なったようにサンプリングされ得る。たとえば、いくつかの端部のピクセルは、頭部搭載型ディスプレイ(HMD)のためのレンダリングのある特定の態様を最適化し得るために、中央のピクセルよりも低いサンプリング密度を包含する。走査変換644中にプリミティブから生成されたフラグメント(すなわち「ピクセル」)は、それらを作成したプリミティブの頂点の頂点パラメータ値639から、ピクセルの位置に対して補間され得るパラメータ値を有し得る。ラスタ化段階640は、パイプラインのより後方の段階でのさらなる処理のための入力として用いられ得る、これらの補間されたフラグメントパラメータ値649を演算するためのパラメータ補間作業646段階を含んでもよい。
【0047】
パイプライン630は、概して
図6Bに650で示される、補間されたパラメータ値649さらに操作して、フラグメントがディスプレイのための最終的なピクセル値にどのように寄与するかを決定するさらなる作業を行うさらなるピクセル処理作業を含んでもよい。これらのピクセル処理タスクのいくつかは、フラグメントの補間されたパラメータ値649をさらに操作するために用いられ得るピクセルシェーディング演算652を含み得る。ピクセルシェーディング演算は、プログラム可能なピクセルシェーダによって行われてもよく、ピクセルシェーダ呼び出し648は、ラスタ化処理段階640中に、プリミティブのサンプリングに基づいて開始され得る。ピクセルシェーディング演算652は、グラフィックスメモリ628内の1以上のバッファ605に値を出力し得、レンダーターゲット、または複数の場合にはマルチプルレンダーターゲット(MRT)と称される場合がある。
【0048】
MRTは、任意には、ピクセルシェーダが、各々が同じスクリーンサイズを有するが、異なるピクセル形式である可能性のある2以上のレンダーターゲットに出力することを可能にする。レンダーターゲット形式の制限は、多くの場合、任意の1つのレンダーターゲットが、最大で4つの独立した出力値(チャネル)のみを受け入れることができること、及びそれら4つのチャネルの形式が、互いに対して緊密に関係していることを意味する。MRTは、単一のピクセルシェーダが、さらに多くの値を異なる形式の組み合わせで出力することを可能にする。レンダーターゲットの形式は、それらがスクリーン空間ピクセルごとの値を格納する点において「テクスチャ様」であるが、さまざまな性能上の理由から、レンダーターゲット形式は、近年のハードウェア世代ではより特化されてきており、「分解」と呼ばれる、テクスチャユニットによって読み込まれることに適合する前に、データを再フォーマットすることが必要とされる場合がある(が常にではない)。
【0049】
ピクセル処理650は、一般的には、ラスタ化作業(ROP)として一般に周知であるものを含み得るレンダー出力作業656で終了し得る。ラスタ化作業(ROP)は単に、ピクセルごとに複数回、マルチプルレンダーターゲット(MRT)間のレンダーターゲットごとに1回稼働される。レンダー出力作業656中、最終的なピクセル値659は、フレームバッファにおいて決定されてもよく、これは、任意には、フラグメントのマージ、ステンシルの適用、深度テスト、及びある特定のサンプルごとの処理タスクを含んでもよい。最終的なピクセル値659は、すべてのアクティブなレンダーターゲット(MRT)に対する収集された出力を含む。GPU604は、最終的なピクセル値659を用いて完成フレーム660を作り上げ、これは任意には、ディスプレイデバイス616のピクセルにリアルタイムで表示され得る
【0050】
出力作業650は、含むテクスチャマッピング作業654をさらに含んでもよく、これは、1以上のピクセルシェーダPSによってある程度行われ、テクスチャユニット606によってある程度行われ得る。ピクセルシェーダ演算652は、含むスクリーン空間座標XYからテクスチャ座標UVを算出し、テクスチャ作業654にテクスチャ座標を送り、テクスチャデータTXを受信することを含む。テクスチャ座標UVは、任意のやり方でスクリーン空間座標XYから算出されることができるが、典型的には補間された入力値から、または場合によっては以前のテクスチャ作業の結果から算出される。グラデーションgrは、多くの場合テクスチャユニット606(テクスチャ作業ハードウェアユニット)によって、テクスチャ座標の四角形(quads)から直接算出されるが、任意には、テクスチャユニット606に依存してデフォルトの算出を行うのではなく、ピクセルシェーダ演算652によって明示的に算出されてテクスチャ作業654に移ることができる。
【0051】
テクスチャ作業654は、一般的には以下の段階を含み、これらはピクセルシェーダPS及びテクスチャユニット606のいくつかの組み合わせによって行われることができる。まず、ピクセル位置XYごとに1以上のテクスチャ座標UVを生成して、これを用いてテクスチャマッピング作業ごとに設定される座標を提供する。そして、スクリーン空間内の非正規直交グリッドに基づいて、ピクセル位置に対するテクスチャ空間グラデーション値grを生成する。最後に、調整値transによってテクスチャ空間グラデーション値grを修正して、補正されたテクスチャ空間値Grを作り出す。
【0052】
いくつかの実施では、ピクセルシェーダPSは、ピクセル位置XYごとにテクスチャ座標UVを生成し、テクスチャユニット606に対するテクスチャマッピング作業ごとに設定された座標を提供することができ、これによって、テクスチャ空間グラデーション値grを生成し、それらを修正して、補正されたテクスチャ空間グラデーション値Grを作り出し得る。
【0053】
他の実施では、ピクセルシェーダPSは、ピクセル位置XYからテクスチャ空間座標UV及び明示的差分grを算出し、差分及びテクスチャ空間座標をテクスチャユニット606に(任意には調整マトリックスtransとともに)受け渡し、テクスチャユニット606に対して、グラデーション値Grを得るために、変換transを適用することによって明示的差分grを修正する必要が依然としてあることを示すことができる。
【0054】
他の代替の実施では、ピクセルシェーダPSは、テクスチャ空間座標UV及び明示的な補正されたグラデーションGrを算出し、これらをテクスチャユニットに受け渡し、テクスチャユニット606に対して、マトリックスtransを用いた任意の必要とされる変換がすでにソフトウェアに適用されており、補正されたグラデーションGrが、LODを選択するものとして用いられるべきであることを示すことができる。
【0055】
グラデーション調整
本開示の態様は、グラフィックスパイプラインにおいてプリミティブに適用されるテクスチャに対するミップマップレベル(LOD)を判定するために、テクスチャユニット606によって用いられるグラデーションgrの調整を対象とする。基本概念が、
図2A~2Cに例示される。
図2Aは、XY空間内の「四角形」における4つのピクセルサンプルを図示する。
図2Bは、XY空間dx1、dy1、dx2、dy2における差分値Δxyを図示し、それぞれが(x0、y0)、(x1、y1)、及び(x2、y2)である左上、右上、及び左下のピクセルのXY空間におけるピクセルサンプル位置に関して数式で表現されることができ、以下の通りである。
dx1=x1-x0
dy1=y1-y0
dx2=x2-x0
dy2=y2-y0
【0056】
図2Cは、テクスチャ座標UVから演算された、UV空間におけるテクスチャグラデーションgrを図示する。テクスチャグラデーションgrは、それぞれ(u0、v0)、(u1、v1)及び(u2、v2)である左上、右上、及び左下のピクセルのテクスチャ座標UVに関して数式で表現されることができ、以下の通りである。
du_dx=u1-u0
dv_dx=v1-v0
du_dy=u2-u0
dv_dy=v2-v0
【0057】
これらのdu_dx=u1-u0等の算出は、ピクセルシェーダPSがソフトウェア算出値でそれらを無効にすることを選ばない場合、テクスチャユニットハードウェア106によって行われることができる。そして、テクスチャグラデーションgrは、テクスチャユニット606によって用いられて、サンプリングのためのミップマップLODレベルが判定される。
【0058】
この例では、(x3、y3)でのピクセル位置及びそれに対応するテクスチャ座標UVは、グラデーションを算出する目的のために無視される。この例では、ハードウェアは、2x2ピクセルの四角形に対して作動するが、サンプリングのためのミップマップLODレベルを判定するために、テクスチャ座標ごとに1つのd_dx及びd_dyグラデーションのみを必要とすることが仮定されている。3ピクセルは、値がほぼ直線状に変化するという過程を用いてグラデーションを生成するために十分である。テクスチャユニット606がこの簡易化された過程を用いる場合、右下のピクセルサンプル(x3、y3)からUV値を破棄することができる。いくつかの実施では、UV値が、4番目のサンプルの値を考慮に入れることがグラデーション算出を著しく向上させるのに十分な程度に非線形に変化する場合、ピクセルシェーダは、ソフトウェアでグラデーションgrを算出することを選ぶことがある。
【0059】
ピクセル位置の正規直交のセット、すなわちdx1=1、dy1=0、dx2=0及びdy2=1では、gr(du_dx、dv_dx、du_dy及びdv_dy)を含むテクスチャグラデーションは、変更なく用いられ得る。正規直交ではないピクセル位置のセットでは、値du_dx’、dv_dx’、du_dy’及びdv_dy’で構成される補正されたテクスチャグラデーションGrを生成することが望ましい。これらは、実際のピクセルサンプル位置(x0、y0)、(x1、y1)及び(x2、y2)に代えて、テクスチャ座標UVが正規直交ピクセルサンプル位置(x0、y0)、(x1’、y1’)及び(x2’、y2’)で生成された場合にグラデーションが取るであろう値の近似値を表す。テクスチャグラデーションgrと補正されたテクスチャグラデーションGrとの間の調整マトリックスtransを用いた一般化変換は、非正規直交ピクセルサンプル位置のXY空間座標の差分値deltaxyに関して数式で表されることができ、以下の通りである。
D=dx1*dy2-dx2*dy1
trans_xx=dy2/D
trans_xy=-dy1/D
trans_yx=-dx2/D
trans_yy=dx1/D
【0060】
ここで、trans_xx、trans_xy、trans_yx、及びtrans_yyは、変換係数と称される場合がある。
【0061】
そして、仮定された正規直交ピクセル位置に基づいてテクスチャユニットまたはピクセルシェーダによって算出された各テクスチャ座標グラデーションgrは、この変換を適用することによって、テクスチャユニットによって補正されることができ、以下の通りである。
du_dx’=trans_xx*du_dx+trans_xy*du_dy
du_dy’=trans_yx*du_dx+trans_yy*du_dy
【0062】
その他同様に、テクスチャユニットの要求に応じて、2または3つのテクスチャ座標に対しては以下のとおりである。
dv_dx’=trans_xx*dv_dx+trans_xy*dv_dy
dv_dy’=trans_yx*dv_dx+trans_yy*dv_dy
dw_dx’=trans_xx*dw_dx+trans_xy*dw_dy
dw_dy’=trans_yx*dw_dx+trans_yy*dw_dy
【0063】
変換マトリックスtransの算出は、典型的には四角形に対するピクセルサンプル位置XYを設定するときにGPU604の外部で、たとえばCPU602上で稼働するCPUコード603Cによって行われる。たとえば、ピクセルサンプル位置またはレンダーターゲット設定の特定のセットを有するGPU604のハードウェアを構成するときに、CPUコード603Cは、差分値dx1、dy1、dx2、dy2から変換マトリックスtransの4つのマトリックス変換要素をさらに算出することができる。例示を目的として、かつ限定を目的とせずに、システム600は、変換マトリックスtransを算出する特殊用途ハードウェアまたはソフトウェアをさらに含むことができる。
【0064】
dx1、dy1、dx2、dy2は、同じ繰り返しサンプル分布を共有するスクリーンの広い領域にわたって一定であり、変換マトリックスtransも同様であることに留意すべきである。この理由から、グラフィックスパイプライン630のラスタ化段階640において、スクリーン位置に基づいて、値のパレット間で選択することは有用である。
【0065】
時間的アンチエイリアシング
グラデーション調整は、時間的アンチエイリアシングにおいて特に有用であり得る。このことの例は、
図3A~3B、4及び5を参照することによって理解され得る。
図3A~3B、4及び5では、色及び深度値を有するピクセルは、灰色の円として示される。深度値のみを有するピクセルは、より小さな黒い円として示される。いくつかの実施では、グラフィックス処理は、連続するフレーム間の共通性を利用して、2つのフレーム間の画像処理を、分割することによってスピードアップすることができ、各フレームは当該画像からピクセルの交互の列から成る。
【0066】
交互の列の時間的アンチエイリアシング構成では、GPUは、1つのフレーム内で画像におけるピクセル列を1列おきにレンダリングを行い、その後次のフレームでフィルインを行う。たとえば、
図3Aに示されるように、フレーム302は、各列の左に色及び深度サンプルを有し、右のみに深度サンプルを有する。次のフレーム304では、これが反転する。GPUは、各フレームのピクセルの半分のみをシェーディングする。いくつかの実施では、2つのフレーム302及び304内のピクセルは、他の構成において交代してもよい。当業者においては、色見本を有するピクセル行と有していないピクセル行が交代する交互の行構成を用いてもよいことが認識されよう。加えて、
図3Bに示されるように、2つのフレーム内のピクセルは、色見本を有するピクセルと有していないピクセルとが行をわたって、また同様に列に沿って交代する「市松模様」状態で交代してもよい。ここでも、GPUは、各フレーム内のピクセルの半分のみをシェーディングする。
【0067】
フレーム302内の色見本を有するピクセル列(灰色の円)は、ともに単一の画像306を形成するようにフレーム304内の対応するピクセル列と交互配置される。フレーム302及び304の色及び深度値の分析は、典型的にはピクセルシェーダまたは演算シェーダを用いてGPUによって行われ、フレーム304の空隙をフィルインして単一の画像306を形成するときに、フレーム302の色値を完全にまたは部分的に用いることを可能にする。このことは、フレームごとに処理される必要があるピクセル数を低減させ、それによって、各フレームをレンダリングするための作業負荷を低減させる点において特に有利であり得る。このタイプのレンダリングは、本明細書においては「低減解像度レンダリング」と称される。これらの時間的アンチエイリアシングの場合では、当該概念は、あたかも各色見本がより高解像度のディスプレイの一部であるかのようにフレームをレンダリングすることである。
【0068】
そのような時間的アンチエイリアシングにおいてグラデーションを調整する必要性は、
図4~5を参照して理解することができる。具体的には、
図3Aに示された場合では、フレーム302内の四角形301についてのグラデーションは、XY空間内の(x0、y0)、(x1、y1)、及び(x2、y2)におけるピクセル位置から算出される。このフレーム内のピクセル構成に起因して、グリッドが正規直交グリッドではない。代わりに、グリッドは水平方向に「引き延ばされ」ている(換言すると、垂直方向に「つぶされて」いる)。このことは、グラデーション成分du_dx及びdv_dxをひずませる。正規直交グリッドに基づいて、対応するUV空間グラデーション成分du_dx’及びdv_dx’を算出するために、(x1、y1)におけるピクセルが、(x1’、y1’)における「空の」列に位置することが望ましいであろう。この例では、フレーム302及び304が交互のピクセル列構成であるために、UV空間グラデーション成分du_dy及びdv_dyは、調整される必要がなく、実際のサンプル位置(x0、y0)及び(x2、y2)から計算することができる。上記の式を用いると、これは結果として、d_dxグラデーションを二分させる。
dx1=2.0
dy1=0.0
dx2=0.0
dy2=1.0
D=(2.0)*(1.0)-(0.0)*(0.0)=2.0
trans_xx=1.0/2.0=0.5
trans_xy=-0.0/2.0=0.0
trans_yx=-0.0/2.0=0.0
trans_yy=2.0/2.0=1.0
du_dx’=trans_xx*du_dx+trans_xy*du_dy=0.5*du_dx
dv_dx’=trans_xx*dv_dx+trans_xy*dv_dy=0.5*dv_dx
du_dy’=trans_yx*du_dx+trans_yy*du_dy=du_dy
dv_dy’=trans_yx*dv_dx+trans_yy*dv_dy=dv_dy
【0069】
図3Bに示された「市松模様」のケースでは、GPUは、UV空間グラデーションの水平及び垂直成分の両方を調整することが必要とされることとなる。たとえば、
図5に示されるように、点(x0、y0)、(x1’、y1’)及び(x0、y0)、(x2’、y2’)を用いてUV空間グラデーションを算出することが望ましいであろう。上記の式を用いると、これは結果として、d_dxグラデーションを二分させ、それらをd_dyグラデーションから減じる。
du_dx’=0.5*du_dx
dv_dx’=0.5*dv_dx
du_dy’=du_dy-0.5*du_dx
dv_dy’=dv_dy-0.5*dv_dx
【0070】
さらなる態様
本開示のさらなる態様は、グラフィックス処理方法を含み、その方法は、スクリーン空間内のサンプル点の非正規直交グリッドに基づいて、1以上のプリミティブについてのテクスチャ空間グラデーション値を受けるかまたは生成し、スクリーン空間内のサンプル点の非正規直交性に対して補正された、対応する正規直交テクスチャ空間グラデーション値を生成するように構成された変換を適用し、テクスチャ座標値間の差分値に変換を適用して、グラデーション値を生成することを含む。
【0071】
別のさらなる態様は、先に述べた方法を実施するように構成されたグラフィックス処理システムである。
【0072】
また別のさらなる態様は、実行されたときに、先に述べた方法を実施する、内部に具現化されたコンピュータ実行可能命令を有するコンピュータ可読媒体である。
【0073】
さらなる態様は、先に述べた方法を行うための電磁的または他の信号搬送コンピュータ可読命令である。
【0074】
通信ネットワークからダウンロード可能な、及び/またはコンピュータ可読及び/またはマイクロプロセッサ実行可能媒体に格納されたコンピュータプログラム製品であって、先に述べた方法を実施するためのプログラムコード命令を含むことを特徴とする。
【0075】
上記は、本発明の好ましい実施形態の完全な説明であるが、さまざまな代替、変更及び等価物を用いることが可能である。したがって、本発明の範囲は、上記の説明を参照せずに判断されるべきであり、代わりに、添付の特許請求の範囲を参照して、それらの等価物の全範囲とともに判断されるべきである。好ましいか否かに関わらず、本明細書に記載されるあらゆる特徴は、好ましいか否かに関わらず、本明細書に記載された任意の他の特徴と組み合わせられてもよい。以下に続く特許請求の範囲では、不定冠詞「A」または「An」は、特に断らない限り、冠詞に続く1以上の量の要素を指す。添付の特許請求の範囲は、そのような限定が所与の請求項において文言「means for」を用いて明白に挙げられていない限りミーンズプラスファンクションの限定を含むとして解釈されるものではない。