Share via


Enumeração D3DTEXTUREOP

Define operações de mesclagem de textura por estágio.

Sintaxe

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;

Constantes

D3DTOP_DISABLE

Desabilita a saída desse estágio de textura e todos os estágios com um índice mais alto. Para desabilitar o mapeamento de textura, defina-o como a operação de cor para o primeiro estágio de textura (estágio 0). As operações alfa não podem ser desabilitadas quando as operações de cor estão habilitadas. Definir a operação alfa como D3DTOP_DISABLE quando a mesclagem de cores está habilitada causa um comportamento indefinido.

D3DTOP_SELECTARG1

Use a primeira cor ou argumento alfa desse estágio de textura, não modificado, como a saída. Essa operação afeta o argumento de cor quando usado com o estado D3DTSS_COLOROP estágio de textura e o argumento alfa quando usado com D3DTSS_ALPHAOP.

equação desse argumento (s(rgba) = arg1)

D3DTOP_SELECTARG2

Use a segunda cor ou argumento alfa desse estágio de textura, não modificado, como a saída. Essa operação afeta o argumento de cor quando usado com o estado do estágio de textura D3DTSS_COLOROP e o argumento alfa quando usado com D3DTSS_ALPHAOP.

equação desse argumento (s(rgba) = arg2)

D3DTOP_MODULATE

Multiplique os componentes dos argumentos.

equação da operação de modulação (s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

Multiplique os componentes dos argumentos e mova os produtos para o 1 bit esquerdo (multiplicando-os efetivamente por 2) para clarear.

equação da operação modulate2x (s(rgba) = (arg1 x arg 2) e, em seguida, deslocar para a esquerda 1)

D3DTOP_MODULATE4X

Multiplique os componentes dos argumentos e mova os produtos para os 2 bits esquerdos (multiplicando-os efetivamente por 4) para clarear.

equação da operação modulate4x (s(rgba) = (arg1 x arg 2) e, em seguida, deslocar para a esquerda 2)

D3DTOP_ADD

Adicione os componentes dos argumentos.

equação da operação de adição (s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

Adicione os componentes dos argumentos com um viés - 0,5, tornando o intervalo efetivo de valores de - 0,5 a 0,5.

equação da operação assinada add (s(rgba) = arg1 + arg 2 – 0,5)

D3DTOP_ADDSIGNED2X

Adicione os componentes dos argumentos com um viés - 0,5 e mova os produtos para o 1 bit esquerdo.

equação da operação adicionar 2x assinada ((s(rgba) = arg1 + arg 2 - 0,5) e, em seguida, deslocar para a esquerda 1)

D3DTOP_SUBTRACT

Subtraia os componentes do segundo argumento dos do primeiro argumento.

equação da operação de subtração (s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

Adicione o primeiro e o segundo argumentos; em seguida, subtraia seu produto da soma.

equação da operação add smooth (s(rgba) = arg1 + arg 2 x (1 - arg1))

D3DTOP_BLENDDIFFUSEALPHA

Misture linearmente esse estágio de textura usando o alfa interpolado de cada vértice.

equação da operação alfa difusa blend (s(rgba) = arg1 x alpha + arg 2 x (1 – alfa))

D3DTOP_BLENDTEXTUREALPHA

Misture linearmente esse estágio de textura, usando o alfa da textura deste estágio.

equação da operação alfa de textura de mesclagem (s(rgba) = arg1 x alpha + arg 2 x (1 – alfa))

D3DTOP_BLENDFACTORALPHA

Misture linearmente esse estágio de textura usando um conjunto alfa escalar com o estado de renderização D3DRS_TEXTUREFACTOR.

equação da operação alfa do fator de mistura (s(rgba) = arg1 x alpha + arg 2 x (1 – alfa))

D3DTOP_BLENDTEXTUREALPHAPM

Misture linearmente um estágio de textura que usa um alfa pré-multiplicado.

equação da operação de mesclagem de textura alfa pm (s(rgba) = arg1 + arg 2 x (1 – alfa))

D3DTOP_BLENDCURRENTALPHA

Misture linearmente esse estágio de textura usando o alfa extraído do estágio de textura anterior.

equação da operação alfa atual de mesclagem (s(rgba) = arg1 x alpha + arg2 x (1 – alfa))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATE é definido no estágio n. A saída do estágio n é arg1. Além disso, se houver uma textura no estágio n + 1, qualquer D3DTA_CURRENT no estágio n + 1 será pré-multiplicada pela textura no estágio n + 1.

D3DTOP_MODULATEALPHA_ADDCOLOR

Modular a cor do segundo argumento, usando o alfa do primeiro argumento; em seguida, adicione o resultado ao argumento um. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

equação da operação alfa add color modulate (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

Modular os argumentos; em seguida, adicione o alfa do primeiro argumento. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

equação da operação de cor add alpha modulate (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

Semelhante a D3DTOP_MODULATEALPHA_ADDCOLOR, mas use o inverso do alfa do primeiro argumento. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

equação da operação alfa inversa de modulação de cor (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP_MODULATEINVCOLOR_ADDALPHA

Semelhante a D3DTOP_MODULATECOLOR_ADDALPHA, mas use o inverso da cor do primeiro argumento. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

equação da operação de cor inversa add alpha modulate (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

Execute o mapeamento de colisão por pixel usando o mapa de ambiente no próximo estágio de textura, sem luminância. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

D3DTOP_BUMPENVMAPLUMINANCE

Execute o mapeamento de colisão por pixel usando o mapa de ambiente no próximo estágio de textura, com luminância. Essa operação tem suporte apenas para operações de cor (D3DTSS_COLOROP).

D3DTOP_DOTPRODUCT3

Modular os componentes de cada argumento como componentes assinados, adicionar seus produtos; em seguida, replique a soma para todos os canais de cores, incluindo alfa. Essa operação tem suporte para operações de cor e alfa.

equação da operação dot product 3 (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

No DirectX 6 e no DirectX 7, as operações de multitextura as entradas acima são todas deslocadas pela metade (y = x - 0,5) antes do uso para simular dados assinados, e o resultado escalar é automaticamente fixado em valores positivos e replicado para todos os três canais de saída. Além disso, observe que, como uma operação de cor, isso não atualiza o alfa, apenas atualiza os componentes RGB.

No entanto, nos sombreadores do DirectX 8.1, você pode especificar que a saída seja roteada para os componentes .rgb ou .a ou ambos (o padrão). Você também pode especificar uma operação escalar separada no canal alfa.

D3DTOP_MULTIPLYADD

Executa uma operação de multiplicação acumulada. Ele pega os dois últimos argumentos, multiplica-os juntos e os adiciona ao argumento de entrada/origem restante e coloca isso no resultado.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

Interpola linearmente entre o segundo e o terceiro argumentos de origem por uma proporção especificada no primeiro argumento de origem.

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

D3DTOP_FORCE_DWORD

Força essa enumeração a ser compilada para 32 bits de tamanho. Sem esse valor, alguns compiladores permitiriam que essa enumeração fosse compilada em um tamanho diferente de 32 bits. Este valor não é usado.

Comentários

Os membros desse tipo são usados ao definir operações de cor ou alfa usando os valores D3DTSS_COLOROP ou D3DTSS_ALPHAOP com o método IDirect3DDevice9::SetTextureStageState .

Nas fórmulas acima, SRGBA é a cor RGBA produzida por uma operação de textura e Arg1, Arg2 e Arg3 representam a cor RGBA completa dos argumentos de textura. Componentes individuais de um argumento são mostrados com subscritos. Por exemplo, o componente alfa do argumento 1 seria mostrado como Arg1A.

Requisitos

Requisito Valor
parâmetro
D3D9Types.h

Confira também

Enumerações direct3D

D3DTEXTURESTAGESTATETYPE