(57)【要約】【課題】ユーザ指定のオフセット位置を用いてテクスチャ動作を実行するための方法及びシステムを提供すること。【解決手段】具体的には、本発明の一実施形態は、テクスチャマップに射影された画素に関連する元のサンプルの位置、及びユーザによって指定された第１のオフセット位置に基づいて第１の目標テクセル位置を導出するステップと、テクスチャ動作のために第１の目標テクセル位置のテクセルの属性を取り出すステップとを含む方法を説明する。【選択図】  図２Ｃ
2008299852.tif 000002
【特許請求の範囲】
【請求項１】
テクスチャ動作を実行するための方法であって、
テクスチャマップに射影された画素に関連する元のサンプルの位置、及びユーザによって指定された第１のオフセット位置に基づいて第１の目標テクセル位置を導出するステップと、
前記テクスチャ動作のために前記第１の目標テクセル位置のテクセルの属性を取り出すステップと
を含む方法。
【請求項２】
前記第１の目標テクセル位置の第１の目標テクセルは、前記テクスチャマップにおいて前記画素に関連し、前記画素に近接して配置される４つのバイリニアサンプルのうちの１つである請求項１に記載の方法。
【請求項３】
前記第１のオフセット位置から、前記４つのバイリニアサンプルのうちの第２の目標テクセルに関する第２のオフセット位置を導出するステップと、
前記元のサンプルの位置及び前記第２のオフセット位置に基づいて前記第２の目標テクセルに関する第２の目標テクセル位置を導出するステップと、
前記テクスチャ動作のために前記第２の目標テクセル位置のテクセルの属性を取り出すステップと
をさらに含む請求項２に記載の方法。
【請求項４】
前記第２の目標テクセル位置は、前記テクスチャマップの少なくとも１つの軸に沿って前記第１の目標テクセル位置と対称的である請求項３に記載の方法。
【請求項５】
前記第１のオフセット位置及び前記第２のオフセット位置に、前記ユーザによって指定された倍率を適用するステップをさらに含む請求項４に記載の方法。
【請求項６】
前記第２のオフセット位置に関する前記テクスチャマップに沿った第１の軸に沿った座標値を、前記第１のオフセット位置に関する前記テクスチャマップに沿った第２の軸に沿った座標値に等しいように設定するステップをさらに含む請求項３に記載の方法。
【請求項７】
前記元のサンプルの位置、及びユーザによって指定された第２のオフセット位置に基づいて前記４つのバイリニアサンプルのうちの第２の目標テクセルに関する第２の目標テクセル位置を導出するステップと、
前記テクスチャ動作のために前記第２の目標テクセル位置のテクセルの属性を取り出すステップと
をさらに含む請求項２に記載の方法。
【請求項８】
前記テクスチャ動作は、フィルタの重みを前記４つのバイリニアサンプルに適用して前記画素に関する一意的な値を生成することを含む請求項１に記載の方法。
【請求項９】
前記フィルタの重みは任意の値を有することができる請求項８に記載の方法。
【請求項１０】
前記テクスチャ動作は、前記画素と前記取り出されたテクセルの属性との深度比較を実行することを含む請求項１に記載の方法。
【請求項１１】
前記テクスチャ動作は、深度比較動作の結果に対してフィルタリング動作を適用することを含む請求項１０に記載の方法。
【請求項１２】
テクスチャ動作を実行するように構成されたコンピューティングデバイスであって、
テクスチャユニットを伴う処理ユニットと、
テクスチャマップを含む、前記処理ユニットに結合されたローカルメモリと
を備え、
前記テクスチャユニットは、
テクスチャマップに射影された画素に関連する元のサンプルの位置、及びユーザによって指定された第１のオフセット位置に基づいて第１の目標テクセル位置を導出し、
前記テクスチャ動作のために前記第１の目標テクセル位置のテクセルの属性を取り出すように構成されている、コンピューティングデバイス。
【請求項１３】
前記第１の目標テクセル位置の第１の目標テクセルは、前記テクスチャマップにおいて前記画素に関連し、前記画素に近接して配置される４つのバイリニアサンプルのうちの１つである請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記テクスチャユニットは、
前記第１のオフセット位置から、前記４つのバイリニアサンプルのうちの第２の目標テクセルに関する第２のオフセット位置を導出し、
前記元のサンプルの位置及び前記第２のオフセット位置に基づいて前記第２の目標テクセルに関する第２の目標テクセル位置を導出し、
前記テクスチャ動作のために前記第２の目標テクセル位置のテクセルの属性を取り出すようにさらに構成される請求項１３に記載のコンピューティングデバイス。
【請求項１５】
前記第２の目標テクセル位置は、前記テクスチャマップの少なくとも１つの軸に沿って前記第１の目標テクセル位置と対称的である請求項１４に記載のコンピューティングデバイス。
【請求項１６】
前記ユーザによって指定された倍率が、前記第１のオフセット位置及び前記第２のオフセット位置に適用される請求項１５に記載のコンピューティングデバイス。
【請求項１７】
前記テクスチャユニットは、前記第２のオフセット位置に関する前記テクスチャマップに沿った第１の軸に沿った座標値を、前記第１のオフセット位置に関する前記テクスチャマップに沿った第２の軸に沿った座標値に等しいように設定するようにさらに構成される請求項１４に記載のコンピューティングデバイス。
【請求項１８】
前記テクスチャユニットは、
前記元のサンプルの位置、及びユーザによって指定された第２のオフセット位置に基づいて前記４つのバイリニアサンプルのうちの第２の目標テクセルに関する第２の目標テクセル位置を導出し、
前記テクスチャ動作のために前記第２の目標テクセル位置のテクセルの属性を取り出すようにさらに構成される請求項１３に記載のコンピューティングデバイス。
【請求項１９】
前記テクスチャユニットは、前記テクスチャ動作において、等しいフィルタの重みを前記４つのバイリニアサンプルに適用して前記画素に関する一意的な値を生成するようにさらに構成される請求項１２に記載のコンピューティングデバイス。
【請求項２０】
前記テクスチャユニットは、前記テクスチャ動作において前記画素と前記取り出されたテクセルの属性との深度比較を実行するようにさらに構成される請求項１２に記載のコンピューティングデバイス。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明は、概してコンピュータグラフィックスに関し、より具体的にはプログラム可能なオフセット位置を用いてテクスチャサンプルを処理するための方法及びシステムに関する。
【関連技術の説明】
【０００２】
[0002]本明細書において別途指示されない限り、このセクションで説明されるアプローチは本願の特許請求の範囲に対する従来技術ではなく、このセクションに含まれることによって従来技術であると認められることはない。
【０００３】
[0003]エイリアシングアーティファクトに対処するための一般的なテクスチャフィルタリングは、テクスチャ空間にマッピングされる画素中心を囲む異なる軸に沿った等しい数のテクセルにアクセスし、それらのテクセルをフィルタリングすることを伴う。概して、そのようなアプローチは、バイリニアフィルタ又はトリリニアフィルタを使用する。例示として、図１Ａは、従来技術の２×２フィルタカーネルが、単一のクロックサイクルにおいて、画素中心１０２を囲む４つの近接するテクセル１０４、１０６、１０８、及び１１０にアクセスし、次にテクセルをバイリニアフィルタリングするテクスチャマップ１００である。
【０００４】
[0004]しかし、一部のテクスチャアプリケーションは、テクセルを異なるやり方でフィルタリングする。１つの例はテクスチャに基づくシャドウマッピングであり、別の例はハイダイナミックレンジ（ＨＤＲ）レンダリングである。シャドウマッピングは、コンピュータによって生成される情景の現実感を向上するための陰影レンダリング技術である。より具体的には、シャドウマッピングプロセス中、情景は、最初に、一般にシャドウマップと呼ばれる特殊なテクスチャマップを生成するために光源の視点からレンダリングされ、シャドウマップ内の各テクセルは可視表面に関連する深度値を記憶する。次に、情景の像が観察者の視点からレンダリングされ、それによってスクリーン空間内の位置（ｘ，ｙ）の画素が光線空間座標に射影され、それから可視性が試験される。この試験は、画素の深度値を深度マップの対応する位置に記憶された深度値と比較して、画素が物体の後ろにあるかどうかを判定する。比較結果に基づいて、画素は、影になっているようにか、又は光源に照らされているようにかのいずれかで描画される。見た目に美しい滑らかな陰影をレンダリングするために、画素毎にシャドウマップから４つ以上のテクセルがサンプリングされる必要がある可能性があり、これらのテクセルは互いに近接しないことが多い。
【０００５】
[0005]ＨＤＲレンダリング技術に関しては、ＨＤＲレンダリング技術は、コントラストの差が大きい情景内の詳細を保つための技術である。換言すれば、情景内に暗い領域と明るい領域とが両方存在する場合に、両方の領域が、この技術を使用して正確に表現されることができる。上述のシャドウマッピング技術と同様に、ＨＤＲレンダリング技術も、画素毎に４つ以上のテクセルをサンプリングする可能性がある。通常、これらのテクセルは、図１Ｂに示されるテクセル１２４、１２６、１２８、及び１３０のように２×２の領域よりもまばらに分布されている。
【０００６】
[0006]上述のシャドウマッピング及びＨＤＲレンダリング動作において従来技術の２×２フィルタカーネルを使用することはいくつかの欠点を有する。第１に、おそらく、２×２フィルタカーネルは、クロックサイクル毎に、まばらに分散したテクセルのうちの１つにしかアクセスできない。したがって、全ての所望のテクセルにアクセスするために複数のクロックサイクルが必要とされる。例示するために、テクスチャアプリケーションがテクセル１２４、１２６、１２８、及び１３０にアクセスする必要があり、従来技術の２×２フィルタカーネルが使用されると仮定する。２×２フィルタカーネルのサイズは４つ全ての所望のテクセルを一度に包含するのに十分なほど大きくないが、テクセル１２４など、４つのテクセルのうちの１つを包含することができるので、フィルタカーネルに対する利用可能なテクスチャアクセス帯域幅の４分の３は使用されない。画素毎に４つ以上のテクセル（例えば、１６個のテクセル）にアクセスする必要があるテクスチャアプリケーションに関して、２×２フィルタカーネルの非効率性はより一層明らかである。第２に、従来技術の２×２フィルタカーネルはサンプリングされたテクセルをバイリニア式に重み付けし、この重み付けは、上述のシャドウマッピング及びＨＤＲレンダリング動作を伴うテクスチャアプリケーションなどの特定のテクスチャアプリケーションに対して最適ではない可能性がある。
【０００７】
[0007]以上が示すように、したがって、当技術分野で必要とされているのは、指定テクセルを効率的及び柔軟にサンプリングすることができ、少なくとも上述の問題に対処することができるテクスチャフィルタリング技術である。
【発明の概要】
【０００８】
[0008]ユーザ指定のオフセット位置を用いてテクスチャ動作を実行するための方法及びシステムが開示される。具体的には、本発明の一実施形態は、テクスチャマップに射影された画素に関連する元のサンプルの位置、及びユーザによって指定された第１のオフセット位置に基づいて第１の目標テクセル位置を導出するステップと、テクスチャ動作のために第１の目標テクセル位置のテクセルの属性を取り出すステップとを含む方法を説明する。
【０００９】
[0009]本明細書において開示される発明の少なくとも１つの利点は、テクスチャ動作が柔軟に実装され、効率的に実行されることができるように、ユーザ指定のオフセット位置によって決定される位置のテクスチャサンプルに対して動作する能力である。
【００１０】
[0010]本発明の上述の特徴が実現されるやり方が詳細に理解されることができるように、上で簡潔に説明された本発明のより具体的な説明が、添付の図面に一部が図示される実施形態を参照することによってなされることができる。しかし、添付の図面は本発明の典型的な実施形態のみを示し、したがって本発明の範囲を限定するとみなされるべきではなく、その理由は本発明がその他の同様に有効な実施形態を認めることができるからであることに留意されたい。
【詳細な説明】
【００１１】
[0019]本開示の全体を通して、用語「ユーザ」は、概して、コンピューティングデバイス上で実行されるソフトウェアプログラムのユーザ又は開発者を指す。さらに、「ユーザ指定の」及び「プログラム可能な」は、ユーザによって指定又は修正されることができるテクスチャサンプルの位置又はテクスチャサンプルオフセット位置を修飾するために交換可能に使用されることができる。テクスチャサンプルは、一般的にテクセルと呼ばれる。また、本明細書において言及される「コンピュータ可読媒体」のいくつかの例は、限定することなしに、不揮発性媒体（例えば、光又は磁気ディスク）及び揮発性媒体（例えば、ダイナミックメモリ）を含む。
【００１２】
[0020]図２Ａは、本発明の１つ又は複数の態様を実装するように構成されたコンピューティングデバイス２００の概念図である。コンピューティングデバイス２００は、中央演算処理装置（ＣＰＵ）２０２、システムインターフェース２０４、システムメモリ２１０、グラフィックス処理ユニット（ＧＰＵ）２５０、ＧＰＵのローカルメモリ２６０、及びディスプレイ２７０を含む。ＣＰＵ２０２は、システムメモリ２１０及びシステムインターフェース２０４に接続する。ＣＰＵ２０２は、システムメモリ２１０に記憶されたプログラム命令を実行し、システムメモリ２１０に記憶されたデータに対して動作し、システムインターフェース２０４を通じてＧＰＵ２５０と通信する。代替実施形態において、ＣＰＵ２０２、ＧＰＵ２５０、システムインターフェース２０４、又はそれらの任意の組合せが、単一の処理ユニットに統合されることができる。さらに、ＧＰＵ２５０の機能は、チップセット、又は何らかのその他の種類の専用処理ユニット若しくはコプロセッサに含まれることができる。概して、システムメモリ２１０は、ＣＰＵ２０２に（図示されたように）直接か、又は代替的にシステムインターフェース２０４を介してかのいずれかで接続するように構成されたダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。ＧＰＵ２５０は、ＣＰＵ２０２によって送信された命令を受信し、ＧＰＵのローカルメモリ２６０に記憶されたグラフィックスデータ及び画像をディスプレイ２７０上にレンダリングするために命令を実行する。ディスプレイ２７０は、入力データ信号に対応する視覚的画像を出力することができる出力装置である。
【００１３】
[0021]システムメモリ２１０は、アプリケーションプログラム２１２、高レベルシェーダプログラム２１４、アプリケーションプログラミングインターフェース（ＡＰＩ）２１６、及びＧＰＵドライバ２１８を含む。アプリケーションプログラム２１２は、高レベルシェーダプログラム２１４の１つ又は複数のインスタンスを呼び出すことができる。概して、高レベルシェーダプログラムは、ＧＰＵ２５０内の１つ又は複数の処理エンジン上で動作するように設計された高レベルプログラム命令のソースコードテキストを含む。高レベルシェーダプログラム２１４は、ＧＰＵドライバ２１８に含まれるコンパイラ若しくはアセンブラによって、又は代替的にコンピュータデバイス２００若しくはその他のコンピュータデバイスのいずれかの上で動作するオフラインコンパイラ又はアセンブラによって、実行可能なシェーダプログラム２６２などの実行可能なプログラムオブジェクトに変換されることができる。
【００１４】
[0022]実行可能なシェーダプログラム２６２、テクスチャバッファ２６６、及びフレームバッファ２６８は、全てＧＰＵのローカルメモリ２６０内に存在する。実行可能なシェーダプログラム２６２は、ＧＰＵ２５０内の画素シェーダエンジン２５４によって実行されるときに、レンダリングパイプライン２５２の様々なコンポーネントに命令を発行する。概して、テクスチャバッファ２６６は、シャドウマップを含むテクスチャマップを記憶する。フレームバッファ２６８は、ディスプレイ２７０を動かすために使用される少なくとも１つの２次元サーフェスを含む。
【００１５】
[0023]レンダリングパイプライン２５２は画素シェーダエンジン２５４を含み、さらに画素シェーダエンジン２５４はテクスチャユニット２５６を含む。テクスチャユニット２５６は、テクスチャバッファ２６６から、プログラム可能なオフセット位置を用いて要求されたテクセルの属性を取り出し、フィルタの重みを処理し、深度比較動作及びテクスチャフィルタリング動作を実行することができる。以降の段落は、テクスチャユニット２５６の機能及び動作をさらに詳細に説明する。
【００１６】
[0024]図２Ｂは、本発明の一実施形態による、プログラム可能なオフセット位置を用いてテクスチャフィルタリング動作を実行する図２Ａに示されたＧＰＵ２５０の一部の概略図である。例示するために、テクスチャフィルタリング動作が、図２Ｃに示されるスクリーンの画素Ｐに対する陰影状態値Ｓを生成しなければならないと仮定する。１つの実装において、テクスチャユニット２５６に対して発行されるシェーダプログラム命令は、出力引数Ｓと、Ｐ、オフセットｉ、及びテクスチャ［ｎ］などの複数の入力引数とを含む。ここで、Ｓは、計算された陰影の結果のためのプレースホルダを表す。Ｐは、シャドウマップ２８０において射影されるスクリーンの画素のテクスチャ座標を表す。オフセットｉは、シャドウマップ２８０内のプログラム可能な（ｕｉ，ｖｉ）の対を指す。テクスチャ［ｎ］は、シャドウマップ２８０などの、テクスチャバッファ２６６に記憶された特定のシャドウマップに対応する。
【００１７】
[0025]Ｐ、Ｓ、オフセットｉ、及びテクスチャ［ｎ］を入力として、テクスチャユニット２５６は、オフセットｉをＰに適用することによって目標テクセルＤ１、Ｄ２、Ｄ３、及びＤ４を導出する。例えば、Ｐが（ｕ０，ｖ０）によって表され、オフセット１が（ｕｏｆｆｓｅｔ，ｖｏｆｆｓｅｔ）によって表される場合、Ｄ１は（ｕ０＋ｕｏｆｆｓｅｔ，ｖ０＋ｖｏｆｆｓｅｔ）又は（ｕ１，ｖ１）である。さらに、図２Ｃに示されるように、始点をＰに置いて、各対（ｕｉ，ｖｉ）は、ベクトルＶｉにやはり関連付けられる。例えば、Ｖ１は、Ｐにある始点とオフセット１とに関連付けられる。さらに、この実装においては、４つの異なる（ｕ，ｖ）の対はユーザによって指定され、互いに対称的であるように要求されない。具体的には、オフセット１内のｕ１の長さは、オフセット２、オフセット３、及びオフセット４内のｕ又はｖの長さのうちのいずれかに等しいように要求されない。同様に、オフセット１内のｖ１の長さも、オフセット２、オフセット３、及びオフセット４内のｖ又はｕの長さのうちのいずれかに等しいように要求されない。したがって、これらの目標テクセル位置を包含するフィルタカーネルのサイズ及び形状は任意的であることができる。本発明の範囲を超えることなしにＮ個のオフセットの対を用いてＮ個のサンプルにスケーリングすることは当業者に明らかであるに違いない。
【００１８】
[0026]目標テクセル位置を用いて、テクスチャユニット２５６は、深度値などの、Ｄ１、Ｄ２、Ｄ３、及びＤ４の適切なテクセルの属性を取り出すためにテクスチャバッファ２６６に読み出し要求を送信する。次に、深度値のそれぞれが、深度マップ試験においてＰに関連する深度値と比較される。図２Ｄは、テクセルＤ１、Ｄ２、Ｄ３、及びＤ４に対して深度マップ試験を適用した結果の１つの集合を示す概念図である。Ｐに関連する深度値がＤ１、Ｄ２、Ｄ３、及びＤ４の記憶された深度値よりも大きいか、それとも小さいかが１又は０によって示される。最終的な陰影状態値Ｓを導出するために、テクスチャユニット２５６は、フィルタの重みを深度マップ試験の結果に適用する。一実施形態において、テクスチャユニット２５６は、エイリアシング効果を小さくするために深度マップ試験の結果を単純に平均することによって陰影状態値を計算する。ここで、４つのサンプルが存在するので、４つのフィルタの重みのそれぞれは１／４に等しい。代替として、テクスチャユニット２５６は、通常のバイリニアフィルタなどにおいて、サンプリングされたテクセルと射影された画素との間の相対的な距離に基づくフィルタの重みを適用することもできる。テクスチャユニット２５６は、最終的な陰影状態値Ｓを画素シェーダエンジン２５４に返す。
【００１９】
[0027]上述の実施形態は、それぞれのサンプリングされるテクセルの位置がユーザ指定のオフセット位置から導出される１つの実装を示すが、本発明は、目標テクセル位置を導出するためのその他の可能なやり方を想定する。本発明の代替実施形態によれば、図２Ｅは、単一のユーザ指定のオフセット位置からのテクセル位置の導出を示す概念図である。具体的には、上述の実施形態のように４つのユーザ指定の（ｕ，ｖ）の対を受信する代わりに、テクスチャユニット２５６は、ここで、（ｕ１，ｖ１）のような単一のオフセット１を受信する。次に、テクスチャユニット２５６は、（ｕ１，ｖ１）の対を対称的に変換して、さらなるユーザの介入なしにその他の３つのオフセットを生成する。１つの実装において、オフセット２、オフセット３、及びオフセット４は、それぞれ（ｖ１，−ｕ１）、（−ｖ１，ｕ１）、及び（−ｕ１，−ｖ１）である。例えば、（ｕ１，ｖ１）が値（３，１）を有する場合、オフセット２、オフセット３、及びオフセット４は、それぞれ値（１，−３）、（−１，３）、及び（−３，−１）を有する。これらのオフセット１、オフセット２、オフセット３、及びオフセット４と、射影されたスクリーンの画素Ｐの元のサンプルの位置とを用いて、目標テクセル位置Ｄ１’、Ｄ２’、Ｄ３’、及びＤ４’が計算される。注目に値するのは、図２Ｃに示され、上で検討された実装と異なり、この実装において使用される対称的な変換は互いに鏡像関係の目標テクセル位置を自動的に生成し、これらの鏡像関係のテクセルを包含するフィルタカーネルのサイズ及び形状は任意的であることができないことである。
【００２０】
[0028]本発明のさらに別の実施形態によれば、テクスチャユニット２５６は、ユーザ指定の倍率αを全てのオフセットに適用する。αが３であると仮定する。上で検討された例を再び参照すると、スケーリングされたオフセット１、オフセット２、オフセット３、及びオフセット４は、それぞれ（９，３）、（３，−９）、（−３，９）、及び（−９，−３）となる。この倍率を用いて、目標テクセル位置を包含するフィルタカーネルのサイズが容易に修正されることができる。
【００２１】
[0029]単一の（ｕ，ｖ）の対だけを指定し、その他３つのオフセットを生成するためにテクスチャユニット２５６に頼る代わりに、本発明の別の実施形態によれば、テクスチャユニット２５６は、２つのユーザ指定の非鏡像関係の（ｕ，ｖ）の対を受信し、さらなるユーザの介入なしにその他２つの対を生成する。例えば、再び図２Ｅを参照して、テクスチャユニット２５６が（ｕ１，ｖ１）及び（−ｖ１，ｕ１）を受信すると仮定する。この実施形態において、テクスチャユニット２５６は、受信された（ｕ，ｖ）の対を対称的に反映して、（−ｕ１，−ｖ１）及び（ｖ１，−ｕ１）をそれぞれ生成する。
【００２２】
[0030]テクスチャユニット２５６に上述の動作のいずれかを実行させるために、１つのアプローチは、テクスチャユニット２５６に対して特定の入力引数と共に特定のシェーダプログラム命令を発行することである。この種のシェーダプログラム命令は、「プログラム可能なテクセル位置（ＰＴＰ）命令」と呼ばれる。ＰＴＰ命令に関する入力引数のうちの１つは、ユーザ指定のオフセット位置、又はユーザ指定のオフセット位置の配列であることができる。代替として、入力引数のうちの１つは、テクスチャユニット２５６に、ユーザによって指定され、テーブルに記憶された１つ又は複数のオフセットを検索させる。本発明の一実施形態によれば、ＰＴＰ命令のいくつかの例は、限定することなしに、
Sample_ptp
Sample_ptp2
Sample_ptp4
Sample_c_ptp
Sample_c_pfp2
Sample_c_ptp4
Load4_ptp
Load4_ptp2
Load4_ptp4
Load4_c_ptp
Load4_c_ptp2
Load4_c_ptp4
を含む。
【００２３】
[0031]上記のＰＴＰ命令のいずれかを実行することは、テクスチャユニット２５６に、特定のオフセット位置の、射影された画素に関連するいくつかのテクセルにアクセスさせる。ここで、接尾辞「ｐｔｐ」は、命令において１つのプログラム可能なオフセット位置だけが１つの画素に対して指定されることを意味する。接尾辞「ｐｔｐ」を有するそのような命令に応答して、テクスチャユニット２５６は、単一のユーザ指定のオフセット位置に基づいてその他３つのオフセット位置を生成する。接尾辞「ｐｔｐ２」は、２つのプログラム可能なオフセット位置が命令において指定されることを意味する。接尾辞「ｐｔｐ２」を有する命令に応答して、テクスチャユニット２５６は、２つのユーザ指定のオフセット位置と鏡像関係のその他２つのオフセット位置を生成する。最後に、接尾辞「ｐｔｐ４」は、４つのプログラム可能なオフセット位置が命令において規定されることを指示するために使用される。上述の段落は、（１つ又は複数の）ユーザ指定のオフセット位置からオフセット位置を導出する一部の実装を詳細に説明する。
【００２４】
[0032]図３は、本発明の一実施形態による、プログラム可能なオフセット位置を含むテクスチャユニット２５６内のＰＴＰ命令を実行するための方法のステップの流れ図である。より具体的には、図２Ａに示された画素シェーダエンジン２５４及びテクスチャユニット２５６に関連して、画素シェーダエンジン２５４が実行可能なシェーダプログラム２６２を実行するとき、少なくとも１つのユーザ指定のオフセット位置を伴うＰＴＰ命令がテクスチャユニット２５６に発行されることができる。例示するために、発行されたＰＴＰ命令が接尾辞「ｐｔｐ４」を有し、４つの（ｕ，ｖ）の対を含むと仮定する。ステップ３０２において、テクスチャユニット２５６は、命令を受信し、複数の（ｕ，ｖ）の対が存在することを命令の接尾辞から認識する。ステップ３０４において、テクスチャユニット２５６は、ユーザ指定のオフセット位置の４つの対を取得し、次に、ステップ３０６において目標テクセル位置を導出する。その一方、発行されたＰＴＰ命令が接尾辞「ｐｔｐ」を代わりに有する場合、テクスチャユニット２５６は、ステップ３０４において、単一のユーザ指定のオフセット位置をやはり取得し、ステップ３０６において、その他３つの目標テクセル位置を導出するために上で詳細に説明された対称的な変換を実行する。
【００２５】
[0033]いったん目標テクセル位置が決定されると、テクスチャユニット２５６は、ステップ３０８において、ＰＴＰ命令で指定されたテクスチャマップから深度値などの関連するテクセルの属性を取り出す。ステップ３１０において、発行されたＰＴＰ命令の種類及び内容に応じて、テクスチャユニット２５６は、命令によって要求された動作を実行する。例えば、ＰＴＰ命令がＳａｍｐｌｅ＿［ｐｔｐ／ｐｔｐ２／ｐｔｐ４］である場合、取り出されたテクセルの属性がフィルタリングされ、画素毎に一意的なテクセルが生成される。ＰＴＰ命令がＳａｍｐｌｅ＿ｃ＿［ｐｔｐ／ｐｔｐ２／ｐｔｐ４］である場合、取り出されたテクセルの属性に対して深度比較が実行され、画素毎に一意的なテクセルを生成するために結果がフィルタリングされる。ＰＴＰ命令がＬｏａｄ４＿［ｐｔｐ／ｐｔｐ２／ｐｔｐ４］である場合、取り出されたテクセルの属性が画素毎に返される。深度比較動作もフィルタリング動作も実行されない。ＰＴＰ命令がＬｏａｄ４＿ｃ＿［ｐｔｐ／ｐｔｐ２／ｐｔｐ４］である場合、取り出されたテクセルの属性に対して深度比較が実行され、結果が画素毎に返される。フィルタリング動作は実行されない。
【００２６】
[0034]１つの実装において、この新しい種類のＰＴＰ命令は図２Ａに示されたＡＰＩ２１６の一部であり、その結果、それらのＰＴＰ命令は、ＡＰＩ２１６を使用して開発された任意のアプリケーションプログラムによって呼び出されることができ、ハードウェアプラットフォームから独立していることができる。また、テクスチャユニット２５６に関連するこれらの命令は、開発者が、確率的なサンプリング技術などの、大きなサイズ及び動的に生成される形状を有するフィルタカーネルをもたらすサンプリング方法を効率的に実装することを可能にする。さらに、上で検討されたバイリニアフィルタリング及び等価な平均フィルタリングに加えて、異方性フィルタリング及び等方性フィルタリングなどのその他のフィルタリングスキームにおいてプログラム可能なオフセット位置を使用することは当業者に明らかであるに違いない。例えば、異方性フィルタリング動作が１６個のサンプルを探し、フィルタリングすることを必要とする場合、１つの実装において、ＰＴＰ命令のうちの１つが、１６個のオフセット位置が１６個全てのサンプルに適用されるように４回発行される。
【００２７】
[0035]上記の説明は、本発明の種々の実施形態を本発明の態様がどのように実装されることができるかの例と共に示す。実施形態は上記の例、実施形態、命令の意味、及び図面のみであるとみなされるべきではなく、上記の例、実施形態、命令の意味、及び図面は、添付の特許請求の範囲によって規定される本発明の柔軟性及び利点を例示するために与えられる。
【図面の簡単な説明】
【００２８】
【図１Ａ】従来技術の２×２フィルタカーネルが、単一のクロックサイクルにおいて、画素中心を囲む４つの近接するテクセルにアクセスし、次にテクセルにバイリニアフィルタリングを適用するテクスチャマップの図である。
【図１Ｂ】テクスチャ動作において必要とされるまばらに分散したテクセルを示すテクスチャマップの図である。
【図２Ａ】本発明の１つ又は複数の態様を実装するように構成されたコンピューティングデバイスの概念図である。
【図２Ｂ】本発明の一実施形態による、プログラム可能なオフセット位置を用いてテクスチャフィルタリング動作を実行する図２Ａに示されたＧＰＵ２５０の一部の概略図である。
【図２Ｃ】本発明の一実施形態による、プログラム可能なオフセット位置を用いたテクスチャ動作を示すテクスチャマップの一部の図である。
【図２Ｄ】本発明の一実施形態による、目標テクセル位置のいくつかのテクセルに深度マップ試験を適用した結果の１つの集合を示す概念図である。
【図２Ｅ】本発明の一実施形態による、単一のユーザ指定のオフセット位置からのテクセル位置の導出を示す概念図である。
【図３】本発明の一実施形態による、テクスチャユニットにおけるプログラム可能なオフセット位置を用いたテクスチャ動作を実行するための方法のステップの流れ図である。
【符号の説明】
【００２９】
１００  テクスチャマップ
１０４  テクセル
１０６  テクセル
１０８  テクセル
１１０  テクセル
１２４  テクセル
１２６  テクセル
１２８  テクセル
１３０  テクセル
２００  コンピューティングデバイス
２０２  中央演算処理装置（ＣＰＵ）
２０４  システムインターフェース
２１０  システムメモリ
２１２  アプリケーションプログラム
２１４  高レベルシェーダプログラム
２１６  アプリケーションプログラミングインターフェース（ＡＰＩ）
２１８  ＧＰＵドライバ
２５０  グラフィックス処理ユニット（ＧＰＵ）
２５２  レンダリングパイプライン
２５４  画素シェーダエンジン
２５６  テクスチャユニット
２６０  ＧＰＵのローカルメモリ
２６２  実行可能なシェーダプログラム
２６６  テクスチャバッファ
２６８  フレームバッファ
２７０  ディスプレイ
Ｐ  シャドウマップ２８０に射影されたスクリーンの画素のテクスチャ座標
オフセットｉ  シャドウマップ２８０内のプログラム可能な（ｕｉ，ｖｉ）の対
テクスチャ［ｎ］  テクスチャバッファ２６６に記憶された特定のシャドウマップ
Ｄ１  目標テクセル
Ｄ２  目標テクセル
Ｄ３  目標テクセル
Ｄ４  目標テクセル
Ｖｉ  ベクトル
【図１Ａ】
2008299852.tif 000003
【図１Ｂ】
2008299852.tif 000004
【図２Ａ】
2008299852.tif 000005
【図２Ｂ】
2008299852.tif 000006
【図２Ｃ】
2008299852.tif 000007
【図２Ｄ】
2008299852.tif 000008
【図２Ｅ】
2008299852.tif 000009
【図３】
2008299852.tif 000010
【外国語明細書】
2008299852000001.pdf