Condividi tramite


Enumerazione D3DTEXTUREOP

Definisce le operazioni di fusione delle trame per fase.

Sintassi

typedef enum D3DTEXTUREOP { 
  D3DTOP_DISABLE                    = 1,
  D3DTOP_SELECTARG1                 = 2,
  D3DTOP_SELECTARG2                 = 3,
  D3DTOP_MODULATE                   = 4,
  D3DTOP_MODULATE2X                 = 5,
  D3DTOP_MODULATE4X                 = 6,
  D3DTOP_ADD                        = 7,
  D3DTOP_ADDSIGNED                  = 8,
  D3DTOP_ADDSIGNED2X                = 9,
  D3DTOP_SUBTRACT                   = 10,
  D3DTOP_ADDSMOOTH                  = 11,
  D3DTOP_BLENDDIFFUSEALPHA          = 12,
  D3DTOP_BLENDTEXTUREALPHA          = 13,
  D3DTOP_BLENDFACTORALPHA           = 14,
  D3DTOP_BLENDTEXTUREALPHAPM        = 15,
  D3DTOP_BLENDCURRENTALPHA          = 16,
  D3DTOP_PREMODULATE                = 17,
  D3DTOP_MODULATEALPHA_ADDCOLOR     = 18,
  D3DTOP_MODULATECOLOR_ADDALPHA     = 19,
  D3DTOP_MODULATEINVALPHA_ADDCOLOR  = 20,
  D3DTOP_MODULATEINVCOLOR_ADDALPHA  = 21,
  D3DTOP_BUMPENVMAP                 = 22,
  D3DTOP_BUMPENVMAPLUMINANCE        = 23,
  D3DTOP_DOTPRODUCT3                = 24,
  D3DTOP_MULTIPLYADD                = 25,
  D3DTOP_LERP                       = 26,
  D3DTOP_FORCE_DWORD                = 0x7fffffff
} D3DTEXTUREOP, *LPD3DTEXTUREOP;

Costanti

D3DTOP_DISABLE

Disabilita l'output di questa fase di trama e tutte le fasi con un indice superiore. Per disabilitare il mapping delle trame, impostarlo come operazione di colore per la prima fase della trama (fase 0). Le operazioni alfa non possono essere disabilitate quando sono abilitate le operazioni di colore. L'impostazione dell'operazione alfa su D3DTOP_DISABLE quando la fusione dei colori è abilitata causa un comportamento indefinito.

D3DTOP_SELECTARG1

Usare il primo colore o l'argomento alfa della fase di trama, non modificato, come output. Questa operazione influisce sull'argomento colore quando usato con lo stato della fase della trama D3DTSS_COLOROP e l'argomento alfa se usato con D3DTSS_ALPHAOP.

equazione di questo argomento (s(rgba) = arg1)

D3DTOP_SELECTARG2

Usare il secondo colore o l'argomento alfa della fase di trama, non modificato, come output. Questa operazione influisce sull'argomento colore quando viene usato con lo stato della fase della trama D3DTSS_COLOROP e l'argomento alfa quando usato con D3DTSS_ALPHAOP.

equazione di questo argomento (s(rgba) = arg2)

D3DTOP_MODULATE

Moltiplicare i componenti degli argomenti.

equazione dell'operazione modulata (s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

Moltiplicare i componenti degli argomenti e spostare i prodotti a sinistra 1 bit (moltiplicandoli in modo efficace per 2) per la luminosità.

equazione dell'operazione modulate2x (s(rgba) = (arg1 x arg 2) e quindi spostare a sinistra 1)

D3DTOP_MODULATE4X

Moltiplicare i componenti degli argomenti e spostare i prodotti a sinistra 2 bit (moltiplicandoli in modo efficace per 4) per la luminosità.

equazione dell'operazione modulate4x (s(rgba) = (arg1 x arg 2) e quindi spostare a sinistra 2)

D3DTOP_ADD

Aggiungere i componenti degli argomenti.

equazione dell'operazione di aggiunta (s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

Aggiungere i componenti degli argomenti con una distorsione - 0,5, rendendo l'intervallo effettivo di valori compreso tra - 0,5 e 0,5.

equazione dell'operazione add signed (s(rgba) = arg1 + arg 2 - 0,5)

D3DTOP_ADDSIGNED2X

Aggiungere i componenti degli argomenti con una distorsione - 0,5 e spostare i prodotti a sinistra 1 bit.

equazione dell'operazione 2x con segno ((s(rgba) = arg1 + arg 2 - 0,5) e quindi sposta a sinistra 1)

D3DTOP_SUBTRACT

Sottrae i componenti del secondo argomento da quelli del primo argomento.

equazione dell'operazione di sottrazione (s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

Aggiungere il primo e il secondo argomento; quindi sottrarre il prodotto dalla somma.

equazione dell'operazione add smooth (s(rgba) = arg1 + arg 2 x (1 - arg1))

D3DTOP_BLENDDIFFUSEALPHA

Combinare in modo lineare questa fase di trama usando l'alfa interpolato da ogni vertice.

equazione dell'operazione alfa diffusa di fusione (s(rgba) = arg1 x alfa + arg 2 x (1 - alfa))

D3DTOP_BLENDTEXTUREALPHA

Combinare in modo lineare questa fase di trama usando l'alfa della trama di questa fase.

equazione dell'operazione alfa trama di fusione (s(rgba) = arg1 x alfa + arg 2 x (1 - alfa))

D3DTOP_BLENDFACTORALPHA

Combinare in modo lineare questa fase di trama usando un set alfa scalare con lo stato di rendering D3DRS_TEXTUREFACTOR.

equazione dell'operazione alfa del fattore di fusione (s(rgba) = arg1 x alfa + arg 2 x (1 - alfa))

D3DTOP_BLENDTEXTUREALPHAPM

Combinare in modo lineare una fase di trama che usa un alfa premoltiplicato.

equazione dell'operazione alfa pm della trama di fusione (s(rgba) = arg1 + arg 2 x (1 - alfa))

D3DTOP_BLENDCURRENTALPHA

Combinare in modo lineare questa fase di trama usando l'alfa ricavato dalla fase precedente della trama.

equazione dell'operazione alfa corrente di fusione (s(rgba) = arg1 x alfa + arg2 x (1 - alfa))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATE è impostato nella fase n. L'output della fase n è arg1. Inoltre, se nella fase n + 1 è presente una trama, qualsiasi D3DTA_CURRENT nella fase n + 1 è premoltiplicata dalla trama nella fase n + 1.

D3DTOP_MODULATEALPHA_ADDCOLOR

Modulare il colore del secondo argomento, utilizzando l'alfa del primo argomento; aggiungere quindi il risultato all'argomento 1. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

equazione dell'operazione add color modulate alfa (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

Modulare gli argomenti; quindi aggiungere l'alfa del primo argomento. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

equazione dell'operazione add alpha modulate color (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

Simile a D3DTOP_MODULATEALPHA_ADDCOLOR, ma usare l'inverso dell'alfa del primo argomento. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

equazione dell'operazione add color modulate inversa alfa (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP_MODULATEINVCOLOR_ADDALPHA

Simile a D3DTOP_MODULATECOLOR_ADDALPHA, ma usare l'inverso del colore del primo argomento. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

equazione dell'operazione add alpha modulate inverse color (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

Eseguire il mapping dell'urto per pixel, usando la mappa dell'ambiente nella fase di trama successiva, senza luminanza. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

D3DTOP_BUMPENVMAPLUMINANCE

Eseguire il mapping dell'urto per pixel, usando la mappa dell'ambiente nella fase di trama successiva, con la luminanza. Questa operazione è supportata solo per le operazioni di colore (D3DTSS_COLOROP).

D3DTOP_DOTPRODUCT3

Modulare i componenti di ogni argomento come componenti firmati, aggiungere i propri prodotti; replicare quindi la somma in tutti i canali di colore, incluso alfa. Questa operazione è supportata per le operazioni di colore e alfa.

equazione dell'operazione del prodotto punto 3 (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

In DirectX 6 e DirectX 7, le operazioni multitexture degli input precedenti vengono tutte spostate verso il basso di metà (y = x - 0,5) prima di usare per simulare i dati firmati e il risultato scalare viene automaticamente bloccato su valori positivi e replicato in tutti e tre i canali di output. Si noti anche che, come operazione a colori, questo non aggiorna solo i componenti RGB.

Tuttavia, negli shader DirectX 8.1 è possibile specificare che l'output deve essere instradato a .rgb o ai componenti .a o entrambi (impostazione predefinita). È anche possibile specificare un'operazione scalare separata sul canale alfa.

D3DTOP_MULTIPLYADD

Esegue un'operazione di moltiplicazione accumulata. Accetta gli ultimi due argomenti, li moltiplica insieme e li aggiunge all'argomento di input/origine rimanente e li inserisce nel risultato.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

Esegue l'interpolazione lineare tra il secondo e il terzo argomento di origine in base a una proporzione specificata nel primo argomento di origine.

SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.

D3DTOP_FORCE_DWORD

Forza questa enumerazione per la compilazione in 32 bit di dimensioni. Senza questo valore, alcuni compilatori consentono la compilazione di questa enumerazione in una dimensione diversa da 32 bit. Questo valore non viene utilizzato.

Commenti

I membri di questo tipo vengono usati quando si impostano operazioni di colore o alfa usando i valori D3DTSS_COLOROP o D3DTSS_ALPHAOP con il metodo IDirect3DDevice9::SetTextureStageState .

Nelle formule precedenti, S RGBA è il coloreRGBA prodotto da un'operazione di trama e Arg1, Arg2 e Arg3 rappresentano il colore RGBA completo degli argomenti della trama. I singoli componenti di un argomento vengono visualizzati con i sottoscritti. Ad esempio, il componente alfa per l'argomento 1 verrà visualizzato comeArg1 A.

Requisiti

Requisito Valore
Intestazione
D3D9Types.h

Vedi anche

Enumerazione Direct3D

D3DTEXTURESTAGESTATETYPE