Partager via


gather4 (sm4.1 - asm)

Rassemble les quatre texels qui seraient utilisés dans une opération de filtrage bi-linéaire et les empaquete dans un registre unique.

collect4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler.r
Élément Description
Dest
[in] Adresse du résultat de l’opération.
srcAddress
[in] Contient les coordonnées de texture.
srcResource
[in] Un registre de ressources.
Le swizzle permet aux valeurs retournées d’être swizzled arbitrairement avant d’être écrites dans dest.
srcSampler
[in] Un registre d’échantillonneur.
Ce paramètre doit avoir un swizzle .r (rouge), ce qui indique que la valeur du canal R est copiée dans dest.

Remarques

Cette opération fonctionne uniquement avec des textures 2D ou CubeMap à canal unique. Pour les textures 2D, seuls les modes d’adressage de l’échantillonneur sont utilisés et le niveau supérieur de toute pyramide mip est utilisé.

Cette instruction se comporte comme l’exemple d’instruction, mais aucun exemple filtré n’est généré. Les quatre exemples qui contribueraient au filtrage sont placés dans xyzw dans un ordre inverse dans le sens des aiguilles d’une montre en commençant par l’exemple en bas à gauche de l’emplacement interrogé. Il s’agit de l’échantillonnage de points avec des deltas de coordonnées de texture (u,v) aux emplacements suivants : (-,+),(+,+),(+,-),(-,-), où la magnitude des deltas est toujours la moitié d’un texel.

Pour les textures CubeMap lorsqu’une empreinte bi-linéaire s’étend sur un texel de bord du visage voisin sont utilisés. Les coins utilisent les mêmes règles que l’exemple d’instruction ; c’est le coin non perdu est considéré comme la moyenne des trois coins du visage d’empinging.

Les restrictions de format de texture qui s’appliquent aux exemples d’instructions s’appliquent également à l’instruction gather4 .

Pour les implémentations matérielles, les optimisations du filtrage biligne traditionnel qui détectent des échantillons directement sur les texels et ignorent la lecture des texels qui auraient un poids 0 ne peuvent pas être exploitées avec collect4. collect4 retourne toujours tous les texels demandés.

Cette instruction s’applique aux étapes de nuanceur suivantes :

Nuanceur de sommets Nuanceur de géométrie Nuanceur de pixels
x x x

Modèle de nuanceur minimal

Cette fonction est prise en charge dans les modèles de nuanceur suivants.

Modèle de nuanceur Pris en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 Oui
Modèle de nuanceur 4 non
Nuanceur modèle 3 (DirectX HLSL) non
Nuanceur modèle 2 (DirectX HLSL) non
Nuanceur modèle 1 (DirectX HLSL) non

Assembly de nuanceur modèle 4 (DirectX HLSL)