使用指定的地址和给定采样器标识的筛选模式对指定元素/纹理中的数据采样。
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 方向分别由额外的参数、 srcXDerivatives 和 srcYDerivatives 提供。 这些派生体位于规范化纹理坐标空间中。
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 继承与 示例 指令相同的限制,并为其附加参数继承以下限制。
- srcXDerivatives 和 srcYDerivatives 必须是 temp(r#/x#)、constantBuffer (cb#)、input (v#) 寄存器或即时值(s)。
此说明适用于以下着色器阶段:
顶点着色器 | 几何着色器 | 像素着色器 |
---|---|---|
X | X | x |
最小着色器模型
以下着色器模型中支持此函数。
着色器模型 | 已支持 |
---|---|
着色器模型 5 | 是的 |
着色器模型 4.1 | 是的 |
着色器模型 4 | 是的 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |