こんばんわ。いつもメタセコイアにはお世話になっています。
メタセコイアではαチャンネル付きのテクスチャを張る時でもZバッファ更新
を行うようになっています。ですので表示される順序によって表示されるはずの
部分が透明部分に遮られて表示されない、という現象が良く起こります。
これはオブジェクトの順序を入れ替えたりする事で幾らかは対応できるので
すが、やはり不便に感じます。
ハードウェアの仕様上仕方が無いとは思うのですが、せめて透明度が完全に
0の所だけでもピクセルの書き込みをしないように出来ないでしょうか?
DirectXでのステート設定ですとこんな感じでしょうか。
SetRenderState( D3DRS_ALPHATESTENABLE \x2c TRUE )
SetRenderState( D3DRS_ALPHAREF \x2c 0x00 )
SetRenderState( D3DRS_ALPHAFUNC \x2c D3DPCMPCAPS_GREATERE )
これですと、テクスチャのαチャンネルを「抜き」として使うような場合に
とても助かります。
Show more...
この設定で何か問題が出るとは思えないのですが、もし問題がでるようでし
たらマテリアルなどでD3DRS_ALPHAREFの敷居値を変更できるといいかなと思い
ます。(D3DRS_ALPHAREを0にすればD3DRS_ALPHATESTENABLEがFALSEと同じ効果です)
お忙しい中大変だと思いますが比較的実装が容易だと思われますので検討
して頂けると助かります。