Sampler (Direct3D 9 asm-ps)
Un sampler è uno pseudoregistratore di input per un pixel shader, che viene usato per identificare la fase di campionamento. Esistono registri di campionamento di 16 pixel shader: s0 a s15. Pertanto, fino a 16 superfici di trama possono essere letti in un singolo passaggio shader. Le istruzioni che usano un registro sampler sono texld e texldp.
Il sampler deve essere dichiarato prima di usare con l'istruzione dcl_samplerType (sm2, sm3 - ps asm).
Versioni di 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 |
Gli esempi sono pseudo registri perché non è possibile leggere o scrivere direttamente su di essi.
Un'unità di campionamento corrisponde alla fase di campionamento della trama, incapsulando lo stato specifico del campionamento fornito da SetSamplerState. Ogni sampler identifica in modo univoco una singola superficie di trama, impostata sul sampler corrispondente usando SetTexture. Tuttavia, la stessa superficie di trama può essere impostata su più campioni.
In fase di disegno, una trama non può essere impostata simultaneamente come destinazione di rendering e una trama in una fase.
Un sampler potrebbe essere visualizzato come unico argomento nell'istruzione di caricamento trama: texldl - ps.
In ps_3_0, se viene usato un sampler, deve essere dichiarato all'inizio del programma shader usando l'istruzione dcl_samplerType (sm2, sm3 - ps asm).
Il campionamento di una trama con una dimensione superiore rispetto a quella presente nelle coordinate della trama è illegale. Il campionamento di una trama con una dimensione inferiore rispetto a quella presente nelle coordinate della trama ignora le coordinate di trama aggiuntive.
Argomenti correlati