webgl和2d画布之间的透明度差异

时间:2012-10-27 20:40:43

标签: javascript html5-canvas webgl

我有一个png,我使用2d canvas加载,并作为webgl纹理。 png有一些透明的部分,在webgl中呈现黑色,在2d canvas呈现白色。 (请参阅this fiddle了解实时演示。在Chrome中,您需要使用标记--disable-web-security来绕过跨域限制。)

有没有办法为webgl纹理设置透明度颜色? 2d画布怎么样?

2 个答案:

答案 0 :(得分:2)

您在createTexture中将纹理加载为RGB,因此丢弃了Alpha通道。将其更改为RGBA,如

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);

他们看起来也一样。

答案 1 :(得分:0)

为了让canvas了解你的png透明度,你需要将其保存为24位。

  

因为24位PNG图像包含完整的8位alpha通道。

Full reference