申し訳ありませんが、私はコメントするのではなく、よりよく答えると思います。
そこで、例を挙げて説明します。
何かを(テーブルのようにユーザーが望むものであれ)描画しなければならないとしたら、(バッファを交換する前に)ブレンドを使用して「保存」テクスチャを描画する必要があります。
2つの透明なボックスを描画する必要があるとします。
- クリア(0、0、0、0)
- セットブレンド機能(GL_ONE、GL_ZERO)
で画面を:これらのボックスは異なるテクスチャに保存する場合は、これをすることによって行うことができ
- 箱を描く
- テクスチャに保存します。今
ユーザーはそれらすべてを再描画しようとするたびに、彼は単にメインテーマ(テーブル)を描き、その上にブレンド機能(GL_SOURCE_ALPHA、GL_ONE_MINUS_SOURCE_ALPHA)を使用してテクスチャを描画します。
これは問題なく動作します。しかし、ユーザーが両方のボックスを1つのテクスチャに保存してボックスを重複させたい場合は、それらの2つのボックスのブレンドを "クリアされた"バックグラウンドとブレンドせずにどのように保存できますか?
要約すると、全体の絵画の最終イメージは、その上に機能(GL_SOURCE_ALPHA、GL_ONE_MINUS_SOURCE_ALPHA)が混在した2つのボックス(黄色と緑色のボックス)を持つ表にする必要があります。
あなたは 'glBendFunc'を試みたことがありますか? – Matso
"*ブレンド作業をする" *を定義します。あなたはすでにブレンド機能を持っていますか?つまり、ソースと目的地の色を組み合わせているのですか、または目的地のアルファがゼロより大きいかどうかに基づいてソース色を条件付きで書きたいだけですか? –
私は2番目の目標を達成しようとしています。これは、宛先アルファがゼロより大きいかどうかに基づいて条件付きでソースカラーを書き込むことです。私がやろうとしているのは、さまざまなテクスチャにバックバッファを保存し、ブレンド関数(GL_SOURCE_ALPHA、GL_ONE_MINUS_SOURCE_ALPHA)を使用してバックバッファ(おそらく他のもので再描画される)上に再描画することです。 – aftos