Collect (objet de texture HLSL DirectX)
Obtient les quatre exemples (composant rouge uniquement) qui seraient utilisés pour l’interpolation bilinéaire lors de l’échantillonnage d’une texture.
<Template Type>4 Object.Gather( sampler_state S, float2|3|4 Location [, int2 Offset] );
Paramètres
Élément | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
Objet |
Les types d’objets de texture suivants sont pris en charge : Texture2D, Texture2DArray, TextureCube, TextureCubeArray. |
||||||||
S |
[in] État Sampler. Il s’agit d’un objet déclaré dans un fichier d’effet qui contient des attributions d’état. |
||||||||
Emplacement |
[in] Coordonnées de texture. Le type d’argument dépend du type texture-objet.
|
||||||||
Compenser |
[in] Décalage de coordonnées de texture facultatif, qui peut être utilisé pour n’importe quel type d’objet de texture ; le décalage est appliqué à l’emplacement avant l’échantillonnage. Le type d’argument dépend du type texture-objet. Pour les nuanceurs ciblant le modèle de nuanceur 5.0 et les versions ultérieures, les 6 bits les moins significatifs de chaque valeur de décalage sont respectés en tant que valeur signée, ce qui génère [-32..31] plage. Pour les nuanceurs de modèles de nuanceur précédents, les décalages doivent être des entiers immédiats compris entre -8 et 7.
|
Valeur renvoyée
Vecteur à quatre composants, avec quatre composants de données rouges, dont le type est identique au type de modèle de la texture.
Modèle de nuanceur minimal
Cette fonction est prise en charge dans les modèles de nuanceur suivants.
vs_4_0 | vs_4_1 | ps_4_0 | ps_4_1 | gs_4_0 | gs_4_1 |
---|---|---|---|---|---|
x | x | x |
- TextureCubeArray est disponible dans le modèle de nuanceur 4.1 ou version ultérieure.
- Le modèle de nuanceur 4.1 est disponible dans Direct3D 10.1 ou version ultérieure.
Exemple
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);
}