Enumeración D3DTEXTUREOP

Define las operaciones de combinación de texturas por fase.

Sintaxis

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

Deshabilita la salida de esta fase de textura y todas las fases con un índice superior. Para deshabilitar la asignación de texturas, establézcalo como operación de color para la primera fase de textura (fase 0). Las operaciones alfa no se pueden deshabilitar cuando se habilitan las operaciones de color. Si se establece la operación alfa en D3DTOP_DISABLE cuando la combinación de colores está habilitada, se produce un comportamiento indefinido.

D3DTOP_SELECTARG1

Use el primer argumento alfa o color de esta fase de textura, sin modificar, como salida. Esta operación afecta al argumento color cuando se usa con el estado de fase de textura D3DTSS_COLOROP y el argumento alfa cuando se usa con D3DTSS_ALPHAOP.

ecuación de este argumento (s(rgba) = arg1)

D3DTOP_SELECTARG2

Use el segundo color o argumento alfa de esta fase de textura, sin modificar, como salida. Esta operación afecta al argumento color cuando se usa con el estado de fase de textura D3DTSS_COLOROP y el argumento alfa cuando se usa con D3DTSS_ALPHAOP.

ecuación de este argumento (s(rgba) = arg2)

D3DTOP_MODULATE

Multiplique los componentes de los argumentos.

ecuación de la operación modulada (s(rgba) = arg1 x arg 2)

D3DTOP_MODULATE2X

Multiplique los componentes de los argumentos y cambie los productos a la izquierda de 1 bit (multiplicando eficazmente por 2) para iluminar.

ecuación de la operación modulate2x (s(rgba) = (arg1 x arg 2) y luego desplaza a la izquierda 1)

D3DTOP_MODULATE4X

Multiplique los componentes de los argumentos y cambie los productos a la izquierda de 2 bits (multiplicando eficazmente por 4) para iluminar.

ecuación de la operación modulate4x (s(rgba) = (arg1 x arg 2) y luego desplaza a la izquierda 2)

D3DTOP_ADD

Agregue los componentes de los argumentos.

ecuación de la operación add (s(rgba) = arg1 + arg 2)

D3DTOP_ADDSIGNED

Agregue los componentes de los argumentos con un sesgo - 0,5, lo que hace que el intervalo efectivo de valores entre - 0,5 y 0,5.

ecuación de la operación add signed (s(rgba) = arg1 + arg 2 – 0,5)

D3DTOP_ADDSIGNED2X

Agregue los componentes de los argumentos con un sesgo - 0,5 y cambie los productos a la izquierda de 1 bit.

ecuación de la operación add signed 2x ((s(rgba) = arg1 + arg 2 - 0,5) y, a continuación, mayús a la izquierda 1)

D3DTOP_SUBTRACT

Resta los componentes del segundo argumento de los del primer argumento.

ecuación de la operación de resta (s(rgba) = arg1 - arg 2)

D3DTOP_ADDSMOOTH

Agregue los argumentos primero y segundo; después, resta su producto de la suma.

ecuación de la operación agregar suave (s(rgba) = arg1 + arg 2 x (1 - arg1))

D3DTOP_BLENDDIFFUSEALPHA

Combine linealmente esta fase de textura utilizando el alfa interpolado de cada vértice.

ecuación de la operación alfa difusa de mezcla (s(rgba) = arg1 x alpha + arg 2 x (1 - alfa))

D3DTOP_BLENDTEXTUREALPHA

Combina linealmente esta fase de textura utilizando el alfa de la textura de esta fase.

ecuación de la operación alfa de textura de mezcla (s(rgba) = arg1 x alpha + arg 2 x (1 - alfa))

D3DTOP_BLENDFACTORALPHA

Combine linealmente esta fase de textura mediante un conjunto alfa escalar con el estado de representación D3DRS_TEXTUREFACTOR.

ecuación de la operación alfa del factor de mezcla (s(rgba) = arg1 x alpha + arg 2 x (1 - alfa))

D3DTOP_BLENDTEXTUREALPHAPM

Combina linealmente una fase de textura que usa un alfa premultiplido.

ecuación de la operación alfa pm de textura de mezcla (s(rgba) = arg1 + arg 2 x (1 - alfa))

D3DTOP_BLENDCURRENTALPHA

Combina linealmente esta fase de textura utilizando el alfa tomado de la fase de textura anterior.

ecuación de la operación alfa actual de mezcla (s(rgba) = arg1 x alpha + arg2 x (1 - alfa))

D3DTOP_PREMODULATE

D3DTOP_PREMODULATE se establece en la fase n. La salida de la fase n es arg1. Además, si hay una textura en la fase n + 1, cualquier D3DTA_CURRENT de la fase n + 1 está premultiplicada por textura en la fase n + 1.

D3DTOP_MODULATEALPHA_ADDCOLOR

Modula el color del segundo argumento, utilizando el alfa del primer argumento; a continuación, agregue el resultado al argumento uno. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

ecuación de la operación alfa modulada de color de adición (s(rgba) = arg1(rgb) + arg1(a) x arg2(rgb))

D3DTOP_MODULATECOLOR_ADDALPHA

Modula los argumentos; a continuación, agregue el alfa del primer argumento. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

ecuación de la operación agregar color modulado alfa (s(rgba) = arg1(rgb) x arg2(rgb) + arg1(a))

D3DTOP_MODULATEINVALPHA_ADDCOLOR

Similar a D3DTOP_MODULATEALPHA_ADDCOLOR, pero use el inverso del alfa del primer argumento. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

ecuación de la operación alfa inversa de adición modulada de color (s(rgba) = (1 - arg1(a)) x arg2(rgb) + arg1(rgb))

D3DTOP_MODULATEINVCOLOR_ADDALPHA

Similar a D3DTOP_MODULATECOLOR_ADDALPHA, pero use el inverso del color del primer argumento. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

ecuación de la operación agregar color inverso modulado alfa (s(rgba) = (1 - arg1(rgb)) x arg2(rgb) + arg1(a))

D3DTOP_BUMPENVMAP

Realice la asignación de aumentos por píxel con el mapa de entorno en la siguiente fase de textura, sin luminancia. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

D3DTOP_BUMPENVMAPLUMINANCE

Realice la asignación de aumentos por píxel con el mapa de entorno en la siguiente fase de textura, con luminancia. Esta operación solo se admite para las operaciones de color (D3DTSS_COLOROP).

D3DTOP_DOTPRODUCT3

Modula los componentes de cada argumento como componentes firmados, agrega sus productos; a continuación, replique la suma en todos los canales de color, incluido el alfa. Esta operación es compatible con las operaciones de color y alfa.

ecuación de la operación dot product 3 (s(rgba) = arg1(r) x arg2(r) + arg1(g) x arg2(g) + arg1(b) x arg2(b))

En DirectX 6 y DirectX 7, las operaciones multitexture de las entradas anteriores se desplazan por la mitad (y = x - 0,5) antes de usar para simular datos firmados y el resultado escalar se sujeta automáticamente a valores positivos y se replica en los tres canales de salida. Además, tenga en cuenta que, como operación de color, esto no actualiza el alfa simplemente actualiza los componentes RGB.

Sin embargo, en los sombreadores de DirectX 8.1 puede especificar que la salida se enrute a .rgb o a los componentes .a o ambos (el valor predeterminado). También puede especificar una operación escalar independiente en el canal alfa.

D3DTOP_MULTIPLYADD

Realiza una operación de acumulación de multiplicación. Toma los dos últimos argumentos, los multiplica juntos y los agrega al argumento de entrada y origen restante, y lo coloca en el resultado.

SRGBA = Arg1 + Arg2 * Arg3

D3DTOP_LERP

Interpola linealmente entre el segundo y el tercer argumento de origen por una proporción especificada en el primer argumento de origen.

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

D3DTOP_FORCE_DWORD

Fuerza esta enumeración a compilar a 32 bits de tamaño. Sin este valor, algunos compiladores permitirían que esta enumeración se compile en un tamaño distinto de 32 bits. Este valor no se utiliza.

Comentarios

Los miembros de este tipo se usan al establecer operaciones de color o alfa mediante el uso de los valores D3DTSS_COLOROP o D3DTSS_ALPHAOP con el método IDirect3DDevice9::SetTextureStageState .

En las fórmulas anteriores, S RGBA es el colorRGBA generado por una operación de textura y Arg1, Arg2 y Arg3 representan el color RGBA completo de los argumentos de textura. Los componentes individuales de un argumento se muestran con subíndices. Por ejemplo, el componente alfa del argumento 1 se mostraría como Arg1A.

Requisitos

Requisito Value
Encabezado
D3D9Types.h

Consulte también

Enumeraciones de Direct3D

D3DTEXTURESTAGESTATETYPE