gather4 (sm4.1 - asm)
收集将在双线性筛选操作中使用的四个纹素,并将其打包到单个寄存器中。
gather4[_aoffimmi (u,v) ] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler.r |
---|
项 | 说明 |
---|---|
dest |
[in]操作结果的地址。 |
srcAddress |
[in]包含纹理坐标。 |
srcResource |
[in]资源寄存器。 重排允许在将返回的值写入 dest 之前任意重排。 |
srcSampler |
[in]采样器寄存器。 此参数必须具有 .r (红色) 重排,这指示将 R 通道的值复制到 dest。 |
备注
此操作仅适用于单通道 2D 或 CubeMap 纹理。 对于 2D 纹理,仅使用采样器的寻址模式,并使用任何 mip 棱锥图的顶层。
此指令的行为与 示例 指令类似,但不会生成筛选的样本。 有助于筛选的四个样本按逆时针顺序放置在 xyzw 中,从样本开始到查询位置的左下角。 这与以下位置 (u,v) 纹理坐标增量的点采样相同: (-、+) 、 (+、+) 、 (+、-) 、 (-,-) ,其中增量的幅度始终为纹素的半。
对于 CubeMap 纹理,当双线性足迹跨越相邻面的边缘纹素时,使用。 角使用与 示例 指令相同的规则;即不为人知道的角被视为三个指角的平均值。
适用于 示例 指令的纹理格式限制也适用于 gather4 指令。
对于硬件实现,传统双线性筛选中的优化(直接检测纹素上的样本并跳过读取权重为 0 的纹素)无法与 gather4 一起使用。 gather4 始终返回所有请求的纹素。
此指令适用于以下着色器阶段:
顶点着色器 | 几何着色器 | 像素着色器 |
---|---|---|
x | x | x |
最小着色器模型
以下着色器模型中支持此函数。
着色器模型 | 支持 |
---|---|
着色器模型 5 | 是 |
着色器模型 4.1 | 是 |
着色器模型 4 | 否 |
着色器模型 3 (DirectX HLSL) | 否 |
着色器模型 2 (DirectX HLSL) | 否 |
着色器模型 1 (DirectX HLSL) | 否 |