gather4_c (sm5 - ASM)
gather4 と同じですが、この手順を除き、sample_c と同様にテクセルで比較を行います。
gather4_c[_aoffimmi(u,v)] dest[.mask]、srcAddress[.swizzle]、srcResource[.swizzle]、srcSampler[.r]、srcReferenceValue |
---|
Item | 説明 |
---|---|
dest |
[in] 操作の結果のアドレス |
srcAddress |
[in] テクスチャ座標のセット。 |
srcResource |
[in] テクスチャの登録。 |
srcSampler |
[in] サンプラーの登録。 |
srcReferenceValue |
[in] 選択された単一コンポーネントを使用した登録。これは比較で使用されます。 |
解説
取得各テクセルに対する srcReferenceValue の比較方法の詳細については、sample_c を参照してください。 sample_c とは異なり、gather4_c は各比較結果をフィルター処理するのではなく、返します。 操作順序は srcReferenceValue {ComparisonFunction} texel.R
です。
実際に 3 つのテクセルがあり、4 つ目のテクセルを合成する必要がある TextureCube コーナーの場合、合成は比較手順の後に行う必要があります。 つまり、合成されたテクセルに対して返される比較結果は、0、0.33、0.66、または 1 にすることができます。 一部の実装では、合成されたテクセルに対して 0 または 1 のみを返す場合があります。 可能な結果のこの一覧とは別に、テクセルを合成する方法は指定されていません。
float32 コンポーネントを含む形式では、フェッチされる値が正規化されている場合、または +-INF の場合は、そのままの比較操作で使用されます。 NaN は比較演算で NaN として使用されますが、NaN の正確なビット表現は変更される可能性があります。 非正規化は、比較に入るとゼロにフラッシュされます。 TextureCubes の場合、不足している 4 番目のテクセルの合成はコーナーで行われる必要があるため、合成されたテクセルに対して変更されていないビットを返すという概念は適用されません。
gather4_c でサポートされる形式は、sample_c でサポートされている形式と同じです。 これらは単一コンポーネント形式であるため、.任意のスウィズルではなく、srcSampler 上の R です。 バインドされていないリソースの gather4_c は 0 を返します。
カスタム シャドウ マップのフィルター処理には、この手順を使用します。
この手順は、次のシェーダー ステージに適用されます。
Vertex | Hull | [ドメイン] | ジオメトリ | ピクセル | Compute |
---|---|---|---|---|---|
x | X | X | X | X | x |
最小シェーダー モデル
この手順は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 | はい |
シェーダー モデル 4.1 | いいえ |
シェーダー モデル 4 | いいえ |
シェーダー モデル 3 (DirectX HLSL) | いいえ |
シェーダー モデル 2 (DirectX HLSL) | いいえ |
シェーダー モデル 1 (DirectX HLSL) | いいえ |