Mapas de luz monocromáticos (Direct3D 9)
Algunas placas de acelerador 3D anteriores no admiten la combinación de texturas mediante el valor alfa del píxel de destino. Consulte Combinación de texturas alfa (Direct3D 9) para obtener más información. Por lo general, estos adaptadores no admiten la mezcla de varias texturas. Si la aplicación se ejecuta en un adaptador como este, puede usar la combinación de texturas multipaso para realizar la 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 primitiva a un elemento de textura correspondiente en el mapa de luz. Establece el factor de mezcla 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 monocromático:
// 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 mezcla de varias texturas, en este ejemplo se 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 mezcla de la textura para combinar los datos de textura con el color existente de la primitiva. A continuación, selecciona la primera textura y el color existente del primitivo como los datos de entrada.
Temas relacionados