Multipass Texture Blending
A version of this page is also available for
4/8/2010
Microsoft® Direct3D® Mobile applications can achieve numerous special effects by applying various textures to a primitive over the course of multiple rendering passes. The common term for this is multipass texture blending.
A typical use for multipass texture blending is to emulate the effects of complex lighting and shading models by applying multiple colors from several different textures. One such application is called light mapping. For more information, see Light Mapping with Textures.
Note
Some devices are capable of applying multiple textures to primitives in a single pass. For details, see Multiple Texture Blending.
If the user's hardware does not support multiple texture blending, your application can use multipass texture blending to achieve the same visual effects. However, the application cannot sustain the frame rates that are possible when using multiple texture blending.
To perform multipass texture blending
Set a texture in texture stage 0 by calling the IDirect3DMobileDevice::SetTextureStageState method.
Select the desired color and alpha blending arguments and operations with the IDirect3DMobileDevice::SetTextureStageState method. The default settings are well-suited for multipass texture blending.
Render the appropriate objects in the scene.
Set the next texture in texture stage 0.
Set the D3DMRS_SRCBLEND and D3DRS_DESTBLEND render states to adjust the source and destination blending factors as needed, see D3DMRENDERSTATETYPE. The system blends the new textures with the existing pixels in the render-target surface according to these parameters.
Repeat Steps 3, 4, and 5 with as many textures as needed.