(DirectX HLSL 紋理物件)

取得四個樣本 (紅色元件,只) 在取樣紋理時用於雙線性插補。

<範本類型 > 4 Object.Gather ( sampler_state S, float2|3|4 Location [, int2 Offset] ) ;

參數

項目 描述
物件
支援下列 紋理物件 類型:Texture2D、Texture2DArray、TextureCube、TextureCubeArray。
S
[in] 取樣器狀態。 這是在包含狀態指派的效果檔案中宣告的物件。
位置
[in]紋理座標。 引數類型相依于紋理物件類型。
Texture-Object類型 參數類型
Texture2D float2
Texture2DArray, TextureCube float3
TextureCubeArray float4

抵消

[in]選擇性紋理座標位移,可用於任何紋理物件類型;位移會套用至取樣之前的位置。 引數類型相依于紋理物件類型。 針對以著色器模型 5.0 和更新版本為目標的著色器,每個位移值的 6 個最小有效位都會接受為帶正負號的值,並產生 [-32..31] 範圍。 針對先前的著色器模型著色器,位移必須是介於 -8 到 7 之間的立即整數。

Texture-Object類型 參數類型
Texture2D、Texture2DArray int2
TextureCube、TextureCubeArray 不支援

傳回值

四個元件向量,具有四個紅色資料的元件,其類型與紋理的範本類型相同。

最小著色器模型

下列著色器模型中支援此函式。

vs_4_0 vs_4_1 ps_4_0 ps_4_1 gs_4_0 gs_4_1
x x x
  1. TextureCubeArray 可在著色器模型 4.1 或更高版本中使用。
  2. 著色器模型 4.1 可在 Direct3D 10.1 或更高版本中使用。

範例

Texture2D<int1> Tex2d;
Texture2DArray<int2> Tex2dArray;
TextureCube<int3> TexCube;
TextureCubeArray<float2> TexCubeArray;

SamplerState s;

int4 main (float4 f : SV_Position) : SV_Target
{
    int2 iOffset = int2(2,3);

    int4 i1 = Tex2d.Gather(s, f.xy);
    int4 i2 = Tex2d.Gather(s, f.xy, iOffset);

    int4 i3 = Tex2dArray.Gather(s, f.xyz);
    int4 i4 = Tex2dArray.Gather(s, f.xyz, iOffset);

    int4 i5 = TexCube.Gather(s, f.xyzw);

    float4 f6 = TexCubeArray.Gather(s, f.xyzw);

    return i1+i2+i3+i4+i5+int4(f6);
}
  

Texture-Object