PDA

View Full Version : مد های ترکیب فوتوشاپ در DirectX



khorzu
چهارشنبه 06 مرداد 1389, 08:52 صبح
سلام
مد های ترکیب (Blending Mode) فتوشاپ رو که می شه بدون شیدر ساخت :



enum BlendingMode : unsigned char
{
BlendingMode_Normal = 0,
BlendingMode_Darken,
BlendingMode_Multiply,
BlendingMode_Lighten,
BlendingMode_Screen,
BlendingMode_LinearDodge,
};
...
if(blendMode)
{
switch(blendMode)
{
case BlendingMode_LinearDodge:
d3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
break;
case BlendingMode_Darken:
d3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_MIN);
d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);
d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
break;
case BlendingMode_Lighten:
d3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_MAX);
d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);
d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
break;
case BlendingMode_Multiply:
d3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_DESTCOLOR);
d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ZERO);
break;
case BlendingMode_Screen:
d3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVDESTCOLO R);
d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
break;
}
}