お世話になっております。
早速ですが、Ver.2.4.8において、Direct3D表示の場合、
マテリアルのカラーマップにアルファチャンネルを含む画像ファイル(32bitPNG形式等)
を割り当てると、そのマテリアル自体の不透明度が反映されなくなります。
OpenGL表示ではちゃんとカラーマップの不透明度とマテリアル自体の不透明度がモジュレートされているので、
おそらくDirect3Dのテクスチャステージステートの設定がデフォルトのままになっていると思われます。
ですので、
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_COLOROP\x2c D3DTOP_MODULATE );
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_COLORARG1\x2c D3DTA_TEXTURE );
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_COLORARG2\x2c D3DTA_CURRENT );
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_ALPHAOP\x2c D3DTOP_MODULATE );
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_ALPHAARG1\x2c D3DTA_TEXTURE );
pD3DDevice->SetTextureStageState( 0\x2c D3DTSS_ALPHAARG2\x2c D3DTA_CURRENT );
のような感じでポリゴン RGBA とテクスチャ RGBA をモジュレートするように変更していただけますでしょうか。
(2.5betaで既に改善されているのでしたら申し訳ないのですが)
Show more...
検証環境は下記です。
Metasequoia 2.4.8
Windows XP SP2
Athlon64 X2 3600+
DirectX 9.0c
NVIDIA Quadro FX 570
NVIDIA ForceWare 169.96
(ちなみに、このドライバはまれにOpenGLがクラッシュするのでとりあえずDirect3Dをメインに使っています。
本当は早くアップデートしたほうがいいんですけど・・・)