Condividi tramite


enumerazione D3DSHADER_INSTRUCTION_OPCODE_TYPE (d3d9types.h)

Questa sezione elenca i codici operazione shader che possono essere contenuti nei primi 16 bit (0 - 15) di un token di istruzione. Le sezioni seguenti descrivono il formato del token delle istruzioni corrispondenti ai codici operazione.

Sintassi

typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
  D3DSIO_NOP,
  D3DSIO_MOV,
  D3DSIO_ADD,
  D3DSIO_SUB,
  D3DSIO_MAD,
  D3DSIO_MUL,
  D3DSIO_RCP,
  D3DSIO_RSQ,
  D3DSIO_DP3,
  D3DSIO_DP4,
  D3DSIO_MIN,
  D3DSIO_MAX,
  D3DSIO_SLT,
  D3DSIO_SGE,
  D3DSIO_EXP,
  D3DSIO_LOG,
  D3DSIO_LIT,
  D3DSIO_DST,
  D3DSIO_LRP,
  D3DSIO_FRC,
  D3DSIO_M4x4,
  D3DSIO_M4x3,
  D3DSIO_M3x4,
  D3DSIO_M3x3,
  D3DSIO_M3x2,
  D3DSIO_CALL,
  D3DSIO_CALLNZ,
  D3DSIO_LOOP,
  D3DSIO_RET,
  D3DSIO_ENDLOOP,
  D3DSIO_LABEL,
  D3DSIO_DCL,
  D3DSIO_POW,
  D3DSIO_CRS,
  D3DSIO_SGN,
  D3DSIO_ABS,
  D3DSIO_NRM,
  D3DSIO_SINCOS,
  D3DSIO_REP,
  D3DSIO_ENDREP,
  D3DSIO_IF,
  D3DSIO_IFC,
  D3DSIO_ELSE,
  D3DSIO_ENDIF,
  D3DSIO_BREAK,
  D3DSIO_BREAKC,
  D3DSIO_MOVA,
  D3DSIO_DEFB,
  D3DSIO_DEFI,
  D3DSIO_TEXCOORD,
  D3DSIO_TEXKILL,
  D3DSIO_TEX,
  D3DSIO_TEXBEM,
  D3DSIO_TEXBEML,
  D3DSIO_TEXREG2AR,
  D3DSIO_TEXREG2GB,
  D3DSIO_TEXM3x2PAD,
  D3DSIO_TEXM3x2TEX,
  D3DSIO_TEXM3x3PAD,
  D3DSIO_TEXM3x3TEX,
  D3DSIO_RESERVED0,
  D3DSIO_TEXM3x3SPEC,
  D3DSIO_TEXM3x3VSPEC,
  D3DSIO_EXPP,
  D3DSIO_LOGP,
  D3DSIO_CND,
  D3DSIO_DEF,
  D3DSIO_TEXREG2RGB,
  D3DSIO_TEXDP3TEX,
  D3DSIO_TEXM3x2DEPTH,
  D3DSIO_TEXDP3,
  D3DSIO_TEXM3x3,
  D3DSIO_TEXDEPTH,
  D3DSIO_CMP,
  D3DSIO_BEM,
  D3DSIO_DP2ADD,
  D3DSIO_DSX,
  D3DSIO_DSY,
  D3DSIO_TEXLDD,
  D3DSIO_SETP,
  D3DSIO_TEXLDL,
  D3DSIO_BREAKP,
  D3DSIO_PHASE,
  D3DSIO_COMMENT,
  D3DSIO_END,
  D3DSIO_FORCE_DWORD
} D3DSHADER_INSTRUCTION_OPCODE_TYPE;

Costanti

 
D3DSIO_NOP
L'istruzione NOP esegue un'operazione no-op o nessuna operazione.


Formato

token di istruzione che contiene D3DSIO_NOP.
D3DSIO_MOV
L'istruzione MOV sposta i dati tra registri.


Formato

token di istruzione che contiene D3DSIO_MOV. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine.


Commenti

Può essere usato per i dati a virgola mobile e per aggiornare i registri degli indirizzi. Se usato per aggiornare i registri degli indirizzi, i valori vengono convertiti da virgola mobile usando l'arrotondamento al più vicino.
D3DSIO_ADD
L'istruzione ADD aggiunge due vettori di origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_ADD.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_SUB
L'istruzione SUB sottrae due vettori di origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_SUB. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_MAD
L'istruzione MAD moltiplica le prime e le seconde origini e aggiunge la terza origine.


Formato

token di istruzione che contiene D3DSIO_MAD. La lunghezza dell'istruzione è 4.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.

terzo token del parametro di origine.
D3DSIO_MUL
L'istruzione MUL moltiplica due vettori di origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_MUL. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_RCP
L'istruzione RCP calcola il reciproco dell'origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_RCP. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine. È necessario usare esplicitamente il componente swizzle di replica, ovvero il componente swizzle X, Y, Z o W (o R, G, B o A equivalente) .
D3DSIO_RSQ
L'istruzione RSQ calcola la radice quadrata reciproca dell'origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_RSQ. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine. È necessario usare esplicitamente il componente swizzle di replica, ovvero il componente swizzle X, Y, Z o W (o R, G, B o A equivalente) .
D3DSIO_DP3
L'istruzione DP3 calcola il prodotto punto a tre componenti (RGB) dei registri di origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DP3. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_DP4
L'istruzione DP4 calcola il prodotto punto a quattro componenti (RGBA) dei registri di origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DP4. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_MIN
L'istruzione MIN determina il minimo delle origini e archivia l'origine minima nella destinazione.


Formato

token di istruzione che contiene D3DSIO_MIN. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_MAX
L'istruzione MAX determina il massimo delle origini e archivia l'origine massima nella destinazione.


Formato

token di istruzione che contiene D3DSIO_MAX. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_SLT
L'istruzione SLT determina se la prima origine è minore della seconda e archivia il segno (1,0f per TRUE e 0,0f per FALSE) nella destinazione.


Formato

token di istruzione che contiene D3DSIO_SLT. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_SGE
L'istruzione SGE determina se la prima origine è maggiore o uguale alla seconda origine e archivia il segno (1,0f per TRUE e 0,0f per FALSE) nella destinazione.


Formato

token di istruzione che contiene D3DSIO_SGE. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_EXP
L'istruzione EXP fornisce la precisione completa esponenziale 2x.


Formato

token di istruzione che contiene D3DSIO_EXP. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine. È necessario usare esplicitamente il componente swizzle di replica, ovvero il componente swizzle X, Y, Z o W (o R, G, B o A equivalente) .


Commenti

L'istruzione EXP fornisce almeno 21 bit di precisione.
D3DSIO_LOG
L'istruzione LOG calcola la precisione completa log").


Formato

token di istruzione che contiene D3DSIO_LOG. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine. Il token del parametro di origine richiede l'uso esplicito di swizzle replicate, ovvero il componente swizzle X, Y, Z o W (o R, G, B o A equivalente) deve essere specificato.


Commenti

L'istruzione LOG fornisce almeno 21 bit di precisione.
D3DSIO_LIT
L'istruzione LIT fornisce supporto parziale per l'illuminazione calcolando i coefficienti di illuminazione da due prodotti punti e un esponente.


Formato

token di istruzione che contiene D3DSIO_LIT. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine.


Commenti

L'aritmetica di precisione ridotta è accettabile nella valutazione del componente Y di destinazione (in maschera di scrittura). Un'implementazione deve supportare almeno otto bit frazionari nell'argomento di alimentazione. I prodotti a punti vengono calcolati con vettori normalizzati e i limiti di blocco sono da -128 a 128. L'errore deve corrispondere a una combinazione LOGP e EXPP o non più di circa un bit significativo (LSB) per un componente a colori a 8 bit.
D3DSIO_DST
L'istruzione DST calcola un vettore di distanza e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DST. La lunghezza dell'istruzione è 3.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_LRP
L'istruzione LRP interpola in modo lineare tra la seconda e la terza origine in base a una proporzione specificata nella prima origine e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_LRP. La lunghezza dell'istruzione è 4.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.

terzo token del parametro di origine


Commenti

L'istruzione LRP può essere usata con dati a virgola mobile o dati integer.

Quando viene usata l'istruzione LRP per aggiornare i registri integer, i valori vengono convertiti da virgola mobile usando l'arrotondamento all'intero più vicino.

L'istruzione LRP deve essere utilizzata per aggiornare i registri degli indirizzi.
D3DSIO_FRC
L'istruzione FRC restituisce la parte frazionaria di ogni componente di input.


Formato

token di istruzione che contiene D3DSIO_FRC. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine.


Commenti

Ogni componente del risultato è compreso nell'intervallo compreso tra 0,0 e 1,0.

Per il vertice di versione o pixel versione 1_1, le maschere di scrittura consentite sono Y e XY (X non è consentito).
D3DSIO_M4x4
L'istruzione M4x4 calcola il prodotto di un vettore a 4 componenti e una matrice 4x4 e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_M4x4. La lunghezza dell'istruzione è 3.

token del parametro di destinazione. È necessaria la maschera XYZW.

primo token del parametro di origine.

secondo token del parametro di origine. I componenti swizzle e i modificatori negati non sono validi.
D3DSIO_M4x3
L'istruzione M4x3 calcola il prodotto di un vettore a 4 componenti e una matrice 4x3 e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_M4x3. La lunghezza dell'istruzione è 3.

token del parametro di destinazione. La maschera XYZ è obbligatoria.

primo token del parametro di origine.

secondo token del parametro di origine. I componenti swizzle e i modificatori negati non sono validi.
D3DSIO_M3x4
L'istruzione M3x4 calcola il prodotto di un vettore a 3 componenti e una matrice 3x4 e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_M3x4. La lunghezza dell'istruzione è 3.

token del parametro di destinazione. È necessaria la maschera XYZW.

primo token del parametro di origine.

secondo token del parametro di origine. I componenti swizzle e i modificatori negati non sono validi.
D3DSIO_M3x3
L'istruzione M3x3 calcola il prodotto di un vettore a 3 componenti e una matrice 3x3 e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_M3x3. La lunghezza dell'istruzione è 3.

token del parametro di destinazione. La maschera XYZ è obbligatoria.

primo token del parametro di origine.

secondo token del parametro di origine. I componenti swizzle e i modificatori negati non sono validi.
D3DSIO_M3x2
L'istruzione M3x2 calcola il prodotto di un vettore a 3 componenti e una matrice 3x2 e archivia il risultato nella destinazione.


Formato

token di istruzione contenente D3DSIO_M3x2. La lunghezza dell'istruzione è 3.

token di parametro di destinazione. È necessaria la maschera XY.

primo token di parametro di origine.

secondo token di parametro di origine. I componenti swizzle e i modificatori negati non sono validi.
D3DSIO_CALL
L'istruzione CALL esegue una chiamata di funzione all'istruzione contrassegnata con l'indice dell'etichetta specificato.


Formato

token di istruzione contenente D3DSIO_CALL.

token di etichetta (token di parametro di origine usando il tipo di registrazione D3DSPR_LABEL).
D3DSIO_CALLNZ
L'istruzione CALLNZ esegue una chiamata condizionale (se non zero) all'istruzione contrassegnata dall'indice dell'etichetta.


Formato

token di istruzione contenente D3DSIO_CALLNZ.

token di etichetta (token di parametro di origine usando il tipo di registrazione D3DSPR_LABEL).

token di parametro di origine usando il tipo di registrazione D3DSPR_CONSTBOOL.
D3DSIO_LOOP
L'istruzione LOOP inizia un CICLO... Blocco ENDLOOP .


Formato

token di istruzione contenente D3DSIO_LOOP.

primo token di parametro di origine usando il tipo di registrazione D3DSPR_LOOP. Il componente X specifica il numero di iterazioni; il componente Y specifica il valore iniziale del registro del contatore del ciclo corrente; e il componente Z specifica l'incremento per il registro del contatore del ciclo corrente. Questo registro richiede l'uso esplicito della replica swizzle, ovvero . Le maschere dei componenti XYZW (RGBA) devono essere specificate.


Commenti

È possibile usare solo i registri integer nell'istruzione LOOP. L'istruzione LOOP viene fornita per l'iterazione e supporta un registro del contatore ciclo incrementato automaticamente che può essere usato per indicizzare la matrice costante. Quando annidato, ogni volta che viene usato il registro del contatore del ciclo, si riferisce al ciclo corrente.
D3DSIO_RET
L'istruzione RET restituisce da una subroutine o contrassegna la fine della funzione principale.


Formato

token di istruzione contenente D3DSIO_RET.


Commenti

Se un shader non contiene sottoroutine, l'uso di RET alla fine del programma principale è facoltativo.
D3DSIO_ENDLOOP
L'istruzione ENDLOOP contrassegna la fine di un blocco LOOP.


Formato

token di istruzione contenente D3DSIO_ENDLOOP.
D3DSIO_LABEL
L'istruzione LABEL contrassegna l'istruzione successiva con un indice di etichetta.


Formato

token di istruzione contenente D3DSIO_LABEL.

token di parametro di origine usando il tipo di registrazione D3DSPR_LABEL e un numero di registro.
D3DSIO_DCL
Specifica il token di istruzione DCL.
D3DSIO_POW
L'istruzione POW calcola la precisione completa (prima origine)seconda origine e archivia il risultato nella destinazione.


Formato

token di istruzione contenente D3DSIO_POW. La lunghezza dell'istruzione è 3.

token di parametro di destinazione.

primo token di parametro di origine.

secondo token di parametro di origine.


Commenti

Entrambe le origini richiedono l'uso esplicito di swizzle replicate, ovvero il componente X, Y, Z o W swizzle (o R, G, B o A equivalente) deve essere specificato.

L'istruzione POW fornisce almeno 15 bit di precisione.
D3DSIO_CRS
L'istruzione CRS calcola un prodotto incrociato usando la regola a destra.


Formato

token di istruzione contenente D3DSIO_CRS.

token di parametro di destinazione.

primo token di parametro di origine.

secondo token di parametro di origine.
D3DSIO_SGN
L'istruzione SGN determina il segno dell'origine e archivia il segno (-1 per negativo, 0 per 0 e 1 per positivo) nella destinazione.


Formato

token di istruzione contenente D3DSIO_SGN. La lunghezza dell'istruzione è 4.

token di parametro di destinazione.

primo token di parametro di origine.

secondo token di parametro di origine usando il tipo di registrazione D3DSPR_TEMP.

terzo token di parametro di origine usando il tipo di registrazione D3DSPR_TEMP.


Commenti

La seconda e la terza origine possono essere usate come registri temporanei.
D3DSIO_ABS
L'istruzione ABS calcola il valore assoluto dell'origine e archivia il risultato nella destinazione.


Formato

token di istruzione contenente D3DSIO_ABS.

token di parametro di destinazione.

token di parametro di origine.
D3DSIO_NRM
L'istruzione NRM normalizza un vettore 4D.


Formato

token di istruzione contenente D3DSIO_NRM. La lunghezza dell'istruzione è 2.

token di parametro di destinazione.

token di parametro di origine.
D3DSIO_SINCOS
L'istruzione SINCOS calcola il sine e la cosine dell'origine.
D3DSIO_REP
L'istruzione REP avvia un'istruzione REPEAT... Blocco ENDREP .


Formato

token di istruzione contenente D3DSIO_REP.

token di parametro di origine usando il tipo di registrazione D3DSPR_CONSTINT. Il componente X specifica il numero di iterazioni.


Commenti

È possibile usare solo i registri integer nell'istruzione REP .
D3DSIO_ENDREP
L'istruzione ENDREP contrassegna la fine di un blocco REP .


Formato

token di istruzione contenente D3DSIO_ENDREP.
D3DSIO_IF
L'istruzione IF inizia un blocco IF.


Formato

token di istruzione contenente D3DSIO_IF.

token di parametro di origine usando il tipo di registrazione D3DSPR_CONSTBOOL.


Commenti

Se il registro booleano di origine è TRUE, viene eseguito il codice racchiuso nell'istruzione IF e nella corrispondenza ELSE (o ENDIF se ELSE non viene usato); in caso contrario, l'esecuzione passa al codice racchiuso dalle istruzioni ELSE-ENDIF (ELSE esiste) o fuori dal blocco IF (ELSE non esiste).
D3DSIO_IFC
L'istruzione IFC inizia un blocco IF con un confronto.


Formato

token di istruzione contenente D3DSIO_IFC.

primo token di parametro di origine.

secondo token di parametro di origine.


Commenti

L'istruzione IFC ignora un blocco di codice, in base al confronto tra origini.

Entrambe le origini richiedono l'uso esplicito della replica swizzle, ovvero il componente swizzle X, Y, Z o W (o R, G, B o A equivalente) .

Se il confronto tra tutti i componenti di origine è TRUE, viene eseguito il codice racchiuso dall'istruzione IF e l'istruzione ELSE corrispondente (o istruzione ENDIF se ELSE non viene utilizzato); in caso contrario, l'esecuzione passa al codice racchiuso dalle istruzioni ELSE-ENDIF (ELSE esiste) o fuori dal blocco IF (ELSE non esiste).
D3DSIO_ELSE
L'istruzione ELSE avvia un blocco ELSE.


Formato

token di istruzione che contiene D3DSIO_ELSE.


Commenti

Se il registro booleano di origine nell'istruzione IF corrispondente è true, viene eseguito il codice racchiuso tra IF eELSE corrispondente. In caso contrario, l'esecuzione passa al codice racchiuso tra ELSE e le istruzioni ENDIF .
D3DSIO_ENDIF
L'istruzione ENDIF termina con un IF... Blocco ELSE .


Formato

token di istruzione che contiene D3DSIO_ENDIF.
D3DSIO_BREAK
L'istruzione BREAK si interrompe dal ciclo corrente in corrispondenza dell'endloop o dell'endrep più vicino.


Formato

token di istruzione che contiene D3DSIO_BREAK.
D3DSIO_BREAKC
L'istruzione BREAKC si interrompe dal ciclo corrente in corrispondenza dell'endloop o dell'endrep più vicino, in base ai criteri di confronto tra due origini.


Formato

token di istruzione che contiene D3DSIO_BREAKC.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_MOVA
L'istruzione MOVA sposta i dati dal registro a virgola mobile al registro integer.


Formato

token di istruzione che contiene D3DSIO_MOVA. La lunghezza dell'istruzione è 2.

token del parametro di destinazione.

token del parametro di origine.


Commenti

I valori vengono convertiti da virgola mobile usando l'arrotondamento al più vicino.

Il registro indirizzi è l'unico registro di destinazione consentito.
D3DSIO_DEFB
L'istruzione DEFB definisce un valore costante booleano, che deve essere caricato ogni volta che uno shader è impostato su un dispositivo. Questa istruzione può essere usata nel vertex shader 2_0 e versioni successive. Le costanti booleane impostate dal vertex shader corrente hanno la precedenza sulle costanti impostate dall'operazione di D3DDP2OP_SETVERTEXSHADERCONSTB.


Formato

token di istruzione che contiene D3DSIO_DEFB. La lunghezza dell'istruzione è 2.

token del parametro di destinazione. Il tipo di registro deve essere D3DSPR_CONSTBOOL.

Il token DWORD contiene il valore booleano, dove diverso da zero indica TRUE; zero indica FALSE.
D3DSIO_DEFI
L'istruzione DEFI definisce un valore costante integer, che deve essere caricato ogni volta che uno shader è impostato su un dispositivo. Le costanti impostate dal vertex shader corrente hanno la precedenza sulle costanti impostate dall'operazione di D3DDP2OP_SETVERTEXSHADERCONSTI.


Formato

token di istruzione che contiene D3DSIO_DEFI. La lunghezza dell'istruzione è 5.

token del parametro di destinazione. Il tipo di registro deve essere D3DSPR_CONSTINT.

4 Il token DWORD contiene quattro interi con segno a 32 bit.
D3DSIO_TEXCOORD
L'istruzione TEXCOORD copia i dati delle coordinate della trama (UVW1) come dati di colore (RGBA).


Formato

token di istruzione che contiene D3DSIO_TEXCOORD.

token del parametro di destinazione.

token del parametro di origine. Il token del parametro di origine è solo per pixel shader versione 1_4.


Commenti

Le istruzioni dell'assembler texcoord e texcrd usano entrambi il codice dell'operazione D3DSIO_TEXCOORD.

L'istruzione texcoord si applica alle versioni del pixel shader da 1_0 a 1_3; dispone di un token di parametro di destinazione e non è associato alcun token di parametro di origine.

L'istruzione texcrd si applica a pixel shader versione 1_4; dispone di un token di parametro di destinazione e di un token del parametro di origine associato.
D3DSIO_TEXKILL
L'istruzione TEXKILL annulla il rendering del pixel corrente se uno dei primi tre componenti (UVW) delle coordinate della trama è minore di zero.


Formato

token di istruzione che contiene D3DSIO_TEXKILL.

token del parametro di destinazione (si comporta in modo analogo a un token di origine).


Commenti

Se uno dei componenti del token di destinazione è minore di zero, terminare il pixel shader ed eliminare gli output.


Le funzionalità seguenti si applicano al token di destinazione:

  • È necessario usare un tipo di registro temporaneo (D3DSPR_TEMP) o trama (D3DSPR_TEXTURE).

  • Se viene usato un registro temporaneo, tutti i componenti devono essere stati scritti in precedenza.

  • Se viene usato un registro delle trame, tutti i componenti letti devono essere dichiarati.

  • È necessario specificare una maschera di scrittura completa.

D3DSIO_TEX
L'istruzione TEX carica la destinazione con dati di colore (RGBA) campionati dalla trama di origine.


Formato

token di istruzione che contiene D3DSIO_TEX.

token del parametro di destinazione usando il tipo di registro D3DSPR_PREDICATE.

I token di origine seguenti sono solo per pixel shader versione 1_4 e successive:

: il primo token del parametro di origine fornisce le coordinate della trama per il campione di trama.

: secondo token del parametro di origine usando il tipo di registro D3DSPR_SAMPLER. Il secondo token del parametro di origine identifica il numero di campionatore di trama da campionare.


Commenti

Le istruzioni dell'assembler tex e texld usano entrambi il codice dell'operazione D3DSIO_TEX.

L'istruzione tex si applica alle versioni di pixel shader da 1_0 a 1_3; dispone di un token di parametro di destinazione e non è associato alcun token di parametro di origine.

L'istruzione texld si applica a pixel shader versione 1_4 e successive; dispone di un token di parametro di destinazione e di due token di parametro di origine associati.
D3DSIO_TEXBEM
L'istruzione TEXBEM applica una trasformazione della mappa dell'ambiente d'urto modificando i dati dell'indirizzo della trama del registro di destinazione, usando i dati di perturbazione degli indirizzi (U,V) e una matrice dell'ambiente d'urto 2D.


Formato

token di istruzione che contiene D3DSIO_TEXBEM.

token del parametro di destinazione.

token del parametro di origine.
D3DSIO_TEXBEML
L'istruzione TEXBEML applica una trasformazione della mappa dell'ambiente con correzione della luminanza.


Formato

token di istruzione che contiene D3DSIO_TEXBEML.

token del parametro di destinazione.

token del parametro di origine.


Commenti

La trasformazione della mappa dell'ambiente con correzione della luminanza viene eseguita modificando i dati dell'indirizzo della trama del registro di destinazione, usando i dati di perturbazione degli indirizzi (U.V), una matrice di ambiente d'urto 2D e la luminanza.
D3DSIO_TEXREG2AR
L'istruzione TEXREG2AR interpreta i componenti di colore alfa e rosso dell'origine come dati dell'indirizzo di trama (U,V) per campionare la trama nella fase corrispondente al numero di registro di destinazione. Il risultato viene archiviato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_TEXREG2AR.

token del parametro di destinazione.

token del parametro di origine.


Commenti

L'istruzione TEXREG2AR è utile per le operazioni di rimmapping dello spazio dei colori. Supporta coordinate bidimensionali (2D).

Il registro di origine deve usare dati non firmati; se il registro di origine utilizza dati firmati o misti, l'operazione produce risultati non validi.
D3DSIO_TEXREG2GB
L'istruzione TEXREG2GB interpreta i componenti di colore verde e blu dell'origine come dati di indirizzo trama (U,V) per esempio la trama nella fase corrispondente al numero di registro di destinazione. Il risultato viene archiviato nella destinazione.


Formato

token di istruzione contenente D3DSIO_TEXREG2GB.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXREG2GB è utile per le operazioni di ripetizione dello spazio dei colori. Supporta coordinate bidimensionali (2D).

Il registro di origine deve usare dati senza segno; se il registro di origine usa dati firmati o misti, l'operazione genera risultati non validi.
D3DSIO_TEXM3x2PAD
L'istruzione TEXM3x2PAD esegue la prima moltiplicazione di righe di una matrice a due righe.


Formato

token di istruzione contenente D3DSIO_TEXM3x2PAD.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXM3x2PAD non può essere usata da se stessa; deve essere combinato con le istruzioni TEXM3x2TEX o TEXM3x2DEPTH .
D3DSIO_TEXM3x2TEX
L'istruzione TEXM3x2TEX esegue la riga finale di una matrice 3x2 moltiplica e usa il risultato in una ricerca di trama.


Formato

token di istruzione contenente D3DSIO_TEXM3x2TEX.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXM3x2TEX deve essere usata con l'istruzione TEXM3x2PAD .
D3DSIO_TEXM3x3PAD
L'istruzione TEXM3x3PAD esegue la moltiplicazione della prima o della seconda riga di una matrice a tre righe.


Formato

token di istruzione contenente D3DSIO_TEXM3x3PAD.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXM3x3PAD non può essere usata da se stessa; deve essere combinato con l'istruzione TEXM3x3,l'istruzione TEXM3x3SPEC , l'istruzione TEXM3x3VSPEC o l'istruzioneTEXM3x3TEX .
D3DSIO_TEXM3x3TEX
L'istruzione TEXM3x3TEX esegue una moltiplicazione della matrice 3x3 e usa il risultato in una ricerca di trama.


Formato

token di istruzione contenente D3DSIO_TEXM3x3TEX.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXM3x3TEX deve essere usata con due istruzioni TEXM3x3PAD .

Viene usato come finale di tre istruzioni che rappresentano un'operazione di moltiplicazione matrice 3x3, seguita da una ricerca trama. La matrice 3x3 è costituita dalle coordinate della trama della terza fase della trama e dalle due fasi precedenti della trama. Il vettore a tre componenti risultante (U,V,W) viene usato per campionire la trama nella fase 3. Tutte le trame assegnate alle due fasi di trama precedenti vengono ignorate. La moltiplicazione della matrice 3x3 è in genere utile per orientare un vettore normale allo spazio tangente corretto per il rendering della superficie.
D3DSIO_RESERVED0
Questa istruzione è riservata all'uso interno.
D3DSIO_TEXM3x3SPEC
L'istruzione TEXM3x3SPEC esegue una moltiplicazione della matrice 3x3 e usa il risultato in una ricerca di trama. Usato per la reflection speculare e il mapping dell'ambiente.


Formato

token di istruzione contenente D3DSIO_TEXM3x3SPEC.

token di parametro di destinazione.

primo token di parametro di origine.

secondo token di parametro di origine.


Commenti

L'istruzione TEXM3x3SPEC deve essere usata con due istruzioni TEXM3x3PAD . Questo set di istruzioni può essere usato per il mapping di reflection e ambiente speculare.

L'istruzione TEXM3x3SPEC esegue la riga finale di una matrice 3x3 moltiplicata, usa il vettore risultante come vettore normale per riflettere un vettore di raggio oculare e quindi usa il vettore riflesso per eseguire una ricerca trama. Lo shader legge il vettore oculare da un registro costante. La moltiplicazione della matrice 3x3 è in genere utile per orientare un vettore normale allo spazio tangente corretto per il rendering della superficie.

La matrice 3x3 è costituita dalle coordinate della trama della terza fase della trama e dalle due fasi precedenti della trama. Il vettore post reflection risultante (U,V,W) viene usato per campionire la trama nella fase finale della trama. Tutte le trame assegnate alle due fasi di trama precedenti vengono ignorate.
D3DSIO_TEXM3x3VSPEC
L'istruzione TEXM3x3VSPEC esegue una moltiplicazione della matrice 3x3 e usa il risultato in una ricerca di trama.


Formato

token di istruzione contenente D3DSIO_TEXM3x3VSPEC.

token di parametro di destinazione.

token di parametro di origine.


Commenti

L'istruzione TEXM3x3VSPEC deve essere usata con due istruzioni TEXM3x3PAD . Questo set di istruzioni può essere usato per la reflection speculare e il mapping dell'ambiente in cui il vettore di raggio oculare non è costante. Se il vettore a raggi oculari è costante, l'istruzione TEXM3x3SPEC esegue la stessa ricerca matrice e trama.

L'istruzione TEXM3x3VSPEC esegue la riga finale di un'operazione di moltiplicazione della matrice 3x3, interpreta il vettore risultante come vettore normale per riflettere un vettore a raggio oculare e quindi usa il vettore riflesso come indirizzo trama per una ricerca trama. Funziona proprio come TEXM3X3SPEC, ad eccezione del fatto che il vettore di raggio oculare viene preso dal quarto componente delle coordinate della trama. La moltiplicazione della matrice 3x3 è in genere utile per orientare un vettore normale allo spazio tangente corretto per il rendering della superficie.

La matrice 3x3 è costituita dalle coordinate della trama della terza fase della trama e dalle due fasi precedenti della trama. Il vettore postreflezione risultante (UVW) viene usato per campionire la trama nella fase 3. Tutte le trame assegnate alle due fasi di trama precedenti vengono ignorate.
D3DSIO_EXPP
L'istruzione EXPP fornisce precisione parziale esponenziale 2x.


Formato

token di istruzione contenente D3DSIO_EXPP. La lunghezza dell'istruzione è 2.

token di parametro di destinazione.

token di parametro di origine. Richiede l'uso esplicito del componente swizzle replicato, ovvero X, Y, Z o W swizzle (o R, G, B o A equivalente) deve essere specificato.


Commenti

L'istruzione EXPP fornisce almeno 10 bit di precisione.
D3DSIO_LOGP
L'istruzione LOGP calcola log₂ di precisione parziale(x).


Formato

token di istruzione contenente D3DSIO_LOGP. La lunghezza dell'istruzione è 2.

token di parametro di destinazione.

token di parametro di origine. Richiede l'uso esplicito del componente swizzle replicato, ovvero X, Y, Z o W swizzle (o R, G, B o A equivalente) deve essere specificato.


Commenti

L'istruzione LOGP fornisce almeno 10 bit di precisione.
D3DSIO_CND
L'istruzione CND sceglie tra la seconda e la terza origine, in base alla prima origine maggiore di 0,5 e archivia il risultato nella destinazione.


Formato

token di istruzione contenente D3DSIO_CND.

token di parametro di destinazione.

primo token di parametro di origine.

secondo token di parametro di origine.

terzo token di parametro di origine.
D3DSIO_DEF
L'istruzione DEF definisce un valore costante, che deve essere caricato ogni volta che uno shader è impostato su un dispositivo. Questa istruzione può essere usata in tutte le versioni del vertex shader. Le costanti impostate dal vertex shader corrente hanno la precedenza sulle costanti impostate dall'operazione di D3DDP2OP_SETVERTEXSHADERCONST.


Formato

token di istruzione che contiene D3DSIO_DEF. La lunghezza dell'istruzione è 5.

token del parametro di destinazione. Il tipo di registro deve essere D3DSPR_CONST, D3DSPR_CONST2, D3DSPR_CONST3 o D3DSPR_CONST4.

4 token DWORD. Numero a virgola mobile 4D o numero intero 4D.
D3DSIO_TEXREG2RGB
L'istruzione TEXREG2RGB interpreta i componenti di colore rosso, verde e blu (RGB) dell'origine come dati degli indirizzi di trama (U,V,W) per campionare la trama nelle fasi corrispondenti al numero di registro di destinazione. Il risultato viene archiviato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_TEXREG2RGB.

token del parametro di destinazione.

token del parametro di origine.


Commenti

L'istruzione TEXREG2RGB è utile per le operazioni di rimmapping dello spazio dei colori. Supporta coordinate bidimensionali (2D) e tridimensionali (3D). Può essere usato esattamente come l'istruzione TEXREG2AR o TEXREG2GB per rieseguire il mapping dei dati 2D. Tuttavia, l'istruzione TEXREG2RGB supporta anche i dati 3D in modo che possano essere usati con mappe cubi e trame di volumi 3D.
D3DSIO_TEXDP3TEX
L'istruzione TEXDP3TEX esegue un prodotto a tre componenti e usa il risultato per eseguire una ricerca di trama 1D.


Formato

token di istruzione che contiene D3DSIO_TEXDP3TEX.

token del parametro di destinazione.

token del parametro di origine.
D3DSIO_TEXM3x2DEPTH
L'istruzione TEXM3x2DEPTH calcola il valore di profondità da usare per un pixel.


Formato

token di istruzione che contiene D3DSIO_TEXM3x2DEPTH.

token del parametro di destinazione.

token del parametro di origine.


Commenti

L'istruzione TEXM3x2DEPTH deve essere usata con l'istruzione TEXM3x2PAD .
D3DSIO_TEXDP3
L'istruzione TEXDP3 esegue un prodotto a tre componenti tra i dati nel numero di registro della trama e il set di coordinate della trama corrispondente al numero di registro di destinazione.


Formato

token di istruzione che contiene D3DSIO_TEXDP3.

token del parametro di destinazione.

token del parametro di origine.
D3DSIO_TEXM3x3
L'istruzione TEXM3x3 esegue la moltiplicazione della matrice 3x3 se utilizzata in combinazione con due istruzioni TEXM3x3PAD .


Formato

token di istruzione che contiene D3DSIO_TEXM3x3.

token del parametro di destinazione.

token del parametro di origine.


Commenti

L'istruzione TEXM3x3 deve essere usata con due istruzioni TEXM3X3PAD . Viene usato come ultima di tre istruzioni che rappresentano un'operazione di moltiplicazione della matrice 3x3. La matrice 3x3 è costituita dalle coordinate della trama della terza fase della trama e dalle due fasi precedenti della trama. Qualsiasi trama assegnata a una delle tre fasi della trama viene ignorata.

L'istruzione TEXM3x3 è la stessa dell'istruzione TEXM3x3TEX , senza la ricerca della trama.
D3DSIO_TEXDEPTH
L'istruzione TEXDEPTH calcola il valore di profondità da usare nel test di confronto del buffer di profondità pixel.


Formato

token di istruzione che contiene D3DSIO_TEXDEPTH.

token del parametro di destinazione.
D3DSIO_CMP
L'istruzione CMP sceglie tra la seconda e la terza origine, in base alla prima origine maggiore o uguale a zero e archivia il risultato nella destinazione. Il confronto viene eseguito per canale.


Formato

token di istruzione che contiene D3DSIO_CMP.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.

terzo token del parametro di origine.
D3DSIO_BEM
L'istruzione BEM applica una trasformazione della mappa dell'ambiente d'urto.


Formato

token di istruzione che contiene D3DSIO_BEM.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.
D3DSIO_DP2ADD
L'istruzione DP2ADD esegue un prodotto 2D e un'aggiunta scalare e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DP2ADD. La lunghezza dell'istruzione è 4.

token del parametro di destinazione.

primo token del parametro di origine.

secondo token del parametro di origine.

terzo token del parametro di origine.
D3DSIO_DSX
L'istruzione DSX calcola la frequenza di modifica dell'origine nella direzione x e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DSX. La lunghezza dell'istruzione è 2.

token del parametro di destinazione. Accetta tutte le maschere di scrittura.

token del parametro di origine. Accetta tutti i swizzles.


Commenti

L'istruzione DSX calcola sempre le sfumature nel contenuto corrente dei registri in pixel, indipendentemente dal fatto che i pixel siano attivi a causa del controllo del flusso o a causa del bordo di una primitiva. Questi pixel vengono eseguiti in lockstep.
D3DSIO_DSY
L'istruzione DSY calcola la frequenza di modifica dell'origine nella direzione y e archivia il risultato nella destinazione.


Formato

token di istruzione che contiene D3DSIO_DSY. La lunghezza dell'istruzione è 2.

token del parametro di destinazione. Accetta tutte le maschere di scrittura.

token del parametro di origine. Accetta tutti i swizzles.


Commenti

L'istruzione DSY calcola sempre le sfumature nel contenuto corrente dei registri in pixel, indipendentemente dal fatto che i pixel siano attivi a causa del controllo del flusso o a causa del fatto che sia fuori dal bordo di una primitiva. Questi pixel vengono eseguiti in lockstep.
D3DSIO_TEXLDD
L'istruzione TEXLDD campiona una trama usando le coordinate della trama nel primo token di origine, il campionatore specificato dal secondo token di origine e le sfumature (DSX e DSY) dal terzo e quarto token di origine.


Formato

token di istruzione che contiene D3DSIO_TEXLDD. La lunghezza dell'istruzione è 5.

token di parametro di destinazione. Accetta tutte le maschere di scrittura.

primo token di parametro di origine.

secondo token di parametro di origine che deve usare il tipo di registrazione D3DSPR_SAMPLER. L'sampler indica che sono supportati sono D3DSAMP_MAXMIPLEVEL e D3DSAMP_MIPMAPLODBIAS.


Commenti

Tutte le origini supportano swizzles arbitrari.

Tutte le maschere di scrittura sono valide nella destinazione.
D3DSIO_SETP
L'istruzione SETP imposta il registro predicato.


Formato

token di istruzione contenente D3DSIO_SETP. La lunghezza dell'istruzione è 3.

token di parametro di destinazione usando il tipo di registrazione D3DSPR_PREDICATE. Richiede maschere di scrittura.

primo token di parametro di origine. I componenti swizzle devono essere specificati.

secondo token di parametro di origine. I componenti swizzle devono essere specificati.


Commenti

Per ogni canale che può essere scritto in base alla maschera di scrittura di destinazione, salvare il risultato booleano dell'operazione di confronto tra i canali corrispondenti delle origini (dopo che il modificatore di origine viene risolto).
D3DSIO_TEXLDL
L'istruzione TEXLDL esempi una trama in un particolare sampler usando le coordinate della trama fornite. Il livello specifico di dettaglio (LOD) che viene campione deve essere specificato come quarto componente (W) della coordinata della trama.


Formato

token di istruzione contenente D3DSIO_TEXLDL. La lunghezza dell'istruzione è 3.

token di parametro di destinazione usando il tipo di registrazione D3DSPR_PREDICATE.

primo token di parametro di origine fornisce le coordinate della trama per l'esempio di trama.

secondo token di parametro di origine usando il tipo di registrazione D3DSPR_SAMPLER. Identifica il numero di sampler trama da esempio. Impossibile specificare il modificatore di origine Negate. È possibile specificare Swizzle. Il numero di sampler deve essere dichiarato all'inizio dello shader.


Commenti

I valori predefiniti per i componenti mancanti della maschera di scrittura del token di destinazione sono 0 o 1 e dipendono dal formato trama.

Il numero di coordinate necessarie per eseguire l'esempio di trama dipende dal modo in cui è stato dichiarato il numero di sampler. Se è stato dichiarato come cubo, è necessaria una coordinata della trama a 3 componenti (RGB). La convalida impone che le coordinate fornite a texld siano sufficienti per la dimensione della trama dichiarata per l'sampler. Il campionamento di una trama con dimensioni inferiori rispetto a quelle presenti nella coordinata della trama è valida. Al contrario, il campionamento di una trama con dimensioni superiori rispetto a quelle presenti nella coordinata della trama non è valida.

Il campionamento di trame RGB senza segno comporta valori float compresi tra 0,0 e 1,0.

I trame con segno di campionamento generano valori float compresi tra -1,0 e 1,0.

Il campionamento delle trame a virgola mobile comporta la conservazione dell'intervallo Float16 a MAX_FLOAT16 o l'intervallo Float32-Max della pipeline in corso di conservazione.
D3DSIO_BREAKP
L'istruzione BREAK PRED interrompe il ciclo corrente all'estremità più vicina o endrep usando uno dei componenti del registro predicato come condizione per determinare se eseguire l'istruzione.


Formato

token di istruzione contenente D3DSIO_BREAKP.

token di parametro di origine usando il tipo di registro D3DSPR_PREDICATE con un swizzle replicato (ogni canale usa lo stesso componente di origine). Il modificatore di origine NOT (0xd) in bit 27:24 è consentito.
D3DSIO_PHASE
Si applica solo a Pixel shader versione 1_4.

L'istruzione PHASE contrassegna la transizione tra pixel shader versione 1 e 2. Se non è presente alcuna istruzione di fase, l'intero shader viene eseguito come se si tratta di uno shader di fase 2.


Formato

token di istruzione contenente D3DSIO_PHASE.


Commenti

Le istruzioni shader che si verificano prima dell'istruzione PHASE sono le istruzioni della fase 1. Tutte le altre istruzioni sono le istruzioni della fase 2. Avendo due fasi per le istruzioni, il numero massimo di istruzioni per shader è aumentato.

Il componente alfa dei registri temporanei non persiste nella transizione della fase. In altre parole, il componente alfa deve essere reinizializzato dopo l'istruzione della fase.
D3DSIO_COMMENT
Specifica il token di commento.
D3DSIO_END
Specifica il token finale.
D3DSIO_FORCE_DWORD
Forza una dimensione a 32 bit.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Intestazione d3d9types.h