我有一个有趣的问题。我正在将带有自定义字体的文本绘制到画布上,然后将该画布的图像数据加载到 GL 纹理中。问题是背景的透明度。我无法让 GL 纹理具有正确的 alpha。它的背景是黑色的。
看这里:
http://24.2.20.166/
(Stackoverflow 不允许我直接发布链接……抱歉……)
相关代码:
this.ctx.clearRect(0,0, this.textCanvas.width, this.textCanvas.height);
this.ctx.fillText(textObj.text, this.textCanvas.width / 2, this.textCanvas.height / 2);
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas);
编辑:我是个白痴。
this.gl.enable (this.gl.BLEND);
this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);