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 | X |
シェーダー モデル 3 (DirectX HLSL) | X |
シェーダー モデル 2 (DirectX HLSL) | X |
シェーダー モデル 1 (DirectX HLSL) | X |