3

特定のブレンド効果を実現しようとしていますが、うまくいきません:

ここに画像の説明を入力

この画像では、黒い背景に 3 つの「光る線」が見えます。

glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA)ブレンディングに使用されます。

ただし、これには削除したい特定のアーティファクトがあり、順序は明らかで効果があります。

よく見ると、垂直線が最初にレンダリングされたことがわかります。これは、垂直線が他のものによって遮られており、次に赤い線がレンダリングされているためです。最後に、最後の行をかなり上書きしています。特に、中心がかなり不透明なため、すべてが上書きされます。

目標は、レンダリング順序に関係なく、最も明るい部分が優先される、光度の効果的な合計を持つことです。これを達成する方法はありますか?

さらに、これは全体としてレンダリングされるオブジェクトの作成の一部であるため、すべての行を FBO にレンダリングし、魔法 (シェーダー?) を実行してから、FBO をシーンにレンダリングすることができます。

編集:個人的なテスト用。Python+pyglet のソース コードとグロー ライン テクスチャ:

https://dl.dropbox.com/u/44766482/blendtest.zip

A/D キーは宛先モードを循環し、W/S キーはソース モードを循環します。最初の行では、画像パスを変更して、テクスチャの透明度と黒の間で変更できますが、結果の画像には黒ではなく実際の透明度が必要です。

4

0 に答える 0