Partager via


Sampler (Direct3D 9 asm-ps)

Un échantillonneur est un pseudo-registre d’entrée pour un nuanceur de pixels, qui est utilisé pour identifier l’étape d’échantillonnage. Il existe 16 registres d’étape d’échantillonnage de nuanceur de pixels : s0 à s15. Par conséquent, jusqu’à 16 surfaces de texture peuvent être lues en une seule passe de nuanceur. Les instructions qui utilisent un registre d’échantillonneur sont texld et texldp.

L’échantillonneur doit être déclaré avant de l’utiliser avec l’instruction dcl_samplerType (sm2, sm3 - ps asm).

Versions du nuanceur de pixels 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Échantillonneur x x x x x

 

Les échantillonneurs sont des pseudo-registres, car vous ne pouvez pas les lire ou les écrire directement.

Une unité d’échantillonnage correspond à l’étape d’échantillonnage de texture, encapsulant l’état spécifique à l’échantillonnage fourni par SetSamplerState. Chaque échantillonneur identifie de manière unique une surface de texture unique, qui est définie sur l’échantillonneur correspondant à l’aide de SetTexture. Toutefois, la même surface de texture peut être définie sur plusieurs échantillonneurs.

Au moment du dessin, une texture ne peut pas être définie simultanément en tant que cible de rendu et texture à un stade.

Un échantillonneur peut apparaître comme seul argument dans l’instruction de chargement de texture : texldl - ps.

Dans ps_3_0, si un échantillonneur est utilisé, il doit être déclaré au début du programme de nuanceur à l’aide de l’instruction dcl_samplerType (sm2, sm3 - ps asm).

L’échantillonnage d’une texture avec une dimension supérieure à celle présente dans les coordonnées de texture est illégal. L’échantillonnage d’une texture dont la dimension est inférieure à celle présente dans les coordonnées de texture ignore les coordonnées de texture supplémentaires.

Registres