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.
-
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.
-
D3DTOP_MODULATE
-
Multiplique los componentes de los argumentos.
-
D3DTOP_MODULATE2X
-
Multiplique los componentes de los argumentos y cambie los productos a la izquierda de 1 bit (multiplicando eficazmente por 2) para iluminar.
-
D3DTOP_MODULATE4X
-
Multiplique los componentes de los argumentos y cambie los productos a la izquierda de 2 bits (multiplicando eficazmente por 4) para iluminar.
-
D3DTOP_ADD
-
Agregue los componentes de los argumentos.
-
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.
-
D3DTOP_ADDSIGNED2X
-
Agregue los componentes de los argumentos con un sesgo - 0,5 y cambie los productos a la izquierda de 1 bit.
-
D3DTOP_SUBTRACT
-
Resta los componentes del segundo argumento de los del primer argumento.
-
D3DTOP_ADDSMOOTH
-
Agregue los argumentos primero y segundo; después, resta su producto de la suma.
-
D3DTOP_BLENDDIFFUSEALPHA
-
Combine linealmente esta fase de textura utilizando el alfa interpolado de cada vértice.
-
D3DTOP_BLENDTEXTUREALPHA
-
Combina linealmente esta fase de textura utilizando el alfa de la textura de esta fase.
-
D3DTOP_BLENDFACTORALPHA
-
Combine linealmente esta fase de textura mediante un conjunto alfa escalar con el estado de representación D3DRS_TEXTUREFACTOR.
-
D3DTOP_BLENDTEXTUREALPHAPM
-
Combina linealmente una fase de textura que usa un alfa premultiplido.
-
D3DTOP_BLENDCURRENTALPHA
-
Combina linealmente esta fase de textura utilizando el alfa tomado de la fase de textura anterior.
-
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).
-
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).
-
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).
-
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).
-
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.
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 |
|
Consulte también