gather4_c (sm5 - asm)

gather4 相同,但此入侵对纹素执行比较,类似于 sample_c

gather4_c[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.r], srcReferenceValue
说明
dest
[in] 操作结果的地址
srcAddress
[in] 一组纹理坐标。
srcResource
[in] 纹理寄存器。
srcSampler
[in] 采样器寄存器。
srcReferenceValue
[in] 已选定单个分量的寄存器,用于比较。

备注

有关 srcReferenceValue 如何与每个提取的纹素进行比较的说明,请参阅 sample_c。 与 sample_c 不同,gather4_c 会返回每个比较结果,而不是筛选结果。 操作顺序为 srcReferenceValue {ComparisonFunction} texel.R

对于 TextureCube 角,其中有三个真正的纹素,第四个必须合成,必须在比较步骤之后进行合成。 这意味着合成的纹素的返回比较结果可以是 0、0.33、0.66 或 1。 对于合成的纹素,一些实现可能仅返回 0 或 1。 除了可能的结果列表之外,未指定合成纹素的方法。

对于具有 float32 分量的格式,如果提取的值已规范化或者为 +-INF,那么它将在比较运算中不受影响地使用。 NaN 在比较运算中被用作 NaN,但 NaN 的确切位表示形式可能会更改。 在进行比较时,Denorm 被刷新为零。 对于 TextureCubes,缺少的第 4 个纹素的一些合成必须发生在角处,因此合成纹素返回位不变的概念不适用。

gather4_c 支持的格式与 sample_c 支持的格式相同。 这些是单分量格式,因此是 srcSampler 上的 .R,而不是任意重排。 未绑定资源的 gather4_c 返回 0。

使用此说明进行自定义阴影映射筛选。

此说明适用于以下着色器阶段:

顶点 外壳 Domain 几何图形 像素 计算
X X X X X X

最小着色器模型

以下着色器模型中支持此说明:

着色器模型 支持
着色器模型 5
着色器模型 4.1
着色器模型 4
着色器模型 3 (DirectX HLSL)
着色器模型 2 (DirectX HLSL)
着色器模型 1 (DirectX HLSL)

着色器模型 5 程序集 (DirectX HLSL)