javascript - webgl 和 2d Canvas 之间的透明度差异

标签 javascript html5-canvas webgl

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

有没有办法设置 webgl 纹理的透明度颜色?二维 Canvas 怎么样?

最佳答案

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

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

它们看起来是一样的。

关于javascript - webgl 和 2d Canvas 之间的透明度差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104007/

相关文章:

opengl-es-2.0 - 使用 WebGL 或 OpenGL ES 2,如何在屏幕上呈现 RBO 的内容?

javascript - html : navigation style change on hover

Javascript 检查函数是否由两个字符串组成

javascript - 在 KnovaJs 中,如何允许 Rect 用文本扩展或允许文本具有用文本扩展的边框,就像它在 Html 中的 Div

javascript - WebGL 计算机图形学 vec4?

rotation - THREE.js:计算对象上的点的世界空间位置

javascript - 此 CURL 脚本的等效 Javascript 请求 header 是什么?

JavaScript img.onerror 更改源 - 竞争条件

javascript - 使用 Kinetic JS 在 PDF 文件上添加图层

javascript - 为什么更改选项卡时 Canvas 动画有时会失败?