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.
-
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.
-
D3DTOP_MODULATE
-
Multiplique os componentes dos argumentos.
-
D3DTOP_MODULATE2X
-
Multiplique os componentes dos argumentos e mova os produtos para o 1 bit esquerdo (multiplicando-os efetivamente por 2) para clarear.
-
D3DTOP_MODULATE4X
-
Multiplique os componentes dos argumentos e mova os produtos para os 2 bits esquerdos (multiplicando-os efetivamente por 4) para clarear.
-
D3DTOP_ADD
-
Adicione os componentes dos argumentos.
-
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.
-
D3DTOP_ADDSIGNED2X
-
Adicione os componentes dos argumentos com um viés - 0,5 e mova os produtos para o 1 bit esquerdo.
-
D3DTOP_SUBTRACT
-
Subtraia os componentes do segundo argumento dos do primeiro argumento.
-
D3DTOP_ADDSMOOTH
-
Adicione o primeiro e o segundo argumentos; em seguida, subtraia seu produto da soma.
-
D3DTOP_BLENDDIFFUSEALPHA
-
Misture linearmente esse estágio de textura usando o alfa interpolado de cada vértice.
-
D3DTOP_BLENDTEXTUREALPHA
-
Misture linearmente esse estágio de textura, usando o alfa da textura deste estágio.
-
D3DTOP_BLENDFACTORALPHA
-
Misture linearmente esse estágio de textura usando um conjunto alfa escalar com o estado de renderização D3DRS_TEXTUREFACTOR.
-
D3DTOP_BLENDTEXTUREALPHAPM
-
Misture linearmente um estágio de textura que usa um alfa pré-multiplicado.
-
D3DTOP_BLENDCURRENTALPHA
-
Misture linearmente esse estágio de textura usando o alfa extraído do estágio de textura anterior.
-
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).
-
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).
-
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).
-
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).
-
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.
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 |
|
Confira também