パーティクルの前後判断

Direct3Dでは、通常、ポリゴンの前後判断をZバッファ法によって行っています。

gzwrNone00001
Zバッファを使用しない場合、描画順序によってポリゴンの前後関係が入れ替わってしまうことがあります。(この場合は、最前列のキャラクターに上書きしている。)

 

gzwrOK00000
Zバッファを使用すると、前後関係が正しく描画されます。不透明なビルボードは、Zバッファを使用してください。

 

Zバッファ法は、シンプルで強力ですが、半透明の場合は原理上正常に動作しません。

gZwrtErr00005  
半透明のときにZバッファ書き込みを行うと、手前のキャラクターが後ろのキャラクターを透かすことができないことがあります。

半透明の場合は、ZバッファにかわりZソート法を使用してください。

zsrt_ok

Zソートを行うと、順番通りに表示されます。(写真では、真中の半透明キャラが、正常に重なっています。)

Zソートは、半透明で有効な手段ですが、エミッタ単位でソートするため、パーティクル群とパーティクル群が交差する場合は無意味になります。雨、雪のような広範囲にわたるパーティクルは、使用しないでください。
Zソートを指定した場合は、指定しないエミッタとはことなるタイミングで描画されます。Zソートを指定したエミッタに対してのみソートによる前後判断が機能します。

カテゴリー: 基本テクニック パーマリンク