【C++】 DirectX初心者質問スレ Part32 【C】
■ このスレッドは過去ログ倉庫に格納されています
0548デフォルトの名無しさん
2010/12/05(日) 14:18:37それをアルファブレンドの式に当てはめると
SrcColor*(1,1,1,1)+DestColor*(0,0,0,1)
こういうこと。
(1,1,1,1)はD3DBLEND_ONEでいいが、(0,0,0,1)は定数では存在しないので
D3DBLEND_BLENDFACTORの力を借りる。
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_BLENDFACTOR);
SetRenderState(D3DRS_BLENDFACTOR, D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,1.0f));
あるいは、D3DRS_SEPARATEALPHABLENDENABLEを使う方法もある。
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO);
SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE);
SetRenderState(D3DRS_SRCBLENDALPHA, D3DBLEND_ONE);
SetRenderState(D3DRS_DESTBLENDALPHA, D3DBLEND_ONE);
こちらの方が概念としては素直だけど、対応してる環境がBLENDFACTORよりも少ない。
■ このスレッドは過去ログ倉庫に格納されています