1
WebGLでブレンドしようとしたときに私が気づくことのできない奇妙な問題があります。黒は完全に透明にレンダリングされ、その中に灰色の色合いを持つものも半透明にレンダリングされます。私はそれを透明のためのソースとしてアルファチャンネルを使用するように設定しましたが、ある点では、アルファ値を変更すると黒/灰色でないものはすべて異なってレンダリングされます。アルファを1に設定しても、黒はまだ透明に表示されます。WebGL透明黒
これは私が透明性を有効にする方法である:
this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE);
this.gl.enable(this.gl.BLEND);
this.gl.disable(this.gl.DEPTH_TEST);
性と透明性を行い、シェーダの一部:
texColorがサンプリングされているテクスチャカラーである、vLightWeightはシャドウイングであるgl_FragColor = vec4(texColor.rgb * vLightWeight, texColor.a * uAlpha);
これは頂点シェーダで計算され、uAlphaは透明に使用するユニフォームです。