texld - ps_2_0 e su

Esempi di una trama in un particolare sampler, usando le coordinate della trama fornite. Questa istruzione è diversa dall'istruzione texld : ps_1_4 istruzione usata in pixel shader versione 1_4.

Sintassi

texld dst, src0, src1

 

Dove:

  • dst è un registro di destinazione.
  • src0 è un registro di origine che fornisce le coordinate della trama per l'esempio di trama.
  • src1 identifica sampler (Direct3D 9 asm-ps) ( s#), dove # specifica il numero di sampler trama da eseguire per l'esempio. L'sampler ha associato una trama e uno stato di esempio definito da D3DSAMPLERSTATETYPE.

ps_2_0 e ps_2_x

dst deve essere un registro temporaneo (r#) e è consentita solo la maschera con estensione xyzw (maschera predefinita).

src0 deve essere un registro coordinate trama (t#) o un registro temporaneo (r#), senza modificatore o swizzle.

src1 deve essere un sampler (Direct3D 9 asm-ps) ( s#), senza modificatore o swizzle.

Se il bit D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT limite non è impostato (in D3DPSHADERCAPS2_0), un'istruzione di trama specificata (texld, texldp, texldb - ps, texldd ) può essere dipendente, al massimo, terzo ordine. Un'istruzione di trama dipendente dal primo ordine è un'istruzione di trama in cui:

  • src0 è un registro temporaneo (r#).
  • dst è stato scritto in precedenza, ora in fase di scrittura.

Un'istruzione di trama dipendente da secondo ordine è definita come istruzione trama che legge o scrive in un registro temporaneo (r#) il cui contenuto, prima di eseguire l'istruzione trama, dipende (forse indirettamente) dal risultato di un'istruzione di trama dipendente dal primo ordine. Un'istruzione di trama dipendente dall'ordine (n)th deriva da un'istruzione di trama (n - 1)th-order.

ps_3_0

src1 deve essere un sampler (Direct3D 9 asm-ps) ( s#), senza modificatore. Swizzle è consentito su src0 o src1. Il swizzle viene applicato alle coordinate della trama prima della ricerca della trama.

Commenti

Questa istruzione è supportata nelle versioni seguenti:

Versioni di Pixel shader 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texld x x x x x

 

Il numero di coordinate necessarie per src0 per eseguire l'esempio di trama dipende dal modo in cui è stato dichiarato src1, oltre al componente .w. I tipi di sampler vengono dichiarati con dcl_samplerType (sm2, sm3 - ps asm). Se src1 viene dichiarato come sampler 2D, src0 deve contenere coordinate con estensione xy; se src1 viene dichiarato come sampler del cubo o un sampler del volume, src0 deve contenere coordinate con estensione xyz. Il campionamento di una trama con dimensioni inferiori a quelle presenti nella coordinata della trama è consentito poiché i componenti di coordinate della trama aggiuntivi vengono ignorati.

Se la trama di origine contiene meno di quattro componenti, le impostazioni predefinite vengono inserite nei componenti mancanti. Le impostazioni predefinite dipendono dal formato della trama, come illustrato nella tabella seguente:

Formato trama Valori predefiniti
D3DFMT_R5G6B5, D3DFMT_R8G8B8, D3DFMT_L8, D3DFMT_L16, D3DFMT_R3G3B2, D3DFMT_CxV8U8, D3DFMT_L6V5U5 A = 1,0
D3DFMT_V8U8, D3DFMT_V16U16, D3DFMT_G16R16, D3DFMT_G16R16F, D3DFMT_G32R32F B = A = 1,0
D3DFMT_A8 R = G = B = 0,0
D3DFMT_R16F, D3DFMT_R32F G = B = A = 1,0
Tutti i formati di profondità/stencil R = B = 0,0, A = 1,0

 

Istruzioni sul pixel shader