次の方法で共有


gather4 (sm4.1 - asm)

バイリニア フィルタリング操作で使用される 4 つのテクセルを収集し、それらを 1 つのレジスタにパックします。

gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler.r
Item 説明
Dest
[入力]操作の結果のアドレス。
srcAddress
[入力]テクスチャ座標を格納します。
srcResource
[入力]リソース レジスタ。
スワイズルを使用すると、返された値を dest に書き込む前に任意にスウィズルすることができます。
srcSampler
[入力]サンプラー レジスタ。
このパラメーターには、R チャネルの値が dest にコピーされることを示す .r (赤) のスワイズルが必要です。

注釈

この操作は、単一チャネルの 2D または CubeMap テクスチャでのみ機能します。 2D テクスチャの場合は、サンプラーのアドレッシング モードのみが使用され、ミップ ピラミッドの最上位レベルが使用されます。

この命令は サンプル 命令と同様に動作しますが、フィルター処理されたサンプルは生成されません。 フィルター処理に寄与する 4 つのサンプルは、クエリ対象の場所の左下にあるサンプルから始めて、反時計回りの順序で xyzw に配置されます。 これは、(u,v) テクスチャ座標デルタを使用したポイント サンプリングと同じで、(-,+)、(+、+)、(+、-)(-,-)、デルタの大きさは常にテクセルの半分になります。

CubeMap テクスチャでは、バイリニア フットプリントが隣接する面のエッジ テクセルにまたがる場合に使用されます。 角は サンプル 命令と同じルールを使用します。これは、3つの衝突する顔の角の平均と見なされます。

サンプル命令に適用されるテクスチャ形式の制限は、gather4 命令にも適用されます。

ハードウェア実装の場合、テクセルでサンプルを直接検出し、重み 0 のテクセルの読み取りをスキップする従来のバイリニア フィルター処理の最適化は、 gather4 では利用できません。 gather4 は 、要求されたすべてのテクセルを常に返します。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
x x x

最小シェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4
シェーダー モデル 3 (DirectX HLSL)
シェーダー モデル 2 (DirectX HLSL)
シェーダー モデル 1 (DirectX HLSL)

シェーダー モデル 4 アセンブリ (DirectX HLSL)