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