2016-10-11 6 views
0

異なるドローコールのオブジェクトだけをブレンドする方法があるのだろうかと思っていました。異なるオブジェクトでのみOpenGL ES 2.0のブレンド

私は互いに近くに多くの点を描画するパーティクルシステムを持っています。私はそれらのカラー値を追加したくありません。しかし私は、異なるパーティクルシステムのドローコールから他のパーティクルを含むパーティクルを追加したいと考えています。私はフレームバッファオブジェクトを使ってこれを達成することができますが、効率的ではないようです。

答えて

0

ブレンド経由で直接行うことはできません。唯一の状態GLは、現在のフラグメントとフレームバッファの内容である。

あなたはステンシルマスク(描画開始時にステンシルをクリアし、パーティクルシステムの各三角形でステンシルを1に設定し、値がすでに1の場合はステンシルテストが失敗した場合は失敗します)を想像することができます。しかし、ほとんどのパーティクルは、エッジで各パーティクルをフェードアウトさせるためにある程度のアルファ透明度を必要とするので、実際には望んでいないでしょう...

実際には、1つのパーティクルの "フェード"その後ろにある粒子の「明るい」部分は、パーティクルシステムのすべての粒子を一緒にブレンドすることなくこの作業を行うことができるとは私は完全には分かりません。

+0

私の場合は、粒子にフェードアウト効果を使用しません(小さなものになります)ので、ステンシルマスクは動作するように見えます。ありがとう!! – satm12

関連する問題