0

私はiPhoneでopenGLとプログラミングを使用しています。

ゲームシーンの上に輝く「ビーム」をレンダリングしています。グロー エフェクトを作成するために、いくつかのテクスチャを加算ブレンディングで使用しています。ビームが純粋な黒の背景にレンダリングされている場合、ビームは希望どおりに見えますが、変化し続けるゲームでビームがレンダリングされると、背後の色と混ざり合ってしまいます。

現在、これは私の唯一のアイデアです:

1) ビームをテクスチャにレンダリングし、通常のブレンディングを使用して背景にテクスチャを描画します。

問題 - テクスチャは常に不透明になります (黒は私の glClear カラーです)。レンダリングしたテクスチャからすべての黒を削除する方法はまだわかりません。

助言がありますか?

4

1 に答える 1

1

アルファ チャネルを使用してテクスチャにレンダリングし、それをブレンドすることができます。しかし、これにより再びビームの外観が変わります。ブレンディングは常に外観に変化をもたらしますが、これを回避することはできません。

ブレンド式は

Destination = Incoming * Incoming_Blend_Factor + Original * Original_Blend_Factor

色を同じにしたい場合は、これに相当します

Destination = Incoming

これは、係数の比較により、

Destination = Incoming * 1 + Original * 0

つまり、まったくブレンドしないことです。


演習として、次のことを行います。Photoshop または GIMP では、背景画像を背景レイヤーに、ビームをその上のレイヤーに入れます。次に、使用可能なブレンド モードをいじって、希望する結果を得るようにしてください。

于 2011-07-20T13:29:21.740 に答える