Compartir a través de


Mapas de luz monocromáticos (Direct3D 9)

Algunas placas de aceleración 3D anteriores no admiten la combinación de texturas mediante el valor alfa del píxel de destino. Consulte combinación de textura alfa (Direct3D 9) para obtener más información. Por lo general, estos adaptadores no admiten la combinación de texturas múltiples. Si la aplicación se ejecuta en un adaptador como este, puede usar la combinación de texturas multipaso para realizar una asignación de luz monocromática.

Para realizar la asignación de luz monocromática, una aplicación almacena la información de iluminación en los datos alfa de sus texturas de mapa de luz. La aplicación usa las funcionalidades de filtrado de texturas de Direct3D para realizar una asignación de cada píxel de la imagen del primitivo a un elemento de textura correspondiente en el mapa de luz. Establece el factor de fusión de origen en el valor alfa del elemento de textura correspondiente.

En el ejemplo siguiente se muestra cómo una aplicación puede usar una textura como un mapa de luz monocromo:

// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface and that lptexLightMap is a valid
// pointer to a texture that contains monochrome light map data.

// Set the light map texture as the current texture.
d3dDevice->SetTexture(0, lptexLightMap);

// Set the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);

// Set argument 1 to the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1,
                                D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);

Dado que los adaptadores de pantalla que no admiten la combinación alfa de destino normalmente no admiten la combinación de varias texturas, este ejemplo establece el mapa de luz como la primera textura, que está disponible en todas las tarjetas de aceleración 3D. El código de ejemplo establece la operación de color de la fase de combinación de la textura para combinar los datos de textura con el color existente del primitivo. A continuación, selecciona la primera textura y el color existente del primitivo como datos de entrada.

asignación de luz con texturas