Share via


Fusión de texturas (Direct3D 9)

Direct3D puede mezclar hasta ocho texturas en primitivos en un solo paso. El uso de varias mezclas de texturas puede aumentar profundamente la velocidad de fotogramas de una aplicación direct3D. Una aplicación emplea varias mezclas de texturas para aplicar texturas, sombras, iluminación especular, iluminación difusa y otros efectos especiales en un solo paso.

Para usar la combinación de texturas, la aplicación debe comprobar primero si el hardware del usuario lo admite. Esta información se encuentra en el miembro TextureCaps de la estructura D3DCAPS9 . Para obtener más información sobre cómo consultar el hardware del usuario para conocer las funcionalidades de combinación de texturas, consulte IDirect3DDevice9::GetDeviceCaps.

Fases de textura y cascada de mezcla de texturas

Direct3D admite la combinación de varias texturas de paso único mediante el uso de fases de textura. Una fase de textura toma dos argumentos y realiza una operación de fusión en ellos, pasando el resultado para su posterior procesamiento o para la rasterización. Puede visualizar una fase de textura como se muestra en el diagrama siguiente.

diagrama de una fase de textura

Como se muestra en el diagrama anterior, las fases de textura combinan dos argumentos mediante un operador especificado. Las operaciones comunes incluyen modulación simple o adición de los componentes de color o alfa de los argumentos, pero se admiten más de dos docenas de operaciones. Los argumentos de una fase pueden ser una textura asociada, el color iterado o alfa (iterado durante el sombreado gouraud), el color arbitrario y el alfa, o el resultado de la fase de textura anterior. Para obtener más información, vea Operaciones y argumentos de mezcla de texturas (Direct3D 9).

Nota

Direct3D distingue la combinación de colores de la combinación alfa. Las aplicaciones establecen operaciones de combinación y argumentos para color y alfa individualmente, y los resultados de esa configuración son independientes entre sí.

 

La combinación de argumentos y operaciones usadas por varias fases de combinación define un lenguaje de mezcla simple basado en flujo. Los resultados de una fase fluyen hacia abajo a otra, desde esa fase hasta la siguiente, etc. El concepto de resultados que fluyen de fase a fase para que finalmente se rasterice en un polígono se denomina a menudo cascada de mezcla de texturas. En el diagrama siguiente se muestra cómo las fases de textura individuales componen la cascada de mezcla de texturas.

diagrama de fases de textura en la cascada de mezcla de texturas

Cada fase de un dispositivo tiene un índice de base cero. Direct3D permite hasta ocho fases de fusión, aunque siempre debe comprobar las funcionalidades del dispositivo para determinar cuántas fases admite el hardware actual. La primera fase de fusión está en el índice 0, la segunda está en 1, etc., hasta el índice 7. El sistema combina las fases en el orden de índice creciente.

Use solo el número de fases que necesita; Las fases de fusión sin usar están deshabilitadas de forma predeterminada. Por lo tanto, si la aplicación solo usa las dos primeras fases, solo necesita establecer operaciones y argumentos para la fase 0 y 1. El sistema combina las dos fases e ignora las fases deshabilitadas.

Nota

Si la aplicación varía el número de fases que usa para situaciones diferentes, como cuatro fases para algunos objetos y solo dos para otros, no es necesario deshabilitar explícitamente todas las fases usadas anteriormente. Una opción consiste en deshabilitar la operación de color de la primera fase sin usar y, a continuación, no se aplicarán todas las fases con un índice superior. Otra opción consiste en deshabilitar la asignación de texturas por completo estableciendo la operación de color para la primera fase de textura (fase 0) en D3DTOP_DISABLE. Una tercera opción es cuando una fase de textura tiene D3DTSS_COLORARG1 igual a D3DTA_TEXTURE y el puntero de textura para la fase es NULL, esta fase y todas las fases después de que no se procesen.

 

La información adicional se incluye en los temas siguientes.

Texturas de Direct3D