WebGL прозрачный черный - PullRequest
       17

WebGL прозрачный черный

2 голосов
/ 08 декабря 2010

У меня странная проблема, которую я не могу понять, когда пытаюсь смешивать в 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 - униформа, которую я использую для прозрачности.

1 Ответ

3 голосов
/ 02 января 2011

Я думаю, у вас должно быть gl.ONE_MINUS_SRC_ALPHA , где у вас есть gl.ONE .


  gl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA  );

...