Campionatore (Direct3D 9 ASM-PS)

Un campionatore è uno pseudo-registro di input per un pixel shader, che viene usato per identificare la fase di campionamento. Sono disponibili 16 registri per la fase di campionamento pixel shader: S0 per S15. Pertanto, è possibile leggere fino a 16 superfici di trama in un singolo passaggio dello shader. Le istruzioni che usano un registro campionatore sono texld e texldp.

Il campionatore deve essere dichiarato prima dell'uso con l'istruzione DCL _ samplerType (SM2, SM3-PS ASM) .

Versioni pixel shader 1_1 1_2 1 _ 3 1_4 2 _ 0 2 _ SW 2 _ x 3 _ 0 3 _ SW
Campionatore x x x x x

 

I sampler sono pseudo-registri perché non è possibile leggerli o scriverli direttamente.

Un'unità di campionamento corrisponde alla fase di campionamento della trama, che incapsula lo stato specifico del campionamento fornito da SetSamplerState. Ogni campionatore identifica in modo univoco una singola superficie di trama, che viene impostata sul campionatore corrispondente usando la texture. Tuttavia, la stessa superficie di trama può essere impostata su più Sampler.

In fase di disegnare non è possibile impostare contemporaneamente una trama come destinazione di rendering e una trama in una fase.

Un campionatore potrebbe apparire come unico argomento nell'istruzione di caricamento della trama: texldl-PS.

In PS _ 3 _ 0, se viene usato un campionatore, è necessario dichiararlo all'inizio del programma shader usando l'istruzione DCL _ samplerType (SM2, SM3-PS ASM) .

Il campionamento di una trama con una dimensione superiore a quella presente nelle coordinate di trama non è valido. Il campionamento di una trama con una dimensione inferiore rispetto a quello presente nelle coordinate di trama ignorerà le coordinate di trama aggiuntive.

Registri