2009-05-29 16 views
0

現代のハードウェアでは、「ビットマスク」、つまり、特定のピクセルを描画するかどうかを指定するマスクを使用して画像を描画する最も速い方法は何か"マジックピンク"ピクセルなど)からOpenGLを使用していますか?OpenGLでビットマスク画像を描画する最速の方法

アルファブレンディングを使用し、不可視ピクセルをa = 0に設定するだけですか? 古い "AND black/white mask then OR bg on bg"テクニックを使用すべきですか? アルファパステストを使用する必要がありますか? シェーダを使用する必要がありますか?

私はこのようなイメージの膨大な量を描くことを計画しているので、これは問題です。

答えて

1

マスクとテクスチャが常に同じ場合(たとえばスプラットする場合)、事前に乗算されたカラー値でブレンドする必要があります。これは通常、テクスチャに背景を追加するだけで飽和します(ピクセルごとに掛ける必要はありません)。

+0

TomFの技術ブログhttp://home.comcast.net/~tom_forsyth/blog.wiki.htmlには、この手法の説明があります。Premultiplied Alphaの記事をご覧ください。 –

0

アルファパステストを使用する必要があります。デフォルトでは0.08以上の値に設定されていますので、ピクセルを0.0アルファに設定すると自動的にこれを取得します。

関連する問題