3

後処理効果を実行できるように、ポリゴンのシーンを複数のレンダー ターゲットにレンダリングしています。ただし、フラグメント シェーダーで設定している値がピクセル シェーダーに正確に反映されていないようです。

現在、パイプラインは次のようになっています。

  • 基本的なポリゴンを (以下の単純なシェーダーを使用して) 中間バッファーにレンダリングします。
  • バッファーを画面サイズのクワッドとして画面にレンダリングします。

WebGL インスペクター (http://benvanik.github.com/WebGL-Inspector/) を使用して中間バッファー (を使用して作成) を表示していますgl.createFrameBuffer()

ポリゴンを描画するとき、次のような非常に単純なフラグメント シェーダーがあります。

gl_FragColor = vec4(1, 0, 0, 0.5);

そして、これは私の描画呼び出しの前に:

gl.disable(gl.BLEND);

これにより、バッファー内に正確に (255,0,0,128) の値を持つピクセルが作成されると予想されますが、実際には (255,0,0,64) の値を持つピクセルが作成されます。予想通りのアルファ。

このプログラムはかなり大きくて複雑なので、答えがすぐにわからない場合は、投稿を具体的な詳細で更新します.

ありがとう!

4

1 に答える 1

1

premultiplyAlpha を true に設定していますか? それをいじることは、奇妙なアルファ値に関して最初に頭に浮かんだことです。

于 2012-01-27T15:07:16.983 に答える