4

私はwebGLで働いています。私はOpenGLにかなり慣れていません。ブレンディング機能に問題があります。私のオプションは次のようになります:

gl.enable(gl.BLEND)
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)

[0,0,0,0.5]色付きの宛先背景の上に、色付きのソース四角形をレンダリングします[0,0,0,1]。私が読んだすべてに基づいて、結果は黒になると思います。代わりに、約 25% の白に見えます。アルファ値が 0.0 から 1.0 の範囲の赤と黒の長方形をレンダリングすると、次のようになります。

ここでライブ デモとソースを表示します。ブレンディング機能を誤解していますか?もしそうなら、どうすれば期待どおりの結果が得られますか? ありがとう!

4

1 に答える 1

2

alpha には別の関数を指定する必要があります。

gl.enable(gl.BLEND);
gl.blendEquation(gl.FUNC_ADD);
gl.blendFuncSeparate(
    gl.SRC_ALPHA,
    gl.ONE_MINUS_SRC_ALPHA,
    gl.ONE,
    gl.ONE_MINUS_SRC_ALPHA
);
于 2015-12-04T11:21:38.200 に答える