У меня странная проблема, которую я не могу понять, когда пытаюсь смешивать в WebGL.Черный цвет становится полностью прозрачным, а все с оттенками серого - полупрозрачным.Я настроил его на использование альфа-канала в качестве источника прозрачности, и в некотором отношении он работает, все, что не является черным / серым, отображается по-разному при изменении значения альфа-канала.но даже когда я устанавливаю альфа в 1, черный цвет по-прежнему отображается прозрачным.
Вот как я включаю прозрачность:
this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE);
this.gl.enable(this.gl.BLEND);
this.gl.disable(this.gl.DEPTH_TEST);
И часть шейдера, которая делает прозрачность:
gl_FragColor = vec4(texColor.rgb * vLightWeight, texColor.a * uAlpha);
, где texColor - это цвет текстуры, который отбирается, vLightWeight - это затенение, которое вычисляется в вершинном шейдере, и uAlpha - униформа, которую я использую для прозрачности.