gather4 (sm4.1 - asm)
收集將用於雙向線性篩選作業的四個紋素,並將其封裝成單一暫存器。
gather4[_aoffimmi (u,v) ] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler.r |
---|
項目 | 描述 |
---|---|
dest |
[in]作業結果的位址。 |
srcAddress |
[in]包含紋理座標。 |
srcResource |
[in]資源暫存器。 swizzle 可讓傳回的值在寫入 dest之前任意撥動。 |
srcSampler |
[in]取樣器暫存器。 此參數必須有 .r (紅色) swizzle,這表示 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) | 否 |