0

ES 2.0でGLSLを学習していて、グローフラグメントシェーダーを作成しようとしています。

これは私が今持っているものです:

for(float x = startX; x < endX; x += w) {
    for(float y = startY; y < endY; y += h) {
        px = texture2D(u_texture, vec2(x, y));
        extra += px;
        count++;
    }
}
extra = clamp(extra / count, 0.0, 1.0);

私が得ている問題は、テクスチャの端の近くに暗いピクセルが表示されていることです。これは、ピクセルが(0.0、0.0、0.0、0.0)としてカウントされるためだと思います。これは、透明な黒いピクセルであり、エッジの画像を暗くします。透明なピクセルを白として扱うことは可能でしょうか?または、グローを実装するためのより良い方法はありますか?

ありがとう!

4

1 に答える 1

1

事前に乗算されたアルファを使用していたようです。通常のテクスチャに切り替えて、正常に動作しました

ご迷惑おかけして申し訳ありません!

于 2012-11-11T19:49:45.287 に答える