0

我有一个 png,我使用 2d 加载它canvas,并作为 webgl 纹理。png 有一些透明部分,在 webgl 中呈现为黑色,在 2d 中呈现为白色canvas。(请参阅此小提琴以进行现场演示。在 Chrome 中,您需要使用标志运行--disable-web-security以绕过跨域限制。)

有没有办法为 webgl 纹理设置透明度颜色?那么二维画布呢?

4

2 回答 2

2

您将纹理作为 RGB 加载createTexture,因此丢弃了 alpha 通道。将其更改为 RGBA,如下所示

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

他们看起来一样。

于 2012-10-29T01:34:17.213 回答
0

为了让画布了解您的 png 透明度,您需要将其保存为 24 位。

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

完整参考

于 2012-10-27T20:52:01.757 回答