sample_d (sm4 - asm)

使用指定的地址和给定采样器标识的筛选模式对指定元素/纹理中的数据采样。

sample_d[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler, srcXDerivatives[.swizzle], srcYDerivatives[.swizzle]
条目 DESCRIPTION
dest
[in]作结果的地址。
srcAddress
[in]一组纹理坐标。 有关详细信息,请参阅 示例 说明。
srcResource
[in]纹理寄存器。 有关详细信息,请参阅 示例 说明。
srcSampler
[in]采样器寄存器。 有关详细信息,请参阅 示例 说明。
srcXDerivatives
[in]源地址的 x 方向的派生值。 有关详细信息,请参阅备注部分。
srcYDerivatives
[in]源地址在 y 方向的派生值。 有关详细信息,请参阅备注部分。

注解

此指令的行为与 示例 指令类似,不同之处在于,源地址在 x 方向的派生和 y 方向分别由额外的参数、 srcXDerivativessrcYDerivatives 提供。 这些派生体位于规范化纹理坐标空间中。

srcXDerivatives (POS-swizzle) 的 r、g 和 b 组件提供 du/dx、dv/dx 和 dw/dx。 将忽略“a”组件(POS-重排)。

srcYDerivatives (POS-swizzle) 的 r、g 和 b 组件提供 du/dy、dv/dy 和 dw/dy。 将忽略“a”组件(POS-重排)。

与允许在 2x2 标记之间共享单个 LOD 计算 的示例 指令不同, sample_d 在像素着色器中使用的每个像素必须完全独立地计算 LOD。

如果 sample_d 的派生输入来自像素着色器中的派生计算指令,并且值包括 INF/NaN, 则sample_d 的行为可能与隐式计算派生 体的示例 指令不匹配。 INF/NaN 值可能会以不同的方式影响 LOD 计算。

从没有任何绑定的输入槽提取会为所有组件返回 0。

限制

  • sample_d 继承与 示例 指令相同的限制,并为其附加参数继承以下限制。
  • srcXDerivativessrcYDerivatives 必须是 temp(r#/x#)、constantBuffer (cb#)、input (v#) 寄存器或即时值(s)。

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

顶点着色器 几何着色器 像素着色器
X X x

最小着色器模型

以下着色器模型中支持此函数。

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

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