directx初第十卷

混合

alpha混合

//开启alpha混合
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
//设置融合因子
g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
//(设置融合方式,像素相加)默认为相加,可以不写此句
g_pd3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);

指定alpha资源

从顶点颜色获得

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

从带alpha通道的纹理获得

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);

效果

其实指定不指定一个卵样~(个人感觉)

文章目录
  1. 1. 混合
    1. 1.1. alpha混合
    2. 1.2. 指定alpha资源
    3. 1.3. 其实指定不指定一个卵样~(个人感觉)