3

輝度データのみの単純な 1 チャネル (8 ビット) ビットマップがあり、Photoshop でスクリーン ブレンド モードが行うように、既存のフレーム バッファとブレンドしたいと考えています。

したがって、ソースの白いピクセル (255) は白になり、ソースの 50% グレー ピクセル (128) は 50% エンライトされたフレームバッファ ピクセルになり、ソースの黒いピクセルは結果をそのままにしておく必要があります。glColor4fも設定する必要がありますか?

glBlendFuncの専門家がここで私を助けてくれませんか?

4

2 に答える 2

9

スクリーン ブレンディングはC = S + (1 - S ) × Dなので、必要なのは ですglBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR)。アルファ チャネルを導入した場合でも、画像データを事前に乗算された形式のままにしておくと、正しい結果を得ることができるはずです。

于 2010-07-15T16:48:56.997 に答える
0

これは、ストレートアルファでうまくいきました。

  • RGB ソース =SRC_ALPHA
  • アルファ ソース =SRC_ALPHA
  • RGB デスティネーション =ONE
  • アルファ宛先 =ONE_MINUS_SRC_ALPHA
于 2014-04-26T02:55:49.360 に答える