2013年3月26日火曜日

ビルボードとソートとパーティクル

パーティクル処理は処理的なところはさほど難しいものではない。
でも、いろんな問題が起きる。

その中で一番大変なところはビルボードの前後関係をみてソートを行わないといけないところだと思う。

例えば、ソートを行わないと



.......なぞの状態になる。
αブレンドというのは描画バッファのデータを元に演算を行う処理なので、描画を行うとき後ろのデータがないとこうなるのである。
さらにデップステストを行っているので、隠れているオブジェクトは切り取られてしまってビルボードの形が見えてしまっている。

要はデップステストをきると塗りつぶしになるので、デップステストを切ってみた。


.............確かにかくかくはなくなってはいるものの、前後関係が完全におかしい絵になってしまった。
なので、結局ソートをすることになった。
ソートを行って、描画してみると


......確かに前後関係も正しくなっているし、ビルボードの形も見えなくはなっているけど、カメラを少し動かしたりするとちらつく問題がまだあった。

描画位置(ワールド座標)でのソートなので、傾いたりすると頂点同士の重なり合いでちらつく問題が発生するのである。
最終的にはソートを行った後、デップステストを切って描画することにした。


綺麗な描画になっているのがわかる。
前後関係の問題もちらつく問題もなくなり、求めた形として描画されるようになった。

実際の動画です



0 件のコメント:

コメントを投稿