融合处理的步骤:
1。设置融合因子D3DRS_SRCBLEND和D3DRS_DESTBLEND
Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCCOLOR);
Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
2。如果使用alpha分量,还需指定其来源(材质或alpha通道)
Device->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_DIFFUSE);//D3DTA_DIFFUSE指定来自diffuse color
Device->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1)
Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);//
D3DTA_TEXTURE指定来自texture color
Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
3。启用alpha融合绘制状态
Device->SetRenderState(D3DRS_ALPHABLENDENABLE,true);//在需要渲染时才开启,渲染完记得关闭
融合技术小结
1。alpha融合使我们可以将当前要光栅化的图元中的像素与先前已写入后台缓存中同一位置的像素进行融合计算
2。可通过融合因子控制源像素和目标像素的融合方式
3。alpha信息来源可以是所设定的材质的满反射分量或所设定的纹理的alpha通道