Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[21] αテスト / Chof
Done [From old BBS] Response
こんばんわ。いつもメタセコイアにはお世話になっています。

 メタセコイアではαチャンネル付きのテクスチャを張る時でもZバッファ更新
を行うようになっています。ですので表示される順序によって表示されるはずの
部分が透明部分に遮られて表示されない、という現象が良く起こります。
 これはオブジェクトの順序を入れ替えたりする事で幾らかは対応できるので
すが、やはり不便に感じます。

 ハードウェアの仕様上仕方が無いとは思うのですが、せめて透明度が完全に
0の所だけでもピクセルの書き込みをしないように出来ないでしょうか?

 DirectXでのステート設定ですとこんな感じでしょうか。

SetRenderState( D3DRS_ALPHATESTENABLE \x2c TRUE )
SetRenderState( D3DRS_ALPHAREF \x2c 0x00 )
SetRenderState( D3DRS_ALPHAFUNC \x2c D3DPCMPCAPS_GREATERE )

 これですと、テクスチャのαチャンネルを「抜き」として使うような場合に
とても助かります。


Show more...
2004-01-08 01:42
[28] Re: αテスト / O.Mizno
ご教授いただいた方法で実装してみて、α抜きが出来ること確認しました。
実際に反映されるのはβ6からになりますが、公開時にはまた動作チェックなど
お願いします。

まずはご報告までに。
2004-01-11 00:56
[34] Re: Re: αテスト / Chof
>ご教授いただいた方法で実装してみて、α抜きが出来ること確認しました。
>実際に反映されるのはβ6からになりますが、公開時にはまた動作チェックなど
>お願いします。
>
>まずはご報告までに。

 どうも有難うございます。これで色々助かります。今見直してきづいたんですが…、

SetRenderState( D3DRS_ALPHAFUNC \x2c D3DPCMPCAPS_GREATERE )



SetRenderState( D3DRS_ALPHAFUNC \x2c D3DCMP_GREATER )

ですね…。ちょっとうろ覚えで書いてしまいました。一度見直しておいて頂けると助かります。
2004-01-12 04:17