sample_d (sm4 - asm)

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

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

注解

此指令的行为类似于 示例 指令,但 x 方向和 y 方向的源地址的导数分别由额外的参数 srcXDerivativessrcYDerivatives 提供。 这些导数位于规范化的纹理坐标空间中。

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

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

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

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

从未绑定任何内容的输入槽提取将为所有组件返回 0。

限制

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

此指令适用于以下着色器阶段:

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

最小着色器模型

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

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

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