Webgl画布在另一个画布上显示为半透明

时间:2014-08-13 06:28:04

标签: html5-canvas webgl

我正在尝试为我的游戏实施webgl。问题是我使用了多个画布,而我的webgl启用的画布在我的地形画布上是半透明的(它被绘制一次,只是随玩家移动)。这是一张图片:

enter image description here

我在google上搜索了过去2个小时,但找不到任何有帮助的内容。

我试过了:

getContext("experimental-webgl",{alpha: false}); 

这只是完全隐藏了地形(现在全黑),但我的webgl绘制的对象具有正确的颜色。

gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);

gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, false);

这些都没有引起任何注意。

gl.clearColor(0, 0, 0, 0)

没有影响结果,仍然看起来像上面的截图。

此处的其他所有内容:http://games.greggman.com/game/webgl-and-alpha/

似乎没什么用。为什么画布上画的是半透明的?没有影响canvas元素的CSS。

1 个答案:

答案 0 :(得分:0)

想出来!我正在使用WebGL-2D,这是一个将context2D API添加到webGL的javascript文件。因此,如果我调用drawImage,它实际上使用webgl来处理它。在getContext定义中,我不得不改变:

gl.colorMask(1,1,1,0);

gl.colorMask(1,1,1,1);

colorMask()方法指定是否可以将红色,绿色,蓝色和alpha写入帧缓冲区。

我不知道之前为什么它是0。