テクスチャーのアルファチャンネルを使って
髪の毛を半透明にしようとがんばっているのですが、
透明にしようとしている部分が白くなってしまいます。
いろいろやってもダメだったので、
同じように1枚の正方形ポリゴンで木の葉を作って葉の形のテクスチャーにすると透明になりました。
そこで、髪の毛の部分が白く塗られているのではなくて透明になっいて背景色が見えているのではと思い、
背景色を青に変えたら透明にする部分が青くなりました。
たぶんですが、透明になってはいるけど、キャラやキャラの後ろの背景のポリゴンが透過してしてしまっているように感じます。
木の葉の方は透明になった部分にキャラや背景のポリゴンが見えています。
なぜこのようなことが起こるのか教えて頂けないでしょうか?
初期化部分は以下の通りです。
//アルファブレンディングを設定する
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );// アルファ・ブレンディングを行う
pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );// 半透明処理を行う
pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );// 透過処理を行う
//アルファブレンディング テクスチャの設定
pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
pDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
pDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
pDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
pDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);